hw_module_t Справочник по структуре

hw_module_t Справочник по структуре

#include < hardware.h >

Поля данных

uint32_t ярлык
uint16_t module_api_version
uint16_t hal_api_version
постоянный символ * я бы
постоянный символ * имя
постоянный символ * автор
структура hw_module_methods_t * методы
пустота * дсо
uint32_t зарезервировано [32-7]

Подробное описание

Каждый аппаратный модуль должен иметь структуру данных с именем HAL_MODULE_INFO_SYM, и поля этой структуры данных должны начинаться с hw_module_t , за которым следует информация, относящаяся к модулю.

Определение в строке 86 файла hardware.h .

Полевая документация

const char* автор

Автор/владелец/исполнитель модуля

Определение в строке 139 файла hardware.h .

пустота * ДСО

DSO модуля

Определение в строке 145 файла hardware.h .

uint16_t hal_api_version

Здесь указываются определения version_major/version_minor для временной совместимости исходного кода. В следующей версии они будут удалены. ВСЕ клиенты должны преобразовать в формат новой версии. Версия API интерфейса модуля HAL. Это предназначено для версии структур и определений hw_module_t , hw_module_methods_t и hw_device_t .

Интерфейс HAL владеет этим полем. Пользователи/реализации модуля НЕ должны полагаться на это значение для информации о версии.

В настоящее время 0 является единственным допустимым значением.

Определение в строке 129 файла hardware.h .

const char* идентификатор

Идентификатор модуля

Определение в строке 133 файла hardware.h .

структура hw_module_methods_t * методы

Методы модулей

Определение в строке 142 файла hardware.h .

uint16_t module_api_version

Версия API реализованного модуля. Владелец модуля отвечает за обновление версии при изменении интерфейса модуля.

Производные модули, такие как galloc и audio, владеют этим полем и управляют им. Пользователь модуля должен интерпретировать поле версии, чтобы решить, следует ли взаимодействовать с предоставленной реализацией модуля. Например, SurfaceFlinger отвечает за то, чтобы убедиться, что он знает, как управлять различными версиями API-интерфейса gralloc-модуля, а AudioFlinger должен знать, как сделать то же самое для API-интерфейса аудио-модуля.

Версия API модуля должна включать основной и дополнительный компоненты. Например, версия 1.0 может быть представлена ​​как 0x0100. Этот формат подразумевает, что все версии 0x0100-0x01ff совместимы с API.

В будущем libhardware предоставит функцию hw_get_module_version() (или аналогичную), которая будет принимать минимальные/максимальные поддерживаемые версии в качестве аргументов и сможет отклонять модули с версиями за пределами предоставленного диапазона.

Определение в строке 111 файла hardware.h .

const char* имя

Название этого модуля

Определение в строке 136 файла hardware.h .

uint32_t зарезервировано[32-7]

заполнение до 128 байт, зарезервировано для использования в будущем

Определение в строке 151 файла hardware.h .

тег uint32_t

тег должен быть инициализирован в HARDWARE_MODULE_TAG

Определение в строке 88 файла hardware.h .


Документация для этой структуры была сгенерирована из следующего файла: