1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2022 Intel Corporation. 3 * All rights reserved. 4 */ 5 6 #ifndef FTL_L2P_CACHE_H 7 #define FTL_L2P_CACHE_H 8 9 #define FTL_L2P_CACHE_MD_NAME_L1 "l2p_l1" 10 #define FTL_L2P_CACHE_MD_NAME_L2 "l2p_l2" 11 #define FTL_L2P_CACHE_MD_NAME_L2_CTX "l2p_l2_ctx" 12 13 int ftl_l2p_cache_init(struct spdk_ftl_dev *dev); 14 void ftl_l2p_cache_deinit(struct spdk_ftl_dev *dev); 15 void ftl_l2p_cache_pin(struct spdk_ftl_dev *dev, struct ftl_l2p_pin_ctx *pin_ctx); 16 void ftl_l2p_cache_unpin(struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count); 17 ftl_addr ftl_l2p_cache_get(struct spdk_ftl_dev *dev, uint64_t lba); 18 void ftl_l2p_cache_set(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr addr); 19 void ftl_l2p_cache_unmap(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx); 20 void ftl_l2p_cache_clear(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx); 21 void ftl_l2p_cache_restore(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx); 22 void ftl_l2p_cache_persist(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx); 23 void ftl_l2p_cache_process(struct spdk_ftl_dev *dev); 24 bool ftl_l2p_cache_is_halted(struct spdk_ftl_dev *dev); 25 void ftl_l2p_cache_halt(struct spdk_ftl_dev *dev); 26 27 #endif /* FTL_L2P_CACHE_H */ 28