hw_module_t 結構體參考資料

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 行。


這個結構體的說明文件是由下列檔案產生: