مرجع بنية nvram_device
#include <
nvram.h
>
حقول البيانات |
|
struct hw_device_t | شائعة |
nvram_result_t (* | get_total_size_in_bytes )(const struct nvram_device *device, uint64_t *total_size) |
nvram_result_t (* | get_available_size_in_bytes )(const struct nvram_device *device, uint64_t *available_size) |
nvram_result_t (* | get_max_space_size_in_bytes )(const struct nvram_device *device, uint64_t *max_space_size) |
nvram_result_t (* | get_max_spaces )(const struct nvram_device *device, uint32_t *num_spaces) |
nvram_result_t (* | get_space_list )(const struct nvram_device *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 *device, uint32_t index, uint64_t *size) |
nvram_result_t (* | get_space_controls )(const struct nvram_device *device, uint32_t index, uint32_t max_list_size, nvram_control_t *control_list, uint32_t *list_size) |
nvram_result_t (* | is_space_locked )(const struct nvram_device *device, uint32_t index, int *write_lock_enabled, int *read_lock_enabled) |
nvram_result_t (* | create_space )(const struct nvram_device *device, uint32_t index, 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 *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | disable_create )(const struct nvram_device *device) |
nvram_result_t (* | write_space )(const struct nvram_device *device, uint32_t index, const uint8_t *buffer, uint64_t buffer_size, const uint8_t *authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | read_space )(const struct nvram_device *device, uint32_t index, 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 *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
nvram_result_t (* | enable_read_lock )(const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
وصف مفصّل
مستندات الحقل
struct hw_device_t common |
الطرق الشائعة لسمة nvram_device . يجب أن يكون هذا العنصر هو العنصر الأول في nvram_device لأنّ مستخدمي هذه البنية سيحوّلون hw_device_t إلى nvram_device مُشير في السياقات التي يُعرف فيها أنّ hw_device_t يشير إلى nvram_device .
nvram_result_t (* create_space)(const struct nvram_device *device, uint32_t index, 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) |
تُنشئ هذه الدالة مساحة جديدة باستخدام الفهرس والحجم وعناصر التحكّم وقيمة التفويض المحدّدة.
device: مثيل nvram_device يمكن أن يكون الفهرس أي قيمة 32 بت، ولكن يجب ألا يكون قد تم تخصيصه لمساحة حالية. size_in_bytes: عدد البايتات المطلوب تخصيصها للمساحة. control_list: صفيف عناصر التحكّم المطلوب فرضها على المساحة. list_size: عدد العناصر في |control_list|. authorization_value: إذا كانت |control_list| تحتوي على NV_CONTROL_READ_AUTHORIZATION و / أو NV_CONTROL_WRITE_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض لهذه السياسات (إذا تم ضبط كلتا عنصرَي التحكّم، تنطبق هذه القيمة على كليهما). بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. authorization_value_size: عدد البايتات في |authorization_value|
nvram_result_t (* delete_space)(const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
حذف مساحة
device: مثيل nvram_device . index: فهرس المساحة. authorization_value: إذا كانت المساحة تتضمّن سياسة NV_CONTROL_WRITE_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض. بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. authorization_value_size: عدد البايتات في |authorization_value|
nvram_result_t (* disable_create)(const struct nvram_device *device) |
يوقف هذا الخيار إنشاء أي مساحات أخرى إلى أن تتم إعادة ضبط الجهاز بالكامل في المرة التالية (أي إعادة ضبطه على الإعدادات الأصلية وليس إعادة تشغيله). من المفترض أن تؤدي الطلبات اللاحقة إلى NV_CreateSpace إلى عرض NV_RESULT_OPERATION_DISABLED.
device: مثيل nvram_device
nvram_result_t (* enable_read_lock)(const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
تفعِّل قفل القراءة للمساحة المحدّدة وفقًا لسياستها. إذا لم يتم ضبط NV_CONTROL_BOOT_READ_LOCK في المساحة، لن يكون لهذه الدالة أي تأثير وقد تعرِض خطأ.
device: مثيل nvram_device . index: فهرس المساحة. authorization_value: إذا كانت المساحة تتضمّن سياسة NV_CONTROL_READ_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض. (يُرجى العِلم أنّه ليس من الضروري الحصول على إذن بالكتابة من أجل قفل الملف للقراءة. يكون قفل القراءة متقلبًا دائمًا.) بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. authorization_value_size: عدد البايتات في |authorization_value|
nvram_result_t (* enable_write_lock)(const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_t authorization_value_size) |
تفعِّل قفل كتابة للمساحة المحدّدة وفقًا لسياستها. إذا لم يتم ضبط NV_CONTROL_PERSISTENT_WRITE_LOCK أو NV_CONTROL_BOOT_WRITE_LOCK في المساحة، لن يكون لهذه الدالة أي تأثير وقد تعرِض خطأ.
device: مثيل nvram_device . index: فهرس المساحة. authorization_value: إذا كانت المساحة تتضمّن سياسة NV_CONTROL_WRITE_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض. بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. authorization_value_size: عدد البايتات في |authorization_value|
nvram_result_t (* get_available_size_in_bytes)(const struct nvram_device *device, uint64_t *available_size) |
إخراج عدد وحدات البايت غير المخصّصة المتاحة في ذاكرة NVRAM إذا لم يكن لدى عملية التنفيذ معلومات عن الحجم المتاح، قد تقدّم تقديرًا أو الحجم الإجمالي.
device: مثيل nvram_device . available_size: يتلقّى الإخراج. لا يمكن أن تكون فارغة.
nvram_result_t (* get_max_space_size_in_bytes)(const struct nvram_device *device, uint64_t *max_space_size) |
إخراج الحد الأقصى لعدد البايتات التي يمكن تخصيصها لمساحة واحدة سيكون هذا العدد دائمًا 32 عنصرًا على الأقل. إذا لم يحدّد أحد عمليات التنفيذ الحد الأقصى للحجم، قد يقدّم إجمالي الحجم.
device: مثيل nvram_device . max_space_size: يتلقّى الإخراج. لا يمكن أن تكون فارغة.
nvram_result_t (* get_max_spaces)(const struct nvram_device *device, uint32_t *num_spaces) |
إخراج الحد الأقصى لإجمالي عدد المساحات التي يمكن تخصيصها سيكون هذا العدد دائمًا 8 على الأقل. يتم عرض NV_UNLIMITED_SPACES إذا كان أي عدد من المساحات متوافقًا (يقتصر على وحدات بايت NVRAM المتاحة فقط).
device: مثيل nvram_device . num_spaces: لتلقّي الإخراج لا يمكن أن تكون فارغة.
nvram_result_t (* get_space_controls)(const struct nvram_device *device, uint32_t index, uint32_t max_list_size, nvram_control_t *control_list, uint32_t *list_size) |
إخراج قائمة عناصر التحكّم المرتبطة بمساحة معيّنة
device: مثيل nvram_device . index: فهرس المساحة. 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 *device, uint32_t max_list_size, uint32_t *space_index_list, uint32_t *list_size) |
إخراج قائمة بمؤشرات المساحات التي تم إنشاؤها إذا كان |max_list_size| يساوي 0، تتم تعبئة |list_size| فقط.
device: مثيل 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 *device, uint32_t index, uint64_t *size) |
إخراج حجم مساحة معيّنة بالبايت
device: مثيل nvram_device . index: فهرس المساحة. size: لتلقّي الإخراج. لا يمكن أن تكون فارغة.
nvram_result_t (* get_total_size_in_bytes)(const struct nvram_device *device, uint64_t *total_size) |
إخراج إجمالي عدد وحدات البايت المتاحة في ذاكرة NVRAM سيكون هذا العدد دائمًا 2048 حرفًا على الأقل. إذا لم يكن لدى عملية التنفيذ معلومات عن الحجم الإجمالي، قد تقدّم تقديرًا أو 2048.
device: مثيل nvram_device . total_size: لتلقّي الإخراج لا يمكن أن تكون فارغة.
nvram_result_t (* is_space_locked)(const struct nvram_device *device, uint32_t index, int *write_lock_enabled, int *read_lock_enabled) |
تعرِض هذه السمة ما إذا كانت عمليات القفل مفعَّلة للمساحة المحدّدة. عند تفعيل قفل، يتم إيقاف العملية، وستؤدي أي محاولة لتنفيذ هذه العملية إلى ظهور الخطأ NV_RESULT_OPERATION_DISABLED.
device: مثيل nvram_device
nvram_result_t (* read_space)(const struct nvram_device *device, uint32_t index, uint64_t num_bytes_to_read, const uint8_t *authorization_value, uint32_t authorization_value_size, uint8_t *buffer, uint64_t *bytes_read) |
قراءة محتوى مساحة إذا لم يتم الكتابة في المساحة مطلقًا، ستكون جميع البايتات المقروءة هي 0x00.
device: مثيل nvram_device . index: فهرس المساحة. num_bytes_to_read: عدد وحدات البايت التي يجب قراءتها. يجب أن يكون |buffer| كبيرًا بما يكفي لاستيعاب هذا العدد من وحدات البايت. وإذا كان هذا العدد أكبر من حجم المساحة، تتم قراءة المساحة بأكملها. إذا كان هذا العدد أقل من حجم المساحة، تتم قراءة أول وحدات البايت في المساحة. authorization_value: إذا كانت المساحة تتضمّن سياسة NV_CONTROL_READ_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض. بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. 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 *device, uint32_t index, const uint8_t *buffer, uint64_t buffer_size, const uint8_t *authorization_value, uint32_t authorization_value_size) |
لكتابة محتوى مساحة إذا تم ضبط المساحة باستخدام NV_CONTROL_WRITE_EXTEND، يتم استخدام بيانات الإدخال لتوسيع البيانات الحالية.
device: مثيل nvram_device . index: فهرس المساحة. buffer: البيانات المطلوب كتابتها. buffer_size: عدد البايتات في |buffer|. إذا كان هذا العدد أقل من حجم المساحة، سيتم ضبط البايتات المتبقية على 0x00. إذا كان هذا الرقم أكبر من حجم المساحة، يتم عرض NV_RESULT_INVALID_PARAMETER. authorization_value: إذا كانت المساحة تتضمّن سياسة NV_CONTROL_WRITE_AUTHORIZATION، تقدّم هذه المَعلمة قيمة التفويض. بخلاف ذلك، يتم تجاهل هذه القيمة وقد تكون NULL. authorization_value_size: عدد البايتات في |authorization_value|
تم إنشاء مستندات هذه البنية من الملف التالي:
- hardware/libhardware/include/hardware/ nvram.h