nvram_device 結構參考

nvram_device 結構參考

#include < nvram.h >

資料欄位

結構體hw_device_t常見的
nvram_結果_t (* get_total_size_in_bytes )(const struct nvram_device *設備,uint64_t *total_size)
nvram_結果_t (* get_available_size_in_bytes )(const struct nvram_device *設備,uint64_t *available_size)
nvram_結果_t (* get_max_space_size_in_bytes )(const struct nvram_device *設備,uint64_t *max_space_size)
nvram_結果_t (* get_max_spaces )(const struct nvram_device *device, uint32_t *num_spaces)
nvram_結果_t (* get_space_list )(const struct nvram_device *設備,uint32_t max_list_size,uint32_t *space_index_list,uint32_t *list_size)
nvram_結果_t (* get_space_size )(const struct nvram_device *設備,uint32_t索引,uint64_t *大小)
nvram_結果_t (* get_space_controls )(const struct nvram_device *設備,uint32_t索引,uint32_t max_list_size, nvram_control_t *control_list,uint32_t *list_size)
nvram_結果_t (* is_space_locked )(const struct nvram_device *device, uint32_t 索引, int *write_lock_enabled, int *read_lock_enabled)
nvram_結果_t (* create_space )(const struct nvram_device *設備,uint32_t索引,uint64_t size_in_bytes,const nvram_control_t *control_list,uint32_t list_size,const uint8_t *control_list,uint32_t list_size,const uint8_t *conhorization_valueu.
nvram_結果_t (* delete_space )(const struct nvram_device *設備,uint32_t索引,const uint8_t *授權值,uint32_t授權值_大小)
nvram_結果_t (* disable_create )(const struct nvram_device *裝置)
nvram_結果_t (* write_space )(const struct nvram_device *設備,uint32_t索引,const uint8_t *緩衝區,uint64_t buffer_size,const uint8_t *授權值,uint32_t授權值_大小)
nvram_結果_t (* read_space )(const struct nvram_device *設備,uint32_t索引,uint64_t num_bytes_to_read,const uint8_t *授權值,uint32_t授權值_大小,uint8_t *緩衝區,uint64_t *bytes_read)
nvram_結果_t (*啟用_寫入_鎖定)(const struct nvram_device *設備,uint32_t索引,const uint8_t *授權值,uint32_t授權值_大小)
nvram_結果_t (*啟用_讀取_鎖定)(const struct nvram_device *設備,uint32_t索引,const uint8_t *授權值,uint32_t授權值_大小)

詳細說明

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

現場文檔

結構體hw_device_t公共

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 索引, uint64_t size_in_bytes, const nvram_control_t *control_list, uint32_t list_size, constint_sue;

使用給定的索引、大小、控制項和授權值建立新空間。

device - 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.h的第187行。

nvram_result_t (*delete_space)(const struct nvram_device *設備,uint32_t索引,const uint8_t *授權值,uint32_t授權值_大小)

刪除一個空格。

device - nvram_device實例。 index - 空間索引。 authorization_value - 如果空間具有 NV_CONTROL_WRITE_AUTHORIZATION 策略,則此參數提供授權值。否則,該值將被忽略並且可能為 NULL。 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 索引, const uint8_t *authorization_value, uint32_tauthorization_value_size)

根據給定空間的策略啟用讀鎖。如果空間未設定 NV_CONTROL_BOOT_READ_LOCK,則此函數無效並可能傳回錯誤。

device - nvram_device實例。 index - 空間索引。 authorization_value - 如果空間具有 NV_CONTROL_READ_AUTHORIZATION 策略,則此參數提供授權值。 (請注意,不需要寫入存取即可鎖定讀取。讀鎖始終是易失性的。)否則,該值將被忽略並且可能為 NULL。 authorization_value_size - |authorization_value| 中的位元組數。

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

nvram_result_t (*enable_write_lock)(const struct nvram_device *設備,uint32_t索引,const uint8_t *授權值,uint32_t授權值_大小)

根據給定空間的策略啟用寫鎖。如果空間沒有設定 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.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 - 接收輸出。不能為 NULL。

定義位於檔案nvram.h76行。

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 - 接收輸出。不能為 NULL。

定義位於檔案nvram.h87行。

nvram_result_t (* get_max_spaces)(const struct nvram_device *device, uint32_t *num_spaces)

輸出可分配的最大空間總數。這將始終至少為 8。如果支援任意數量的空間(僅限於可用的 NVRAM 位元組),則輸出 NV_UNLIMITED_SPACES。

device - nvram_device實例。 num_spaces - 接收輸出。不能為 NULL。

定義位於檔案nvram.h99行。

nvram_result_t (* get_space_controls)(const struct nvram_device *device, uint32_t 索引, 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| 則可能為 NULL為 0. list_size - 接收 |control_list| 中填入的項目數,或如果 |control_list| 則可用的項目數。一片空白。

定義位於檔案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| 則可能為 NULL為 0. list_size - 接收 |space_index_list| 中填入的項目數,或如果 |space_index_list| 則可用的項目數。一片空白。

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

nvram_result_t (* get_space_size)(const struct nvram_device *裝置, uint32_t 索引, uint64_t *大小)

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

device - nvram_device實例。 index - 空間索引。 size - 接收輸出。不能為 NULL。

定義位於檔案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 - 接收輸出。不能為 NULL。

定義位於檔案nvram.h65行。

nvram_result_t (* is_space_locked)(const struct nvram_device *device, uint32_t 索引, 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 索引, uint64_t num_bytes_to_read, const uint8_t *authorization_value, uint32_tauthorization_value uint8_t *authorization_value, uint32_tauthorization_value_s?

讀取空間的內容。如果該空間從未寫入,則讀取的所有位元組將為 0x00。

device - nvram_device實例。 index - 空間索引。 num_bytes_to_read - 要讀取的位元組數; |緩衝區|必須足夠大才能容納這麼多位元組。如果這大於空間的大小,則讀取整個空間。如果這小於空間的大小,則讀取空間中的第一個位元組。 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.h的第272行。

nvram_result_t (* write_space)(const struct nvram_device *設備,uint32_t索引,const uint8_t *緩衝區,uint64_t buffer_size,const uint8_t *授權值,uint32_t授權值_大小)

寫入空間的內容。如果空間配置為 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| 中的位元組數。

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


該結構的文檔是從以下文件產生的: