hw_module_t स्ट्रक्चर का रेफ़रंस
#include <
hardware.h
>
डेटा फ़ील्ड |
|
uint32_t | टैग |
uint16_t | module_api_version |
uint16_t | hal_api_version |
const char * | id |
const char * | name |
const char * | author |
struct hw_module_methods_t * | तरीके |
void * | dso |
uint32_t | reserved [32-7] |
पूरी जानकारी
हर हार्डवेयर मॉड्यूल में, HAL_MODULE_INFO_SYM नाम का डेटा स्ट्रक्चर होना चाहिए. साथ ही, इस डेटा स्ट्रक्चर के फ़ील्ड, hw_module_t से शुरू होने चाहिए. इसके बाद, मॉड्यूल की खास जानकारी होनी चाहिए.
परिभाषा, hardware.h फ़ाइल की लाइन 86 पर दी गई है.
फ़ील्ड का दस्तावेज़
const char* author |
मॉड्यूल का लेखक/मालिक/इंप्लिकेटर
परिभाषा, hardware.h फ़ाइल की लाइन 139 पर दी गई है.
void* dso |
मॉड्यूल का डीएसओ
परिभाषा, hardware.h फ़ाइल की लाइन 145 पर दी गई है .
uint16_t hal_api_version |
सोर्स कोड के साथ कुछ समय के लिए काम करने के लिए, version_major/version_minor की वैल्यू यहां दी गई हैं. इन्हें अगले वर्शन में हटा दिया जाएगा. सभी क्लाइंट को नए वर्शन के फ़ॉर्मैट में बदलना होगा. एचएएल मॉड्यूल इंटरफ़ेस का एपीआई वर्शन. इसका मतलब है कि hw_module_t , hw_module_methods_t , और hw_device_t के स्ट्रक्चर और डेफ़िनिशन का वर्शन तय करना है.
इस फ़ील्ड का मालिकाना हक, HAL इंटरफ़ेस के पास है. मॉड्यूल के उपयोगकर्ताओं/इंप्लिकेशन को वर्शन की जानकारी के लिए, इस वैल्यू पर भरोसा नहीं करना चाहिए.
फ़िलहाल, सिर्फ़ 0 वैल्यू मान्य है.
परिभाषा, hardware.h फ़ाइल की लाइन 129 पर दी गई है.
const char* id |
मॉड्यूल का आइडेंटिफ़ायर
परिभाषा, hardware.h फ़ाइल की पंक्ति 133 पर दी गई है.
struct hw_module_methods_t * methods |
मॉड्यूल के तरीके
परिभाषा, hardware.h फ़ाइल की लाइन 142 पर दी गई है.
uint16_t module_api_version |
लागू किए गए मॉड्यूल का एपीआई वर्शन. मॉड्यूल के इंटरफ़ेस में बदलाव होने पर, मॉड्यूल के मालिक को वर्शन अपडेट करना होता है.
gralloc और ऑडियो जैसे मॉड्यूल के पास इस फ़ील्ड का मालिकाना हक होता है और वे इसे मैनेज करते हैं. मॉड्यूल के उपयोगकर्ता को वर्शन फ़ील्ड का मतलब समझना होगा, ताकि यह तय किया जा सके कि दिए गए मॉड्यूल को लागू करना है या नहीं. उदाहरण के लिए, SurfaceFlinger यह पक्का करता है कि उसे gralloc-module API के अलग-अलग वर्शन मैनेज करने का तरीका पता हो. साथ ही, AudioFlinger को यह पता होना चाहिए कि audio-module API के लिए भी ऐसा कैसे किया जा सकता है.
मॉड्यूल एपीआई वर्शन में एक मेजर और एक माइनर कॉम्पोनेंट शामिल होना चाहिए. उदाहरण के लिए, वर्शन 1.0 को 0x0100 के तौर पर दिखाया जा सकता है. इस फ़ॉर्मैट से पता चलता है कि 0x0100 से 0x01ff तक के सभी वर्शन, एपीआई के साथ काम करते हैं.
आने वाले समय में, libhardware में hw_get_module_version() (या मिलता-जुलता) फ़ंक्शन उपलब्ध कराया जाएगा. यह फ़ंक्शन, काम करने वाले कम से कम/ज़्यादा से ज़्यादा वर्शन को आर्ग्युमेंट के तौर पर लेगा. साथ ही, तय की गई रेंज से बाहर के वर्शन वाले मॉड्यूल को अस्वीकार कर पाएगा.
परिभाषा, hardware.h फ़ाइल की लाइन 111 पर दी गई है .
const char* name |
इस मॉड्यूल का नाम
परिभाषा, hardware.h फ़ाइल की लाइन 136 पर दी गई है.
uint32_t reserved[32-7] |
128 बाइट तक पैडिंग, आने वाले समय में इस्तेमाल के लिए रिज़र्व है
परिभाषा, hardware.h फ़ाइल की लाइन 151 पर दी गई है.
uint32_t टैग |
tag को HARDWARE_MODULE_TAG पर शुरू किया जाना चाहिए
परिभाषा, hardware.h फ़ाइल की लाइन 88 पर दी गई है.
इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था:
- hardware/libhardware/include/hardware/ hardware.h