Zwróć uwagę na strukturę hw_module_t

Zwróć uwagę na strukturę hw_module_t

#include < hardware.h >

Pola danych

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 metody
 
void *  dso
 
uint32_t  reserved [32-7]
 

Szczegółowy opis

Każdy moduł sprzętowy musi mieć strukturę danych o nazwie HAL_MODULE_INFO_SYM, a pola tej struktury danych muszą zaczynać się od hw_module_t po czym następuje informacja o danym module.

Definicja w wierszu 86 pliku hardware.h .

Dokumentacja pola

const char* author

Autor, właściciel lub osoba implementująca moduł

Definicja w wierszu 139 pliku hardware.h .

void* dso

dso modułu

Definicja w wierszu 145 pliku hardware.h .

uint16_t hal_api_version

Definicje version_major/version_minor są podawane tutaj na potrzeby tymczasowej zgodności kodu źródłowego. Zostaną one usunięte w kolejne wersji. WSZYSTKIE pliki klienta muszą zostać przekonwertowane do formatu nowej wersji. Wersja interfejsu API modułu HAL. Ma ona na celu zaktualizowanie wersji struktur i definicji hw_module_t , hw_module_methods_t i hw_device_t

To pole jest obsługiwane przez interfejs HAL. Użytkownicy modułu i implementacje nie mogą polegać na tej wartości w celu uzyskania informacji o wersji.

Obecnie jedyną prawidłową wartością jest 0.

Definicja w wierszu 129 pliku hardware.h .

const char* id

Identyfikator modułu

Definicja w wierszu 133 pliku hardware.h .

struct hw_module_methods_t * methods

Metody modułów

Definicja w wierszu 142 pliku hardware.h .

uint16_t module_api_version

Wersja interfejsu API zaimplementowanego modułu. Właściciel modułu jest odpowiedzialny za aktualizację wersji, gdy zmieni się interfejs modułu.

Moduli pochodnych, takich jak gralloc i audio, są właścicielami tego pola i nim zarządzają. Użytkownik modułu musi zinterpretować pole wersji, aby zdecydować, czy ma współpracować z dostarczoną implementacją modułu. Na przykład SurfaceFlinger musi wiedzieć, jak zarządzać różnymi wersjami interfejsu gralloc-module API, a AudioFlinger musi wiedzieć, jak to samo robić w przypadku interfejsu audio-module API.

Wersja interfejsu API modułu powinna zawierać komponent główny i podrzędny. Na przykład wersja 1.0 może być reprezentowana jako 0x0100. Ten format oznacza, że wszystkie wersje od 0x0100 do 0x01ff są zgodne z interfejsem API.

W przyszłości biblioteka libhardware udostępni funkcję hw_get_module_version() (lub jej odpowiednik), która będzie przyjmować jako argumenty minimalną i maksymalną wersję obsługiwanego modułu. Będzie ona mogła odrzucać moduły z wersjami spoza podanego zakresu.

Definicja w wierszu 111 pliku hardware.h .

const char* name

Nazwa tego modułu

Definicja w wierszu 136 pliku hardware.h .

uint32_t reserved[32-7]

wypełnienie do 128 bajtów, zarezerwowane do użycia w przyszłości

Definicja w wierszu 151 pliku hardware.h .

tag uint32_t

tag musi być zainicjowany jako HARDWARE_MODULE_TAG

Definicja w wierszu 88 pliku hardware.h .


Dokumentacja tego typu danych została wygenerowana z tego pliku: