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 के लिए, *num_records == 0 के साथ getMemory को कॉल करेगा, ताकि यह तय किया जा सके कि कितने रिकॉर्ड के लिए जगह आवंटित करनी है. यह मामला, HAL में फ़ास्ट-पाथ होना चाहिए, जो एक कॉन्स्टेंट दिखाता है और किसी भी कर्नेल फ़ाइल से क्वेरी नहीं करता. अगर *num_records की वैल्यू 0 है, तो रिकॉर्ड NULL हो सकते हैं.
यह फ़ंक्शन थ्रेड-सेफ़ होना चाहिए, क्योंकि इसे एक ही समय पर कई थ्रेड से कॉल किया जा सकता है.
सही तरीके से काम करने पर 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