memtrack_module 구조체 참조
#include <
memtrack.h
>
데이터 필드 |
|
struct hw_module_t | 일반적인 |
int(* | init )(const struct memtrack_module *module) |
int(* | 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 번 줄에 정의되어 있습니다.
필드 문서
struct hw_module_t common |
memtrack.h FILE의 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 FILE의 151 라인에 정의되어 있습니다.
int(* init)(const struct memtrack_module *module) |
(*init)()은 memtrack 관리 설정 작업을 실행하며 getMemory() 를 호출하기 전에 한 번 호출됩니다. 성공 시 0을, 오류 시 -errno를 반환합니다.
memtrack.h FILE의 128 행에 정의되어 있습니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ memtrack.h