xref: /spdk/lib/ftl/mngt/ftl_mngt_steps.h (revision a6dbe3721eb3b5990707fc3e378c95e505dd8ab5)
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