memtrack_module 구조체 참조
#include < memtrack.h >
데이터 필드 | |
구조체 hw_module_t | 흔한 |
정수(* | 초기화 )(const struct memtrack_module *module) |
정수(* | getMemory )(const struct memtrack_module *module, pid_t pid, int type, struct memtrack_record *records, size_t *num_records) |
상세 설명
모든 하드웨어 모듈에는 HAL_MODULE_INFO_SYM이라는 데이터 구조가 있어야 하며 이 데이터 구조의 필드는 hw_module_t 로 시작하고 그 뒤에 모듈별 정보가 와야 합니다.
memtrack.h 파일의 120 번째 줄에 정의되어 있습니다.
현장 문서
구조체 hw_module_t 공통 |
memtrack.h 파일의 121 번째 줄에 정의되어 있습니다.
int(* getMemory)(const struct memtrack_module *module, pid_t pid, int type, struct memtrack_record *records, size_t *num_records) |
(*getMemory)()는 레코드 객체의 배열을 예상하고 최대 *num_record 구조를 메모리 크기와 해당 메모리에 대한 관련 플래그로 채웁니다. 또한 *num_records가 전달될 때 충분히 큰 경우 반환할 수 있는 총 레코드 수로 *num_records를 업데이트합니다. 크기가 0인 레코드를 반환하는 것이 예상됩니다. 동일한 메모리 유형에 대해 getMemory 호출 간에 레코드 수가 달라서는 안 됩니다. 다른 PID에 대해.
호출자는 종종 *num_records == 0인 유형 및 pid에 대해 getMemory를 호출하여 공간을 할당할 레코드 수를 결정합니다. 이 경우 HAL의 빠른 경로여야 하며 상수를 반환하고 커널 파일을 쿼리하지 않아야 합니다. 전달된 *num_records가 0이면 레코드는 NULL일 수 있습니다.
이 함수는 스레드로부터 안전해야 하며 동시에 여러 스레드에서 호출될 수 있습니다.
성공하면 0을 반환하고, 유형이 지원되지 않으면 -ENODEV를 반환하고, 기타 오류에서는 -errno를 반환합니다.
memtrack.h 파일의 151 번째 줄에 정의되어 있습니다.
int(* init)(const struct memtrack_module *module) |
(*init)()는 memtrack 관리 설정 작업을 수행하고 getMemory() 를 호출하기 전에 한 번 호출됩니다. 성공하면 0을 반환하고, 오류가 발생하면 -errno를 반환합니다.
memtrack.h 파일의 128 번째 줄에 정의되어 있습니다.
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ memtrack.h