memtrack_module 结构体参考文档

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 行。


此结构体的文档是根据以下文件生成的: