Referência da estrutura hw_module_t
#include <
hardware.h
>
Campos de dados |
|
uint32_t | tag |
uint16_t | module_api_version |
uint16_t | hal_api_version |
const char * | id |
const char * | name |
const char * | autor |
struct hw_module_methods_t * | métodos |
void * | dso |
uint32_t | reservado [32-7] |
Descrição detalhada
Cada módulo de hardware precisa ter uma estrutura de dados chamada HAL_MODULE_INFO_SYM, e os campos dessa estrutura precisam começar com hw_module_t seguidos de informações específicas do módulo.
Definição na linha 86 do arquivo hardware.h .
Documentação do campo
const char* author |
Autor/proprietário/implementador do módulo
Definição na linha 139 do arquivo hardware.h .
void* dso |
dso do módulo
Definição na linha 145 do arquivo hardware.h .
uint16_t hal_api_version |
As definições version_major/version_minor são fornecidas aqui para compatibilidade temporária do código-fonte. Eles serão removidos na próxima versão. TODOS os clientes precisam converter para o novo formato. A versão da API da interface do módulo HAL. O objetivo é criar uma versão das estruturas e definições hw_module_t , hw_module_methods_t e hw_device_t .
A interface HAL é proprietária desse campo. Os usuários/implementações de módulo NÃO devem depender desse valor para informações de versão.
No momento, 0 é o único valor válido.
Definição na linha 129 do arquivo hardware.h .
const char* id |
Identificador do módulo
Definição na linha 133 do arquivo hardware.h .
struct hw_module_methods_t * métodos |
Métodos de módulos
Definição na linha 142 do arquivo hardware.h .
uint16_t module_api_version |
A versão da API do módulo implementado. O proprietário do módulo é responsável por atualizar a versão quando uma interface de módulo é alterada.
Os módulos derivados, como gralloc e audio, são proprietários e gerenciam esse campo. O usuário do módulo precisa interpretar o campo de versão para decidir se vai ou não interagir com a implementação do módulo fornecido. Por exemplo, o SurfaceFlinger é responsável por garantir que ele saiba como gerenciar diferentes versões da API gralloc-module, e o AudioFlinger precisa saber como fazer o mesmo para a API audio-module.
A versão da API do módulo precisa incluir um componente principal e um secundário. Por exemplo, a versão 1.0 pode ser representada como 0x0100. Esse formato implica que as versões 0x0100-0x01ff são todas compatíveis com a API.
No futuro, a libhardware vai expor uma função hw_get_module_version() (ou equivalente) que vai usar as versões mínima/máxima com suporte como argumentos e vai poder rejeitar módulos com versões fora do intervalo fornecido.
Definição na linha 111 do arquivo hardware.h .
const char* name |
Nome deste módulo
Definição na linha 136 do arquivo hardware.h .
uint32_t reserved[32-7] |
preenchimento de 128 bytes, reservado para uso futuro
Definição na linha 151 do arquivo hardware.h .
Tag uint32_t |
A tag precisa ser inicializada como HARDWARE_MODULE_TAG
Definição na linha 88 do arquivo hardware.h .
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ hardware.h