2022-06-09 14:05:50 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
2022-11-01 20:26:26 +00:00
|
|
|
* Copyright (C) 2022 Intel Corporation.
|
2022-06-09 14:05:50 +00:00
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef FTL_DF_H
|
|
|
|
#define FTL_DF_H
|
|
|
|
|
|
|
|
#include "spdk/stdinc.h"
|
|
|
|
|
|
|
|
/* Durable format (df) object is an offset */
|
|
|
|
typedef uint64_t ftl_df_obj_id;
|
|
|
|
|
|
|
|
#define FTL_DF_OBJ_ID_INVALID ((ftl_df_obj_id)-1)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Convert df object ptr to df object id
|
|
|
|
*
|
|
|
|
* @param base allocation base address
|
|
|
|
* @param df_obj_ptr df object ptr
|
|
|
|
*
|
|
|
|
* @return df object id
|
|
|
|
*/
|
|
|
|
static inline ftl_df_obj_id
|
|
|
|
ftl_df_get_obj_id(void *base, void *df_obj_ptr)
|
|
|
|
{
|
|
|
|
assert(base <= df_obj_ptr);
|
|
|
|
return ((char *)df_obj_ptr - (char *)base);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Convert df object id to df object ptr
|
|
|
|
*
|
|
|
|
* @param base allocation base address
|
|
|
|
* @param df_obj_id df object id
|
|
|
|
*
|
|
|
|
* @return df object ptr
|
|
|
|
*/
|
|
|
|
static inline void *
|
|
|
|
ftl_df_get_obj_ptr(void *base, ftl_df_obj_id df_obj_id)
|
|
|
|
{
|
|
|
|
assert(df_obj_id != FTL_DF_OBJ_ID_INVALID);
|
|
|
|
return ((char *)base + df_obj_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* FTL_DF_H */
|