hw_module_t 結構體參考資料
#include <
hardware.h
>
資料欄位 |
|
uint32_t | 標記 |
uint16_t | module_api_version |
uint16_t | hal_api_version |
const char * | id |
const char * | name |
const char * | 作者 |
struct hw_module_methods_t * | 方法 |
void * | dso |
uint32_t | 保留 [32-7] |
詳細說明
每個硬體模組都必須有名為 HAL_MODULE_INFO_SYM 的資料結構,且此資料結構的欄位必須以 hw_module_t 開頭,後面接著模組專屬資訊。
定義位於檔案 hardware.h 的 86 行。
欄位說明文件
const char* author |
模組的作者/擁有者/實作者
定義位於檔案 hardware.h 的 139 行。
void* dso |
模組的 dso
定義位於檔案 hardware.h 的 145 行。
uint16_t hal_api_version |
為了暫時性的原始碼相容性,此處提供 version_major/version_minor 定義。這些功能將在下一個版本中移除。所有用戶端都必須轉換為新版本格式。HAL 模組介面的 API 版本。這表示要為 hw_module_t 、 hw_module_methods_t 和 hw_device_t 結構體和定義建立版本。
HAL 介面擁有這個欄位。模組使用者/實作項目不得依賴這個值取得版本資訊。
目前唯一有效的值是 0。
定義位於檔案 hardware.h 的 129 行。
const char* id |
模組 ID
定義位於檔案 hardware.h 的 133 行。
struct hw_module_methods_t * methods |
模組方法
定義位於檔案 hardware.h 的 142 行。
uint16_t module_api_version |
已實作模組的 API 版本。模組介面變更時,模組擁有者必須負責更新版本。
衍生模組 (例如 gralloc 和音訊) 會擁有並管理這個欄位。模組使用者必須解讀版本欄位,決定是否要與提供的模組實作項目進行互動。舉例來說,SurfaceFlinger 負責確保自己知道如何管理不同版本的 gralloc-module API,而 AudioFlinger 必須知道如何為 audio-module API 執行相同的操作。
模組 API 版本應包含主要和次要元件。舉例來說,1.0 版可表示為 0x0100。這個格式表示版本 0x0100-0x01ff 皆與 API 相容。
日後,libhardware 將公開 hw_get_module_version() (或同等) 函式,該函式會將支援的最低/最高版本做為引數,並可拒絕版本超出提供範圍的模組。
定義位於檔案 hardware.h 的 111 行。
const char* name |
這個模組的名稱
定義位於檔案 hardware.h 的 136 行。
uint32_t reserved[32-7] |
填充至 128 個位元組,保留供日後使用
定義位於檔案 hardware.h 的 151 行。
uint32_t 標記 |
標記必須初始化為 HARDWARE_MODULE_TAG
定義位於檔案 hardware.h 的 88 行。
這個結構體的說明文件是由下列檔案產生:
- hardware/libhardware/include/hardware/ hardware.h