WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
nv_page.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2019-2022. All rights reserved.
3 * Description: KV Storage Library page access interface
4 */
5
6#ifndef NV_PAGE_H
7#define NV_PAGE_H
8
9#include "nv_key.h"
10#include "errcode.h"
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif /* __cplusplus */
16#endif /* __cplusplus */
17
20typedef const void *kv_page_location;
21
22typedef struct {
23 uint16_t store_id; /* Identifies the page as belonging to a certain store */
24 uint8_t ver;
25 uint8_t page_index; /* Uniquely identifies a page within a store */
27
34
35/* A KV page handle, which provides both the page header information and the location in flash */
36typedef struct {
38 kv_page_location page_location; /* Location in flash of the KV page */
40
41typedef struct {
42 uint32_t total_space; /* 本页最大空间(不含页头) */
43 uint32_t used_space; /* 本页已使用空间 */
44 uint32_t reclaimable_space; /* 本页可回收空间(包含已损坏空间) */
45 uint32_t corrupted_space; /* 本页已损坏空间 */
46 uint32_t max_key_space; /* 本页可写的最大空间(未使用+可回收) */
47 uint32_t first_writable_location; /* 本页第一个可写入位置 */
49
50typedef struct {
51 uint32_t page_location; /* 本页首地址(包含页头) */
52 uint16_t used_space; /* 本页已使用空间 */
53 uint16_t reclaimable_space; /* 本页可回收空间(包含已损坏空间) */
54 uint16_t corrupted_space; /* 本页已损坏空间 */
55 uint16_t first_writable_offset; /* 本页第一个可写入位置(相对页首地址的偏移) */
57
58errcode_t kv_page_get_index(kv_page_handle_t *page, uint32_t *page_index);
60 kv_key_handle_t *key);
62 kv_key_handle_t *key);
66
67#ifdef __cplusplus
68#if __cplusplus
69}
70#endif /* __cplusplus */
71#endif /* __cplusplus */
72
73#endif /* NV_PAGE_H_ */
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
void kv_page_get_status(kv_page_handle_t *page, kv_page_status_t *page_status)
Definition nv_page.c:124
void kv_page_read_status_to_map(kv_page_handle_t *page, nv_page_status_map_t *status_map)
Definition nv_page.c:71
errcode_t kv_page_find_next_key(const kv_page_handle_t *page, kv_key_filter_t *search_filter, kv_key_handle_t *key)
Definition nv_page.c:46
const void * kv_page_location
Definition nv_page.h:20
errcode_t kv_page_find_first_key(const kv_page_handle_t *page, kv_key_filter_t *search_filter, kv_key_handle_t *key)
Definition nv_page.c:25
errcode_t kv_page_get_index(kv_page_handle_t *page, uint32_t *page_index)
Definition nv_page.c:14
void kv_page_get_status_from_map(kv_page_handle_t *page, kv_page_status_t *page_status)
Definition nv_page.c:131
Definition nv_key.h:73
Definition nv_key.h:96
Definition nv_page.h:22
uint16_t store_id
Definition nv_page.h:23
uint8_t ver
Definition nv_page.h:24
uint8_t page_index
Definition nv_page.h:25
Definition nv_page.h:36
kv_page_header_t page_header
Definition nv_page.h:37
kv_page_location page_location
Definition nv_page.h:38
Definition nv_page.h:28
uint32_t inverted_details_word
Definition nv_page.h:30
uint32_t inverted_sequence_number
Definition nv_page.h:32
uint32_t sequence_number
Definition nv_page.h:31
kv_page_details_t details
Definition nv_page.h:29
Definition nv_page.h:41
uint32_t corrupted_space
Definition nv_page.h:45
uint32_t reclaimable_space
Definition nv_page.h:44
uint32_t used_space
Definition nv_page.h:43
uint32_t max_key_space
Definition nv_page.h:46
uint32_t total_space
Definition nv_page.h:42
uint32_t first_writable_location
Definition nv_page.h:47
Definition nv_page.h:50
uint16_t used_space
Definition nv_page.h:52
uint16_t first_writable_offset
Definition nv_page.h:55
uint32_t page_location
Definition nv_page.h:51
uint16_t corrupted_space
Definition nv_page.h:54
uint16_t reclaimable_space
Definition nv_page.h:53