การอ้างอิง Struct memtrack_module

การอ้างอิง Struct 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 ตามด้วยข้อมูลเฉพาะของโมดูล

คําจํากัดความที่บรรทัด 120 ของไฟล์ memtrack.h .

เอกสารประกอบในสนาม

struct hw_module_t common

คําจํากัดความที่บรรทัด 121 ของไฟล์ memtrack.h .

int(* getMemory)(const struct memtrack_module *module, pid_t pid, int type, struct memtrack_record *records, size_t *num_records)

(*getMemory)() ต้องการอาร์เรย์ของออบเจ็กต์ระเบียนและสร้างโครงสร้าง *num_record สูงสุดด้วยขนาดหน่วยความจําบวก Flag ที่เชื่อมโยงสําหรับหน่วยความจํานั้น นอกจากนี้ ระบบจะอัปเดต *num_records ด้วยจํานวนระเบียนทั้งหมดที่ระบบจะแสดงได้หาก *num_records มีขนาดใหญ่พอเมื่อส่งเข้ามา การคืนค่าระเบียนที่มีขนาด 0 เป็นสิ่งที่คาดไว้ จำนวนระเบียนไม่ควรแตกต่างกันระหว่างการเรียก getMemory สำหรับหน่วยความจำประเภทเดียวกัน แม้ว่าจะเป็น PID ที่แตกต่างกันก็ตาม

ผู้เรียกใช้มักจะเรียก getMemory สำหรับประเภทและ pid ที่มี *num_records == 0 เพื่อกำหนดจำนวนระเบียนที่จะจัดสรรพื้นที่เก็บข้อมูล ซึ่งกรณีนี้ควรเป็นเส้นทางที่เร็วใน HAL โดยแสดงผลค่าคงที่และไม่ค้นหาไฟล์เคอร์เนล หาก *num_records ที่ส่งเป็น 0 ระเบียนอาจเป็น NULL

ฟังก์ชันนี้ต้องเป็นแบบปลอดภัยสำหรับเธรด เนื่องจากอาจมีการเรียกใช้จากหลายเธรดพร้อมกัน

แสดงผล 0 หากดำเนินการสำเร็จ, -ENODEV หากระบบไม่รองรับประเภทนั้น และ -errno สำหรับข้อผิดพลาดอื่นๆ

คําจํากัดความที่บรรทัด 151 ของไฟล์ memtrack.h .

int(* init)(const struct memtrack_module *module)

(*init)() จะดําเนินการการตั้งค่าการจัดการ memtrack และเรียกใช้ 1 ครั้งก่อนการเรียกใช้ getMemory() แสดงผล 0 เมื่อดำเนินการสำเร็จ และ -errno เมื่อเกิดข้อผิดพลาด

คําจํากัดความที่บรรทัด 128 ของไฟล์ memtrack.h .


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้