Line data Source code
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 0 : l2p_cb(struct spdk_ftl_dev *dev, int status, void *ctx) 16 : { 17 0 : struct ftl_mngt_process *mngt = ctx; 18 : 19 0 : if (status) { 20 0 : ftl_mngt_fail_step(mngt); 21 : } else { 22 0 : ftl_mngt_next_step(mngt); 23 : } 24 0 : } 25 : 26 : void 27 0 : ftl_mngt_init_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 28 : { 29 0 : if (ftl_l2p_init(dev)) { 30 0 : ftl_mngt_fail_step(mngt); 31 : } else { 32 0 : ftl_mngt_next_step(mngt); 33 : } 34 0 : } 35 : 36 : void 37 0 : ftl_mngt_deinit_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 38 : { 39 0 : ftl_l2p_deinit(dev); 40 0 : ftl_mngt_next_step(mngt); 41 0 : } 42 : 43 : void 44 0 : ftl_mngt_clear_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 45 : { 46 0 : ftl_l2p_clear(dev, l2p_cb, mngt); 47 0 : } 48 : 49 : void 50 0 : ftl_mngt_persist_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 51 : { 52 0 : ftl_l2p_persist(dev, l2p_cb, mngt); 53 0 : } 54 : 55 : void 56 0 : ftl_mngt_unmap_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 57 : { 58 0 : ftl_l2p_unmap(dev, l2p_cb, mngt); 59 0 : } 60 : 61 : void 62 0 : ftl_mngt_restore_l2p(struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt) 63 : { 64 0 : ftl_l2p_restore(dev, l2p_cb, mngt); 65 0 : }