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 *  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 줄에 정의되어 있습니다.


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