xref: /spdk/lib/ftl/upgrade/ftl_sb_v3.h (revision ac8071d6f4579bacd4bcec4e0d8b29c8bb5842c4)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (C) 2022 Intel Corporation.
3  *   All rights reserved.
4  */
5 
6 #ifndef FTL_SB_V3_H
7 #define FTL_SB_V3_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 union ftl_superblock_ver;
16 
17 bool ftl_superblock_v3_check_magic(union ftl_superblock_ver *sb_ver);
18 
19 bool ftl_superblock_v3_md_layout_is_empty(union ftl_superblock_ver *sb_ver);
20 
21 int ftl_superblock_v3_md_layout_build(struct spdk_ftl_dev *dev);
22 
23 int ftl_superblock_v3_md_layout_load_all(struct spdk_ftl_dev *dev);
24 
25 int ftl_superblock_v3_md_layout_upgrade_region(struct spdk_ftl_dev *dev,
26 		struct ftl_layout_region *reg, uint32_t new_version);
27 
28 void ftl_superblock_v3_md_layout_dump(struct spdk_ftl_dev *dev);
29 
30 #endif /* FTL_SB_V3_H */
31