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 * | author |
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 |
モジュールの識別子
ファイル hardware.h の 133 行目 に定義されています。
struct hw_module_methods_t * methods |
モジュールのメソッド
ファイル hardware.h の 142 行 の定義。
uint16_t module_api_version |
実装されたモジュールの API バージョン。モジュール インターフェースが変更された場合、バージョンの更新はモジュール オーナーの責任となります。
gralloc や audio などの派生モジュールがこのフィールドを所有し、管理します。モジュール ユーザーは、バージョン フィールドを解釈して、提供されたモジュール実装と相互運用するかどうかを決定する必要があります。たとえば、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 tag |
タグは HARDWARE_MODULE_TAG に初期化する必要があります。
ファイル hardware.h の 88 行 の定義。
この構造体のドキュメントは、次のファイルから生成されました。
- hardware/libhardware/include/hardware/ hardware.h