การอ้างอิงโครงสร้าง memtrack_module
#include < memtrack.h >
เขตข้อมูล | |
โครงสร้าง hw_module_t | ทั่วไป |
อินท์(* | init )(const struct memtrack_module *โมดูล) |
อินท์(* | getMemory )(const struct memtrack_module *โมดูล, pid_t pid, ประเภท int, struct memtrack_record *บันทึก, size_t *num_records) |
คำอธิบายโดยละเอียด
โมดูลฮาร์ดแวร์ทุกตัวต้องมีโครงสร้างข้อมูลชื่อ HAL_MODULE_INFO_SYM และฟิลด์ของโครงสร้างข้อมูลนี้จะต้องขึ้นต้นด้วย hw_module_t ตามด้วยข้อมูลเฉพาะของโมดูล
คำจำกัดความที่บรรทัด 120 ของไฟล์ memtrack.h
เอกสารภาคสนาม
struct hw_module_t ทั่วไป |
คำจำกัดความที่บรรทัด 121 ของไฟล์ memtrack.h
int(* getMemory)(const struct memtrack_module *โมดูล, pid_t pid, ประเภท int, struct memtrack_record *บันทึก, size_t *num_records) |
(*getMemory)() ต้องการอาร์เรย์ของอ็อบเจ็กต์เรกคอร์ดและเติมโครงสร้างได้มากถึง *num_record ด้วยขนาดของหน่วยความจำบวกกับแฟล็กที่เกี่ยวข้องสำหรับหน่วยความจำนั้น นอกจากนี้ยังอัปเดต *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 *โมดูล) |
(*init)() ดำเนินการตั้งค่าการจัดการ memtrack และถูกเรียกหนึ่งครั้งก่อนที่จะเรียกใช้ getMemory() ส่งคืน 0 เมื่อสำเร็จ - ผิดพลาดหากผิดพลาด
คำจำกัดความที่บรรทัด 128 ของไฟล์ memtrack.h
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
- ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / memtrack.h