hw_module_t-Strukturreferenz

hw_module_t-Strukturreferenz

#include < hardware.h >

Datenfelder

uint32_t Etikett
uint16_t module_api_version
uint16_t hal_api_version
const char * Ausweis
const char * Name
const char * Autor
struct hw_module_methods_t * Methoden
Leere * dso
uint32_t reserviert [32-7]

detaillierte Beschreibung

Jedes Hardwaremodul muss eine Datenstruktur namens HAL_MODULE_INFO_SYM haben und 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* Autor

Autor/Eigentümer/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

version_major/version_minor-Definitionen werden hier zur temporären Quellcodekompatibilität bereitgestellt. Sie werden in der nächsten Version entfernt. ALLE Clients müssen auf das neue Versionsformat konvertieren. Die API-Version der HAL-Modulschnittstelle. Dies dient der Versionierung der Strukturen und Definitionen hw_module_t , hw_module_methods_t und hw_device_t .

Die HAL-Schnittstelle besitzt dieses Feld. Modulbenutzer/Implementierungen dürfen sich bei Versionsinformationen NICHT auf diesen Wert verlassen.

Derzeit ist 0 der einzig gültige Wert.

Definition in Zeile 129 der Datei hardware.h .

const char* id

Bezeichner des Moduls

Definition in Zeile 133 der Datei hardware.h .

struct hw_module_methods_t * Methoden

Modulmethoden

Definition in Zeile 142 der Datei hardware.h .

uint16_t module_api_version

Die API-Version des implementierten Moduls. Der Modulbesitzer ist für die Aktualisierung der Version verantwortlich, wenn sich eine Modulschnittstelle geändert hat.

Die abgeleiteten Module wie gralloc und audio besitzen und verwalten dieses Feld. Der Modulbenutzer muss das Versionsfeld interpretieren, um zu entscheiden, ob er mit der bereitgestellten Modulimplementierung zusammenarbeiten möchte oder nicht. Beispielsweise ist SurfaceFlinger dafür verantwortlich, sicherzustellen, dass es weiß, wie verschiedene Versionen der Gralloc-Modul-API verwaltet werden, und AudioFlinger muss wissen, wie das Gleiche mit der Audiomodul-API zu tun ist.

Die Modul-API-Version sollte eine Haupt- und eine Nebenkomponente enthalten. Version 1.0 könnte beispielsweise als 0x0100 dargestellt werden. Dieses Format impliziert, dass die Versionen 0x0100–0x01ff alle API-kompatibel sind.

In Zukunft wird libhardware eine Funktion hw_get_module_version() (oder eine gleichwertige Funktion) verfügbar machen, die minimal/maximal unterstützte Versionen als Argumente akzeptiert und in der Lage wäre, Module mit Versionen außerhalb des angegebenen Bereichs abzulehnen.

Definition in Zeile 111 der Datei hardware.h .

const char* Name

Name dieses Moduls

Definition in Zeile 136 der Datei hardware.h .

uint32_t reserviert[32-7]

Auffüllung auf 128 Byte, reserviert für zukünftige Verwendung

Definition in Zeile 151 der Datei hardware.h .

uint32_t-Tag

Das Tag muss auf 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