Глава 20. Обзор API ALF
Соглашения
В пространстве имен среды ALF используются префиксы ALF и alf. Для именования прототипов обычных функций и объявлений структур данных следует использовать строчные буквы, разделяя слова знаком подчеркивания (_). Для именования макроопределений необходимо использовать заглавные буквы, разделяя слова знаком подчеркивания.
| int | Этот тип данных по умолчанию считается знаковым как на основном процессоре, так и на акселераторе. Разрядность данного типа определяется бинарным интерфейсом приложений (ABI) архитектуры, но не может быть менее 32. При этом фактическая разрядность может отличаться для основного процессора и для акселератора. |
|---|
| unsigned int | Разрядность этого типа данных совпадает с разрядностью типа int. |
|---|
| char | Этот тип данных не считается ни знаковым, ни беззнаковым. Его разрядность должна составлять 8. |
|---|
| long | Этот тип данных не используется в определениях API, так как нет гарантии его однозначного определения на различных платформах. |
|---|
| void * | Разрядность этого типа данных определяется ABI соответствующей архитектуры и реализации компилятора. Следует учитывать, что фактическая разрядность может отличаться для основного процессора и для акселератора. |
|---|
Платформно-зависимые вспомогательные API и структуры данных
Реализация базовых вызовов API и структур данных ALF предусматривает переносимость между различными платформами. Особенности реализации для конкретных платформ скрыты с точки зрения пользователей основных вызовов API.
Стандартные структуры данных
Тип перечисления ALF_DATA_TYPE_T определеяет типы данных для операций пересылки данных между основным процессором и акселераторами. Среда исполнения ALF автоматически выполняет перестановку байтов в словах, если порядок байтов в основном процессоре и в акселераторах различается. Чтобы запретить перестановку байтов, можно использовать тип данных ALF_DATA_BYTE.
| ALF_DATA_BYTE | Для типов данных, где порядок байтов не играет роли |
|---|
| ALF_DATA_INT16 | Для двухбайтовых знаковых или беззнаковых целочисленных типов |
|---|
| ALF_DATA_INT32 | Для четырехбайтовых знаковых или беззнаковых целочисленных типов |
|---|
| ALF_DATA_INT64 | Для восьмибайтовых знаковых или беззнаковых целочисленных типов |
|---|
| ALF_DATA_FLOAT | Для четырехбайтовых типов с плавающей запятой |
|---|
| ALF_DATA_DOUBLE | Для восьмибайтовых типов с плавающей запятой |
|---|
| ALF_DATA_ADDR32 | 32-разрядный адрес |
|---|
| ALF_DATA_ADDR64 | 64-разрядный адрес |
|---|
ALF_NULL_HANDLE
ИМЯ
ALF_NULL_HANDLE — признак неинициализированного указателя в среде исполнения ALF.
ОПИСАНИЕ
Константа ALF_NULL_HANDLE является признаком неинициализированного указателя в среде исполнения ALF. Данное значение должно первоначально присваиваться всем указателям, чтобы избежать неоднозначности в семантике кода.
ALF_STRING_TOKEN_ MAX
ИМЯ
ALF_STRING_TOKEN_ MAX — Эта константа определяет максимально допустимую длину лексем в байтах, не считая завершающего нуля.
ОПИСАНИЕ
Указанные лексемы используются в ALF в качестве идентификаторов имен функций и для других целей. В настоящее время их максимально допустимая длина составляет 251 байт.
|