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