Riferimento alla struttura hw_module_t

Riferimento alla struttura hw_module_t

#include < hardware.h >

Campi dati

uint32_t  tag
 
uint16_t  module_api_version
 
uint16_t  hal_api_version
 
const char *  id
 
const char *  name
 
const char *  autore
 
struct hw_module_methods_t metodi
 
void *  dso
 
uint32_t  riservato [32-7]
 

Descrizione dettagliata

Ogni modulo hardware deve avere una struttura di dati denominata HAL_MODULE_INFO_SYM e i campi di questa struttura di dati devono iniziare con hw_module_t followed by module specific information.

Definizione alla riga 86 del file hardware.h .

Documentazione dei campi

const char* author

Autore/proprietario/implementatore del modulo

Definizione alla riga 139 del file hardware.h .

void* dso

DSO del modulo

Definizione nella riga 145 del file hardware.h .

uint16_t hal_api_version

Le definizioni version_major/version_minor sono fornite qui per la compatibilità temporanea del codice sorgente. Verranno rimossi nella prossima versione. TUTTI i client devono essere convertiti al formato della nuova versione. La versione dell'API dell'interfaccia del modulo HAL. Questo è inteso per eseguire la versione delle strutture e delle definizioni hw_module_t , hw_module_methods_t e hw_device_t .

L'interfaccia HAL è proprietaria di questo campo. Gli utenti/le implementazioni del modulo NON devono fare affidamento su questo valore per le informazioni sulla versione.

Al momento, 0 è l'unico valore valido.

Definizione alla riga 129 del file hardware.h .

const char* id

Identificatore del modulo

Definizione nella riga 133 del file hardware.h .

struct hw_module_methods_t * methods

Metodi dei moduli

Definizione nella riga 142 del file hardware.h .

uint16_t module_api_version

La versione dell'API del modulo implementato. Il proprietario del modulo è responsabile dell'aggiornamento della versione quando l'interfaccia di un modulo è cambiata.

I moduli derivati come gralloc e audio possiedono e gestiscono questo campo. L'utente del modulo deve interpretare il campo della versione per decidere se eseguire o meno l'interoperabilità con l'implementazione del modulo fornita. Ad esempio, SurfaceFlinger è responsabile di assicurarsi di sapere come gestire diverse versioni dell'API gralloc-module e AudioFlinger deve sapere come fare lo stesso per l'API audio-module.

La versione dell'API del modulo deve includere un componente principale e uno secondario. Ad esempio, la versione 1.0 potrebbe essere rappresentata come 0x0100. Questo formato implica che le versioni 0x0100-0x01ff sono tutte compatibili con l'API.

In futuro, libhardware esporrà una funzione hw_get_module_version() (o equivalente) che prenderà come argomenti le versioni supportate minime/massime e potrà rifiutare i moduli con versioni esterne all'intervallo specificato.

Definizione nella riga 111 del file hardware.h .

const char* name

Nome di questo modulo

Definizione nella riga 136 del file hardware.h .

uint32_t reserved[32-7]

spaziatura fino a 128 byte, riservato per l'uso futuro

Definizione nella riga 151 del file hardware.h .

Tag uint32_t

Il tag deve essere inizializzato su HARDWARE_MODULE_TAG

Definizione nella riga 88 del file hardware.h .


La documentazione di questa struttura è stata generata dal seguente file: