 |
HDF5
1.12.0
|
Go to the documentation of this file.
32 #ifdef H5_HAVE_PARALLEL
48 # define INT16ENCODE(p, i) { \
49 *(p) = (uint8_t)( (unsigned)(i) & 0xff); (p)++; \
50 *(p) = (uint8_t)(((unsigned)(i) >> 8) & 0xff); (p)++; \
53 # define UINT16ENCODE(p, i) { \
54 *(p) = (uint8_t)( (unsigned)(i) & 0xff); (p)++; \
55 *(p) = (uint8_t)(((unsigned)(i) >> 8) & 0xff); (p)++; \
58 # define INT32ENCODE(p, i) { \
59 *(p) = (uint8_t)( (uint32_t)(i) & 0xff); (p)++; \
60 *(p) = (uint8_t)(((uint32_t)(i) >> 8) & 0xff); (p)++; \
61 *(p) = (uint8_t)(((uint32_t)(i) >> 16) & 0xff); (p)++; \
62 *(p) = (uint8_t)(((uint32_t)(i) >> 24) & 0xff); (p)++; \
65 # define UINT32ENCODE(p, i) { \
66 *(p) = (uint8_t)( (i) & 0xff); (p)++; \
67 *(p) = (uint8_t)(((i) >> 8) & 0xff); (p)++; \
68 *(p) = (uint8_t)(((i) >> 16) & 0xff); (p)++; \
69 *(p) = (uint8_t)(((i) >> 24) & 0xff); (p)++; \
74 # define ENCODE_VAR(p, typ, n, l) { \
77 uint8_t *_p = (uint8_t*)(p); \
79 for(_i = 0; _i < l; _i++, _n >>= 8) \
80 *_p++ = (uint8_t)(_n & 0xff); \
81 (p) = (uint8_t*)(p) + l; \
86 # define UINT32ENCODE_VAR(p, n, l) ENCODE_VAR(p, uint32_t, n, l)
88 # define INT64ENCODE(p, n) { \
91 uint8_t *_p = (uint8_t*)(p); \
93 for (_i = 0; _i < sizeof(int64_t); _i++, _n >>= 8) \
94 *_p++ = (uint8_t)(_n & 0xff); \
95 for (; _i < 8; _i++) \
96 *_p++ = (uint8_t)((n) < 0 ? 0xff : 0); \
97 (p) = (uint8_t*)(p)+8; \
100 # define UINT64ENCODE(p, n) { \
103 uint8_t *_p = (uint8_t*)(p); \
105 for (_i = 0; _i < sizeof(uint64_t); _i++, _n >>= 8) \
106 *_p++ = (uint8_t)(_n & 0xff); \
107 for (; _i < 8; _i++) \
109 (p) = (uint8_t*)(p) + 8; \
114 # define UINT64ENCODE_VAR(p, n, l) ENCODE_VAR(p, uint64_t, n, l)
118 # define UINT64ENCODE_VARLEN(p, n) { \
119 uint64_t __n = (uint64_t)(n); \
120 unsigned _s = H5VM_limit_enc_size(__n); \
122 *(p)++ = (uint8_t)_s; \
123 UINT64ENCODE_VAR(p, __n, _s); \
126 # define H5_ENCODE_UNSIGNED(p, n) { \
127 HDcompile_assert(sizeof(unsigned) == sizeof(uint32_t)); \
132 # define H5_ENCODE_DOUBLE(p, n) { \
135 uint8_t *_p = (uint8_t*)(p); \
137 HDcompile_assert(sizeof(double) == 8); \
138 HDcompile_assert(sizeof(double) == sizeof(uint64_t)); \
139 H5MM_memcpy(&_n, &n, sizeof(double)); \
140 for(_u = 0; _u < sizeof(uint64_t); _u++, _n >>= 8) \
141 *_p++ = (uint8_t)(_n & 0xff); \
142 (p) = (uint8_t *)(p) + 8; \
153 # define INT16DECODE(p, i) { \
154 (i) = (int16_t)((*(p) & 0xff)); (p)++; \
155 (i) |= (int16_t)(((*(p) & 0xff) << 8) | \
156 ((*(p) & 0x80) ? ~0xffff : 0x0)); (p)++; \
159 # define UINT16DECODE(p, i) { \
160 (i) = (uint16_t) (*(p) & 0xff); (p)++; \
161 (i) |= (uint16_t)((*(p) & 0xff) << 8); (p)++; \
164 # define INT32DECODE(p, i) { \
165 (i) = ((int32_t)(*(p) & 0xff)); (p)++; \
166 (i) |= ((int32_t)(*(p) & 0xff) << 8); (p)++; \
167 (i) |= ((int32_t)(*(p) & 0xff) << 16); (p)++; \
168 (i) |= ((int32_t)(((*(p) & (unsigned)0xff) << 24) | \
169 ((*(p) & 0x80) ? ~0xffffffffULL : 0x0ULL))); (p)++; \
172 # define UINT32DECODE(p, i) { \
173 (i) = (uint32_t)(*(p) & 0xff); (p)++; \
174 (i) |= ((uint32_t)(*(p) & 0xff) << 8); (p)++; \
175 (i) |= ((uint32_t)(*(p) & 0xff) << 16); (p)++; \
176 (i) |= ((uint32_t)(*(p) & 0xff) << 24); (p)++; \
181 # define DECODE_VAR(p, n, l) { \
186 for (_i = 0; _i < l; _i++) \
187 n = (n << 8) | *(--p); \
193 # define UINT32DECODE_VAR(p, n, l) DECODE_VAR(p, n, l)
195 # define INT64DECODE(p, n) { \
201 for (_i = 0; _i < sizeof(int64_t); _i++) \
202 n = (n << 8) | *(--p); \
206 # define UINT64DECODE(p, n) { \
212 for (_i = 0; _i < sizeof(uint64_t); _i++) \
213 n = (n << 8) | *(--p); \
219 # define UINT64DECODE_VAR(p, n, l) DECODE_VAR(p, n, l)
223 # define UINT64DECODE_VARLEN(p, n) { \
224 unsigned _s = *(p)++; \
226 UINT64DECODE_VAR(p, n, _s); \
229 # define H5_DECODE_UNSIGNED(p, n) { \
230 HDcompile_assert(sizeof(unsigned) == sizeof(uint32_t)); \
235 # define H5_DECODE_DOUBLE(p, n) { \
239 HDcompile_assert(sizeof(double) == 8); \
240 HDcompile_assert(sizeof(double) == sizeof(uint64_t)); \
243 for(_u = 0; _u < sizeof(uint64_t); _u++) \
244 _n = (_n << 8) | *(--p); \
245 H5MM_memcpy(&(n), &_n, sizeof(double)); \
250 #define H5F_addr_overflow(X,Z) (HADDR_UNDEF==(X) || \
251 HADDR_UNDEF==(X)+(haddr_t)(Z) || \
252 (X)+(haddr_t)(Z)<(X))
253 #define H5F_addr_defined(X) ((X)!=HADDR_UNDEF)
257 #define H5F_addr_eq(X,Y) ((X)!=HADDR_UNDEF && \
259 #define H5F_addr_ne(X,Y) (!H5F_addr_eq((X),(Y)))
260 #define H5F_addr_lt(X,Y) ((X)!=HADDR_UNDEF && \
261 (Y)!=HADDR_UNDEF && \
263 #define H5F_addr_le(X,Y) ((X)!=HADDR_UNDEF && \
264 (Y)!=HADDR_UNDEF && \
266 #define H5F_addr_gt(X,Y) ((X)!=HADDR_UNDEF && \
267 (Y)!=HADDR_UNDEF && \
269 #define H5F_addr_ge(X,Y) ((X)!=HADDR_UNDEF && \
270 (Y)!=HADDR_UNDEF && \
272 #define H5F_addr_cmp(X,Y) (H5F_addr_eq((X), (Y)) ? 0 : \
273 (H5F_addr_lt((X), (Y)) ? -1 : 1))
274 #define H5F_addr_pow2(N) ((haddr_t)1<<(N))
275 #define H5F_addr_overlap(O1,L1,O2,L2) (((O1) < (O2) && ((O1) + (L1)) > (O2)) || \
276 ((O1) >= (O2) && (O1) < ((O2) + (L2))))
280 #define H5F_LOW_BOUND(F) ((F)->shared->low_bound)
281 #define H5F_HIGH_BOUND(F) ((F)->shared->high_bound)
282 #define H5F_SHARED_INTENT(F_SH) ((F_SH)->flags)
283 #define H5F_INTENT(F) ((F)->shared->flags)
284 #define H5F_OPEN_NAME(F) ((F)->open_name)
285 #define H5F_ACTUAL_NAME(F) ((F)->actual_name)
286 #define H5F_EXTPATH(F) ((F)->shared->extpath)
287 #define H5F_SHARED(F) ((F)->shared)
288 #define H5F_SAME_SHARED(F1, F2) ((F1)->shared == (F2)->shared)
289 #define H5F_NOPEN_OBJS(F) ((F)->nopen_objs)
290 #define H5F_INCR_NOPEN_OBJS(F) ((F)->nopen_objs++)
291 #define H5F_DECR_NOPEN_OBJS(F) ((F)->nopen_objs--)
292 #define H5F_ID_EXISTS(F) ((F)->id_exists)
293 #define H5F_PARENT(F) ((F)->parent)
294 #define H5F_NMOUNTS(F) ((F)->nmounts)
295 #define H5F_GET_READ_ATTEMPTS(F) ((F)->shared->read_attempts)
296 #define H5F_DRIVER_ID(F) ((F)->shared->lf->driver_id)
297 #define H5F_GET_FILENO(F,FILENUM) ((FILENUM) = (F)->shared->lf->fileno)
298 #define H5F_SHARED_HAS_FEATURE(F_SH,FL) ((F_SH)->lf->feature_flags & (FL))
299 #define H5F_HAS_FEATURE(F,FL) ((F)->shared->lf->feature_flags & (FL))
300 #define H5F_BASE_ADDR(F) ((F)->shared->sblock->base_addr)
301 #define H5F_SYM_LEAF_K(F) ((F)->shared->sblock->sym_leaf_k)
302 #define H5F_KVALUE(F,T) ((F)->shared->sblock->btree_k[(T)->id])
303 #define H5F_NREFS(F) ((F)->shared->nrefs)
304 #define H5F_SIZEOF_ADDR(F) ((F)->shared->sizeof_addr)
305 #define H5F_SIZEOF_SIZE(F) ((F)->shared->sizeof_size)
306 #define H5F_SOHM_ADDR(F) ((F)->shared->sohm_addr)
307 #define H5F_SET_SOHM_ADDR(F, A) ((F)->shared->sohm_addr = (A))
308 #define H5F_SOHM_VERS(F) ((F)->shared->sohm_vers)
309 #define H5F_SET_SOHM_VERS(F, V) ((F)->shared->sohm_vers = (V))
310 #define H5F_SOHM_NINDEXES(F) ((F)->shared->sohm_nindexes)
311 #define H5F_SET_SOHM_NINDEXES(F, N) ((F)->shared->sohm_nindexes = (N))
312 #define H5F_FCPL(F) ((F)->shared->fcpl_id)
313 #define H5F_GET_FC_DEGREE(F) ((F)->shared->fc_degree)
314 #define H5F_EVICT_ON_CLOSE(F) ((F)->shared->evict_on_close)
315 #define H5F_RDCC_NSLOTS(F) ((F)->shared->rdcc_nslots)
316 #define H5F_RDCC_NBYTES(F) ((F)->shared->rdcc_nbytes)
317 #define H5F_RDCC_W0(F) ((F)->shared->rdcc_w0)
318 #define H5F_SIEVE_BUF_SIZE(F) ((F)->shared->sieve_buf_size)
319 #define H5F_GC_REF(F) ((F)->shared->gc_ref)
320 #define H5F_STORE_MSG_CRT_IDX(F) ((F)->shared->store_msg_crt_idx)
321 #define H5F_SET_STORE_MSG_CRT_IDX(F, FL) ((F)->shared->store_msg_crt_idx = (FL))
322 #define H5F_GRP_BTREE_SHARED(F) ((F)->shared->grp_btree_shared)
323 #define H5F_SET_GRP_BTREE_SHARED(F, RC) (((F)->shared->grp_btree_shared = (RC)) ? SUCCEED : FAIL)
324 #define H5F_USE_TMP_SPACE(F) ((F)->shared->fs.use_tmp_space)
325 #define H5F_IS_TMP_ADDR(F, ADDR) (H5F_addr_le((F)->shared->fs.tmp_addr, (ADDR)))
326 #ifdef H5_HAVE_PARALLEL
327 #define H5F_COLL_MD_READ(F) ((F)->shared->coll_md_read)
329 #define H5F_USE_MDC_LOGGING(F) ((F)->shared->use_mdc_logging)
330 #define H5F_START_MDC_LOG_ON_ACCESS(F) ((F)->shared->start_mdc_log_on_access)
331 #define H5F_MDC_LOG_LOCATION(F) ((F)->shared->mdc_log_location)
332 #define H5F_ALIGNMENT(F) ((F)->shared->alignment)
333 #define H5F_THRESHOLD(F) ((F)->shared->threshold)
334 #define H5F_PGEND_META_THRES(F) ((F)->shared->fs.pgend_meta_thres)
335 #define H5F_POINT_OF_NO_RETURN(F) ((F)->shared->fs.point_of_no_return)
336 #define H5F_NULL_FSM_ADDR(F) ((F)->shared->null_fsm_addr)
337 #define H5F_GET_MIN_DSET_OHDR(F) ((F)->shared->crt_dset_min_ohdr_flag)
338 #define H5F_SET_MIN_DSET_OHDR(F, V) ((F)->shared->crt_dset_min_ohdr_flag = (V))
339 #define H5F_VOL_CLS(F) ((F)->shared->vol_cls)
340 #define H5F_VOL_OBJ(F) ((F)->vol_obj)
342 #define H5F_LOW_BOUND(F) (H5F_get_low_bound(F))
343 #define H5F_HIGH_BOUND(F) (H5F_get_high_bound(F))
344 #define H5F_SHARED_INTENT(F_SH) (H5F_shared_get_intent(F_SH))
345 #define H5F_INTENT(F) (H5F_get_intent(F))
346 #define H5F_OPEN_NAME(F) (H5F_get_open_name(F))
347 #define H5F_ACTUAL_NAME(F) (H5F_get_actual_name(F))
348 #define H5F_EXTPATH(F) (H5F_get_extpath(F))
349 #define H5F_SHARED(F) (H5F_get_shared(F))
350 #define H5F_SAME_SHARED(F1, F2) (H5F_same_shared((F1), (F2)))
351 #define H5F_NOPEN_OBJS(F) (H5F_get_nopen_objs(F))
352 #define H5F_INCR_NOPEN_OBJS(F) (H5F_incr_nopen_objs(F))
353 #define H5F_DECR_NOPEN_OBJS(F) (H5F_decr_nopen_objs(F))
354 #define H5F_ID_EXISTS(F) (H5F_file_id_exists(F))
355 #define H5F_PARENT(F) (H5F_get_parent(F))
356 #define H5F_NMOUNTS(F) (H5F_get_nmounts(F))
357 #define H5F_GET_READ_ATTEMPTS(F) (H5F_get_read_attempts(F))
358 #define H5F_DRIVER_ID(F) (H5F_get_driver_id(F))
359 #define H5F_GET_FILENO(F,FILENUM) (H5F_get_fileno((F), &(FILENUM)))
360 #define H5F_SHARED_HAS_FEATURE(F_SH,FL) (H5F_shared_has_feature(F_SH,FL))
361 #define H5F_HAS_FEATURE(F,FL) (H5F_has_feature(F,FL))
362 #define H5F_BASE_ADDR(F) (H5F_get_base_addr(F))
363 #define H5F_SYM_LEAF_K(F) (H5F_sym_leaf_k(F))
364 #define H5F_KVALUE(F,T) (H5F_Kvalue(F,T))
365 #define H5F_NREFS(F) (H5F_get_nrefs(F))
366 #define H5F_SIZEOF_ADDR(F) (H5F_sizeof_addr(F))
367 #define H5F_SIZEOF_SIZE(F) (H5F_sizeof_size(F))
368 #define H5F_SOHM_ADDR(F) (H5F_get_sohm_addr(F))
369 #define H5F_SET_SOHM_ADDR(F, A) (H5F_set_sohm_addr((F), (A)))
370 #define H5F_SOHM_VERS(F) (H5F_get_sohm_vers(F))
371 #define H5F_SET_SOHM_VERS(F, V) (H5F_set_sohm_vers((F), (V)))
372 #define H5F_SOHM_NINDEXES(F) (H5F_get_sohm_nindexes(F))
373 #define H5F_SET_SOHM_NINDEXES(F, N) (H5F_set_sohm_nindexes((F), (N)))
374 #define H5F_FCPL(F) (H5F_get_fcpl(F))
375 #define H5F_GET_FC_DEGREE(F) (H5F_get_fc_degree(F))
376 #define H5F_EVICT_ON_CLOSE(F) (H5F_get_evict_on_close(F))
377 #define H5F_RDCC_NSLOTS(F) (H5F_rdcc_nslots(F))
378 #define H5F_RDCC_NBYTES(F) (H5F_rdcc_nbytes(F))
379 #define H5F_RDCC_W0(F) (H5F_rdcc_w0(F))
380 #define H5F_SIEVE_BUF_SIZE(F) (H5F_sieve_buf_size(F))
381 #define H5F_GC_REF(F) (H5F_gc_ref(F))
382 #define H5F_STORE_MSG_CRT_IDX(F) (H5F_store_msg_crt_idx(F))
383 #define H5F_SET_STORE_MSG_CRT_IDX(F, FL) (H5F_set_store_msg_crt_idx((F), (FL)))
384 #define H5F_GRP_BTREE_SHARED(F) (H5F_grp_btree_shared(F))
385 #define H5F_SET_GRP_BTREE_SHARED(F, RC) (H5F_set_grp_btree_shared((F), (RC)))
386 #define H5F_USE_TMP_SPACE(F) (H5F_use_tmp_space(F))
387 #define H5F_IS_TMP_ADDR(F, ADDR) (H5F_is_tmp_addr((F), (ADDR)))
388 #ifdef H5_HAVE_PARALLEL
389 #define H5F_COLL_MD_READ(F) (H5F_coll_md_read(F))
391 #define H5F_USE_MDC_LOGGING(F) (H5F_use_mdc_logging(F))
392 #define H5F_START_MDC_LOG_ON_ACCESS(F) (H5F_start_mdc_log_on_access(F))
393 #define H5F_MDC_LOG_LOCATION(F) (H5F_mdc_log_location(F))
394 #define H5F_ALIGNMENT(F) (H5F_get_alignment(F))
395 #define H5F_THRESHOLD(F) (H5F_get_threshold(F))
396 #define H5F_PGEND_META_THRES(F) (H5F_get_pgend_meta_thres(F))
397 #define H5F_POINT_OF_NO_RETURN(F) (H5F_get_point_of_no_return(F))
398 #define H5F_NULL_FSM_ADDR(F) (H5F_get_null_fsm_addr(F))
399 #define H5F_GET_MIN_DSET_OHDR(F) (H5F_get_min_dset_ohdr(F))
400 #define H5F_SET_MIN_DSET_OHDR(F, V) (H5F_set_min_dset_ohdr((F), (V)))
401 #define H5F_VOL_CLS(F) (H5F_get_vol_cls(F))
402 #define H5F_VOL_OBJ(F) (H5F_get_vol_obj(F))
407 #define H5F_ENCODE_OFFSET(f,p,o) switch(H5F_SIZEOF_ADDR(f)) { \
408 case 4: UINT32ENCODE(p,o); break; \
409 case 8: UINT64ENCODE(p,o); break; \
410 case 2: UINT16ENCODE(p,o); break; \
413 #define H5F_DECODE_OFFSET(f,p,o) switch (H5F_SIZEOF_ADDR (f)) { \
414 case 4: UINT32DECODE(p, o); break; \
415 case 8: UINT64DECODE(p, o); break; \
416 case 2: UINT16DECODE(p, o); break; \
419 #define H5F_ENCODE_LENGTH_LEN(p,l,s) switch(s) { \
420 case 4: UINT32ENCODE(p,l); break; \
421 case 8: UINT64ENCODE(p,l); break; \
422 case 2: UINT16ENCODE(p,l); break; \
423 default: HDassert("bad sizeof size" && 0); \
426 #define H5F_ENCODE_LENGTH(f,p,l) H5F_ENCODE_LENGTH_LEN(p,l,H5F_SIZEOF_SIZE(f))
428 #define H5F_DECODE_LENGTH_LEN(p,l,s) switch(s) { \
429 case 4: UINT32DECODE(p,l); break; \
430 case 8: UINT64DECODE(p,l); break; \
431 case 2: UINT16DECODE(p,l); break; \
432 default: HDassert("bad sizeof size" && 0); \
435 #define H5F_DECODE_LENGTH(f,p,l) H5F_DECODE_LENGTH_LEN(p,l,H5F_SIZEOF_SIZE(f))
441 #if (H5_SIZEOF_SIZE_T >= H5_SIZEOF_OFF_T)
442 # define H5F_OVERFLOW_SIZET2OFFT(X) \
443 ((size_t)(X)>=(size_t)((size_t)1<<(8*sizeof(HDoff_t)-1)))
445 # define H5F_OVERFLOW_SIZET2OFFT(X) 0
447 #if (H5_SIZEOF_HSIZE_T >= H5_SIZEOF_OFF_T)
448 # define H5F_OVERFLOW_HSIZET2OFFT(X) \
449 ((hsize_t)(X) >= (hsize_t)((hsize_t)1 << (8 * sizeof(HDoff_t) - 1)))
451 # define H5F_OVERFLOW_HSIZET2OFFT(X) 0
455 #define H5F_OBJ_ADDR_SIZE sizeof(haddr_t)
456 #define H5F_OBJ_SIZE_SIZE sizeof(hsize_t)
460 #define H5F_DEFAULT_CSET H5T_CSET_ASCII
463 #define H5F_CRT_USER_BLOCK_NAME "block_size"
464 #define H5F_CRT_SYM_LEAF_NAME "symbol_leaf"
465 #define H5F_CRT_SYM_LEAF_DEF 4
466 #define H5F_CRT_BTREE_RANK_NAME "btree_rank"
467 #define H5F_CRT_ADDR_BYTE_NUM_NAME "addr_byte_num"
468 #define H5F_CRT_OBJ_BYTE_NUM_NAME "obj_byte_num"
469 #define H5F_CRT_SUPER_VERS_NAME "super_version"
470 #define H5F_CRT_SHMSG_NINDEXES_NAME "num_shmsg_indexes"
471 #define H5F_CRT_SHMSG_INDEX_TYPES_NAME "shmsg_message_types"
472 #define H5F_CRT_SHMSG_INDEX_MINSIZE_NAME "shmsg_message_minsize"
473 #define H5F_CRT_SHMSG_LIST_MAX_NAME "shmsg_list_max"
474 #define H5F_CRT_SHMSG_BTREE_MIN_NAME "shmsg_btree_min"
475 #define H5F_CRT_FILE_SPACE_STRATEGY_NAME "file_space_strategy"
476 #define H5F_CRT_FREE_SPACE_PERSIST_NAME "free_space_persist"
477 #define H5F_CRT_FREE_SPACE_THRESHOLD_NAME "free_space_threshold"
478 #define H5F_CRT_FILE_SPACE_PAGE_SIZE_NAME "file_space_page_size"
483 #define H5F_ACS_META_CACHE_INIT_CONFIG_NAME "mdc_initCacheCfg"
484 #define H5F_ACS_DATA_CACHE_NUM_SLOTS_NAME "rdcc_nslots"
485 #define H5F_ACS_DATA_CACHE_BYTE_SIZE_NAME "rdcc_nbytes"
486 #define H5F_ACS_PREEMPT_READ_CHUNKS_NAME "rdcc_w0"
487 #define H5F_ACS_ALIGN_THRHD_NAME "threshold"
488 #define H5F_ACS_ALIGN_NAME "align"
489 #define H5F_ACS_META_BLOCK_SIZE_NAME "meta_block_size"
490 #define H5F_ACS_SIEVE_BUF_SIZE_NAME "sieve_buf_size"
491 #define H5F_ACS_SDATA_BLOCK_SIZE_NAME "sdata_block_size"
492 #define H5F_ACS_GARBG_COLCT_REF_NAME "gc_ref"
493 #define H5F_ACS_FILE_DRV_NAME "vfd_info"
494 #define H5F_ACS_VOL_CONN_NAME "vol_connector_info"
495 #define H5F_ACS_CLOSE_DEGREE_NAME "close_degree"
496 #define H5F_ACS_FAMILY_OFFSET_NAME "family_offset"
497 #define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize"
498 #define H5F_ACS_FAMILY_TO_SINGLE_NAME "family_to_single"
499 #define H5F_ACS_MULTI_TYPE_NAME "multi_type"
500 #define H5F_ACS_LIBVER_LOW_BOUND_NAME "libver_low_bound"
501 #define H5F_ACS_LIBVER_HIGH_BOUND_NAME "libver_high_bound"
502 #define H5F_ACS_WANT_POSIX_FD_NAME "want_posix_fd"
503 #define H5F_ACS_METADATA_READ_ATTEMPTS_NAME "metadata_read_attempts"
504 #define H5F_ACS_OBJECT_FLUSH_CB_NAME "object_flush_cb"
505 #define H5F_ACS_EFC_SIZE_NAME "efc_size"
506 #define H5F_ACS_FILE_IMAGE_INFO_NAME "file_image_info"
507 #define H5F_ACS_CLEAR_STATUS_FLAGS_NAME "clear_status_flags"
508 #define H5F_ACS_NULL_FSM_ADDR_NAME "null_fsm_addr"
510 #define H5F_ACS_SKIP_EOF_CHECK_NAME "skip_eof_check"
512 #define H5F_ACS_USE_MDC_LOGGING_NAME "use_mdc_logging"
513 #define H5F_ACS_MDC_LOG_LOCATION_NAME "mdc_log_location"
514 #define H5F_ACS_START_MDC_LOG_ON_ACCESS_NAME "start_mdc_log_on_access"
515 #define H5F_ACS_EVICT_ON_CLOSE_FLAG_NAME "evict_on_close_flag"
516 #define H5F_ACS_COLL_MD_WRITE_FLAG_NAME "collective_metadata_write"
517 #define H5F_ACS_META_CACHE_INIT_IMAGE_CONFIG_NAME "mdc_initCacheImageCfg"
518 #define H5F_ACS_PAGE_BUFFER_SIZE_NAME "page_buffer_size"
519 #define H5F_ACS_PAGE_BUFFER_MIN_META_PERC_NAME "page_buffer_min_meta_perc"
520 #define H5F_ACS_PAGE_BUFFER_MIN_RAW_PERC_NAME "page_buffer_min_raw_perc"
521 #ifdef H5_HAVE_PARALLEL
522 #define H5F_ACS_MPI_PARAMS_COMM_NAME "mpi_params_comm"
523 #define H5F_ACS_MPI_PARAMS_INFO_NAME "mpi_params_info"
527 #define H5F_MNT_SYM_LOCAL_NAME "local"
530 #ifdef H5_HAVE_PARALLEL
532 #define H5_PAR_META_WRITE 0
536 #define H5F_SIGNATURE "\211HDF\r\n\032\n"
537 #define H5F_SIGNATURE_LEN 8
540 #define HDF5_SUPERBLOCK_VERSION_DEF 0
541 #define HDF5_SUPERBLOCK_VERSION_1 1
542 #define HDF5_SUPERBLOCK_VERSION_2 2
543 #define HDF5_SUPERBLOCK_VERSION_3 3
544 #define HDF5_SUPERBLOCK_VERSION_LATEST HDF5_SUPERBLOCK_VERSION_3
545 #define HDF5_SUPERBLOCK_VERSION_V18_LATEST HDF5_SUPERBLOCK_VERSION_2
546 #define HDF5_FREESPACE_VERSION 0
547 #define HDF5_OBJECTDIR_VERSION 0
548 #define HDF5_SHAREDHEADER_VERSION 0
549 #define HDF5_DRIVERINFO_VERSION_0 0
552 #define HDF5_BTREE_SNODE_IK_DEF 16
553 #define HDF5_BTREE_CHUNK_IK_DEF 32
559 #define HDF5_BTREE_IK_MAX_ENTRIES 65536
563 #define H5F_FILE_SPACE_STRATEGY_DEF H5F_FSPACE_STRATEGY_FSM_AGGR
566 #define H5F_FREE_SPACE_PERSIST_DEF FALSE
569 #define H5F_FREE_SPACE_THRESHOLD_DEF 1
572 #define H5F_FILE_SPACE_PAGE_SIZE_DEF 4096
574 #define H5F_FILE_SPACE_PAGE_SIZE_MIN 512
576 #define H5F_FILE_SPACE_PAGE_SIZE_MAX 1024*1024*1024
579 #define H5F_FILE_SPACE_PGEND_META_THRES 0
582 #define H5F_ALIGN_DEF 1
584 #define H5F_ALIGN_THRHD_DEF 1
586 #define H5F_META_BLOCK_SIZE_DEF 2048
588 #define H5F_SDATA_BLOCK_SIZE_DEF 2048
591 #define H5F_SHARED_PAGED_AGGR(F_SH) ((F_SH)->fs_strategy == H5F_FSPACE_STRATEGY_PAGE && (F_SH)->fs_page_size)
592 #define H5F_PAGED_AGGR(F) (F->shared->fs_strategy == H5F_FSPACE_STRATEGY_PAGE && F->shared->fs_page_size)
595 #define H5F_METADATA_READ_ATTEMPTS 1
596 #define H5F_SWMR_METADATA_READ_ATTEMPTS 100
603 #define H5_SIZEOF_MAGIC 4
607 #define H5_SIZEOF_CHKSUM 4
610 #define H5B_MAGIC "TREE"
613 #define H5B2_HDR_MAGIC "BTHD"
614 #define H5B2_INT_MAGIC "BTIN"
615 #define H5B2_LEAF_MAGIC "BTLF"
618 #define H5EA_HDR_MAGIC "EAHD"
619 #define H5EA_IBLOCK_MAGIC "EAIB"
620 #define H5EA_SBLOCK_MAGIC "EASB"
621 #define H5EA_DBLOCK_MAGIC "EADB"
624 #define H5FA_HDR_MAGIC "FAHD"
625 #define H5FA_DBLOCK_MAGIC "FADB"
628 #define H5FS_HDR_MAGIC "FSHD"
629 #define H5FS_SINFO_MAGIC "FSSE"
632 #define H5G_NODE_MAGIC "SNOD"
635 #define H5HF_HDR_MAGIC "FRHP"
636 #define H5HF_IBLOCK_MAGIC "FHIB"
637 #define H5HF_DBLOCK_MAGIC "FHDB"
640 #define H5HG_MAGIC "GCOL"
643 #define H5HL_MAGIC "HEAP"
646 #define H5O_HDR_MAGIC "OHDR"
647 #define H5O_CHK_MAGIC "OCHK"
650 #define H5SM_TABLE_MAGIC "SMTB"
651 #define H5SM_LIST_MAGIC "SMLI"
712 #define H5F_MEM_PAGE_META H5F_MEM_PAGE_SUPER
713 #define H5F_MEM_PAGE_GENERIC H5F_MEM_PAGE_LARGE_SUPER
796 #ifdef H5_HAVE_PARALLEL
858 #ifdef H5_HAVE_PARALLEL
875 const char *prop_prefix,
const char *file_name,
unsigned file_intent,
hid_t fapl_id);
struct H5F_object_flush_t H5F_object_flush_t
H5_DLL hbool_t H5F_get_null_fsm_addr(const H5F_t *f)
Definition: H5Fquery.c:1272
Definition: H5Oprivate.h:152
@ H5F_MEM_PAGE_NTYPES
Definition: H5Fprivate.h:703
H5_DLL herr_t H5F_cwfs_add(H5F_t *f, struct H5HG_heap_t *heap)
Definition: H5Fcwfs.c:106
H5_DLL unsigned H5F_gc_ref(const H5F_t *f)
Definition: H5Fquery.c:771
H5_DLL hbool_t H5F_use_tmp_space(const H5F_t *f)
Definition: H5Fquery.c:1068
H5_DLL herr_t H5F_set_sohm_addr(H5F_t *f, haddr_t addr)
Definition: H5Fint.c:2662
H5_DLL herr_t H5F_track_metadata_read_retries(H5F_t *f, unsigned actype, unsigned retries)
Definition: H5Fint.c:2975
H5_DLL herr_t H5F_try_close(H5F_t *f, hbool_t *was_closed)
Definition: H5Fint.c:2077
H5F_close_degree_t
Definition: H5Fpublic.h:102
iblock size
Definition: H5EAcache.c:787
hdr f
Definition: H5EA.c:755
H5_DLL char * H5F_mdc_log_location(const H5F_t *f)
Definition: H5Fquery.c:1163
H5_DLL size_t H5F_sieve_buf_size(const H5F_t *f)
Definition: H5Fquery.c:742
H5_DLL H5F_t * H5F_open(const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id)
Definition: H5Fint.c:1502
Definition: H5Fprivate.h:675
H5_DLL haddr_t H5F_get_eoa(const H5F_t *f, H5FD_mem_t type)
Definition: H5Fquery.c:984
@ H5F_MEM_PAGE_LARGE_DRAW
Definition: H5Fprivate.h:699
void * udata
Definition: H5Fprivate.h:671
@ H5F_PREFIX_ELINK
Definition: H5Fprivate.h:713
H5_DLL H5F_close_degree_t H5F_get_fc_degree(const H5F_t *f)
Definition: H5Fquery.c:793
H5_DLL double H5F_rdcc_w0(const H5F_t *f)
Definition: H5Fquery.c:668
H5_DLL herr_t H5F_efc_close(H5F_t *parent, H5F_t *file)
Definition: H5Fefc.c:357
Definition: H5VLprivate.h:39
H5_DLL size_t H5F_rdcc_nslots(const H5F_t *f)
Definition: H5Fquery.c:618
H5_DLL herr_t H5F_set_retries(H5F_t *f)
Definition: H5Fint.c:3020
uint32_t
Definition: H5overflow.txt:38
H5_DLL void H5F_sfile_assert_num(unsigned n)
Definition: H5Fsfile.c:55
H5_DLL herr_t H5F_block_read(H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size, void *buf)
Definition: H5Fio.c:139
@ H5F_MEM_PAGE_DEFAULT
Definition: H5Fprivate.h:690
H5I_type_t
Definition: H5Ipublic.h:33
@ H5F_MEM_PAGE_SUPER
Definition: H5Fprivate.h:691
H5_DLL H5F_libver_t H5F_get_high_bound(const H5F_t *f)
Definition: H5Fquery.c:160
CATCH haddr_t
Definition: H5EAdblock.c:162
H5_DLL hbool_t H5F_has_mount(const H5F_t *file)
*s *s indent
Definition: H5HLdbg.c:111
H5_DLL void H5F_addr_encode(const H5F_t *f, uint8_t **pp, haddr_t addr)
Definition: H5Fint.c:2524
H5_DLL herr_t H5F_init(void)
Definition: H5F.c:129
H5_DLL haddr_t H5F_get_sohm_addr(const H5F_t *f)
Definition: H5Fquery.c:458
H5_DLL hbool_t H5F_file_id_exists(const H5F_t *f)
Definition: H5Fquery.c:310
H5_DLL hbool_t H5F_is_tmp_addr(const H5F_t *f, haddr_t addr)
Definition: H5Fquery.c:1044
H5F_prefix_open_t
Definition: H5Fprivate.h:711
H5_DLL H5F_t * H5F_get_parent(const H5F_t *f)
Definition: H5Fquery.c:330
H5P_coll_md_read_flag_t
Definition: H5Pprivate.h:52
H5_DLL unsigned H5F_shared_get_intent(const H5F_shared_t *f)
Definition: H5Fquery.c:88
H5_DLL herr_t H5F_flush_mounts(H5F_t *f)
Definition: H5Fmount.c:684
H5_DLL unsigned H5F_Kvalue(const H5F_t *f, const struct H5B_class_t *type)
@ H5F_FS_STATE_OPEN
Definition: H5Fprivate.h:683
haddr_t offset
Definition: H5Fprivate.h:676
H5_DLL herr_t H5F_flush_tagged_metadata(H5F_t *f, haddr_t tag)
Definition: H5Fio.c:273
unsigned char uint8_t
Definition: H5private.h:429
@ H5F_FS_STATE_DELETING
Definition: H5Fprivate.h:684
H5_DLL hsize_t H5F_get_threshold(const H5F_t *f)
Definition: H5Fquery.c:1207
@ H5F_MEM_PAGE_LARGE_SUPER
Definition: H5Fprivate.h:697
H5_DLL hid_t H5F_get_file_id(H5VL_object_t *vol_obj, H5I_type_t obj_type, hbool_t app_ref)
Definition: H5Fint.c:3596
Definition: H5Bprivate.h:111
H5_DLL herr_t H5F_traverse_mount(struct H5O_loc_t *oloc)
Definition: H5Fmount.c:720
H5F_flush_cb_t func
Definition: H5Fprivate.h:670
@ H5F_MEM_PAGE_LARGE_OHDR
Definition: H5Fprivate.h:702
Definition: H5Fpublic.h:198
H5_DLL void H5F_addr_decode_len(size_t addr_len, const uint8_t **pp, haddr_t *addr_p)
Definition: H5Fint.c:2551
H5_DLL H5VL_object_t * H5F_get_vol_obj(const H5F_t *f)
Definition: H5Fquery.c:1318
H5_DLL herr_t H5F_set_grp_btree_shared(H5F_t *f, struct H5UC_t *rc)
Definition: H5Fint.c:2637
H5F_mem_page_t
Definition: H5Fprivate.h:689
H5_DLL herr_t H5F_get_fileno(const H5F_t *f, unsigned long *filenum)
Definition: H5Fquery.c:929
H5_DLL herr_t H5F_get_metadata_read_retry_info(H5F_t *file, H5F_retry_info_t *info)
Definition: H5Fint.c:3208
H5_DLL char * H5F_get_extpath(const H5F_t *f)
Definition: H5Fquery.c:226
H5_DLL hsize_t H5F_get_pgend_meta_thres(const H5F_t *f)
Definition: H5Fquery.c:1229
int64_t hid_t
Definition: H5Ipublic.h:55
@ H5F_MEM_PAGE_BTREE
Definition: H5Fprivate.h:692
H5_DLL struct H5UC_t * H5F_grp_btree_shared(const H5F_t *f)
Definition: H5Fquery.c:717
hsize_t length
Definition: H5Fprivate.h:677
H5_DLL herr_t H5F_set_sohm_vers(H5F_t *f, unsigned vers)
Definition: H5Fint.c:2686
Definition: H5UCprivate.h:43
H5_DLL hsize_t H5F_get_alignment(const H5F_t *f)
Definition: H5Fquery.c:1185
Definition: H5HGpkg.h:122
@ H5F_PREFIX_VDS
Definition: H5Fprivate.h:712
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
H5_DLL herr_t H5F_shared_block_read(H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, void *buf)
Definition: H5Fio.c:95
H5_DLL unsigned H5F_decr_nopen_objs(H5F_t *f)
Definition: H5Fint.c:2344
H5_DLL H5F_t * H5F_fake_alloc(uint8_t sizeof_size)
Definition: H5Ffake.c:43
@ H5F_PREFIX_EFILE
Definition: H5Fprivate.h:714
H5_DLL hbool_t H5F_use_mdc_logging(const H5F_t *f)
Definition: H5Fquery.c:1115
H5_DLL hbool_t H5F_get_point_of_no_return(const H5F_t *f)
Definition: H5Fquery.c:1251
@ H5F_MEM_PAGE_LHEAP
Definition: H5Fprivate.h:695
H5_DLL unsigned H5F_get_intent(const H5F_t *f)
Definition: H5Fquery.c:110
H5_DLL uint8_t H5F_sizeof_addr(const H5F_t *f)
Definition: H5Fquery.c:414
H5_DLL unsigned H5F_get_sohm_vers(const H5F_t *f)
Definition: H5Fquery.c:479
H5_DLL herr_t H5F_fake_free(H5F_t *f)
Definition: H5Ffake.c:88
H5_DLL H5F_libver_t H5F_get_low_bound(const H5F_t *f)
Definition: H5Fquery.c:135
H5_DLL herr_t H5F_get_vfd_handle(const H5F_t *file, hid_t fapl, void **file_handle)
Definition: H5Fquery.c:1013
@ H5F_FS_STATE_CLOSED
Definition: H5Fprivate.h:682
H5_DLL herr_t H5F_block_write(H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf)
Definition: H5Fio.c:229
H5_DLL herr_t H5F_evict_tagged_metadata(H5F_t *f, haddr_t tag)
Definition: H5Fio.c:309
*s *s fwidth
Definition: H5HLdbg.c:111
H5F_fs_state_t
Definition: H5Fprivate.h:681
H5_DLL hbool_t H5F_get_evict_on_close(const H5F_t *f)
Definition: H5Fquery.c:817
H5_DLL herr_t H5F_debug(H5F_t *f, FILE *stream, int indent, int fwidth)
Definition: H5Fdbg.c:48
H5_DLL char * H5F_get_open_name(const H5F_t *f)
Definition: H5Fquery.c:181
H5_DLL herr_t H5F_super_dirty(H5F_t *f)
Definition: H5Fsuper.c:1547
enum H5F_mem_t H5FD_mem_t
Definition: H5FDpublic.h:28
H5_DLL herr_t H5F_set_sohm_nindexes(H5F_t *f, unsigned nindexes)
Definition: H5Fint.c:2710
@ H5F_MEM_PAGE_GHEAP
Definition: H5Fprivate.h:694
H5_DLL void H5F_addr_decode(const H5F_t *f, const uint8_t **pp, haddr_t *addr_p)
Definition: H5Fint.c:2615
H5_DLL unsigned H5F_get_nrefs(const H5F_t *f)
Definition: H5Fquery.c:593
H5_DLL H5F_shared_t * H5F_get_shared(const H5F_t *f)
Definition: H5Fquery.c:247
H5_DLL H5F_t * H5F_prefix_open_file(H5F_t *primary_file, H5F_prefix_open_t prefix_type, const char *prop_prefix, const char *file_name, unsigned file_intent, hid_t fapl_id)
Definition: H5Fint.c:632
H5F_libver_t
Definition: H5Fpublic.h:162
#define H5_DLL
Definition: H5api_adpt.h:234
Definition: H5Fprivate.h:669
H5_DLL herr_t H5F_object_flush_cb(H5F_t *f, hid_t obj_id)
Definition: H5Fint.c:3057
H5_DLL hbool_t H5F_get_min_dset_ohdr(const H5F_t *f)
Definition: H5Fquery.c:547
H5_DLL unsigned H5F_get_nopen_objs(const H5F_t *f)
Definition: H5Fquery.c:290
@ H5F_MEM_PAGE_LARGE_BTREE
Definition: H5Fprivate.h:698
H5_DLL const H5VL_class_t * H5F_get_vol_cls(const H5F_t *f)
Definition: H5Fquery.c:1297
@ H5F_MEM_PAGE_LARGE_GHEAP
Definition: H5Fprivate.h:700
CATCH unable to release unprotect heap
Definition: H5HLdbg.c:119
H5_DLL herr_t H5F_cwfs_remove_heap(H5F_shared_t *shared, struct H5HG_heap_t *heap)
Definition: H5Fcwfs.c:302
Definition: H5VLconnector.h:463
H5_DLL hbool_t H5F_start_mdc_log_on_access(const H5F_t *f)
Definition: H5Fquery.c:1139
@ H5F_MEM_PAGE_DRAW
Definition: H5Fprivate.h:693
H5_DLL herr_t H5F_cwfs_find_free_heap(H5F_t *f, size_t need, haddr_t *addr)
Definition: H5Fcwfs.c:162
herr_t(* H5F_flush_cb_t)(hid_t object_id, void *udata)
Definition: H5Fpublic.h:204
H5_DLL haddr_t H5F_get_base_addr(const H5F_t *f)
Definition: H5Fquery.c:691
H5_DLL herr_t H5F_set_store_msg_crt_idx(H5F_t *f, hbool_t flag)
Definition: H5Fint.c:2734
H5_DLL herr_t H5F_get_obj_count(const H5F_t *f, unsigned types, hbool_t app_ref, size_t *obj_id_count_ptr)
Definition: H5Fint.c:293
H5_DLL hid_t H5F_get_access_plist(H5F_t *f, hbool_t app_ref)
Definition: H5Fint.c:179
H5_DLL hid_t H5F_get_id(H5F_t *file)
Definition: H5Fint.c:2288
*s *s n
Definition: H5HLdbg.c:111
H5_DLL unsigned H5F_get_nmounts(const H5F_t *f)
Definition: H5Fquery.c:350
H5_DLL hbool_t H5F_is_mount(const H5F_t *file)
Definition: H5Fmount.c:412
struct H5F_block_t H5F_block_t
H5_DLL unsigned H5F_sym_leaf_k(const H5F_t *f)
Definition: H5Fquery.c:525
H5_DLL hid_t H5F_get_driver_id(const H5F_t *f)
Definition: H5Fquery.c:905
int herr_t
Definition: H5public.h:128
H5_DLL hbool_t H5F_store_msg_crt_idx(const H5F_t *f)
Definition: H5Fquery.c:839
H5_DLL herr_t H5F_get_checksums(const uint8_t *buf, size_t chk_size, uint32_t *s_chksum, uint32_t *c_chksum)
Definition: H5Fio.c:394
bool hbool_t
Definition: H5public.h:159
H5_DLL unsigned H5F_get_read_attempts(const H5F_t *f)
Definition: H5Fquery.c:370
H5_DLL unsigned H5F_incr_nopen_objs(H5F_t *f)
Definition: H5Fint.c:2323
H5_DLL herr_t H5F_get_obj_ids(const H5F_t *f, unsigned types, size_t max_objs, hid_t *oid_list, hbool_t app_ref, size_t *obj_id_count_ptr)
Definition: H5Fint.c:320
hsize_t
Definition: H5overflow.txt:44
H5_DLL hbool_t H5F_same_shared(const H5F_t *f1, const H5F_t *f2)
Definition: H5Fquery.c:267
H5_DLL hbool_t H5F_has_feature(const H5F_t *f, unsigned feature)
Definition: H5Fquery.c:882
H5_DLL haddr_t H5F_shared_get_eoa(const H5F_shared_t *f_sh, H5FD_mem_t type)
Definition: H5Fquery.c:958
H5_DLL unsigned H5F_get_sohm_nindexes(const H5F_t *f)
Definition: H5Fquery.c:500
H5_DLL herr_t H5F_set_min_dset_ohdr(H5F_t *f, hbool_t minimize)
Definition: H5Fint.c:3655
H5_DLL hbool_t H5F_shared_has_feature(const H5F_shared_t *f, unsigned feature)
Definition: H5Fquery.c:861
H5_DLL void H5F_addr_encode_len(size_t addr_len, uint8_t **pp, haddr_t addr)
Definition: H5Fint.c:2487
H5_DLL size_t H5F_rdcc_nbytes(const H5F_t *f)
Definition: H5Fquery.c:643
H5_DLL herr_t H5F_shared_block_write(H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf)
Definition: H5Fio.c:184
H5_DLL herr_t H5F_cwfs_advance_heap(H5F_t *f, struct H5HG_heap_t *heap, hbool_t add_heap)
Definition: H5Fcwfs.c:258
@ H5F_MEM_PAGE_OHDR
Definition: H5Fprivate.h:696
H5_DLL hid_t H5F_get_fcpl(const H5F_t *f)
Definition: H5Fquery.c:391
H5_DLL char * H5F_get_actual_name(const H5F_t *f)
Definition: H5Fquery.c:203
H5_DLL uint8_t H5F_sizeof_size(const H5F_t *f)
Definition: H5Fquery.c:437
H5_DLL herr_t H5F_eoa_dirty(H5F_t *f)
Definition: H5Fsuper.c:1499
@ H5F_MEM_PAGE_LARGE_LHEAP
Definition: H5Fprivate.h:701