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