1e49ccfc8SArtur Paszkiewicz /* SPDX-License-Identifier: BSD-3-Clause 217cf101bSMateusz Kozlowski * Copyright 2023 Solidigm All Rights Reserved 3a6dbe372Spaul luse * Copyright (C) 2022 Intel Corporation. 4e49ccfc8SArtur Paszkiewicz * All rights reserved. 5e49ccfc8SArtur Paszkiewicz */ 6e49ccfc8SArtur Paszkiewicz 7e49ccfc8SArtur Paszkiewicz #ifndef FTL_MNGT_STEPS_H 8e49ccfc8SArtur Paszkiewicz #define FTL_MNGT_STEPS_H 9e49ccfc8SArtur Paszkiewicz 10e49ccfc8SArtur Paszkiewicz #include "ftl_mngt.h" 11e49ccfc8SArtur Paszkiewicz 12b872e29fSKozlowski Mateusz void ftl_mngt_check_conf(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 13b872e29fSKozlowski Mateusz 14e49ccfc8SArtur Paszkiewicz void ftl_mngt_open_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 15e49ccfc8SArtur Paszkiewicz 16e49ccfc8SArtur Paszkiewicz void ftl_mngt_close_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 17e49ccfc8SArtur Paszkiewicz 18c6880a39SArtur Paszkiewicz void ftl_mngt_superblock_init(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 19c6880a39SArtur Paszkiewicz 20c6880a39SArtur Paszkiewicz void ftl_mngt_superblock_deinit(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 21c6880a39SArtur Paszkiewicz 22e49ccfc8SArtur Paszkiewicz void ftl_mngt_open_cache_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 23e49ccfc8SArtur Paszkiewicz 24e49ccfc8SArtur Paszkiewicz void ftl_mngt_close_cache_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 25e49ccfc8SArtur Paszkiewicz 26d9a631adSArtur Paszkiewicz void ftl_mngt_register_io_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 27d9a631adSArtur Paszkiewicz 28d9a631adSArtur Paszkiewicz void ftl_mngt_unregister_io_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 29d9a631adSArtur Paszkiewicz 30c7213b9cSArtur Paszkiewicz void ftl_mngt_init_mem_pools(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 31c7213b9cSArtur Paszkiewicz 32c7213b9cSArtur Paszkiewicz void ftl_mngt_deinit_mem_pools(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 33c7213b9cSArtur Paszkiewicz 349dbdb029SKozlowski Mateusz void ftl_mngt_init_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 359dbdb029SKozlowski Mateusz 369dbdb029SKozlowski Mateusz void ftl_mngt_init_bands_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 379dbdb029SKozlowski Mateusz 389dbdb029SKozlowski Mateusz void ftl_mngt_deinit_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 399dbdb029SKozlowski Mateusz 40cea8dadeSArtur Paszkiewicz void ftl_mngt_deinit_bands_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 41cea8dadeSArtur Paszkiewicz 42d9a631adSArtur Paszkiewicz void ftl_mngt_init_io_channel(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 43d9a631adSArtur Paszkiewicz 44d9a631adSArtur Paszkiewicz void ftl_mngt_deinit_io_channel(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 45d9a631adSArtur Paszkiewicz 469dbdb029SKozlowski Mateusz void ftl_mngt_decorate_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 479dbdb029SKozlowski Mateusz 48c3321813SKozlowski Mateusz void ftl_mngt_initialize_band_address(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 49c3321813SKozlowski Mateusz 5043a4d47aSKozlowski Mateusz void ftl_mngt_init_reloc(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 5143a4d47aSKozlowski Mateusz 5243a4d47aSKozlowski Mateusz void ftl_mngt_deinit_reloc(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 5343a4d47aSKozlowski Mateusz 54a68a12a4SKozlowski Mateusz void ftl_mngt_init_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 55a68a12a4SKozlowski Mateusz 56a68a12a4SKozlowski Mateusz void ftl_mngt_deinit_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 57a68a12a4SKozlowski Mateusz 58b16bdc6dSArtur Paszkiewicz void ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 59b16bdc6dSArtur Paszkiewicz 60b16bdc6dSArtur Paszkiewicz void ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 61b16bdc6dSArtur Paszkiewicz 62b16bdc6dSArtur Paszkiewicz void ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 63b16bdc6dSArtur Paszkiewicz 64106ad379SMateusz Kozlowski void ftl_mngt_trim_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 6566fe5f75SKozlowski Mateusz 6655147295SKozlowski Mateusz void ftl_mngt_restore_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 6755147295SKozlowski Mateusz 685022d8f3SKozlowski Mateusz void ftl_mngt_scrub_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 695022d8f3SKozlowski Mateusz 709dbdb029SKozlowski Mateusz void ftl_mngt_finalize_init_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 719dbdb029SKozlowski Mateusz 725022d8f3SKozlowski Mateusz void ftl_mngt_finalize_startup(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 735022d8f3SKozlowski Mateusz 7417147949SArtur Paszkiewicz void ftl_mngt_start_core_poller(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 7517147949SArtur Paszkiewicz 7617147949SArtur Paszkiewicz void ftl_mngt_stop_core_poller(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 7717147949SArtur Paszkiewicz 78ef93cc38SKozlowski Mateusz void ftl_mngt_persist_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 79ef93cc38SKozlowski Mateusz 802b5bba56SArtur Paszkiewicz void ftl_mngt_init_layout(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 812b5bba56SArtur Paszkiewicz 827ff28519SKozlowski Mateusz void ftl_mngt_layout_verify(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 837ff28519SKozlowski Mateusz 847ff28519SKozlowski Mateusz void ftl_mngt_layout_upgrade(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 857ff28519SKozlowski Mateusz 867a7ac2afSArtur Paszkiewicz void ftl_mngt_init_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 877a7ac2afSArtur Paszkiewicz 887a7ac2afSArtur Paszkiewicz void ftl_mngt_deinit_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 897a7ac2afSArtur Paszkiewicz 90ef93cc38SKozlowski Mateusz void ftl_mngt_persist_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 91ef93cc38SKozlowski Mateusz 92b5e2c59aSKozlowski Mateusz void ftl_mngt_fast_persist_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 93b5e2c59aSKozlowski Mateusz 94e49ccfc8SArtur Paszkiewicz void ftl_mngt_rollback_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 95e49ccfc8SArtur Paszkiewicz 9692b5ebe0SKozlowski Mateusz void ftl_mngt_dump_stats(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 9792b5ebe0SKozlowski Mateusz 98c6880a39SArtur Paszkiewicz void ftl_mngt_init_default_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 99c6880a39SArtur Paszkiewicz 100c6880a39SArtur Paszkiewicz void ftl_mngt_set_dirty(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 101c6880a39SArtur Paszkiewicz 102ef93cc38SKozlowski Mateusz void ftl_mngt_set_clean(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 103ef93cc38SKozlowski Mateusz 104b5e2c59aSKozlowski Mateusz void ftl_mngt_set_shm_clean(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 105b5e2c59aSKozlowski Mateusz 106cbd7ae6dSKozlowski Mateusz void ftl_mngt_load_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 107cbd7ae6dSKozlowski Mateusz 108cbd7ae6dSKozlowski Mateusz void ftl_mngt_validate_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 109cbd7ae6dSKozlowski Mateusz 110cbd7ae6dSKozlowski Mateusz void ftl_mngt_restore_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 111cbd7ae6dSKozlowski Mateusz 112764a3675SKozlowski Mateusz void ftl_mngt_recover(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 113764a3675SKozlowski Mateusz 114cea8dadeSArtur Paszkiewicz void ftl_mngt_init_vld_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 115cea8dadeSArtur Paszkiewicz 116cea8dadeSArtur Paszkiewicz void ftl_mngt_deinit_vld_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 117cea8dadeSArtur Paszkiewicz 118106ad379SMateusz Kozlowski void ftl_mngt_init_trim_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 11966fe5f75SKozlowski Mateusz 120106ad379SMateusz Kozlowski void ftl_mngt_deinit_trim_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12166fe5f75SKozlowski Mateusz 122106ad379SMateusz Kozlowski void ftl_mngt_trim_metadata_clear(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12366fe5f75SKozlowski Mateusz 1242d613454SMateusz Kozlowski void ftl_mngt_trim_log_clear(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1252d613454SMateusz Kozlowski 1261738488eSArtur Paszkiewicz void ftl_mngt_p2l_init_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1271738488eSArtur Paszkiewicz 1281738488eSArtur Paszkiewicz void ftl_mngt_p2l_deinit_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1291738488eSArtur Paszkiewicz 1301738488eSArtur Paszkiewicz void ftl_mngt_p2l_wipe(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1311738488eSArtur Paszkiewicz 132*6d6179ffSMateusz Kozlowski void ftl_mngt_p2l_log_io_wipe(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 133*6d6179ffSMateusz Kozlowski 1341738488eSArtur Paszkiewicz void ftl_mngt_p2l_free_bufs(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1351738488eSArtur Paszkiewicz 1361738488eSArtur Paszkiewicz void ftl_mngt_p2l_restore_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1371738488eSArtur Paszkiewicz 138d4b9f2c6SKozlowski Mateusz void ftl_mngt_self_test(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 139d4b9f2c6SKozlowski Mateusz 1409dbdb029SKozlowski Mateusz void ftl_mngt_persist_band_info_metadata(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1419dbdb029SKozlowski Mateusz 142506315a6SKozlowski Mateusz void ftl_mngt_persist_nv_cache_metadata(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 143506315a6SKozlowski Mateusz 1447ff28519SKozlowski Mateusz void ftl_mngt_persist_superblock(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1457ff28519SKozlowski Mateusz 146e49ccfc8SArtur Paszkiewicz #endif /* FTL_MNGT_STEPS_H */ 147