1e49ccfc8SArtur Paszkiewicz /* SPDX-License-Identifier: BSD-3-Clause 2*a6dbe372Spaul luse * Copyright (C) 2022 Intel Corporation. 3e49ccfc8SArtur Paszkiewicz * All rights reserved. 4e49ccfc8SArtur Paszkiewicz */ 5e49ccfc8SArtur Paszkiewicz 6e49ccfc8SArtur Paszkiewicz #ifndef FTL_MNGT_STEPS_H 7e49ccfc8SArtur Paszkiewicz #define FTL_MNGT_STEPS_H 8e49ccfc8SArtur Paszkiewicz 9e49ccfc8SArtur Paszkiewicz #include "ftl_mngt.h" 10e49ccfc8SArtur Paszkiewicz 11b872e29fSKozlowski Mateusz void ftl_mngt_check_conf(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12b872e29fSKozlowski Mateusz 13e49ccfc8SArtur Paszkiewicz void ftl_mngt_open_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 14e49ccfc8SArtur Paszkiewicz 15e49ccfc8SArtur Paszkiewicz void ftl_mngt_close_base_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 16e49ccfc8SArtur Paszkiewicz 17f725ca81SArtur Paszkiewicz #ifdef SPDK_FTL_VSS_EMU 18f725ca81SArtur Paszkiewicz void ftl_mngt_md_init_vss_emu(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 19f725ca81SArtur Paszkiewicz 20f725ca81SArtur Paszkiewicz void ftl_mngt_md_deinit_vss_emu(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 21f725ca81SArtur Paszkiewicz #endif 22f725ca81SArtur Paszkiewicz 23c6880a39SArtur Paszkiewicz void ftl_mngt_superblock_init(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 24c6880a39SArtur Paszkiewicz 25c6880a39SArtur Paszkiewicz void ftl_mngt_superblock_deinit(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 26c6880a39SArtur Paszkiewicz 27e49ccfc8SArtur Paszkiewicz void ftl_mngt_open_cache_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 28e49ccfc8SArtur Paszkiewicz 29e49ccfc8SArtur Paszkiewicz void ftl_mngt_close_cache_bdev(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 30e49ccfc8SArtur Paszkiewicz 31d9a631adSArtur Paszkiewicz void ftl_mngt_register_io_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 32d9a631adSArtur Paszkiewicz 33d9a631adSArtur Paszkiewicz void ftl_mngt_unregister_io_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 34d9a631adSArtur Paszkiewicz 35c7213b9cSArtur Paszkiewicz void ftl_mngt_init_mem_pools(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 36c7213b9cSArtur Paszkiewicz 37c7213b9cSArtur Paszkiewicz void ftl_mngt_deinit_mem_pools(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 38c7213b9cSArtur Paszkiewicz 399dbdb029SKozlowski Mateusz void ftl_mngt_init_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 409dbdb029SKozlowski Mateusz 419dbdb029SKozlowski Mateusz void ftl_mngt_init_bands_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 429dbdb029SKozlowski Mateusz 439dbdb029SKozlowski Mateusz void ftl_mngt_deinit_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 449dbdb029SKozlowski Mateusz 45cea8dadeSArtur Paszkiewicz void ftl_mngt_deinit_bands_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 46cea8dadeSArtur Paszkiewicz 47d9a631adSArtur Paszkiewicz void ftl_mngt_init_io_channel(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 48d9a631adSArtur Paszkiewicz 49d9a631adSArtur Paszkiewicz void ftl_mngt_deinit_io_channel(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 50d9a631adSArtur Paszkiewicz 519dbdb029SKozlowski Mateusz void ftl_mngt_decorate_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 529dbdb029SKozlowski Mateusz 53c3321813SKozlowski Mateusz void ftl_mngt_initialize_band_address(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 54c3321813SKozlowski Mateusz 5543a4d47aSKozlowski Mateusz void ftl_mngt_init_reloc(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 5643a4d47aSKozlowski Mateusz 5743a4d47aSKozlowski Mateusz void ftl_mngt_deinit_reloc(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 5843a4d47aSKozlowski Mateusz 59a68a12a4SKozlowski Mateusz void ftl_mngt_init_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 60a68a12a4SKozlowski Mateusz 61a68a12a4SKozlowski Mateusz void ftl_mngt_deinit_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 62a68a12a4SKozlowski Mateusz 63b16bdc6dSArtur Paszkiewicz void ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 64b16bdc6dSArtur Paszkiewicz 65b16bdc6dSArtur Paszkiewicz void ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 66b16bdc6dSArtur Paszkiewicz 67b16bdc6dSArtur Paszkiewicz void ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 68b16bdc6dSArtur Paszkiewicz 6966fe5f75SKozlowski Mateusz void ftl_mngt_unmap_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 7066fe5f75SKozlowski Mateusz 7155147295SKozlowski Mateusz void ftl_mngt_restore_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 7255147295SKozlowski Mateusz 735022d8f3SKozlowski Mateusz void ftl_mngt_scrub_nv_cache(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 745022d8f3SKozlowski Mateusz 759dbdb029SKozlowski Mateusz void ftl_mngt_finalize_init_bands(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 769dbdb029SKozlowski Mateusz 775022d8f3SKozlowski Mateusz void ftl_mngt_finalize_startup(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 785022d8f3SKozlowski Mateusz 7917147949SArtur Paszkiewicz void ftl_mngt_start_core_poller(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 8017147949SArtur Paszkiewicz 8117147949SArtur Paszkiewicz void ftl_mngt_stop_core_poller(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 8217147949SArtur Paszkiewicz 83ef93cc38SKozlowski Mateusz void ftl_mngt_persist_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 84ef93cc38SKozlowski Mateusz 852b5bba56SArtur Paszkiewicz void ftl_mngt_init_layout(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 862b5bba56SArtur Paszkiewicz 877ff28519SKozlowski Mateusz void ftl_mngt_layout_verify(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 887ff28519SKozlowski Mateusz 897ff28519SKozlowski Mateusz void ftl_mngt_layout_upgrade(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 907ff28519SKozlowski Mateusz 917a7ac2afSArtur Paszkiewicz void ftl_mngt_init_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 927a7ac2afSArtur Paszkiewicz 937a7ac2afSArtur Paszkiewicz void ftl_mngt_deinit_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 947a7ac2afSArtur Paszkiewicz 95ef93cc38SKozlowski Mateusz void ftl_mngt_persist_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 96ef93cc38SKozlowski Mateusz 97b5e2c59aSKozlowski Mateusz void ftl_mngt_fast_persist_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 98b5e2c59aSKozlowski Mateusz 99e49ccfc8SArtur Paszkiewicz void ftl_mngt_rollback_device(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 100e49ccfc8SArtur Paszkiewicz 10192b5ebe0SKozlowski Mateusz void ftl_mngt_dump_stats(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 10292b5ebe0SKozlowski Mateusz 103c6880a39SArtur Paszkiewicz void ftl_mngt_init_default_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 104c6880a39SArtur Paszkiewicz 105c6880a39SArtur Paszkiewicz void ftl_mngt_set_dirty(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 106c6880a39SArtur Paszkiewicz 107ef93cc38SKozlowski Mateusz void ftl_mngt_set_clean(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 108ef93cc38SKozlowski Mateusz 109b5e2c59aSKozlowski Mateusz void ftl_mngt_set_shm_clean(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 110b5e2c59aSKozlowski Mateusz 111cbd7ae6dSKozlowski Mateusz void ftl_mngt_load_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 112cbd7ae6dSKozlowski Mateusz 113cbd7ae6dSKozlowski Mateusz void ftl_mngt_validate_sb(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 114cbd7ae6dSKozlowski Mateusz 115cbd7ae6dSKozlowski Mateusz void ftl_mngt_restore_md(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 116cbd7ae6dSKozlowski Mateusz 117764a3675SKozlowski Mateusz void ftl_mngt_recover(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 118764a3675SKozlowski Mateusz 119cea8dadeSArtur Paszkiewicz void ftl_mngt_init_vld_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 120cea8dadeSArtur Paszkiewicz 121cea8dadeSArtur Paszkiewicz void ftl_mngt_deinit_vld_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 122cea8dadeSArtur Paszkiewicz 12366fe5f75SKozlowski Mateusz void ftl_mngt_init_unmap_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12466fe5f75SKozlowski Mateusz 12566fe5f75SKozlowski Mateusz void ftl_mngt_deinit_unmap_map(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12666fe5f75SKozlowski Mateusz 12766fe5f75SKozlowski Mateusz void ftl_mngt_unmap_clear(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 12866fe5f75SKozlowski Mateusz 1291738488eSArtur Paszkiewicz void ftl_mngt_p2l_init_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1301738488eSArtur Paszkiewicz 1311738488eSArtur Paszkiewicz void ftl_mngt_p2l_deinit_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1321738488eSArtur Paszkiewicz 1331738488eSArtur Paszkiewicz void ftl_mngt_p2l_wipe(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1341738488eSArtur Paszkiewicz 1351738488eSArtur Paszkiewicz void ftl_mngt_p2l_free_bufs(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1361738488eSArtur Paszkiewicz 1371738488eSArtur Paszkiewicz void ftl_mngt_p2l_restore_ckpt(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1381738488eSArtur Paszkiewicz 139d4b9f2c6SKozlowski Mateusz void ftl_mngt_self_test(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 140d4b9f2c6SKozlowski Mateusz 1419dbdb029SKozlowski Mateusz void ftl_mngt_persist_band_info_metadata(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1429dbdb029SKozlowski Mateusz 143506315a6SKozlowski Mateusz void ftl_mngt_persist_nv_cache_metadata(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 144506315a6SKozlowski Mateusz 1457ff28519SKozlowski Mateusz void ftl_mngt_persist_superblock(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt); 1467ff28519SKozlowski Mateusz 147e49ccfc8SArtur Paszkiewicz #endif /* FTL_MNGT_STEPS_H */ 148