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 的 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 而异。
调用方通常会针对类型和 pid 调用 getMemory,并将 *num_records 设为 0,以确定要为多少条记录分配空间,这种情况应是 HAL 中的快速路径,会返回常量,而不会查询任何内核文件。如果传入的 *num_records 为 0,则 records 可能为 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