با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

hw_module_t مرجع ساختار

hw_module_t مرجع ساختار

#include < hardware.h >

فیلدهای داده

uint32_t برچسب زدن
uint16_t module_api_version
uint16_t hal_api_version
const char * شناسه
const char * نام
const char * نویسنده
ساختار hw_module_methods_t * مواد و روش ها
خالی * dso
uint32_t رزرو شده [32-7]

توصیف همراه با جزئیات

هر ماژول سخت افزاری باید ساختار داده ای به نام HAL_MODULE_INFO_SYM داشته باشد و فیلدهای این ساختار داده باید با hw_module_t و سپس اطلاعات خاص ماژول شروع شود.

تعریف در خط 86 فایل hardware.h .

مستندات میدانی

const char* نویسنده

نویسنده / مالک / مجری ماژول

تعریف در خط 139 فایل hardware.h .

void* dso

dso ماژول

تعریف در خط 145 فایل hardware.h .

uint16_t hal_api_version

تعاریف version_major/version_minor در اینجا برای سازگاری کد منبع موقت ارائه شده است. در نسخه بعدی حذف خواهند شد. همه مشتریان باید به فرمت نسخه جدید تبدیل شوند. نسخه API رابط ماژول 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 * متدها

روش های ماژول ها

تعریف در خط 142 فایل hardware.h .

uint16_t module_api_version

نسخه API ماژول پیاده سازی شده. مالک ماژول مسئول به روز رسانی نسخه در صورت تغییر رابط کاربری ماژول است.

ماژول های مشتق شده مانند gralloc و audio این زمینه را دارند و مدیریت می کنند. کاربر ماژول باید فیلد نسخه را تفسیر کند تا تصمیم بگیرد که آیا با اجرای ماژول ارائه شده همکاری کند یا خیر. به عنوان مثال، SurfaceFlinger مسئول اطمینان از اینکه می داند چگونه نسخه های مختلف API ماژول gralloc را مدیریت کند، و AudioFlinger باید بداند که چگونه این کار را برای API ماژول صوتی انجام دهد.

نسخه API ماژول باید شامل یک جزء اصلی و یک جزء فرعی باشد. به عنوان مثال، نسخه 1.0 را می توان به صورت 0x0100 نشان داد. این فرمت به این معنی است که نسخه‌های 0x0100-0x01ff همگی با API سازگار هستند.

در آینده، libhardware یک تابع hw_get_module_version() (یا معادل) را نشان خواهد داد که حداقل/حداکثر نسخه های پشتیبانی شده را به عنوان آرگومان در نظر می گیرد و می تواند ماژول ها را با نسخه های خارج از محدوده ارائه شده رد کند.

تعریف در خط 111 فایل hardware.h .

const char* نام

نام این ماژول

تعریف در خط 136 فایل hardware.h .

uint32_t رزرو شده[32-7]

اضافه کردن به 128 بایت، برای استفاده در آینده رزرو شده است

تعریف در خط 151 فایل hardware.h .

برچسب uint32_t

برچسب باید به HARDWARE_MODULE_TAG مقداردهی اولیه شود

تعریف در خط 88 فایل hardware.h .


مستندات این ساختار از فایل زیر ایجاد شده است:
  • hardware/libhardware/include/hardware/ hardware.h