27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
memtrack_module স্ট্রাকট রেফারেন্স
#include < memtrack.h >
প্রতিটি হার্ডওয়্যার মডিউলে অবশ্যই HAL_MODULE_INFO_SYM নামে একটি ডেটা স্ট্রাকচার থাকতে হবে এবং এই ডাটা স্ট্রাকচারের ক্ষেত্রগুলি অবশ্যই hw_module_t দিয়ে শুরু হতে হবে এবং তারপরে মডিউল নির্দিষ্ট তথ্য থাকবে৷
memtrack.h ফাইলের 120 লাইনে সংজ্ঞা।
(*getMemory)() রেকর্ড অবজেক্টের একটি অ্যারে আশা করে এবং মেমরির মাপ এবং সেই মেমরির জন্য সংশ্লিষ্ট পতাকা সহ *সংখ্যা_রেকর্ড স্ট্রাকচার পর্যন্ত পূরণ করে। এটি *সংখ্যা_রেকর্ডের মোট সংখ্যার সাথে আপডেট করে যদি এটি ফেরত দিতে পারে যদি *সংখ্যা_রেকর্ডগুলি পাস করার সময় যথেষ্ট বড় হয়। সাইজ 0 সহ রেকর্ড ফেরত দেওয়া প্রত্যাশিত, একই মেমরি টাইপের জন্য getMemory-এ কলগুলির মধ্যে রেকর্ডের সংখ্যা পরিবর্তিত হওয়া উচিত নয়, এমনকি বিভিন্ন পিডের জন্য।
কলার প্রায়শই getMemory-কে একটি টাইপ এবং পিডের জন্য *num_records == 0 এর জন্য কল করে তা নির্ধারণ করতে কত রেকর্ডের জন্য রুম বরাদ্দ করতে হবে, এই কেসটি HAL-এ একটি ফাস্ট-পাথ হওয়া উচিত, একটি ধ্রুবক ফেরত দেয় এবং কোনো কার্নেল ফাইল অনুসন্ধান না করে। যদি *সংখ্যা_রেকর্ডগুলি 0 হয়, তাহলে রেকর্ডগুলি NULL হতে পারে।
এই ফাংশনটি অবশ্যই থ্রেড-নিরাপদ হতে হবে, এটি একই সময়ে একাধিক থ্রেড থেকে কল করা যেতে পারে।
সাফল্যে 0 ফেরত দেয়, -ENODEV যদি টাইপটি সমর্থিত না হয়, -অন্যান্য ত্রুটির ক্ষেত্রে errno।
memtrack.h ফাইলের 151 লাইনে সংজ্ঞা।
(*init)() মেমট্র্যাক ম্যানেজমেন্ট সেটআপ অ্যাকশন সঞ্চালন করে এবং getMemory()- এ যেকোনো কল করার আগে একবার কল করা হয়। সাফল্যের উপর 0 ফেরত দেয়, -ত্রুটির উপর ত্রুটি।
memtrack.h ফাইলের 128 লাইনে সংজ্ঞা।
এই কাঠামোর জন্য ডকুমেন্টেশন নিম্নলিখিত ফাইল থেকে তৈরি করা হয়েছিল:
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Android Hardware Abstraction Layer: memtrack_module Struct Reference\n\nmemtrack_module Struct Reference\n================================\n\n[Data Fields](#pub-attribs) \nmemtrack_module Struct Reference \n\n`\n#include \u003c\n`[memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)`\n\u003e\n`\n\n|----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| struct [hw_module_t](/reference/hal/structhw__module__t) | [common](/reference/hal/structmemtrack__module#a71ea01183b3998cad6a2301a37a42fc7) |\n| ||\n| int(\\* | [init](/reference/hal/structmemtrack__module#a44c48f5b685ba133e81237bf65fb77f3) )(const struct [memtrack_module](/reference/hal/structmemtrack__module) \\*module) |\n| ||\n| int(\\* | [getMemory](/reference/hal/structmemtrack__module#ad6da70db99b91b8e08eaff8f4500064a) )(const struct [memtrack_module](/reference/hal/structmemtrack__module) \\*module, pid_t pid, int type, struct [memtrack_record](/reference/hal/structmemtrack__record) \\*records, size_t \\*num_records) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\nEvery hardware module must have a data structure named HAL_MODULE_INFO_SYM and the fields of this data structure must begin with\n[hw_module_t](/reference/hal/structhw__module__t)\nfollowed by module specific information.\n\n\nDefinition at line\n[120](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\nof file\n[memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\n.\n\nField Documentation\n-------------------\n\n\n|-----------------------------------------------------------------|\n| struct [hw_module_t](/reference/hal/structhw__module__t) common |\n\n\nDefinition at line\n[121](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\nof file\n[memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* getMemory)(const struct [memtrack_module](/reference/hal/structmemtrack__module) \\*module, pid_t pid, int type, struct [memtrack_record](/reference/hal/structmemtrack__record) \\*records, size_t \\*num_records) |\n\n\n(\\*getMemory)() expects an array of record objects and populates up to \\*num_record structures with the sizes of memory plus associated flags for that memory. It also updates \\*num_records with the total number of records it could return if \\*num_records was large enough when passed in. Returning records with size 0 is expected, the number of records should not vary between calls to getMemory for the same memory type, even for different pids.\n\n\nThe caller will often call getMemory for a type and pid with \\*num_records == 0 to determine how many records to allocate room for, this case should be a fast-path in the HAL, returning a constant and not querying any kernel files. If \\*num_records passed in is 0, then records may be NULL.\n\n\nThis function must be thread-safe, it may get called from multiple threads at the same time.\n\n\nReturns 0 on success, -ENODEV if the type is not supported, -errno on other errors.\n\n\nDefinition at line\n[151](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\nof file\n[memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\n.\n\n|----------------------------------------------------------------------------------------------|\n| int(\\* init)(const struct [memtrack_module](/reference/hal/structmemtrack__module) \\*module) |\n\n\n(\\*init)() performs memtrack management setup actions and is called once before any calls to\n[getMemory()](/reference/hal/structmemtrack__module#ad6da70db99b91b8e08eaff8f4500064a)\n. Returns 0 on success, -errno on error.\n\n\nDefinition at line\n[128](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\nof file\n[memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [memtrack.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/memtrack.h)"]]