hw_module_t स्ट्रक्चर का रेफ़रंस

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 पर दी गई है.


इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था: