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

การอ้างอิงโครงสร้าง 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)

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

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

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

struct hw_device_t ทั่วไป

วิธีการทั่วไปของ nvram_device นี่ จะต้อง เป็นสมาชิกคนแรกของ nvram_device เนื่องจากผู้ใช้ของโครงสร้างนี้จะส่ง hw_device_t ไปยังตัวชี้ nvram_device ในบริบทที่ทราบว่า hw_device_t อ้างอิงถึง nvram_device

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

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|

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

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|

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

nvram_result_t (*disable_create)(const struct nvram_device *อุปกรณ์)

ปิดใช้การสร้างพื้นที่เพิ่มเติมใดๆ จนกว่าจะรีเซ็ตอุปกรณ์แบบเต็มครั้งถัดไป (เช่นเดียวกับการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน ไม่ใช่การรีบูต) การเรียก NV_CreateSpace ครั้งต่อไปควรส่งคืน NV_RESULT_OPERATION_DISABLED

อุปกรณ์ - อินสแตนซ์ nvram_device

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

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|

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

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|

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

nvram_result_t (* get_available_size_in_bytes) (const struct nvram_device * อุปกรณ์, uint64_t *available_size)

ส่งออกจำนวนไบต์ที่ไม่ได้จัดสรรที่มีอยู่ใน NVRAM หากการใช้งานไม่ทราบขนาดที่มีอยู่ อาจให้ค่าประมาณหรือขนาดรวม

อุปกรณ์ - อินสแตนซ์ nvram_device available_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้

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

nvram_result_t (* get_max_space_size_in_bytes) (สร้าง struct nvram_device * อุปกรณ์, uint64_t *max_space_size)

เอาต์พุตจำนวนไบต์สูงสุดที่สามารถจัดสรรสำหรับช่องว่างเดียว ซึ่งจะเป็นอย่างน้อย 32 เสมอ หากการใช้งานไม่ได้จำกัดขนาดสูงสุด ก็อาจระบุขนาดรวมด้วย

อุปกรณ์ - อินสแตนซ์ nvram_device max_space_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้

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

nvram_result_t (* get_max_spaces) (const struct nvram_device * อุปกรณ์, uint32_t *num_spaces)

ส่งออกจำนวนช่องว่างทั้งหมดสูงสุดที่อาจได้รับการจัดสรร ซึ่งจะเป็นอย่างน้อย 8 เสมอ เอาต์พุต NV_UNLIMITED_SPACES หากรองรับช่องว่างจำนวนเท่าใดก็ได้ (จำกัดเฉพาะไบต์ NVRAM ที่มีอยู่เท่านั้น)

อุปกรณ์ - อินสแตนซ์ nvram_device num_spaces - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้

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

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

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

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

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

nvram_result_t (* get_space_size) (const struct nvram_device * อุปกรณ์, ดัชนี uint32_t, uint64_t * ขนาด)

เอาต์พุตขนาดเป็นไบต์ของพื้นที่ที่กำหนด

อุปกรณ์ - อินสแตนซ์ nvram_device ดัชนี - ดัชนีช่องว่าง ขนาด - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้

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

nvram_result_t (* get_total_size_in_bytes) (สร้าง struct nvram_device * อุปกรณ์, uint64_t *total_size)

ส่งออกจำนวนไบต์ทั้งหมดที่มีอยู่ใน NVRAM ซึ่งจะเป็นอย่างน้อย 2048 เสมอ หากการใช้งานไม่ทราบขนาดทั้งหมด อาจระบุค่าประมาณหรือ 2048

อุปกรณ์ - อินสแตนซ์ nvram_device Total_size - รับเอาต์พุต ไม่สามารถเป็นโมฆะได้

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

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 การดำเนินการอ่านถูกปิดใช้งานอยู่ในขณะนี้

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

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| หรือขนาดของพื้นที่

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

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|

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


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