hw_module_t 구조체 참조

hw_module_t 구조체 참조

#include < hardware.h >

데이터 필드

uint32_t 꼬리표
uint16_t module_api_version
uint16_t hal_api_version
const 문자 * ID
const 문자 * 이름
const 문자 * 작가
구조체 hw_module_methods_t * 행동 양식
무효의 * dso
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_thw_device_t 구조와 정의의 버전을 지정하기 위한 것입니다.

HAL 인터페이스는 이 필드를 소유합니다. 모듈 사용자/구현은 버전 정보에 대해 이 값에 의존해서는 안 됩니다.

현재 유효한 값은 0뿐입니다.

hardware.h 파일의 129 번째 줄에 정의되어 있습니다.

const char* 아이디

모듈 식별자

hardware.h 파일의 133 번째 줄에 정의되어 있습니다.

struct hw_module_methods_t * 메소드

모듈 방법

hardware.h 파일의 142 번째 줄에 정의되어 있습니다.

uint16_t module_api_version

구현된 모듈의 API 버전입니다. 모듈 소유자는 모듈 인터페이스가 변경되면 버전을 업데이트할 책임이 있습니다.

gralloc 및 audio와 같은 파생 모듈은 이 필드를 소유하고 관리합니다. 모듈 사용자는 버전 필드를 해석하여 제공된 모듈 구현과 상호 운용할지 여부를 결정해야 합니다. 예를 들어 SurfaceFlinger는 다양한 버전의 gralloc 모듈 API를 관리하는 방법을 알고 있는지 확인하는 역할을 하며, AudioFlinger는 오디오 모듈 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번째 줄에 정의되어 있습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.