xref: /spdk/lib/ftl/mngt/ftl_mngt_l2p.c (revision 081f080a49a3dbe31acb2a8557db90b08bbeaf9c)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (c) 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_l2p.h"
12 
13 static void
14 l2p_cb(struct spdk_ftl_dev *dev, int status, void *ctx)
15 {
16 	struct ftl_mngt_process *mngt = ctx;
17 
18 	if (status) {
19 		ftl_mngt_fail_step(mngt);
20 	} else {
21 		ftl_mngt_next_step(mngt);
22 	}
23 }
24 
25 void
26 ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
27 {
28 	if (ftl_l2p_init(dev)) {
29 		ftl_mngt_fail_step(mngt);
30 	} else {
31 		ftl_mngt_next_step(mngt);
32 	}
33 }
34 
35 void
36 ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
37 {
38 	ftl_l2p_deinit(dev);
39 	ftl_mngt_next_step(mngt);
40 }
41 
42 void
43 ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt)
44 {
45 	ftl_l2p_clear(dev, l2p_cb, mngt);
46 }
47