การอ้างอิงโครงสร้าง hw_module_t

การอ้างอิงโครงสร้าง hw_module_t

#include < hardware.h >

เขตข้อมูล

uint32_t แท็ก
uint16_t module_api_version
uint16_t hal_api_version
ถ่าน const * รหัส
ถ่าน const * ชื่อ
ถ่าน const * ผู้เขียน
โครงสร้าง hw_module_methods_t * วิธีการ
เป็นโมฆะ * ส.ส
uint32_t สงวนไว้ [32-7]

คำอธิบายโดยละเอียด

โมดูลฮาร์ดแวร์ทุกตัวต้องมีโครงสร้างข้อมูลชื่อ HAL_MODULE_INFO_SYM และฟิลด์ของโครงสร้างข้อมูลนี้จะต้องขึ้นต้นด้วย hw_module_t ตามด้วยข้อมูลเฉพาะของโมดูล

คำจำกัดความที่บรรทัด 86 ของไฟล์ hardware.h

เอกสารภาคสนาม

ผู้เขียน const char*

ผู้เขียน/เจ้าของ/ผู้ดำเนินการโมดูล

คำจำกัดความที่บรรทัด 139 ของไฟล์ hardware.h

เป็นโมฆะ* 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 ถ่าน *

ตัวระบุของโมดูล

คำจำกัดความที่บรรทัด 133 ของไฟล์ hardware.h

struct hw_module_methods_t * วิธีการ

วิธีการโมดูล

คำจำกัดความที่บรรทัด 142 ของไฟล์ hardware.h

uint16_t module_api_version

เวอร์ชัน API ของโมดูลที่นำไปใช้งาน เจ้าของโมดูลมีหน้าที่รับผิดชอบในการอัปเดตเวอร์ชันเมื่ออินเทอร์เฟซของโมดูลมีการเปลี่ยนแปลง

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


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / hardware.h