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,則記錄可能為空值。
此函式必須是執行緒安全的,可能會同時從多個執行緒呼叫。
成功時會傳回 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