xref: /spdk/lib/ftl/mngt/ftl_mngt_l2p.c (revision 95d6c9fac17572b107042103439aafd696d60b0e)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (C) 2022 Intel Corporation.
3  *   All rights reserved.
4  */
5 
6 #include "spdk/thread.h"
7 
8 #include "ftl_core.h"
9 #include "ftl_mngt.h"
10 #include "ftl_mngt_steps.h"
11 #include "ftl_band.h"
12 #include "ftl_l2p.h"
13 
14 static void
15 l2p_cb(struct spdk_ftl_dev *dev, int status, void *ctx)
16 {
17 	struct ftl_mngt_process *mngt = ctx;
18 
19 	if (status) {
20 		ftl_mngt_fail_step(mngt);
21 	} else {
22 		ftl_mngt_next_step(mngt);
23 	}
24 }
25 
26 void
27 ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
28 {
29 	if (ftl_l2p_init(dev)) {
30 		ftl_mngt_fail_step(mngt);
31 	} else {
32 		ftl_mngt_next_step(mngt);
33 	}
34 }
35 
36 void
37 ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
38 {
39 	ftl_l2p_deinit(dev);
40 	ftl_mngt_next_step(mngt);
41 }
42 
43 void
44 ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
45 {
46 	ftl_l2p_clear(dev, l2p_cb, mngt);
47 }
48 
49 void
50 ftl_mngt_persist_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
51 {
52 	ftl_l2p_persist(dev, l2p_cb, mngt);
53 }
54 
55 void
56 ftl_mngt_trim_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
57 {
58 	ftl_l2p_trim(dev, l2p_cb, mngt);
59 }
60 
61 void
62 ftl_mngt_restore_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
63 {
64 	ftl_l2p_restore(dev, l2p_cb, mngt);
65 }
66