مرجع بنية 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 * | methods |
void * | dso |
uint32_t | reserved [32-7] |
وصف مفصّل
يجب أن تحتوي كل وحدة أجهزة على بنية بيانات باسم HAL_MODULE_INFO_SYM، ويجب أن تبدأ حقول بنية البيانات هذه بـ hw_module_t متبوعة بمعلومات خاصة بالوحدة.
التعريف في السطر 86 من الملف hardware.h .
مستندات الحقل
const char* author |
مؤلف/مالك/منفذ الوحدة
التعريف في السطر 139 من الملف hardware.h .
void* dso |
dso للوحدة
التعريف في السطر 145 من الملف hardware.h .
uint16_t hal_api_version |
يتم توفير تعريفات version_major/version_minor هنا لضمان التوافق المؤقت مع رمز المصدر. وستتم إزالتها في الإصدار التالي. على جميع العملاء تحويل بياناتهم إلى تنسيق الإصدار الجديد. إصدار واجهة برمجة التطبيقات لواجهة وحدة HAL يهدف ذلك إلى تحديد إصدارات لبنية وتعريفات hw_module_t ، hw_module_methods_t ، hw_device_t .
تملك واجهة HAL هذا الحقل. يجب ألّا يعتمد مستخدمو/عمليات تنفيذ الوحدة على هذه القيمة للحصول على معلومات عن الإصدار.
في الوقت الحالي، القيمة 0 هي القيمة الصالحة الوحيدة.
التعريف في السطر 129 من الملف hardware.h .
const char* id |
معرّف الوحدة
التعريف في السطر 133 من الملف hardware.h .
struct hw_module_methods_t * methods |
طرق الوحدات
التعريف في السطر 142 من الملف hardware.h .
uint16_t module_api_version |
إصدار واجهة برمجة التطبيقات للوحدة التي تم تنفيذها. يتحمّل مالك الوحدة مسؤولية تعديل الإصدار عند تغيير واجهة الوحدة.
تملك الوحدات المشتقة، مثل gralloc وaudio، هذا الحقل وتُديره. على مستخدم الوحدة تفسير حقل الإصدار لتحديد ما إذا كان سيتم التشغيل التفاعلي مع تنفيذ الوحدة المقدَّمة أم لا. على سبيل المثال، تتحمّل أداة SurfaceFlinger مسؤولية التأكّد من أنّها تعرف كيفية إدارة الإصدارات المختلفة من واجهة برمجة التطبيقات gralloc-module API، ويجب أن تعرف أداة AudioFlinger كيفية إجراء ذلك نفسه لواجهة برمجة التطبيقات audio-module API.
يجب أن يتضمّن إصدار واجهة برمجة التطبيقات للوحدة مكوّنًا رئيسيًا ومكوّنًا ثانويًا. على سبيل المثال، يمكن تمثيل الإصدار 1.0 على النحو التالي: 0x0100. يشير هذا التنسيق إلى أنّ الإصدارات من 0x0100 إلى 0x01ff متوافقة مع واجهة برمجة التطبيقات.
في المستقبل، ستوفّر libhardware دالة hw_get_module_version() (أو ما يعادلها) التي ستستخدِم الحد الأدنى/الحد الأقصى للإصدارات المتوافقة كوسيطات، وستتمكّن من رفض الوحدات التي تتضمّن إصدارات خارج النطاق المقدَّم.
التعريف في السطر 111 من الملف hardware.h .
const char* name |
اسم هذه الوحدة
التعريف في السطر 136 من الملف hardware.h .
uint32_t reserved[32-7] |
إضافة بادئة بحجم 128 بايت محجوزة للاستخدام في المستقبل
التعريف في السطر 151 من الملف hardware.h .
علامة uint32_t |
يجب بدء العلامة على HARDWARE_MODULE_TAG
التعريف في السطر 88 من الملف hardware.h .
تم إنشاء مستندات هذه البنية من الملف التالي:
- hardware/libhardware/include/hardware/ hardware.h