hw_module_t 结构参考
#include < hardware.h >
数据字段 | |
uint32_t | 标签 |
uint16_t | 模块 API 版本 |
uint16_t | hal_api_版本 |
常量字符* | ID |
常量字符* | 姓名 |
常量字符* | 作者 |
结构hw_module_methods_t * | 方法 |
空白 * | 数字索 |
uint32_t | 保留[32-7] |
详细说明
每个硬件模块必须有一个名为 HAL_MODULE_INFO_SYM 的数据结构,并且该数据结构的字段必须以hw_module_t开头,后跟模块特定信息。
定义位于文件hardware.h第86行。
现场文档
const char* 作者 |
模块的作者/所有者/实施者
定义位于文件hardware.h的第139行。
无效* 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行。
常量 char* id |
模块标识符
定义位于文件hardware.h的第133行。
结构hw_module_methods_t * 方法 |
模块方法
定义位于文件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* 名称 |
该模块的名称
定义位于文件hardware.h的第136行。
uint32_t 保留[32-7] |
填充至 128 字节,保留供将来使用
定义位于文件hardware.h的第151行。
uint32_t 标签 |
标签必须初始化为 HARDWARE_MODULE_TAG
定义位于文件hardware.h第88行。
该结构的文档是从以下文件生成的: