การอ้างอิงโครงสร้าง nvram_device
#include < nvram.h >
เขตข้อมูล | |
โครงสร้าง hw_device_t | ทั่วไป |
nvram_result_t (* | get_total_size_in_bytes )(const struct nvram_device *อุปกรณ์, uint64_t *total_size) |
nvram_result_t (* | get_available_size_in_bytes ) (const struct nvram_device * อุปกรณ์, uint64_t *available_size) |
nvram_result_t (* | get_max_space_size_in_bytes ) (const struct nvram_device * อุปกรณ์, uint64_t *max_space_size) |
nvram_result_t (* | get_max_spaces )(const struct nvram_device *อุปกรณ์, uint32_t *num_spaces) |
nvram_result_t (* | get_space_list ) (const struct nvram_device * อุปกรณ์, uint32_t max_list_size, uint32_t *space_index_list, uint32_t *list_size) |
nvram_result_t (* | get_space_size ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint64_t * ขนาด) |
nvram_result_t (* | get_space_controls ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint32_t max_list_size, nvram_control_t * control_list, uint32_t *list_size) |
nvram_result_t (* | is_space_locked ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, int *write_lock_enabled, int *read_lock_enabled) |
nvram_result_t (* | create_space )(const struct nvram_device *อุปกรณ์, ดัชนี uint32_t, uint64_t size_in_bytes, const nvram_control_t *control_list, uint32_t list_size, const uint8_t *authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | Delete_space )(const struct nvram_device *อุปกรณ์, ดัชนี uint32_t, const uint8_t *authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | Disable_create )(const struct nvram_device *อุปกรณ์) |
nvram_result_t (* | write_space ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * บัฟเฟอร์, uint64_t buffer_size, const uint8_t * authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | read_space )(const struct nvram_device *อุปกรณ์, ดัชนี uint32_t, uint64_t num_bytes_to_read, const uint8_t *authorization_value, uint32_t authorization_value_size, uint8_t *buffer, uint64_t *bytes_read) |
nvram_result_t (* | Enable_write_lock ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | Enable_read_lock ) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * authorization_value, uint32_t authorization_value_size) |
คำอธิบายโดยละเอียด
เอกสารภาคสนาม
struct hw_device_t ทั่วไป |
วิธีการทั่วไปของ nvram_device นี่ จะต้อง เป็นสมาชิกคนแรกของ nvram_device เนื่องจากผู้ใช้ของโครงสร้างนี้จะส่ง hw_device_t ไปยังตัวชี้ nvram_device ในบริบทที่ทราบว่า hw_device_t อ้างอิงถึง nvram_device
nvram_result_t (* create_space) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint64_t size_in_bytes, const nvram_control_t *control_list, uint32_t list_size, const uint8_t *authorization_value, uint32_t authorization_value_size) |
สร้างพื้นที่ใหม่ด้วยดัชนี ขนาด การควบคุม และค่าการอนุญาตที่กำหนด
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีสำหรับช่องว่างใหม่ ดัชนีอาจเป็นค่า 32 บิตก็ได้ แต่ต้องยังไม่ได้ถูกกำหนดให้กับพื้นที่ที่มีอยู่ size_in_bytes - จำนวนไบต์ที่จะจัดสรรให้กับพื้นที่ control_list - อาร์เรย์ของการควบคุมที่จะบังคับใช้สำหรับช่องว่าง list_size - จำนวนรายการใน |control_list| authorization_value - ถ้า |control_list| มี NV_CONTROL_READ_AUTHORIZATION และ / หรือ NV_CONTROL_WRITE_AUTHORIZATION ดังนั้นพารามิเตอร์นี้จะให้ค่าการอนุญาตสำหรับนโยบายเหล่านี้ (หากตั้งค่าการควบคุมทั้งสอง ค่านี้จะมีผลกับทั้งสอง) มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็นโมฆะ authorization_value_size - จำนวนไบต์ใน |authorization_value|
nvram_result_t (* Delete_space) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * authorization_value, uint32_t authorization_value_size) |
ลบช่องว่าง
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง authorization_value - หากช่องว่างมีนโยบาย NV_CONTROL_WRITE_AUTHORIZATION พารามิเตอร์นี้จะจัดเตรียมค่าการอนุญาต มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็นโมฆะ authorization_value_size - จำนวนไบต์ใน |authorization_value|
nvram_result_t (*disable_create)(const struct nvram_device *อุปกรณ์) |
ปิดใช้การสร้างพื้นที่เพิ่มเติมใดๆ จนกว่าจะรีเซ็ตอุปกรณ์แบบเต็มครั้งถัดไป (เช่นเดียวกับการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน ไม่ใช่การรีบูต) การเรียก NV_CreateSpace ครั้งต่อไปควรส่งคืน NV_RESULT_OPERATION_DISABLED
อุปกรณ์ - อินสแตนซ์ nvram_device
nvram_result_t (* Enable_read_lock) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * authorization_value, uint32_t authorization_value_size) |
เปิดใช้งานการล็อกการอ่านสำหรับพื้นที่ที่กำหนดตามนโยบาย หากช่องว่างไม่ได้ตั้งค่า NV_CONTROL_BOOT_READ_LOCK ฟังก์ชันนี้จะไม่มีผลใด ๆ และอาจส่งคืนข้อผิดพลาด
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง authorization_value - หากช่องว่างมีนโยบาย NV_CONTROL_READ_AUTHORIZATION พารามิเตอร์นี้จะจัดเตรียมค่าการอนุญาต (โปรดทราบว่าไม่มีข้อกำหนดสำหรับการเข้าถึงการเขียนเพื่อล็อคการอ่าน การล็อคการอ่านจะมีความผันผวนเสมอ) มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็น NULL authorization_value_size - จำนวนไบต์ใน |authorization_value|
nvram_result_t (* Enable_write_lock) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * authorization_value, uint32_t authorization_value_size) |
เปิดใช้งานการล็อกการเขียนสำหรับพื้นที่ที่กำหนดตามนโยบาย หากช่องว่างไม่ได้ตั้งค่า NV_CONTROL_PERSISTENT_WRITE_LOCK หรือ NV_CONTROL_BOOT_WRITE_LOCK ฟังก์ชันนี้จะไม่มีผลใด ๆ และอาจส่งคืนข้อผิดพลาด
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง authorization_value - หากช่องว่างมีนโยบาย NV_CONTROL_WRITE_AUTHORIZATION พารามิเตอร์นี้จะจัดเตรียมค่าการอนุญาต มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็นโมฆะ authorization_value_size - จำนวนไบต์ใน |authorization_value|
nvram_result_t (* get_available_size_in_bytes) (const struct nvram_device * อุปกรณ์, uint64_t *available_size) |
ส่งออกจำนวนไบต์ที่ไม่ได้จัดสรรที่มีอยู่ใน NVRAM หากการใช้งานไม่ทราบขนาดที่มีอยู่ อาจให้ค่าประมาณหรือขนาดรวม
อุปกรณ์ - อินสแตนซ์ nvram_device available_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้
nvram_result_t (* get_max_space_size_in_bytes) (สร้าง struct nvram_device * อุปกรณ์, uint64_t *max_space_size) |
เอาต์พุตจำนวนไบต์สูงสุดที่สามารถจัดสรรสำหรับช่องว่างเดียว ซึ่งจะเป็นอย่างน้อย 32 เสมอ หากการใช้งานไม่ได้จำกัดขนาดสูงสุด ก็อาจระบุขนาดรวมด้วย
อุปกรณ์ - อินสแตนซ์ nvram_device max_space_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้
nvram_result_t (* get_max_spaces) (const struct nvram_device * อุปกรณ์, uint32_t *num_spaces) |
ส่งออกจำนวนช่องว่างทั้งหมดสูงสุดที่อาจได้รับการจัดสรร ซึ่งจะเป็นอย่างน้อย 8 เสมอ เอาต์พุต NV_UNLIMITED_SPACES หากรองรับช่องว่างจำนวนเท่าใดก็ได้ (จำกัดเฉพาะไบต์ NVRAM ที่มีอยู่เท่านั้น)
อุปกรณ์ - อินสแตนซ์ nvram_device num_spaces - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้
nvram_result_t (* get_space_controls) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint32_t max_list_size, nvram_control_t *control_list, uint32_t *list_size) |
ส่งออกรายการตัวควบคุมที่เกี่ยวข้องกับช่องว่างที่กำหนด
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง max_list_size - จำนวนรายการใน |control_list| อาร์เรย์ control_list - รับรายการการควบคุมจนถึง |max_list_size| ที่กำหนด อาจเป็นโมฆะถ้า |max_list_size| คือ 0 list_size - รับจำนวนรายการที่อยู่ใน |control_list| หรือจำนวนรายการที่มีอยู่ ถ้า |control_list| เป็นโมฆะ
nvram_result_t (* get_space_list) (const struct nvram_device * อุปกรณ์, uint32_t max_list_size, uint32_t *space_index_list, uint32_t *list_size) |
ส่งออกรายการดัชนีช่องว่างที่สร้างขึ้น ถ้า |max_list_size| คือ 0 เท่านั้น |list_size| มีประชากรอยู่
อุปกรณ์ - อินสแตนซ์ nvram_device max_list_size - จำนวนรายการใน |space_index_list| อาร์เรย์ space_index_list - รับรายการช่องว่างที่สร้างขึ้นจนถึง |max_list_size| ที่กำหนด อาจเป็นโมฆะถ้า |max_list_size| คือ 0 list_size - รับจำนวนไอเท็มที่เติมใน |space_index_list| หรือจำนวนไอเท็มที่มีอยู่ หาก |space_index_list| เป็นโมฆะ
nvram_result_t (* get_space_size) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint64_t * ขนาด) |
เอาต์พุตขนาดเป็นไบต์ของพื้นที่ที่กำหนด
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง ขนาด - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้
nvram_result_t (* get_total_size_in_bytes) (สร้าง struct nvram_device * อุปกรณ์, uint64_t *total_size) |
ส่งออกจำนวนไบต์ทั้งหมดที่มีอยู่ใน NVRAM ซึ่งจะเป็นอย่างน้อย 2048 เสมอ หากการใช้งานไม่ทราบขนาดทั้งหมด อาจระบุค่าประมาณหรือ 2048
อุปกรณ์ - อินสแตนซ์ nvram_device Total_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้
nvram_result_t (* is_space_locked) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, int *write_lock_enabled, int *read_lock_enabled) |
เอาท์พุตไม่ว่าจะเปิดใช้งานการล็อคสำหรับพื้นที่ที่กำหนดหรือไม่ เมื่อเปิดใช้งานการล็อค การดำเนินการจะถูกปิดใช้งาน และความพยายามที่จะดำเนินการนั้นจะส่งผลให้ NV_RESULT_OPERATION_DISABLED
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง write_lock_enabled - จะถูกตั้งค่าเป็นไม่เป็นศูนย์ iff การดำเนินการเขียนถูกปิดใช้งานอยู่ในขณะนี้ read_lock_enabled - จะถูกตั้งค่าเป็นไม่เป็นศูนย์ iff การดำเนินการอ่านถูกปิดใช้งานอยู่ในขณะนี้
nvram_result_t (* read_space) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint64_t num_bytes_to_read, const uint8_t * authorization_value, uint32_t authorization_value_size, uint8_t * บัฟเฟอร์, uint64_t *bytes_read) |
อ่านเนื้อหาของช่องว่าง หากไม่เคยเว้นวรรค ไบต์ทั้งหมดที่อ่านจะเป็น 0x00
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง num_bytes_to_read - จำนวนไบต์ที่จะอ่าน |บัฟเฟอร์| จะต้องมีขนาดใหญ่พอที่จะเก็บไบต์จำนวนมากนี้ได้ หากเกินขนาดของพื้นที่ ระบบจะอ่านพื้นที่ทั้งหมด ถ้าน้อยกว่าขนาดของช่องว่าง ไบต์แรกในพื้นที่จะถูกอ่าน authorization_value - หากช่องว่างมีนโยบาย NV_CONTROL_READ_AUTHORIZATION พารามิเตอร์นี้จะจัดเตรียมค่าการอนุญาต มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็นโมฆะ authorization_value_size - จำนวนไบต์ใน |authorization_value| buffer - รับข้อมูลที่อ่านจากพื้นที่ ต้องมีอย่างน้อย |num_bytes_to_read| ขนาดไบต์ bytes_read - จำนวนไบต์ที่อ่าน หากส่งคืน NV_RESULT_SUCCESS ค่านี้จะถูกตั้งค่าให้มีค่าน้อยกว่า |num_bytes_to_read| หรือขนาดของพื้นที่
nvram_result_t (* write_space) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, const uint8_t * บัฟเฟอร์, uint64_t buffer_size, const uint8_t * authorization_value, uint32_t authorization_value_size) |
เขียนเนื้อหาของช่องว่าง หากกำหนดค่าพื้นที่ด้วย NV_CONTROL_WRITE_EXTEND ข้อมูลอินพุตจะถูกนำมาใช้เพื่อขยายข้อมูลปัจจุบัน
อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง buffer - ข้อมูลที่จะเขียน buffer_size - จำนวนไบต์ใน |buffer| หากน้อยกว่าขนาดของช่องว่าง ไบต์ที่เหลือจะถูกตั้งค่าเป็น 0x00 หากเกินขนาดของช่องว่าง จะส่งกลับ NV_RESULT_INVALID_PARAMETER authorization_value - หากช่องว่างมีนโยบาย NV_CONTROL_WRITE_AUTHORIZATION พารามิเตอร์นี้จะจัดเตรียมค่าการอนุญาต มิฉะนั้น ค่านี้จะถูกละเว้นและอาจเป็นโมฆะ authorization_value_size - จำนวนไบต์ใน |authorization_value|
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
- ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / nvram.h