nvram_device 結構體參考資料

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)
 

詳細說明

定義位於檔案 nvram.h 的第 48 行。

欄位說明文件

struct hw_device_t common

nvram_device 的常用方法。這個 必須是 nvram_device 的首位成員,因為這個結構的使用者會在已知 hw_device_t 參照 nvram_device 的情況下,將 hw_device_t 轉換為 nvram_device 指標。

定義位於檔案 nvram.h 55 行。

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 執行個體。index - 新空間的索引。索引可以是任何 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| 中的位元組數。

定義位於檔案 nvram.h 187 行。

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 政策,則此參數會提供授權值。否則,系統會忽略這個值,且可能為空值。authorization_value_size - |authorization_value| 中的位元組數。

定義位於檔案 nvram.h 207 行。

nvram_result_t (* disable_create)(const struct nvram_device *device)

在下次裝置完全重設 (例如恢復原廠設定,而非重新啟動) 前,停用任何其他空間建立作業。後續對 NV_CreateSpace 的呼叫應傳回 NV_RESULT_OPERATION_DISABLED。

device - nvram_device 例項。

定義位於檔案 nvram.h 219 行。

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 政策,則這個參數會提供授權值。(請注意,您不需要具備寫入權限,就能鎖定讀取權限。讀取鎖定一律是暫時性的。)否則,系統會忽略這個值,且可能為空值。authorization_value_size - |authorization_value| 中的位元組數。

定義位於檔案 nvram.h 317 行。

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 政策,則此參數會提供授權值。否則,系統會忽略這個值,且可能為空值。authorization_value_size - |authorization_value| 中的位元組數。

定義位於檔案 nvram.h 294 行。

nvram_result_t (* get_available_size_in_bytes)(const struct nvram_device *device, uint64_t *available_size)

輸出 NVRAM 中未分配的位元組數。如果實作項目不知道可用大小,可能會提供預估值或總大小。

device - nvram_device 例項。available_size - 接收輸出內容。不得為空值。

定義位於檔案 nvram.h 76 行。

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.h 87 行。

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.h 99 行。

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,則可能為 NULL。list_size - 接收在 |control_list| 中填入的項目數量,或如果 |control_list| 為 NULL,則為可用的項目數量。

定義位於檔案 nvram.h 144 行。

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,則可能為 NULL。list_size - 接收在 |space_index_list| 中填入的項目數,或如果 |space_index_list| 為 NULL,則為可用的項目數。

定義位於檔案 nvram.h 116 行。

nvram_result_t (* get_space_size)(const struct nvram_device *device, uint32_t index, uint64_t *size)

輸出指定空間的大小 (以位元組為單位)。

device - nvram_device 例項。index - 空間索引。size - 接收輸出內容。不得為空值。

定義位於檔案 nvram.h 128 行。

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.h 65 行。

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 執行個體。index - 空間索引。write_lock_enabled - 如果目前已停用寫入作業,則會設為非零值。read_lock_enabled - 如果目前已停用讀取作業,則會設為非零值。

定義位於檔案 nvram.h 161 行。

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 政策,則這個參數會提供授權值。否則,系統會忽略這個值,且可能為空值。authorization_value_size - |authorization_value| 中的位元組數。buffer - 接收從空間讀取的資料。大小必須至少為 |num_bytes_to_read| 個位元組。bytes_read - 已讀取的位元組數。如果傳回 NV_RESULT_SUCCESS,則會將此值設為 |num_bytes_to_read| 或空間大小中的較小值。

定義位於檔案 nvram.h 272 行。

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 政策,這個參數會提供授權值。否則,系統會忽略這個值,且可能為空值。authorization_value_size - |authorization_value| 中的位元組數。

定義位於檔案 nvram.h 241 行。


這個結構體的說明文件是由下列檔案產生:
  • hardware/libhardware/include/hardware/ nvram.h