Referência da estrutura hw_module_t

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: