WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
nv_nvregion.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2019-2022. All rights reserved.
3 * Description: KV Storage Library non-volatile region access interface
4 */
5
6#ifndef NV_NVREGION_H
7#define NV_NVREGION_H
8
9#include "nv_page.h"
10#include "errcode.h"
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif /* __cplusplus */
16#endif /* __cplusplus */
17
18typedef struct {
19 uint16_t key_id; /* Key ID */
20 uint16_t key_len : 13; /* Key length */
21 uint16_t permanent : 1; /* 是否是永久Key */
22 uint16_t encrypted : 1; /* 是否是加密Key */
23 uint16_t upgrade : 1; /* 是否可以升级 */
24 uint16_t key_offset : 13; /* Key的位置(相对页首地址的偏移) */
25 uint16_t valid : 1; /* Key是否有效 */
26 uint16_t corrupted : 1; /* Key是否被破坏 */
27 uint16_t reserved : 1; /* Key预留字段 */
29
35
36typedef struct {
37 uint32_t nv_data_addr;
38 uint32_t nv_data_size;
42
43void kv_nvregion_init(uint32_t nv_data_addr, uint32_t nv_data_size, uint32_t nv_backup_addr, uint32_t nv_backup_size);
44
46errcode_t kv_nvregion_find_page(uint16_t store_id, uint8_t page_index,
47 kv_page_location *location, kv_page_header_t *header);
50errcode_t kv_nvregion_create_page(uint16_t store_id, uint8_t page_index);
51errcode_t kv_nvregion_write_page(kv_page_location page_location, uint16_t store_id, uint8_t page_index);
52
55
56uint32_t kv_nvregion_get_page_number(kv_page_location page_location);
57uint32_t kv_nvregion_get_use_times(kv_page_location page_location);
58
59#ifdef __cplusplus
60#if __cplusplus
61}
62#endif /* __cplusplus */
63#endif /* __cplusplus */
64
65#endif /* NV_NVREGION_H */
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
errcode_t kv_nvregion_create_page(uint16_t store_id, uint8_t page_index)
Definition nv_nvregion.c:175
uint32_t kv_nvregion_get_page_number(kv_page_location page_location)
Definition nv_nvregion.c:286
errcode_t kv_nvregion_find_unused_page(kv_page_location *location)
Definition nv_nvregion.c:231
uint32_t kv_nvregion_get_use_times(kv_page_location page_location)
Definition nv_nvregion.c:26
void kv_nvregion_init(uint32_t nv_data_addr, uint32_t nv_data_size, uint32_t nv_backup_addr, uint32_t nv_backup_size)
Definition nv_nvregion.c:152
errcode_t kv_nvregion_scan(void)
Definition nv_nvregion.c:165
errcode_t kv_nvregion_write_page(kv_page_location page_location, uint16_t store_id, uint8_t page_index)
Definition nv_nvregion.c:268
errcode_t kv_nvregion_erase_page(kv_page_location page_location)
Definition nv_nvregion.c:254
errcode_t kv_nvregion_find_page(uint16_t store_id, uint8_t page_index, kv_page_location *location, kv_page_header_t *header)
Definition nv_nvregion.c:205
kv_nvregion_area_t * nv_get_region_area(void)
Definition nv_nvregion.c:160
kv_nvregion_map_t * kv_nvregion_get_map(void)
Definition nv_nvregion.c:21
const void * kv_page_location
Definition nv_page.h:20
Definition nv_nvregion.h:36
uint32_t nv_backup_size
Definition nv_nvregion.h:40
uint32_t nv_backup_addr
Definition nv_nvregion.h:39
uint32_t nv_data_addr
Definition nv_nvregion.h:37
uint32_t nv_data_size
Definition nv_nvregion.h:38
Definition nv_nvregion.h:30
kv_page_header_t * entries
Definition nv_nvregion.h:31
uint32_t num_entries
Definition nv_nvregion.h:33
nv_page_status_map_t * page_status_map
Definition nv_nvregion.h:32
Definition nv_page.h:28
Definition nv_nvregion.h:18
uint16_t corrupted
Definition nv_nvregion.h:26
uint16_t reserved
Definition nv_nvregion.h:27
uint16_t upgrade
Definition nv_nvregion.h:23
uint16_t key_id
Definition nv_nvregion.h:19
uint16_t valid
Definition nv_nvregion.h:25
uint16_t encrypted
Definition nv_nvregion.h:22
uint16_t key_len
Definition nv_nvregion.h:20
uint16_t key_offset
Definition nv_nvregion.h:24
uint16_t permanent
Definition nv_nvregion.h:21
Definition nv_page.h:50