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 | reserved [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 FILE의 111 라인에 정의가 있습니다.
const char* name |
이 모듈의 이름
hardware.h FILE의 136 라인에 정의가 있습니다.
uint32_t reserved[32-7] |
128바이트로 패딩, 나중에 사용하기 위해 예약됨
hardware.h 파일의 151 번 라인에 정의가 있습니다.
uint32_t 태그 |
태그를 HARDWARE_MODULE_TAG로 초기화해야 합니다.
hardware.h 파일의 88 줄에 정의되어 있습니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ hardware.h