ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง 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 มีไว้ที่นี่เพื่อใช้งานร่วมกับซอร์สโค้ดชั่วคราว เราจะนำฟีเจอร์เหล่านี้ออกในเวอร์ชันถัดไป ไคลเอ็นต์ทั้งหมดต้องแปลงเป็นรูปแบบเวอร์ชันใหม่ เวอร์ชัน 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 * methods |
วิธีการของโมดูล
คําจํากัดความที่บรรทัด 142 ของไฟล์ hardware.h .
uint16_t module_api_version |
เวอร์ชัน API ของข้อบังคับที่ติดตั้งใช้งาน เจ้าของโมดูลมีหน้าที่รับผิดชอบในการอัปเดตเวอร์ชันเมื่ออินเทอร์เฟซของโมดูลมีการเปลี่ยนแปลง
โมดูลที่ดึงข้อมูล เช่น gralloc และ audio จะเป็นเจ้าของและจัดการช่องนี้ ผู้ใช้โมดูลต้องตีความฟิลด์เวอร์ชันเพื่อตัดสินใจว่าจะทํางานร่วมกันกับการติดตั้งใช้งานโมดูลที่ระบุหรือไม่ ตัวอย่างเช่น SurfaceFlinger มีหน้าที่ตรวจสอบว่าตนทราบวิธีจัดการ gralloc-module API เวอร์ชันต่างๆ และ AudioFlinger จะต้องทราบวิธีทําเช่นเดียวกันสําหรับ audio-module API
เวอร์ชัน API ของโมดูลควรมีองค์ประกอบหลักและรอง เช่น เวอร์ชัน 1.0 อาจแสดงเป็น 0x0100 รูปแบบนี้หมายความว่าเวอร์ชัน 0x0100-0x01ff ทั้งหมดเข้ากันได้กับ API
ในอนาคต 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