memtrack_module 構造体リファレンス

memtrack_module 構造体リファレンス

#include < memtrack.h >

データ フィールド

struct hw_module_t   common
 
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 が異なる場合でも)ことは許されません。

呼び出し元は、*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() を呼び出す前に 1 回呼び出されます。成功した場合は 0、エラーの場合は -errno を返します。

ファイル memtrack.h 128 行目の定義。


この構造体のドキュメントは、次のファイルから生成されました。