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 | 
模块的标识符
定义位于文件 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 tag | 
标记必须初始化为 HARDWARE_MODULE_TAG
定义位于文件 hardware.h 的 88 行。
此结构体的文档是根据以下文件生成的:
- hardware/libhardware/include/hardware/ hardware.h
