WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
nv_update.c 文件参考
#include "nv_update.h"
#include "nv_store.h"
#include "nv_page.h"
#include "nv_key.h"
#include "nv_porting.h"
#include "nv_config.h"
#include "nv_reset.h"
#include "nv_nvregion.h"
#include "assert.h"
#include "common_def.h"
#include "uapi_crc.h"
nv_update.c 的引用(Include)关系图:

宏定义

#define KV_WRITE_KEY_BUFFER_SIZE   NV_KEY_DATA_CHUNK_LEN
 
#define KV_WRITE_CHUNK_SIZE   32
 
#define assert__(x)   ((void)0)
 

函数

STATIC errcode_t kv_create_write_buffer (uint32_t write_location, uint32_t size)
 
STATIC void kv_remove_write_buffer (void)
 
STATIC kv_managed_source_buffer_tkv_update_source_buffer (uint8_t *data, uint32_t data_length)
 
STATIC void kv_remove_source_buffer (void)
 
STATIC void kv_release_crypto (void)
 
STATIC errcode_t begin_state_machine (const kv_state_machine_t *machine)
 
STATIC void end_state_machine (void)
 
STATIC kv_update_event_t kv_update_action_store_write_buffer (void)
 
STATIC kv_update_event_t kv_update_action_prime_write_buffer (void)
 
STATIC kv_update_event_t kv_update_action_select_first_page (void)
 
STATIC kv_update_event_t kv_update_action_select_next_page (void)
 
STATIC kv_update_event_t kv_update_action_find_first_key (void)
 
STATIC kv_update_event_t kv_update_action_find_next_key (void)
 
STATIC kv_update_event_t kv_update_action_prepare_delete_key (void)
 
STATIC kv_update_event_t kv_update_action_find_defrag_page (void)
 
STATIC kv_update_event_t kv_update_action_erase_defrag_page (void)
 
STATIC kv_update_event_t kv_update_action_prepare_copy_key (void)
 
STATIC kv_update_event_t kv_update_action_prepare_defrag_page (void)
 
STATIC kv_update_event_t kv_update_action_copy_all_keys (void)
 
STATIC kv_update_event_t kv_update_action_prepare_page_header (void)
 
STATIC kv_update_event_t kv_update_action_find_write_position (void)
 
STATIC kv_update_event_t kv_update_action_defrag_current_page (void)
 
STATIC kv_update_event_t kv_update_action_update_nvregion_map (void)
 
STATIC kv_update_event_t kv_update_action_prepare_store (void)
 
STATIC kv_update_event_t kv_update_action_prepare_write_key (void)
 
STATIC kv_update_event_t kv_update_action_claim_crypto (void)
 
STATIC kv_update_event_t kv_update_action_erase_old_keys (void)
 
STATIC kv_update_event_t kv_update_action_update_nvmap_for_erase_key (void)
 
STATIC kv_update_event_t kv_update_action_update_nvmap_for_new_key (void)
 
STATIC errcode_t kv_update_hash_encrypt_chunk (kv_managed_write_buffer_t *write_buffer, const kv_managed_source_buffer_t *source_buffer, uint32_t chunk_dest, uint32_t chunk_len)
 
STATIC errcode_t prime_next_chunk (void)
 
STATIC errcode_t select_next_source_buffer (void)
 
STATIC kv_update_event_t kv_update_helper_prepare_write_buffer (void)
 
STATIC kv_update_event_t kv_update_helper_setup_key_header_source_buffer (void)
 
STATIC kv_update_event_t kv_update_helper_setup_key_data_source_buffer (bool release_key_data)
 
STATIC kv_update_event_t kv_update_helper_setup_key_hash_source_buffer (void)
 
STATIC kv_update_event_t kv_update_helper_prepare_source_buffers (bool release_key_data)
 
STATIC kv_update_event_t kv_update_helper_check_for_key_updates (void)
 
STATIC errcode_t kv_update_helper_get_current_key (uint8_t **old_kvalue, uint32_t *kvalue_length)
 
STATIC void update_current_state (void)
 
STATIC errcode_t process_state_machine (void)
 
STATIC bool active_state_machine (void)
 
STATIC uint32_t determine_flash_task_state_code (errcode_t res)
 
errcode_t kv_update_init (cores_t core)
 
STATIC errcode_t kv_updata_backup_page_head_is_valid (const kv_page_header_t *backup_head)
 
STATIC errcode_t kv_updata_backup_fail_process (uint32_t back_maybe_need_process_location)
 
errcode_t kv_update_backup_init (void)
 
errcode_t kv_update_erase_key (kv_store_t core, flash_task_node *sanitised_tasks)
 
errcode_t kv_update_write_key (kv_store_t core, flash_task_node *sanitised_task)
 
errcode_t kv_update_modify_attribute (kv_store_t core, flash_task_node *sanitised_task)
 

变量

STATIC kv_active_state_machine_tg_current_state_machine = NULL
 
STATIC kv_key_filter_t g_search_filter
 
STATIC kv_key_details_t g_new_key_details
 
STATIC kv_key_handle_t g_current_key
 
STATIC kv_page_handle_t g_current_page
 
STATIC kv_store_t g_current_store
 
STATIC kv_key_location g_current_store_write_location
 
STATIC kv_page_location g_defrag_page_location = NULL
 
STATIC const kv_state_machine_t g_prepare_store_machine
 

宏定义说明

◆ assert__

#define assert__ (   x)    ((void)0)

◆ KV_WRITE_CHUNK_SIZE

#define KV_WRITE_CHUNK_SIZE   32

◆ KV_WRITE_KEY_BUFFER_SIZE

#define KV_WRITE_KEY_BUFFER_SIZE   NV_KEY_DATA_CHUNK_LEN

函数说明

◆ active_state_machine()

STATIC bool active_state_machine ( void  )

◆ begin_state_machine()

STATIC errcode_t begin_state_machine ( const kv_state_machine_t machine)

◆ determine_flash_task_state_code()

STATIC uint32_t determine_flash_task_state_code ( errcode_t  res)

◆ end_state_machine()

STATIC void end_state_machine ( void  )

◆ kv_create_write_buffer()

STATIC errcode_t kv_create_write_buffer ( uint32_t  write_location,
uint32_t  size 
)

◆ kv_release_crypto()

STATIC void kv_release_crypto ( void  )

◆ kv_remove_source_buffer()

STATIC void kv_remove_source_buffer ( void  )

◆ kv_remove_write_buffer()

STATIC void kv_remove_write_buffer ( void  )

◆ kv_updata_backup_fail_process()

STATIC errcode_t kv_updata_backup_fail_process ( uint32_t  back_maybe_need_process_location)

◆ kv_updata_backup_page_head_is_valid()

STATIC errcode_t kv_updata_backup_page_head_is_valid ( const kv_page_header_t backup_head)

◆ kv_update_action_claim_crypto()

STATIC kv_update_event_t kv_update_action_claim_crypto ( void  )

◆ kv_update_action_copy_all_keys()

STATIC kv_update_event_t kv_update_action_copy_all_keys ( void  )

◆ kv_update_action_defrag_current_page()

STATIC kv_update_event_t kv_update_action_defrag_current_page ( void  )

◆ kv_update_action_erase_defrag_page()

STATIC kv_update_event_t kv_update_action_erase_defrag_page ( void  )

◆ kv_update_action_erase_old_keys()

STATIC kv_update_event_t kv_update_action_erase_old_keys ( void  )

◆ kv_update_action_find_defrag_page()

STATIC kv_update_event_t kv_update_action_find_defrag_page ( void  )

◆ kv_update_action_find_first_key()

STATIC kv_update_event_t kv_update_action_find_first_key ( void  )

◆ kv_update_action_find_next_key()

STATIC kv_update_event_t kv_update_action_find_next_key ( void  )

◆ kv_update_action_find_write_position()

STATIC kv_update_event_t kv_update_action_find_write_position ( void  )

◆ kv_update_action_prepare_copy_key()

STATIC kv_update_event_t kv_update_action_prepare_copy_key ( void  )

◆ kv_update_action_prepare_defrag_page()

STATIC kv_update_event_t kv_update_action_prepare_defrag_page ( void  )

◆ kv_update_action_prepare_delete_key()

STATIC kv_update_event_t kv_update_action_prepare_delete_key ( void  )

◆ kv_update_action_prepare_page_header()

STATIC kv_update_event_t kv_update_action_prepare_page_header ( void  )

◆ kv_update_action_prepare_store()

STATIC kv_update_event_t kv_update_action_prepare_store ( void  )

◆ kv_update_action_prepare_write_key()

STATIC kv_update_event_t kv_update_action_prepare_write_key ( void  )

◆ kv_update_action_prime_write_buffer()

STATIC kv_update_event_t kv_update_action_prime_write_buffer ( void  )

◆ kv_update_action_select_first_page()

STATIC kv_update_event_t kv_update_action_select_first_page ( void  )

◆ kv_update_action_select_next_page()

STATIC kv_update_event_t kv_update_action_select_next_page ( void  )

◆ kv_update_action_store_write_buffer()

STATIC kv_update_event_t kv_update_action_store_write_buffer ( void  )

◆ kv_update_action_update_nvmap_for_erase_key()

STATIC kv_update_event_t kv_update_action_update_nvmap_for_erase_key ( void  )

◆ kv_update_action_update_nvmap_for_new_key()

STATIC kv_update_event_t kv_update_action_update_nvmap_for_new_key ( void  )

◆ kv_update_action_update_nvregion_map()

STATIC kv_update_event_t kv_update_action_update_nvregion_map ( void  )

◆ kv_update_backup_init()

errcode_t kv_update_backup_init ( void  )

◆ kv_update_erase_key()

errcode_t kv_update_erase_key ( kv_store_t  core,
flash_task_node sanitised_tasks 
)

◆ kv_update_hash_encrypt_chunk()

STATIC errcode_t kv_update_hash_encrypt_chunk ( kv_managed_write_buffer_t write_buffer,
const kv_managed_source_buffer_t source_buffer,
uint32_t  chunk_dest,
uint32_t  chunk_len 
)

◆ kv_update_helper_check_for_key_updates()

STATIC kv_update_event_t kv_update_helper_check_for_key_updates ( void  )

◆ kv_update_helper_get_current_key()

STATIC errcode_t kv_update_helper_get_current_key ( uint8_t **  old_kvalue,
uint32_t *  kvalue_length 
)

◆ kv_update_helper_prepare_source_buffers()

STATIC kv_update_event_t kv_update_helper_prepare_source_buffers ( bool  release_key_data)

◆ kv_update_helper_prepare_write_buffer()

STATIC kv_update_event_t kv_update_helper_prepare_write_buffer ( void  )

◆ kv_update_helper_setup_key_data_source_buffer()

STATIC kv_update_event_t kv_update_helper_setup_key_data_source_buffer ( bool  release_key_data)

◆ kv_update_helper_setup_key_hash_source_buffer()

STATIC kv_update_event_t kv_update_helper_setup_key_hash_source_buffer ( void  )

◆ kv_update_helper_setup_key_header_source_buffer()

STATIC kv_update_event_t kv_update_helper_setup_key_header_source_buffer ( void  )

◆ kv_update_init()

errcode_t kv_update_init ( cores_t  core)

◆ kv_update_modify_attribute()

errcode_t kv_update_modify_attribute ( kv_store_t  core,
flash_task_node sanitised_task 
)

◆ kv_update_source_buffer()

STATIC kv_managed_source_buffer_t * kv_update_source_buffer ( uint8_t *  data,
uint32_t  data_length 
)

◆ kv_update_write_key()

errcode_t kv_update_write_key ( kv_store_t  core,
flash_task_node sanitised_task 
)

◆ prime_next_chunk()

STATIC errcode_t prime_next_chunk ( void  )

◆ process_state_machine()

STATIC errcode_t process_state_machine ( void  )

◆ select_next_source_buffer()

STATIC errcode_t select_next_source_buffer ( void  )

◆ update_current_state()

STATIC void update_current_state ( void  )

变量说明

◆ g_current_key

STATIC kv_key_handle_t g_current_key

◆ g_current_page

STATIC kv_page_handle_t g_current_page

◆ g_current_state_machine

STATIC kv_active_state_machine_t* g_current_state_machine = NULL

◆ g_current_store

STATIC kv_store_t g_current_store

◆ g_current_store_write_location

STATIC kv_key_location g_current_store_write_location

◆ g_defrag_page_location

STATIC kv_page_location g_defrag_page_location = NULL

◆ g_new_key_details

STATIC kv_key_details_t g_new_key_details

◆ g_prepare_store_machine

STATIC const kv_state_machine_t g_prepare_store_machine
初始值:
= {
.initial_state = STATE_FIND_WRITE_POS,
.resume_state = STATE_INVALID,
.exit_event = EVENT_STORE_READY,
.transition_table = g_prepare_store_transitions,
.action_table = g_prepare_store_actions,
.write_buffer_size = 0
}
@ EVENT_STORE_READY
Definition nv_update.h:104
@ STATE_INVALID
Definition nv_update.h:26
@ STATE_FIND_WRITE_POS
Definition nv_update.h:49

◆ g_search_filter

STATIC kv_key_filter_t g_search_filter