per Intel policy to include file commit date using git cmd below. The policy does not apply to non-Intel (C) notices. git log --follow -C90% --format=%ad --date default <file> | tail -1 and then pull just the 4 digit year from the result. Intel copyrights were not added to files where Intel either had no contribution ot the contribution lacked substance (ie license header updates, formatting changes, etc). Contribution date used "--follow -C95%" to get the most accurate date. Note that several files in this patch didn't end the license/(c) block with a blank comment line so these were added as the vast majority of files do have this last blank line. Simply there for consistency. Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: Id5b7ce4f658fe87132f14139ead58d6e285c04d4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15192 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
59 lines
1.9 KiB
C
59 lines
1.9 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright (C) 2022 Intel Corporation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef FTL_L2P_H
|
|
#define FTL_L2P_H
|
|
|
|
#include "spdk/queue.h"
|
|
|
|
#include "ftl_internal.h"
|
|
|
|
struct spdk_ftl_dev;
|
|
struct ftl_nv_cache_chunk;
|
|
struct ftl_rq;
|
|
struct ftl_io;
|
|
struct ftl_l2p_pin_ctx;
|
|
|
|
typedef void (*ftl_l2p_cb)(struct spdk_ftl_dev *dev, int status, void *ctx);
|
|
typedef void (*ftl_l2p_pin_cb)(struct spdk_ftl_dev *dev, int status,
|
|
struct ftl_l2p_pin_ctx *pin_ctx);
|
|
|
|
int ftl_l2p_init(struct spdk_ftl_dev *dev);
|
|
void ftl_l2p_deinit(struct spdk_ftl_dev *dev);
|
|
|
|
struct ftl_l2p_pin_ctx {
|
|
uint64_t lba;
|
|
uint64_t count;
|
|
ftl_l2p_pin_cb cb;
|
|
void *cb_ctx;
|
|
TAILQ_ENTRY(ftl_l2p_pin_ctx) link;
|
|
};
|
|
|
|
void ftl_l2p_pin(struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count, ftl_l2p_pin_cb cb,
|
|
void *cb_ctx, struct ftl_l2p_pin_ctx *pin_ctx);
|
|
void ftl_l2p_unpin(struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count);
|
|
void ftl_l2p_pin_skip(struct spdk_ftl_dev *dev, ftl_l2p_pin_cb cb, void *cb_ctx,
|
|
struct ftl_l2p_pin_ctx *pin_ctx);
|
|
|
|
void ftl_l2p_set(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr addr);
|
|
ftl_addr ftl_l2p_get(struct spdk_ftl_dev *dev, uint64_t lba);
|
|
|
|
void ftl_l2p_clear(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx);
|
|
void ftl_l2p_unmap(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx);
|
|
void ftl_l2p_restore(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx);
|
|
void ftl_l2p_persist(struct spdk_ftl_dev *dev, ftl_l2p_cb cb, void *cb_ctx);
|
|
void ftl_l2p_process(struct spdk_ftl_dev *dev);
|
|
bool ftl_l2p_is_halted(struct spdk_ftl_dev *dev);
|
|
void ftl_l2p_halt(struct spdk_ftl_dev *dev);
|
|
|
|
void ftl_l2p_update_cache(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr new_addr,
|
|
ftl_addr old_addr);
|
|
void ftl_l2p_update_base(struct spdk_ftl_dev *dev, uint64_t lba, ftl_addr new_addr,
|
|
ftl_addr old_addr);
|
|
|
|
void ftl_l2p_pin_complete(struct spdk_ftl_dev *dev, int status, struct ftl_l2p_pin_ctx *pin_ctx);
|
|
|
|
#endif /* FTL_L2P_H */
|