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