xref: /spdk/lib/ftl/upgrade/ftl_sb_v5.h (revision 8fc78fd8776efac4fb3c6323030b7f57a7a3401a)
1f968b954SMateusz Kozlowski /*   SPDX-License-Identifier: BSD-3-Clause
2f968b954SMateusz Kozlowski  *   Copyright (C) 2023 Solidigm.
3f968b954SMateusz Kozlowski  *   All rights reserved.
4f968b954SMateusz Kozlowski  */
5f968b954SMateusz Kozlowski 
6f968b954SMateusz Kozlowski #ifndef FTL_SB_V5_H
7f968b954SMateusz Kozlowski #define FTL_SB_V5_H
8f968b954SMateusz Kozlowski 
9f968b954SMateusz Kozlowski #include "spdk/uuid.h"
10f968b954SMateusz Kozlowski #include "ftl_sb_common.h"
11f968b954SMateusz Kozlowski #include "ftl_sb_current.h"
12f968b954SMateusz Kozlowski #include "upgrade/ftl_sb_prev.h"
13f968b954SMateusz Kozlowski 
14f968b954SMateusz Kozlowski struct spdk_ftl_dev;
15f968b954SMateusz Kozlowski struct ftl_layout_region;
16f968b954SMateusz Kozlowski union ftl_superblock_ver;
17f968b954SMateusz Kozlowski 
18f968b954SMateusz Kozlowski bool ftl_superblock_v5_is_blob_area_empty(union ftl_superblock_ver *sb_ver);
19f968b954SMateusz Kozlowski 
20f968b954SMateusz Kozlowski bool ftl_superblock_v5_validate_blob_area(struct spdk_ftl_dev *dev);
21f968b954SMateusz Kozlowski 
22f968b954SMateusz Kozlowski int ftl_superblock_v5_store_blob_area(struct spdk_ftl_dev *dev);
23f968b954SMateusz Kozlowski 
24f968b954SMateusz Kozlowski int ftl_superblock_v5_load_blob_area(struct spdk_ftl_dev *dev);
25f968b954SMateusz Kozlowski 
26*8fc78fd8SMateusz Kozlowski int ftl_superblock_v5_md_layout_upgrade_region(struct spdk_ftl_dev *dev,
27*8fc78fd8SMateusz Kozlowski 		struct ftl_layout_region *reg, uint32_t new_version);
28*8fc78fd8SMateusz Kozlowski 
29f968b954SMateusz Kozlowski int ftl_superblock_v5_md_layout_apply(struct spdk_ftl_dev *dev);
30f968b954SMateusz Kozlowski 
31f968b954SMateusz Kozlowski void ftl_superblock_v5_md_layout_dump(struct spdk_ftl_dev *dev);
32f968b954SMateusz Kozlowski 
33f968b954SMateusz Kozlowski #endif /* FTL_SB_V5_H */
34