23 #error "Do not include this file outside the H5SM package!" 30 #include "H5SMprivate.h" 33 #include "H5ACprivate.h" 34 #include "H5B2private.h" 35 #include "H5HFprivate.h" 43 #define H5SM_SIZEOF_CHECKSUM 4 45 #define H5SM_HEAP_LOC_SIZE ( \ 47 + sizeof(H5O_fheap_id_t) \ 50 #define H5SM_OH_LOC_SIZE(f) ( \ 54 + H5F_SIZEOF_ADDR(f) \ 57 #define H5SM_SOHM_ENTRY_SIZE(f) ( \ 60 + MAX(H5SM_HEAP_LOC_SIZE, H5SM_OH_LOC_SIZE(f)) \ 63 #define H5SM_INDEX_HEADER_SIZE(f) ( \ 69 + H5F_SIZEOF_ADDR(f) \ 70 + H5F_SIZEOF_ADDR(f) \ 74 #define H5SM_METADATA_PREFIX_SIZE ( \ 76 + H5SM_SIZEOF_CHECKSUM \ 79 #define H5SM_TABLE_SIZE(f) ( \ 81 H5SM_METADATA_PREFIX_SIZE \ 84 + (H5F_SOHM_NINDEXES(f) * H5SM_INDEX_HEADER_SIZE(f)) \ 87 #define H5SM_LIST_SIZE(f, num_mesg) ( \ 89 H5SM_METADATA_PREFIX_SIZE \ 92 + (H5SM_SOHM_ENTRY_SIZE(f) * num_mesg) \ 95 #define H5SM_B2_NODE_SIZE 512 96 #define H5SM_B2_SPLIT_PERCENT 100 97 #define H5SM_B2_MERGE_PERCENT 40 99 #define H5SM_LIST_VERSION 0 H5FL_ARR_EXTERN(H5SM_index_header_t)
struct H5SM_bt2_ctx_t H5SM_bt2_ctx_t
herr_t H5SM_list_free(H5SM_list_t *list)
H5_DLL herr_t H5SM_bt2_convert_to_list_op(const void *record, void *op_data)
H5SM_index_header_t * header
unsigned long long hsize_t
H5_DLL herr_t H5SM_get_hash_fh_cb(const void *obj, size_t obj_len, void *_udata)
struct H5SM_table_cache_ud_t H5SM_table_cache_ud_t
H5_DLLVAR const H5B2_class_t H5SM_INDEX[1]
H5FL_EXTERN(H5SM_master_table_t)
H5_DLL ssize_t H5SM_get_index(const H5SM_master_table_t *table, unsigned type_id)
H5SM_storage_loc_t location
H5_DLL herr_t H5SM_message_compare(const void *rec1, const void *rec2, int *result)
H5_DLLVAR const H5AC_class_t H5AC_SOHM_TABLE[1]
H5SM_index_header_t * header
H5_DLLVAR const H5AC_class_t H5AC_SOHM_LIST[1]
H5SM_index_header_t * indexes
herr_t H5SM_table_free(H5SM_master_table_t *table)
H5_DLL herr_t H5SM_message_encode(uint8_t *raw, const void *native, void *ctx)
struct H5SM_list_cache_ud_t H5SM_list_cache_ud_t
H5_DLL herr_t H5SM_message_decode(const uint8_t *raw, void *native, void *ctx)