ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง 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 มีไว้ที่นี่เพื่อใช้งานร่วมกับซอร์สโค้ดชั่วคราว เราจะนำฟีเจอร์เหล่านี้ออกในเวอร์ชันถัดไป ไคลเอ็นต์ทั้งหมดต้องแปลงเป็นรูปแบบเวอร์ชันใหม่ เวอร์ชัน 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 .


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้