hw_module_t-Strukturreferenz
#include <
hardware.h
>
Datenfelder |
|
uint32_t | tag |
uint16_t | module_api_version |
uint16_t | hal_api_version |
const char * | id |
const char * | name |
const char * | author |
struct hw_module_methods_t * | Methoden |
void * | dso |
uint32_t | reserved [32-7] |
Detaillierte Beschreibung
Jedes Hardwaremodul muss eine Datenstruktur namens HAL_MODULE_INFO_SYM haben. Die Felder dieser Datenstruktur müssen mit hw_module_t beginnen, gefolgt von modulspezifischen Informationen.
Definition in Zeile 86 der Datei hardware.h .
Felddokumentation
const char* author |
Autor/Inhaber/Implementierer des Moduls
Definition in Zeile 139 der Datei hardware.h .
void* dso |
DSO des Moduls
Definition in Zeile 145 der Datei hardware.h .
uint16_t hal_api_version |
Die Definitionen „version_major“ und „version_minor“ dienen hier der vorübergehenden Quellcodekompatibilität. Sie werden in der nächsten Version entfernt. ALLE Kunden müssen auf das neue Versionsformat umstellen. Die API-Version der HAL-Modulschnittstelle. Damit werden die Strukturen und Definitionen von hw_module_t , hw_module_methods_t und hw_device_t versioniert.
Dieses Feld gehört zur HAL-Schnittstelle. Nutzer und Implementierungen von Modulen dürfen sich NICHT auf diesen Wert für Versionsinformationen verlassen.
Derzeit ist „0“ der einzige gültige Wert.
Definition in Zeile 129 der Datei hardware.h .
const char* id |
Modul-ID
Definition in Zeile 133 der Datei hardware.h .
struct hw_module_methods_t * methods |
Methoden für Module
Definition in Zeile 142 der Datei hardware.h .
uint16_t module_api_version |
Die API-Version des implementierten Moduls. Der Modulinhaber ist dafür verantwortlich, die Version zu aktualisieren, wenn sich eine Moduloberfläche geändert hat.
Die abgeleiteten Module wie gralloc und audio sind Eigentümer dieses Felds und verwalten es. Der Modulnutzer muss das Versionsfeld auswerten, um zu entscheiden, ob die bereitgestellte Modulimplementierung verwendet werden soll. SurfaceFlinger ist beispielsweise dafür verantwortlich, dass er weiß, wie verschiedene Versionen der gralloc-Modul-API verwaltet werden. AudioFlinger muss dasselbe für die Audio-Modul-API wissen.
Die Modul-API-Version sollte eine Haupt- und eine Nebenversion enthalten. Version 1.0 könnte beispielsweise als 0x0100 dargestellt werden. Dieses Format impliziert, dass die Versionen 0x0100 bis 0x01ff alle API-kompatibel sind.
In Zukunft wird libhardware die Funktion „hw_get_module_version()“ (oder eine ähnliche) bereitstellen, die die minimal und maximal unterstützten Versionen als Argumente annimmt und Module mit Versionen außerhalb des angegebenen Bereichs ablehnen kann.
Definition in Zeile 111 der Datei hardware.h .
const char* name |
Name dieses Moduls
Definition in Zeile 136 der Datei hardware.h .
uint32_t reserved[32-7] |
Padding auf 128 Byte, für zukünftige Verwendung reserviert
Definition in Zeile 151 der Datei hardware.h .
uint32_t-Tag |
Das Tag muss mit HARDWARE_MODULE_TAG initialisiert werden.
Definition in Zeile 88 der Datei hardware.h .
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ hardware.h