Referencia de estructura nvram_device
#include < nvram.h >
Campos de información | |
estructura hw_device_t | común |
nvram_result_t (* | get_total_size_in_bytes )(const struct nvram_device *dispositivo, uint64_t *total_size) |
nvram_result_t (* | get_available_size_in_bytes )(const struct nvram_device *dispositivo, uint64_t *available_size) |
nvram_result_t (* | get_max_space_size_in_bytes )(const struct nvram_device *dispositivo, uint64_t *max_space_size) |
nvram_result_t (* | get_max_spaces )(const struct nvram_device *dispositivo, uint32_t *num_spaces) |
nvram_result_t (* | get_space_list )(const struct nvram_device *dispositivo, uint32_t max_list_size, uint32_t *space_index_list, uint32_t *list_size) |
nvram_result_t (* | get_space_size )(const struct nvram_device *dispositivo, índice uint32_t, uint64_t *tamaño) |
nvram_result_t (* | get_space_controls )(const struct nvram_device *dispositivo, 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 *dispositivo, índice uint32_t, int *write_lock_enabled, int *read_lock_enabled) |
nvram_result_t (* | create_space (const struct nvram_device *dispositivo, uint32_t index, uint64_t size_in_bytes, const nvram_control_t *control_list, uint32_t list_size, const uint8_t *autorización_valor, uint32_t autorización_value_size) |
nvram_result_t (* | eliminar_espacio ) (const estructura nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
nvram_result_t (* | desactivar_create )(const estructura nvram_device *dispositivo) |
nvram_result_t (* | write_space )(const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *búfer, uint64_t tamaño_búfer, const uint8_t *valor_autorización, uint32_t tamaño_valor_autorización) |
nvram_result_t (* | read_space )(const struct nvram_device *dispositivo, uint32_t índice, uint64_t num_bytes_to_read, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño, uint8_t *búfer, uint64_t *bytes_read) |
nvram_result_t (* | enable_write_lock (const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
nvram_result_t (* | enable_read_lock (const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
Descripción detallada
Documentación de campo
estructura hw_device_t común |
Métodos comunes del nvram_device . Este debe ser el primer miembro de nvram_device ya que los usuarios de esta estructura enviarán un puntero hw_device_t a nvram_device en contextos donde se sabe que hw_device_t hace referencia a nvram_device .
nvram_result_t (* create_space)(const struct nvram_device *dispositivo, uint32_t index, uint64_t size_in_bytes, const nvram_control_t *control_list, uint32_t list_size, const uint8_t *autorización_valor, uint32_t autorización_value_size) |
Crea un nuevo espacio con el índice, tamaño, controles y valor de autorización dados.
dispositivo: la instancia nvram_device . index: un índice para el nuevo espacio. El índice puede ser cualquier valor de 32 bits, pero no debe estar asignado a un espacio existente. size_in_bytes: el número de bytes que se asignarán para el espacio. control_list: una serie de controles que se aplicarán en el espacio. list_size: el número de elementos en |control_list|. valor_autorización - Si |lista_control| contiene NV_CONTROL_READ_AUTHORIZATION y/o NV_CONTROL_WRITE_AUTHORIZATION, entonces este parámetro proporciona el valor de autorización para estas políticas (si ambos controles están configurados, este valor se aplica a ambos). De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|.
nvram_result_t (* eliminar_espacio)(const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
Elimina un espacio.
dispositivo: la instancia nvram_device . index: el índice espacial. Authorization_value: si el espacio tiene la política NV_CONTROL_WRITE_AUTHORIZATION, este parámetro proporciona el valor de autorización. De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|.
nvram_result_t (* enable_create)(const struct nvram_device *dispositivo) |
Deshabilita cualquier creación adicional de espacios hasta el próximo reinicio completo del dispositivo (como en el reinicio de fábrica, no en el reinicio). Las llamadas posteriores a NV_CreateSpace deberían devolver NV_RESULT_OPERATION_DISABLED.
dispositivo: la instancia nvram_device .
nvram_result_t (* enable_read_lock)(const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
Habilita un bloqueo de lectura para el espacio dado según su política. Si el espacio no tiene NV_CONTROL_BOOT_READ_LOCK configurado, entonces esta función no tiene ningún efecto y puede devolver un error.
dispositivo: la instancia nvram_device . index: el índice espacial. Authorization_value: si el espacio tiene la política NV_CONTROL_READ_AUTHORIZATION, este parámetro proporciona el valor de autorización. (Tenga en cuenta que no es necesario tener acceso de escritura para bloquear la lectura. Un bloqueo de lectura siempre es volátil). De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|.
nvram_result_t (* enable_write_lock)(const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño) |
Habilita un bloqueo de escritura para el espacio dado según su política. Si el espacio no tiene NV_CONTROL_PERSISTENT_WRITE_LOCK o NV_CONTROL_BOOT_WRITE_LOCK configurados, entonces esta función no tiene ningún efecto y puede devolver un error.
dispositivo: la instancia nvram_device . index: el índice espacial. Authorization_value: si el espacio tiene la política NV_CONTROL_WRITE_AUTHORIZATION, este parámetro proporciona el valor de autorización. De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|.
nvram_result_t (* get_available_size_in_bytes)(const struct nvram_device *dispositivo, uint64_t *available_size) |
Genera el número de bytes no asignados disponibles en NVRAM. Si una implementación no conoce el tamaño disponible, puede proporcionar una estimación o el tamaño total.
dispositivo: la instancia nvram_device . tamaño_disponible: recibe la salida. No puede ser nulo.
nvram_result_t (* get_max_space_size_in_bytes)(const struct nvram_device *dispositivo, uint64_t *max_space_size) |
Genera el número máximo de bytes que se pueden asignar para un solo espacio. Siempre será al menos 32. Si una implementación no limita el tamaño máximo, puede proporcionar el tamaño total.
dispositivo: la instancia nvram_device . max_space_size: recibe la salida. No puede ser nulo.
nvram_result_t (* get_max_spaces)(const struct nvram_device *dispositivo, uint32_t *num_spaces) |
Genera el número total máximo de espacios que se pueden asignar. Siempre será al menos 8. Genera NV_UNLIMITED_SPACES si se admite cualquier número de espacios (limitado solo a los bytes de NVRAM disponibles).
dispositivo: la instancia nvram_device . num_spaces: recibe la salida. No puede ser nulo.
nvram_result_t (* get_space_controls)(const struct nvram_device *dispositivo, índice uint32_t, uint32_t max_list_size, nvram_control_t *control_list, uint32_t *list_size) |
Genera la lista de controles asociados con un espacio determinado.
dispositivo: la instancia nvram_device . index: el índice espacial. max_list_size: el número de elementos en |control_list| formación. control_list: recibe la lista de controles hasta el |max_list_size| dado. Puede ser NULL si |max_list_size| es 0. list_size: recibe el número de elementos completados en |control_list|, o el número de elementos disponibles si |control_list| es nulo.
nvram_result_t (* get_space_list)(const struct nvram_device *dispositivo, uint32_t max_list_size, uint32_t *space_index_list, uint32_t *list_size) |
Genera una lista de índices de espacio creados. Si |max_list_size| es 0, sólo |list_size| está poblado.
dispositivo: la instancia nvram_device . max_list_size: el número de elementos en |space_index_list| formación. space_index_list: recibe la lista de espacios creados hasta el |max_list_size| dado. Puede ser NULL si |max_list_size| es 0. list_size: recibe el número de elementos completados en |space_index_list|, o el número de elementos disponibles si |space_index_list| es nulo.
nvram_result_t (* get_space_size)(const struct nvram_device *dispositivo, índice uint32_t, uint64_t *tamaño) |
Genera el tamaño, en bytes, de un espacio determinado.
dispositivo: la instancia nvram_device . index: el índice espacial. tamaño: recibe la salida. No puede ser nulo.
nvram_result_t (* get_total_size_in_bytes)(const struct nvram_device *dispositivo, uint64_t *total_size) |
Genera el número total de bytes disponibles en NVRAM. Siempre será al menos 2048. Si una implementación no conoce el tamaño total, puede proporcionar una estimación de 2048.
dispositivo: la instancia nvram_device . total_size: recibe la salida. No puede ser nulo.
nvram_result_t (* is_space_locked)(const struct nvram_device *dispositivo, índice uint32_t, int *write_lock_enabled, int *read_lock_enabled) |
Muestra si los bloqueos están habilitados para el espacio dado. Cuando se habilita un bloqueo, la operación se deshabilita y cualquier intento de realizar esa operación resultará en NV_RESULT_OPERATION_DISABLED.
dispositivo: la instancia nvram_device . index: el índice espacial. write_lock_enabled: se establecerá en un valor distinto de cero si las operaciones de escritura están actualmente deshabilitadas. read_lock_enabled: se establecerá en un valor distinto de cero si las operaciones de lectura están actualmente deshabilitadas.
nvram_result_t (* read_space)(const struct nvram_device *dispositivo, índice uint32_t, uint64_t num_bytes_to_read, const uint8_t *valor_autorización, uint32_t valor_autorización_tamaño, uint8_t *buffer, uint64_t *bytes_read) |
Lee el contenido de un espacio. Si el espacio nunca se ha escrito, todos los bytes leídos serán 0x00.
dispositivo: la instancia nvram_device . index: el índice espacial. num_bytes_to_read: el número de bytes a leer; |búfer| debe ser lo suficientemente grande para contener tantos bytes. Si esto es mayor que el tamaño del espacio, se lee todo el espacio. Si es menor que el tamaño del espacio, se leen los primeros bytes del espacio. Authorization_value: si el espacio tiene la política NV_CONTROL_READ_AUTHORIZATION, este parámetro proporciona el valor de autorización. De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|. buffer: recibe los datos leídos del espacio. Debe ser al menos |num_bytes_to_read| bytes de tamaño. bytes_read: el número de bytes leídos. Si se devuelve NV_RESULT_SUCCESS, esto se establecerá en el menor de |num_bytes_to_read| o el tamaño del espacio.
nvram_result_t (* espacio_escritura)(const struct nvram_device *dispositivo, índice uint32_t, const uint8_t *búfer, uint64_t tamaño_búfer, const uint8_t *valor_autorización, uint32_t tamaño_valor_autorización) |
Escribe el contenido de un espacio. Si el espacio está configurado con NV_CONTROL_WRITE_EXTEND, los datos de entrada se utilizan para ampliar los datos actuales.
dispositivo: la instancia nvram_device . index: el índice espacial. buffer: los datos a escribir. buffer_size: el número de bytes en |buffer|. Si es menor que el tamaño del espacio, los bytes restantes se establecerán en 0x00. Si esto es mayor que el tamaño del espacio, devuelve NV_RESULT_INVALID_PARAMETER. Authorization_value: si el espacio tiene la política NV_CONTROL_WRITE_AUTHORIZATION, este parámetro proporciona el valor de autorización. De lo contrario, este valor se ignora y puede ser NULL. Authorization_value_size: el número de bytes en |authorization_value|.
La documentación para esta estructura se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ nvram.h