23 #error "Do not include this file outside the H5B2 package!" 30 #include "H5B2private.h" 33 #include "H5ACprivate.h" 34 #include "H5FLprivate.h" 42 #define H5B2_SIZEOF_RECORDS_PER_NODE (unsigned)2 46 #define H5B2_TREE_POINTER_SIZE(h) ( \ 48 H5B2_SIZEOF_RECORDS_PER_NODE + \ 53 #define H5B2_INT_POINTER_SIZE(h, d) ( \ 54 (unsigned)(h)->sizeof_addr \ 55 + (h)->max_nrec_size \ 56 + (h)->node_info[(d) - 1].cum_max_nrec_size \ 60 #define H5B2_SIZEOF_CHKSUM 4 63 #define H5B2_METADATA_PREFIX_SIZE ( \ 64 (unsigned)H5_SIZEOF_MAGIC \ 67 + (unsigned)H5B2_SIZEOF_CHKSUM \ 71 #define H5B2_HEADER_SIZE(h) ( \ 73 H5B2_METADATA_PREFIX_SIZE \ 81 + H5B2_TREE_POINTER_SIZE(h) \ 85 #define H5B2_INT_PREFIX_SIZE ( \ 87 H5B2_METADATA_PREFIX_SIZE \ 94 #define H5B2_LEAF_PREFIX_SIZE ( \ 96 H5B2_METADATA_PREFIX_SIZE \ 103 #define H5B2_NAT_NREC(b, hdr, idx) ((b) + (hdr)->nat_off[(idx)]) 106 #define H5B2_INT_NREC(i, hdr, idx) H5B2_NAT_NREC((i)->int_native, (hdr), (idx)) 109 #define H5B2_LEAF_NREC(l, hdr, idx) H5B2_NAT_NREC((l)->leaf_native, (hdr), (idx)) 113 #define H5B2_NUM_INT_REC(h, d) \ 114 (((h)->node_size - (H5B2_INT_PREFIX_SIZE + H5B2_INT_POINTER_SIZE(h, d))) / ((h)->rrec_size + H5B2_INT_POINTER_SIZE(h, d))) 245 } H5B2_node_info_test_t;
270 H5_DLLVAR const H5B2_class_t H5B2_TEST[1];
284 const H5B2_create_t *cparam,
void *ctx_udata);
286 void *ctx_udata, uint16_t
depth);
296 unsigned nrec, H5AC_protect_t rw);
314 unsigned depth,
unsigned *parent_cache_info_flags_ptr,
327 size_t *rec_off,
const uint8_t *native,
const void *udata,
unsigned *
idx,
int *result);
330 H5B2_compare_t comp,
void *udata, H5B2_found_t op,
void *op_data);
333 H5B2_compare_t comp,
void *udata, H5B2_found_t op,
void *op_data);
337 hbool_t *depth_decreased,
void *swap_loc,
unsigned depth,
338 H5AC_info_t *parent_cache_info,
unsigned *parent_cache_info_flags_ptr,
340 H5B2_remove_t op,
void *op_data);
343 void *udata, H5B2_remove_t op,
void *op_data);
345 hbool_t *depth_decreased,
void *swap_loc,
unsigned depth,
346 H5AC_info_t *parent_cache_info,
unsigned *parent_cache_info_flags_ptr,
348 H5B2_remove_t op,
void *op_data);
351 unsigned idx, H5B2_remove_t op,
void *op_data);
359 FILE *stream,
int indent,
int fwidth,
const H5B2_class_t *
type,
haddr_t obj_addr);
361 FILE *stream,
int indent,
int fwidth,
const H5B2_class_t *
type,
364 FILE *stream,
int indent,
int fwidth,
const H5B2_class_t *
type,
372 void *udata, H5B2_node_info_test_t *ninfo);
H5_DLL herr_t H5B2_split_root(H5B2_hdr_t *hdr, hid_t dxpl_id)
H5_DLL herr_t H5B2_delete_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, H5B2_remove_t op, void *op_data)
H5B2_node_info_t * node_info
H5_DLL herr_t H5B2_internal_free(H5B2_internal_t *i)
H5_DLL herr_t H5B2_neighbor_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *udata, H5B2_found_t op, void *op_data)
H5_DLL herr_t H5B2_hdr_free(H5B2_hdr_t *hdr)
H5_DLLVAR const H5AC_class_t H5AC_BT2_INT[1]
H5_DLL herr_t H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata)
H5_DLL size_t H5B2_hdr_fuse_decr(H5B2_hdr_t *hdr)
H5B2_node_ptr_t * node_ptrs
struct H5B2_hdr_cache_ud_t H5B2_hdr_cache_ud_t
H5_DLL herr_t H5B2_create_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *node_ptr)
H5_DLL H5B2_internal_t * H5B2_protect_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec, unsigned depth, H5AC_protect_t rw)
H5B2_leaf_t * H5B2_protect_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec, H5AC_protect_t rw)
H5_DLL herr_t H5B2_leaf_free(H5B2_leaf_t *l)
H5_DLL herr_t H5B2_hdr_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t obj_addr)
struct H5B2_hdr_t H5B2_hdr_t
unsigned long long hsize_t
H5_DLL herr_t H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata)
H5_DLL herr_t H5B2_hdr_fuse_incr(H5B2_hdr_t *hdr)
H5FL_EXTERN(H5B2_internal_t)
H5_DLL herr_t H5B2_hdr_incr(H5B2_hdr_t *hdr)
const H5B2_class_t *const H5B2_client_class_g[H5B2_NUM_BTREE_ID]
H5_DLLVAR const H5AC_class_t H5AC_BT2_HDR[1]
H5_DLL herr_t H5B2_hdr_delete(H5B2_hdr_t *hdr, hid_t dxpl_id)
H5_DLL herr_t H5B2_neighbor_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *udata, H5B2_found_t op, void *op_data)
H5_DLL herr_t H5B2_iterate_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, H5B2_operator_t op, void *op_data)
H5_DLL haddr_t H5B2_hdr_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udata)
H5FL_fac_head_t * node_ptr_fac
H5_DLL herr_t H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, unsigned idx, H5B2_remove_t op, void *op_data)
HDFFCLIBAPI _fcd _fcd intf * n
H5_DLL herr_t H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, H5B2_nodepos_t curr_pos, H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data)
H5_DLL H5B2_hdr_t * H5B2_hdr_alloc(H5F_t *f)
struct H5B2_internal_t H5B2_internal_t
struct H5B2_internal_cache_ud_t H5B2_internal_cache_ud_t
H5_DLL herr_t H5B2_hdr_decr(H5B2_hdr_t *hdr)
H5_DLL herr_t H5B2_int_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t hdr_addr, unsigned nrec, unsigned depth, haddr_t obj_addr)
HDFFCLIBAPI intf intf intf * type
H5_DLL herr_t H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n, H5B2_remove_t op, void *op_data)
struct H5B2_leaf_t H5B2_leaf_t
H5_DLL herr_t H5B2_leaf_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t hdr_addr, unsigned nrec, haddr_t obj_addr)
H5_DLL herr_t H5B2_hdr_init(H5B2_hdr_t *hdr, const H5B2_create_t *cparam, void *ctx_udata, uint16_t depth)
H5FL_fac_head_t * nat_rec_fac
H5_DLL herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata, H5B2_remove_t op, void *op_data)
H5_DLL herr_t H5B2_hdr_dirty(H5B2_hdr_t *hdr)
H5_DLL herr_t H5B2_node_size(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, const H5B2_node_ptr_t *curr_node, hsize_t *op_data)
uint8_t cum_max_nrec_size
struct H5B2_leaf_cache_ud_t H5B2_leaf_cache_ud_t
H5_DLL int H5B2_locate_record(const H5B2_class_t *type, unsigned nrec, size_t *rec_off, const uint8_t *native, const void *udata, unsigned *idx, int *result)
H5_DLLVAR const H5AC_class_t H5AC_BT2_LEAF[1]