xref: /spdk/lib/ftl/ftl_sb.h (revision 9f42898ac3c433ad69b6701274c4ed3305fa61c5)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (C) 2022 Intel Corporation.
3  *   All rights reserved.
4  */
5 
6 #ifndef FTL_SB_H
7 #define FTL_SB_H
8 
9 #include "spdk/uuid.h"
10 #include "ftl_sb_common.h"
11 #include "ftl_sb_current.h"
12 
13 struct spdk_ftl_dev;
14 struct ftl_layout_region;
15 
16 bool ftl_superblock_check_magic(struct ftl_superblock *sb);
17 
18 bool ftl_superblock_is_blob_area_empty(struct ftl_superblock *sb);
19 
20 bool ftl_superblock_validate_blob_area(struct spdk_ftl_dev *dev);
21 
22 int ftl_superblock_store_blob_area(struct spdk_ftl_dev *dev);
23 
24 int ftl_superblock_load_blob_area(struct spdk_ftl_dev *dev);
25 
26 int ftl_superblock_md_layout_upgrade_region(struct spdk_ftl_dev *dev,
27 		struct ftl_layout_region *reg, uint32_t new_version);
28 
29 int ftl_superblock_md_layout_apply(struct spdk_ftl_dev *dev);
30 
31 void ftl_superblock_md_layout_dump(struct spdk_ftl_dev *dev);
32 
33 #endif /* FTL_SB_H */
34