Справочник по структуре nvram_device
#include < nvram.h >
Поля данных | |
структура 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, 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_tauthorization_value_size) |
nvram_result_t (* | delete_space )(const struct nvram_device *device, индекс uint32_t, const uint8_t *authorization_value, uint32_tauthorization_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_tauthorization_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_tauthorization_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_tauthorization_value_size) |
nvram_result_t (* | Enable_read_lock )(const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_tauthorization_value_size) |
Подробное описание
Полевая документация
структура 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 *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_tauthorization_value_size) |
Создает новое пространство с заданным индексом, размером, элементами управления и значением авторизации.
устройство — экземпляр nvram_device . index — индекс нового пространства. Индексом может быть любое 32-битное значение, но оно не должно быть назначено уже существующему пространству. size_in_bytes — количество байтов, выделяемых для пространства. control_list — массив элементов управления, которые необходимо применить к пространству. list_size — количество элементов в |control_list|. значение_авторизации — если |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_tauthorization_value_size) |
Удаляет пробел.
устройство — экземпляр nvram_device . index — индекс пространства. авторизация_значение — если пространство имеет политику 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.
устройство — экземпляр nvram_device .
nvram_result_t (* Enable_read_lock) (const struct nvram_device *device, uint32_t index, const uint8_t *authorization_value, uint32_tauthorization_value_size) |
Включает блокировку чтения для данного пространства в соответствии с его политикой. Если в пространстве не установлен NV_CONTROL_BOOT_READ_LOCK, эта функция не имеет никакого эффекта и может вернуть ошибку.
устройство — экземпляр nvram_device . index — индекс пространства. авторизация_значение — если пространство имеет политику 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_tauthorization_value_size) |
Включает блокировку записи для данного пространства в соответствии с его политикой. Если в пространстве не установлены NV_CONTROL_PERSISTENT_WRITE_LOCK или NV_CONTROL_BOOT_WRITE_LOCK, эта функция не имеет никакого эффекта и может вернуть ошибку.
устройство — экземпляр nvram_device . index — индекс пространства. авторизация_значение — если пространство имеет политику 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. Если реализация не знает доступного размера, она может предоставить оценку или общий размер.
устройство — экземпляр nvram_device . доступный_размер — получает выходные данные. Не может быть НУЛЕМ.
nvram_result_t (* get_max_space_size_in_bytes)(const struct nvram_device *device, uint64_t *max_space_size) |
Выводит максимальное количество байтов, которое можно выделить для одного пробела. Это всегда будет не менее 32. Если реализация не ограничивает максимальный размер, она может предоставить общий размер.
устройство — экземпляр 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).
устройство — экземпляр 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) |
Выводит список элементов управления, связанных с данным пространством.
устройство — экземпляр nvram_device . index — индекс пространства. max_list_size — количество элементов в |control_list| множество. control_list — Получает список элементов управления до заданного |max_list_size|. Может быть NULL, если |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| населен.
устройство — экземпляр nvram_device . max_list_size — количество элементов в |space_index_list| множество. space_index_list — Получает список созданных пространств до заданного |max_list_size|. Может быть NULL, если |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, uint64_t *size) |
Выводит размер заданного пространства в байтах.
устройство — экземпляр nvram_device . index — индекс пространства. размер — Получает выходные данные. Не может быть НУЛЕМ.
nvram_result_t (* get_total_size_in_bytes)(const struct nvram_device *device, uint64_t *total_size) |
Выводит общее количество байтов, доступных в NVRAM. Это всегда будет не менее 2048. Если реализация не знает общий размер, она может предоставить оценку или 2048.
устройство — экземпляр 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.
устройство — экземпляр nvram_device . index — индекс пространства. write_lock_enabled — будет установлено ненулевое значение, если операции записи в данный момент отключены. read_lock_enabled — будет установлено ненулевое значение, если операции чтения в данный момент отключены.
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_tauthorization_value_size, uint8_t *buffer, uint64_t *bytes_read) |
Считывает содержимое пространства. Если пространство никогда не записывалось, все прочитанные байты будут равны 0x00.
устройство — экземпляр nvram_device . index — индекс пространства. num_bytes_to_read — количество байтов для чтения; |буфер| должен быть достаточно большим, чтобы вместить такое количество байтов. Если это больше размера пространства, считывается все пространство. Если это меньше размера пространства, считываются первые байты пространства. авторизация_значение — если пространство имеет политику NV_CONTROL_READ_AUTHORIZATION, то этот параметр предоставляет значение авторизации. В противном случае это значение игнорируется и может иметь значение NULL. authorization_value_size — количество байтов в |authorization_value|. буфер — получает данные, считанные из пространства. Должно быть не менее |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_tauthorization_value_size) |
Записывает содержимое пробела. Если пространство настроено с помощью NV_CONTROL_WRITE_EXTEND, тогда входные данные используются для расширения текущих данных.
устройство — экземпляр nvram_device . index — индекс пространства. буфер — данные для записи. buffer_size — количество байтов в |buffer|. Если это меньше размера пространства, оставшиеся байты будут установлены в 0x00. Если это больше размера пространства, возвращается NV_RESULT_INVALID_PARAMETER. авторизация_значение — если пространство имеет политику NV_CONTROL_WRITE_AUTHORIZATION, то этот параметр предоставляет значение авторизации. В противном случае это значение игнорируется и может иметь значение NULL. authorization_value_size — количество байтов в |authorization_value|.
Документация для этой структуры была создана из следующего файла:
- Аппаратное обеспечение/libhardware/include/hardware/ nvram.h