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

模块的标识符

定义位于文件 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 行。


此结构体的文档是根据以下文件生成的: