Referência da estrutura nvram_device
#include <
nvram.h
>
Campos de dados |
|
struct hw_device_t | comum |
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) |
Descrição detalhada
Documentação do campo
struct hw_device_t common |
Métodos comuns do nvram_device . Ele precisa ser o primeiro membro de nvram_device , já que os usuários dessa estrutura vão transmitir um hw_device_t para nvram_device em contextos em que se sabe que o hw_device_t faz referência a um 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) |
Cria um novo espaço com o índice, o tamanho, os controles e o valor de autorização fornecidos.
device: a instância nvram_device do dispositivo. index: um índice para o novo espaço. O índice pode ser qualquer valor de 32 bits, mas não pode ser atribuído a um espaço existente. size_in_bytes: o número de bytes a alocar para o espaço. control_list: uma matriz de controles a serem aplicados ao espaço. list_size: o número de itens em |control_list|. authorization_value: se |control_list| contiver NV_CONTROL_READ_AUTHORIZATION e / ou NV_CONTROL_WRITE_AUTHORIZATION, esse parâmetro fornecerá o valor de autorização para essas políticas. Se os dois controles forem definidos, esse valor será aplicado a ambos. Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |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) |
Exclui um espaço.
device: a instância nvram_device . index: o índice do espaço. authorization_value: se o espaço tiver a política NV_CONTROL_WRITE_AUTHORIZATION, esse parâmetro vai fornecer o valor de autorização. Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |authorization_value|.
nvram_result_t (* disable_create)(const struct nvram_device *device) |
Desativa a criação de mais espaços até a próxima redefinição completa do dispositivo (como a redefinição para a configuração original, não a reinicialização). As chamadas subsequentes para NV_CreateSpace devem retornar NV_RESULT_OPERATION_DISABLED.
device: a instância 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) |
Ativa um bloqueio de leitura para o espaço especificado de acordo com a política dele. Se o espaço não tiver NV_CONTROL_BOOT_READ_LOCK definido, essa função não terá efeito e poderá retornar um erro.
device: a instância nvram_device . index: o índice do espaço. authorization_value: se o espaço tiver a política NV_CONTROL_READ_AUTHORIZATION, esse parâmetro vai fornecer o valor da autorização. Não é necessário ter acesso de gravação para bloquear a leitura. Um bloqueio de leitura é sempre volátil.) Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |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) |
Ativa um bloqueio de gravação para o espaço especificado de acordo com a política dele. Se o espaço não tiver NV_CONTROL_PERSISTENT_WRITE_LOCK ou NV_CONTROL_BOOT_WRITE_LOCK definidos, essa função não terá efeito e poderá retornar um erro.
device: a instância nvram_device . index: o índice do espaço. authorization_value: se o espaço tiver a política NV_CONTROL_WRITE_AUTHORIZATION, esse parâmetro vai fornecer o valor de autorização. Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |authorization_value|.
nvram_result_t (* get_available_size_in_bytes)(const struct nvram_device *device, uint64_t *available_size) |
Mostra o número de bytes não alocados disponíveis na NVRAM. Se uma implementação não souber o tamanho disponível, ela poderá fornecer uma estimativa ou o tamanho total.
device: a instância nvram_device . available_size: recebe a saída. Não pode ser NULL.
nvram_result_t (* get_max_space_size_in_bytes)(const struct nvram_device *device, uint64_t *max_space_size) |
Mostra o número máximo de bytes que podem ser alocados para um único espaço. Esse valor sempre será de pelo menos 32. Se uma implementação não limitar o tamanho máximo, ela poderá fornecer o tamanho total.
device: a instância nvram_device . max_space_size: recebe a saída. Não pode ser NULL.
nvram_result_t (* get_max_spaces)(const struct nvram_device *device, uint32_t *num_spaces) |
Mostra o número total máximo de espaços que podem ser alocados. Esse valor sempre será de pelo menos 8. Mostra NV_UNLIMITED_SPACES se houver suporte para qualquer número de espaços (limitado apenas aos bytes de NVRAM disponíveis).
device: a instância nvram_device . num_spaces: recebe a saída. Não pode ser NULL.
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) |
Mostra a lista de controles associados a um determinado espaço.
device: a instância nvram_device . index: o índice de espaço. max_list_size: o número de itens na matriz |control_list|. control_list: recebe a lista de controles até o |max_list_size| fornecido. Pode ser NULO se |max_list_size| for 0. list_size: recebe o número de itens preenchidos em |control_list| ou o número de itens disponíveis se |control_list| for NULO.
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) |
Mostra uma lista dos índices de espaço criados. Se |max_list_size| for 0, apenas |list_size| será preenchido.
device: a instância nvram_device . max_list_size: o número de itens na matriz |space_index_list|. space_index_list: recebe a lista de espaços criados até o |max_list_size| especificado. Pode ser NULL se |max_list_size| for 0. list_size: recebe o número de itens preenchidos em |space_index_list| ou o número de itens disponíveis se |space_index_list| for NULL.
nvram_result_t (* get_space_size)(const struct nvram_device *device, uint32_t index, uint64_t *size) |
Mostra o tamanho, em bytes, de um determinado espaço.
device: a instância nvram_device do dispositivo. index: o índice de espaço. size: recebe a saída. Não pode ser NULL.
nvram_result_t (* get_total_size_in_bytes)(const struct nvram_device *device, uint64_t *total_size) |
Mostra o número total de bytes disponíveis na NVRAM. Esse valor sempre será de pelo menos 2048. Se uma implementação não souber o tamanho total, ela poderá fornecer uma estimativa ou 2.048.
device: a instância nvram_device . total_size: recebe a saída. Não pode ser NULL.
nvram_result_t (* is_space_locked)(const struct nvram_device *device, uint32_t index, int *write_lock_enabled, int *read_lock_enabled) |
Mostra se as fechaduras estão ativadas para o espaço especificado. Quando uma trava é ativada, a operação é desativada, e qualquer tentativa de realizar essa operação resulta em NV_RESULT_OPERATION_DISABLED.
device: a instância nvram_device . index: o índice de espaço. write_lock_enabled: será definido como diferente de zero se as operações de gravação estiverem desativadas. read_lock_enabled: será definido como diferente de zero se as operações de leitura estiverem desativadas.
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) |
Lê o conteúdo de um espaço. Se o espaço nunca tiver sido gravado, todos os bytes lidos serão 0x00.
device: a instância nvram_device . index: o índice de espaço. num_bytes_to_read: o número de bytes a serem lidos. |buffer| precisa ser grande o suficiente para armazenar esse número de bytes. Se for maior que o tamanho do espaço, o espaço inteiro será lido. Se for menor que o tamanho do espaço, os primeiros bytes serão lidos. authorization_value: se o espaço tiver a política NV_CONTROL_READ_AUTHORIZATION, esse parâmetro vai fornecer o valor da autorização. Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |authorization_value|. buffer: recebe os dados lidos do espaço. Precisa ter pelo menos |num_bytes_to_read| bytes de tamanho. bytes_read: o número de bytes lidos. Se NV_RESULT_SUCCESS for retornado, ele será definido como o menor de |num_bytes_to_read| ou o tamanho do espaço.
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) |
Grava o conteúdo de um espaço. Se o espaço for configurado com NV_CONTROL_WRITE_EXTEND, os dados de entrada serão usados para estender os dados atuais.
device: a instância nvram_device . index: o índice do espaço. buffer: os dados a serem gravados. buffer_size: o número de bytes em |buffer|. Se esse valor for menor que o tamanho do espaço, os bytes restantes serão definidos como 0x00. Se for maior que o tamanho do espaço, será retornado NV_RESULT_INVALID_PARAMETER. authorization_value: se o espaço tiver a política NV_CONTROL_WRITE_AUTHORIZATION, esse parâmetro vai fornecer o valor da autorização. Caso contrário, esse valor será ignorado e poderá ser nulo. authorization_value_size: o número de bytes em |authorization_value|.
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ nvram.h