 |
HDF5
1.12.0
|
Go to the documentation of this file.
22 #if !(defined H5B2_FRIEND || defined H5B2_MODULE)
23 #error "Do not include this file outside the H5B2 package!"
42 #define H5B2_SIZEOF_RECORDS_PER_NODE (unsigned)2
46 #define H5B2_TREE_POINTER_SIZE(sizeof_addr, sizeof_size) ( \
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(sizeof_addr, sizeof_size) ( \
73 H5B2_METADATA_PREFIX_SIZE \
81 + H5B2_TREE_POINTER_SIZE(sizeof_addr, sizeof_size) \
85 #define H5B2_HEADER_SIZE_FILE(f) ( \
86 H5B2_HEADER_SIZE(H5F_SIZEOF_ADDR(f), H5F_SIZEOF_SIZE(f)) \
90 #define H5B2_HEADER_SIZE_HDR(h) ( \
91 H5B2_HEADER_SIZE((h)->sizeof_addr, (h)->sizeof_size) \
95 #define H5B2_INT_PREFIX_SIZE ( \
97 H5B2_METADATA_PREFIX_SIZE \
104 #define H5B2_LEAF_PREFIX_SIZE ( \
106 H5B2_METADATA_PREFIX_SIZE \
113 #define H5B2_NAT_NREC(b, hdr, idx) ((b) + (hdr)->nat_off[(idx)])
116 #define H5B2_INT_NREC(i, hdr, idx) H5B2_NAT_NREC((i)->int_native, (hdr), (idx))
119 #define H5B2_LEAF_NREC(l, hdr, idx) H5B2_NAT_NREC((l)->leaf_native, (hdr), (idx))
123 #define H5B2_NUM_INT_REC(h, d) \
124 (((h)->node_size - (H5B2_INT_PREFIX_SIZE + H5B2_INT_POINTER_SIZE(h, d))) / ((h)->rrec_size + H5B2_INT_POINTER_SIZE(h, d)))
297 typedef struct H5B2_node_info_test_t {
300 } H5B2_node_info_test_t;
320 typedef struct H5B2_test_rec_t {
345 unsigned *internal_flags_ptr,
unsigned idx);
349 H5B2_internal_t *
internal,
unsigned *internal_flags_ptr,
unsigned idx);
352 unsigned *internal_flags_ptr,
unsigned idx);
355 unsigned *internal_flags_ptr,
unsigned idx);
368 void *ctx_udata,
unsigned flags);
376 unsigned *internal_flags_ptr,
unsigned idx,
void *swap_loc);
419 size_t *rec_off,
const uint8_t *native,
const void *udata,
unsigned *idx,
int *
result);
422 void *parent,
void *udata,
H5B2_found_t op,
void *op_data);
424 void *neighbor_loc,
H5B2_compare_t comp,
void *parent,
void *udata,
437 hbool_t *depth_decreased,
void *swap_loc,
void *swap_parent,
uint16_t depth,
438 H5AC_info_t *parent_cache_info,
unsigned *parent_cache_info_flags_ptr,
473 H5B2_node_info_test_t *ninfo);
H5_DLL herr_t H5B2__int_debug(H5F_t *f, 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)
Definition: H5B2private.h:99
uint16_t depth
Definition: H5B2pkg.h:240
haddr_t addr
Definition: H5B2pkg.h:274
struct H5B2_leaf_t H5B2_leaf_t
uint8_t * int_native
Definition: H5B2pkg.h:237
H5FL_EXTERN(H5B2_internal_t)
H5_DLL herr_t H5B2__hdr_incr(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:364
size_t file_rc
Definition: H5B2pkg.h:177
H5_DLL herr_t H5B2__split1(H5B2_hdr_t *hdr, uint16_t depth, H5B2_node_ptr_t *curr_node_ptr, unsigned *parent_cache_info_flags_ptr, H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx)
Definition: H5B2int.c:150
const H5B2_class_t * cls
Definition: H5B2pkg.h:210
herr_t H5B2__get_node_info_test(H5B2_t *bt2, void *udata, H5B2_node_info_test_t *ninfo)
Definition: H5B2test.c:512
uint8_t split_percent
Definition: H5B2pkg.h:161
H5B2_nodepos_t
Definition: H5B2pkg.h:255
hdr f
Definition: H5EA.c:755
uint16_t nrec
Definition: H5B2pkg.h:292
size_t hdr_size
Definition: H5B2pkg.h:175
herr_t(* H5B2_remove_t)(const void *record, void *op_data)
Definition: H5B2private.h:69
Definition: H5B2pkg.h:215
H5_DLL herr_t H5B2__hdr_unprotect(H5B2_hdr_t *hdr, unsigned cache_flags)
Definition: H5B2hdr.c:591
Definition: H5B2pkg.h:272
const H5B2_class_t H5B2_TEST[1]
Definition: H5B2test.c:86
unsigned merge_nrec
Definition: H5B2pkg.h:145
Definition: H5B2pkg.h:249
H5_DLL herr_t H5B2__hdr_decr(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:400
H5AC_info_t cache_info
Definition: H5B2pkg.h:233
H5AC_proxy_entry_t * top_proxy
Definition: H5B2pkg.h:225
@ H5B2_POS_MIDDLE
Definition: H5B2pkg.h:259
H5B2_node_ptr_t root
Definition: H5B2pkg.h:158
H5_DLL herr_t H5B2__delete_node(H5B2_hdr_t *hdr, uint16_t depth, const H5B2_node_ptr_t *curr_node, void *parent, H5B2_remove_t op, void *op_data)
Definition: H5B2int.c:1621
struct H5B2_hdr_cache_ud_t H5B2_hdr_cache_ud_t
H5FL_fac_head_t * nat_rec_fac
Definition: H5B2pkg.h:148
H5_DLL herr_t H5B2__hdr_delete(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:700
@ H5B2_UPDATE_MODIFY_DONE
Definition: H5B2pkg.h:265
Definition: H5B2pkg.h:153
uint32_t
Definition: H5overflow.txt:38
uint16_t depth
Definition: H5B2pkg.h:167
H5_DLL herr_t 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)
Definition: H5B2int.c:106
H5_DLL H5B2_hdr_t * H5B2__hdr_protect(H5F_t *f, haddr_t hdr_addr, void *ctx_udata, unsigned flags)
Definition: H5B2hdr.c:526
CATCH haddr_t
Definition: H5EAdblock.c:162
H5FL_fac_head_t * node_ptr_fac
Definition: H5B2pkg.h:149
*s *s indent
Definition: H5HLdbg.c:111
H5AC_info_t cache_info
Definition: H5B2pkg.h:155
void * parent
Definition: H5B2pkg.h:244
unsigned split_nrec
Definition: H5B2pkg.h:144
uint32_t rrec_size
Definition: H5B2pkg.h:164
hsize_t all_nrec
Definition: H5B2pkg.h:138
Definition: H5Ztrans.c:67
uint16_t nrec
Definition: H5B2pkg.h:222
H5_DLL herr_t H5B2__split_root(H5B2_hdr_t *hdr)
Definition: H5B2int.c:345
uint64_t shadow_epoch
Definition: H5B2pkg.h:245
#define H5_DLLVAR
Definition: H5api_adpt.h:235
H5_DLL H5B2_hdr_t * H5B2__hdr_alloc(H5F_t *f)
Definition: H5B2hdr.c:239
Definition: H5B2pkg.h:231
void * min_native_rec
Definition: H5B2pkg.h:186
H5_DLL herr_t H5B2__create_internal(H5B2_hdr_t *hdr, void *parent, H5B2_node_ptr_t *node_ptr, uint16_t depth)
Definition: H5B2internal.c:96
void * parent
Definition: H5B2pkg.h:291
H5_DLL herr_t H5B2__create_leaf(H5B2_hdr_t *hdr, void *parent, H5B2_node_ptr_t *node_ptr)
Definition: H5B2leaf.c:97
Definition: H5B2pkg.h:135
H5F_t * f
Definition: H5B2pkg.h:173
unsigned max_nrec
Definition: H5B2pkg.h:143
void * remove_op_data
Definition: H5B2pkg.h:182
@ H5B2_UPDATE_SHADOW_DONE
Definition: H5B2pkg.h:266
struct H5B2_internal_cache_ud_t H5B2_internal_cache_ud_t
unsigned char uint8_t
Definition: H5private.h:429
size_t rc
Definition: H5B2pkg.h:176
uint64_t shadow_epoch
Definition: H5B2pkg.h:227
hdr
Definition: H5EAhdr.c:821
herr_t H5B2__get_root_addr_test(H5B2_t *bt2, haddr_t *root_addr)
Definition: H5B2test.c:484
Definition: H5ACprivate.h:203
hsize_t cum_max_nrec
Definition: H5B2pkg.h:146
Definition: H5FLprivate.h:354
H5_DLL herr_t H5B2__update_flush_depend(H5B2_hdr_t *hdr, unsigned depth, const H5B2_node_ptr_t *node_ptr, void *old_parent, void *new_parent)
Definition: H5B2int.c:1788
H5AC_proxy_entry_t * top_proxy
Definition: H5B2pkg.h:191
H5B2_hdr_t * hdr
Definition: H5B2pkg.h:281
hbool_t swmr_write
Definition: H5B2pkg.h:190
H5B2_hdr_t * hdr
Definition: H5B2pkg.h:250
const H5B2_class_t *const H5B2_client_class_g[H5B2_NUM_BTREE_ID]
Definition: H5B2.c:92
H5AC_info_t cache_info
Definition: H5B2pkg.h:217
uint8_t sizeof_addr
Definition: H5B2pkg.h:180
H5_DLL herr_t H5B2__insert(H5B2_hdr_t *hdr, void *udata)
Definition: H5B2int.c:1446
H5_DLL herr_t H5B2__remove_leaf(H5B2_hdr_t *hdr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *parent, void *udata, H5B2_remove_t op, void *op_data)
Definition: H5B2leaf.c:774
uint8_t * page
Definition: H5B2pkg.h:183
uint16_t nrec
Definition: H5B2pkg.h:283
struct H5B2_leaf_cache_ud_t H5B2_leaf_cache_ud_t
H5B2_node_info_t * node_info
Definition: H5B2pkg.h:185
H5_DLL H5B2_internal_t * H5B2__protect_internal(H5B2_hdr_t *hdr, void *parent, H5B2_node_ptr_t *node_ptr, uint16_t depth, hbool_t shadow, unsigned flags)
Definition: H5B2internal.c:192
H5_DLL herr_t H5B2__remove_internal(H5B2_hdr_t *hdr, hbool_t *depth_decreased, void *swap_loc, void *swap_parent, uint16_t 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)
Definition: H5B2internal.c:791
@ H5B2_UPDATE_INSERT_CHILD_FULL
Definition: H5B2pkg.h:268
uint16_t
Definition: H5overflow.txt:37
Invalid arguments to routine Resource unavailable Internal File accessibility Low level I O Function entry exit Object atom Object cache Links B Tree node Symbol table Heap Object header Datatype Dataspace Dataset Data storage Property lists Attribute Data filters External file list References Virtual File Layer Virtual Object Layer Ternary Search Trees Reference Counted Strings Error API Skip Lists Free Space Manager Shared Object Header Messages Extensible Array Fixed Array Plugin for dynamically loaded library Page Buffering API Context Map No error Argument errors Resource errors File accessibility errors FILE
Definition: H5err.txt:88
uint8_t merge_percent
Definition: H5B2pkg.h:162
H5_DLL herr_t H5B2__redistribute3(H5B2_hdr_t *hdr, uint16_t depth, H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx)
Definition: H5B2int.c:667
void * max_native_rec
Definition: H5B2pkg.h:187
H5_DLL herr_t H5B2__leaf_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t hdr_addr, unsigned nrec, haddr_t obj_addr)
uint16_t nrec
Definition: H5B2pkg.h:239
void * cb_ctx
Definition: H5B2pkg.h:211
const H5B2_class_t H5B2_TEST2[1]
Definition: H5B2test.c:100
herr_t(* H5B2_found_t)(const void *record, void *op_data)
Definition: H5B2private.h:63
H5_DLL herr_t H5B2__hdr_init(H5B2_hdr_t *hdr, const H5B2_create_t *cparam, void *ctx_udata, uint16_t depth)
Definition: H5B2hdr.c:110
@ H5B2_POS_LEFT
Definition: H5B2pkg.h:258
H5B2_hdr_t * hdr
Definition: H5B2pkg.h:236
H5F_t * f
Definition: H5B2pkg.h:280
uint8_t cum_max_nrec_size
Definition: H5B2pkg.h:147
uint64_t
Definition: H5overflow.txt:39
*s *s fwidth
Definition: H5HLdbg.c:111
int H5B2__get_node_depth_test(H5B2_t *bt2, void *udata)
Definition: H5B2test.c:665
size_t * nat_off
Definition: H5B2pkg.h:184
hbool_t pending_delete
Definition: H5B2pkg.h:178
uint8_t * leaf_native
Definition: H5B2pkg.h:221
H5B2_remove_t remove_op
Definition: H5B2pkg.h:181
H5_DLL herr_t H5B2__merge3(H5B2_hdr_t *hdr, uint16_t depth, H5B2_node_ptr_t *curr_node_ptr, unsigned *parent_cache_info_flags_ptr, H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx)
Definition: H5B2int.c:1204
void * parent
Definition: H5B2pkg.h:226
void * parent
Definition: H5B2pkg.h:282
H5_DLL herr_t H5B2__update_internal(H5B2_hdr_t *hdr, uint16_t depth, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_update_status_t *status, H5B2_nodepos_t curr_pos, void *parent, void *udata, H5B2_modify_t op, void *op_data)
Definition: H5B2internal.c:522
@ H5B2_UPDATE_INSERT_DONE
Definition: H5B2pkg.h:267
H5_DLL herr_t H5B2__hdr_dirty(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:494
H5_DLL herr_t H5B2__node_size(H5B2_hdr_t *hdr, uint16_t depth, const H5B2_node_ptr_t *curr_node, void *parent, hsize_t *op_data)
Definition: H5B2int.c:1701
uint64_t shadow_epoch
Definition: H5B2pkg.h:207
H5_DLL herr_t H5B2__redistribute2(H5B2_hdr_t *hdr, uint16_t depth, H5B2_internal_t *internal, unsigned idx)
Definition: H5B2int.c:423
H5_DLL size_t H5B2__hdr_fuse_decr(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:465
H5B2_hdr_t * hdr
Definition: H5B2pkg.h:290
haddr_t addr
Definition: H5B2pkg.h:136
@ H5B2_POS_ROOT
Definition: H5B2pkg.h:256
Definition: H5B2pkg.h:279
@ H5B2_NUM_BTREE_ID
Definition: H5B2private.h:56
H5_DLL herr_t H5B2__remove_leaf_by_idx(H5B2_hdr_t *hdr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *parent, unsigned idx, H5B2_remove_t op, void *op_data)
Definition: H5B2leaf.c:883
H5_DLL herr_t H5B2__hdr_fuse_incr(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:437
@ H5B2_POS_RIGHT
Definition: H5B2pkg.h:257
#define H5_DLL
Definition: H5api_adpt.h:234
H5B2_node_ptr_t * node_ptrs
Definition: H5B2pkg.h:238
H5B2_compare_t
Definition: H5B2private.h:72
H5_DLL H5B2_leaf_t * H5B2__protect_leaf(H5B2_hdr_t *hdr, void *parent, H5B2_node_ptr_t *node_ptr, hbool_t shadow, unsigned flags)
Definition: H5B2leaf.c:183
haddr_t addr
Definition: H5B2pkg.h:174
uint16_t node_nrec
Definition: H5B2pkg.h:137
H5_DLL herr_t H5B2__create_flush_depend(H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
Definition: H5B2int.c:1755
H5_DLL herr_t H5B2__internal_free(H5B2_internal_t *i)
Definition: H5B2internal.c:1309
H5_DLL herr_t H5B2__leaf_free(H5B2_leaf_t *l)
Definition: H5B2leaf.c:985
cache_flags
Definition: H5EAhdr.c:749
H5B2_update_status_t
Definition: H5B2pkg.h:263
H5_DLL herr_t H5B2__merge2(H5B2_hdr_t *hdr, uint16_t depth, H5B2_node_ptr_t *curr_node_ptr, unsigned *parent_cache_info_flags_ptr, H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx)
Definition: H5B2int.c:1041
@ H5B2_UPDATE_UNKNOWN
Definition: H5B2pkg.h:264
*s *s n
Definition: H5HLdbg.c:111
int(* H5B2_operator_t)(const void *record, void *op_data)
Definition: H5B2private.h:60
H5_DLL herr_t H5B2__hdr_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, const H5B2_class_t *type, haddr_t obj_addr)
H5_DLL herr_t H5B2__insert_leaf(H5B2_hdr_t *hdr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *parent, void *udata)
Definition: H5B2leaf.c:349
H5_DLL herr_t H5B2__destroy_flush_depend(H5AC_info_t *parent_entry, H5AC_info_t *child_entry)
Definition: H5B2int.c:1927
uint16_t depth
Definition: H5B2pkg.h:284
H5_DLL herr_t H5B2__neighbor_internal(H5B2_hdr_t *hdr, uint16_t depth, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *parent, void *udata, H5B2_found_t op, void *op_data)
Definition: H5B2internal.c:286
int herr_t
Definition: H5public.h:128
struct H5B2_internal_t H5B2_internal_t
H5_DLL herr_t H5B2__hdr_free(H5B2_hdr_t *hdr)
Definition: H5B2hdr.c:623
Definition: H5B2pkg.h:142
uint8_t sizeof_size
Definition: H5B2pkg.h:179
Definition: H5B2pkg.h:288
H5AC_proxy_entry_t * top_proxy
Definition: H5B2pkg.h:243
void * ctx_udata
Definition: H5B2pkg.h:275
void * parent
Definition: H5B2pkg.h:192
struct H5B2_hdr_t H5B2_hdr_t
bool hbool_t
Definition: H5public.h:159
H5_DLL herr_t H5B2__iterate_node(H5B2_hdr_t *hdr, uint16_t depth, const H5B2_node_ptr_t *curr_node, void *parent, H5B2_operator_t op, void *op_data)
Definition: H5B2int.c:1506
H5_DLL herr_t H5B2__swap_leaf(H5B2_hdr_t *hdr, uint16_t depth, H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx, void *swap_loc)
Definition: H5B2leaf.c:617
H5_DLL herr_t H5B2__neighbor_leaf(H5B2_hdr_t *hdr, H5B2_node_ptr_t *curr_node_ptr, void *neighbor_loc, H5B2_compare_t comp, void *parent, void *udata, H5B2_found_t op, void *op_data)
Definition: H5B2leaf.c:275
Definition: H5Cprivate.h:1597
H5F_t * f
Definition: H5B2pkg.h:273
H5_DLL herr_t H5B2__update_leaf(H5B2_hdr_t *hdr, H5B2_node_ptr_t *curr_node_ptr, H5B2_update_status_t *status, H5B2_nodepos_t curr_pos, void *parent, void *udata, H5B2_modify_t op, void *op_data)
Definition: H5B2leaf.c:462
H5_DLL herr_t H5B2__remove_internal_by_idx(H5B2_hdr_t *hdr, hbool_t *depth_decreased, void *swap_loc, void *swap_parent, uint16_t 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)
Definition: H5B2internal.c:1024
hsize_t
Definition: H5overflow.txt:44
Definition: H5B2private.h:82
H5_DLL haddr_t H5B2__hdr_create(H5F_t *f, const H5B2_create_t *cparam, void *ctx_udata)
Definition: H5B2hdr.c:285
H5B2_hdr_t * hdr
Definition: H5B2pkg.h:220
H5F_t * f
Definition: H5B2pkg.h:289
uint8_t max_nrec_size
Definition: H5B2pkg.h:170
uint32_t node_size
Definition: H5B2pkg.h:163
H5F_t * f
Definition: H5B2pkg.h:251
H5_DLL herr_t H5B2__insert_internal(H5B2_hdr_t *hdr, uint16_t depth, unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *parent, void *udata)
Definition: H5B2internal.c:359
herr_t(* H5B2_modify_t)(void *record, void *op_data, hbool_t *changed)
Definition: H5B2private.h:66