Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause 2 : : * Copyright (C) 2022 Intel Corporation. 3 : : * All rights reserved. 4 : : */ 5 : : 6 : : #ifndef FTL_DF_H 7 : : #define FTL_DF_H 8 : : 9 : : #include "spdk/stdinc.h" 10 : : 11 : : /* Durable format (df) object is an offset */ 12 : : typedef uint64_t ftl_df_obj_id; 13 : : 14 : : #define FTL_DF_OBJ_ID_INVALID ((ftl_df_obj_id)-1) 15 : : 16 : : /** 17 : : * @brief Convert df object ptr to df object id 18 : : * 19 : : * @param base allocation base address 20 : : * @param df_obj_ptr df object ptr 21 : : * 22 : : * @return df object id 23 : : */ 24 : : static inline ftl_df_obj_id 25 : 249870 : ftl_df_get_obj_id(void *base, void *df_obj_ptr) 26 : : { 27 [ - + ]: 249870 : assert(base <= df_obj_ptr); 28 : 249870 : return ((char *)df_obj_ptr - (char *)base); 29 : : } 30 : : 31 : : /** 32 : : * @brief Convert df object id to df object ptr 33 : : * 34 : : * @param base allocation base address 35 : : * @param df_obj_id df object id 36 : : * 37 : : * @return df object ptr 38 : : */ 39 : : static inline void * 40 : 27870767 : ftl_df_get_obj_ptr(void *base, ftl_df_obj_id df_obj_id) 41 : : { 42 [ - + ]: 27870767 : assert(df_obj_id != FTL_DF_OBJ_ID_INVALID); 43 : 27870767 : return (void *)((uintptr_t)base + df_obj_id); 44 : : } 45 : : 46 : : #endif /* FTL_DF_H */