xref: /spdk/lib/ftl/ftl_l2p_cache.h (revision fecffda6ecf8853b82edccde429b68252f0a62c5)
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