مرجع بنية 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 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 .


تم إنشاء مستندات هذه البنية من الملف التالي: