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