 |
HDF5
1.12.0
|
Go to the documentation of this file.
22 #if !(defined H5F_FRIEND || defined H5F_MODULE)
23 #error "Do not include this file outside the H5F package!"
54 #define H5F_SUPER_WRITE_ACCESS 0x01
55 #define H5F_SUPER_FILE_OK 0x02
56 #define H5F_SUPER_SWMR_WRITE_ACCESS 0x04
57 #define H5F_SUPER_ALL_FLAGS (H5F_SUPER_WRITE_ACCESS | H5F_SUPER_FILE_OK | H5F_SUPER_SWMR_WRITE_ACCESS)
60 #define H5F_ACC_PUBLIC_FLAGS 0x007fu
63 #define H5F_FS_MERGE_METADATA 0x01
64 #define H5F_FS_MERGE_RAWDATA 0x02
67 #define H5F_HAVE_FREE_SPACE_MANAGER(F) \
68 ((F)->shared->fs_strategy == H5F_FSPACE_STRATEGY_FSM_AGGR || \
69 (F)->shared->fs_strategy == H5F_FSPACE_STRATEGY_PAGE)
72 #define H5F_MAX_DRVINFOBLOCK_SIZE 1024
73 #define H5F_DRVINFOBLOCK_HDR_SIZE 16
76 #define H5F_SIZEOF_CHKSUM 4
79 #define H5F_SUPERBLOCK_FIXED_SIZE ( H5F_SIGNATURE_LEN \
95 #define H5F_SUPERBLOCK_MINIMAL_VARLEN_SIZE 7
98 #define H5F_SUPERBLOCK_VARLEN_SIZE_COMMON \
105 #define H5F_SUPERBLOCK_VARLEN_SIZE_V0(sizeof_addr, sizeof_size) \
106 ( H5F_SUPERBLOCK_VARLEN_SIZE_COMMON \
111 + H5G_SIZEOF_ENTRY(sizeof_addr, sizeof_size))
112 #define H5F_SUPERBLOCK_VARLEN_SIZE_V1(sizeof_addr, sizeof_size) \
113 ( H5F_SUPERBLOCK_VARLEN_SIZE_COMMON \
120 + H5G_SIZEOF_ENTRY(sizeof_addr, sizeof_size))
121 #define H5F_SUPERBLOCK_VARLEN_SIZE_V2(sizeof_addr) \
129 #define H5F_SUPERBLOCK_VARLEN_SIZE(v, sizeof_addr, sizeof_size) ( \
130 (v == 0 ? H5F_SUPERBLOCK_VARLEN_SIZE_V0(sizeof_addr, sizeof_size) : 0) \
131 + (v == 1 ? H5F_SUPERBLOCK_VARLEN_SIZE_V1(sizeof_addr, sizeof_size) : 0) \
132 + (v >= 2 ? H5F_SUPERBLOCK_VARLEN_SIZE_V2(sizeof_addr) : 0))
135 #define H5F_SUPERBLOCK_SIZE(s) ( H5F_SUPERBLOCK_FIXED_SIZE \
136 + H5F_SUPERBLOCK_VARLEN_SIZE((s)->super_vers, (s)->sizeof_addr, (s)->sizeof_size))
140 #define H5F_SUPER_STATUS_OFF_V01 \
147 #define H5F_SUPER_STATUS_OFF(v) (v >= 2 ? (unsigned)2 : H5F_SUPER_STATUS_OFF_V01)
150 #define H5F_SUPER_STATUS_FLAGS_OFF(v) (H5F_SUPERBLOCK_FIXED_SIZE + H5F_SUPER_STATUS_OFF(v))
153 #define H5F_SUPER_STATUS_FLAGS_SIZE(v) (v >= 2 ? 1 : 4)
362 #ifdef H5_HAVE_PARALLEL
hbool_t crt_dset_min_ohdr_flag
Definition: H5Fpkg.h:358
@ H5AC_NTYPES
Definition: H5ACprivate.h:79
struct H5HG_heap_t ** cwfs
Definition: H5Fpkg.h:305
H5O_drvinfo_t * drvinfo
Definition: H5Fpkg.h:245
Definition: H5Oprivate.h:152
int ssize_t
Definition: H5public.h:167
@ H5F_MEM_PAGE_NTYPES
Definition: H5Fprivate.h:703
H5_DLL herr_t H5F__sfile_remove(H5F_shared_t *shared)
Definition: H5Fsfile.c:178
H5_DLL herr_t H5F__free(H5F_t *f, H5F_mem_t type, haddr_t addr, hsize_t size)
size_t rdcc_nbytes
Definition: H5Fpkg.h:295
herr_t H5F__get_sbe_addr_test(hid_t file_id, haddr_t *sbe_addr)
Definition: H5Ftest.c:218
hbool_t use_tmp_space
Definition: H5Fpkg.h:323
hbool_t drvrinfo_removed
Definition: H5Fpkg.h:168
unsigned long feature_flags
Definition: H5Fpkg.h:271
H5_DLL herr_t H5F__efc_destroy(H5F_efc_t *efc)
Definition: H5Fefc.c:542
unsigned long feature_flag
Definition: H5Fpkg.h:182
H5F_close_degree_t
Definition: H5Fpublic.h:102
iblock size
Definition: H5EAcache.c:787
hbool_t store_msg_crt_idx
Definition: H5Fpkg.h:303
H5FS_t * fs_man[H5F_MEM_PAGE_NTYPES]
Definition: H5Fpkg.h:329
hdr f
Definition: H5EA.c:755
hbool_t point_of_no_return
Definition: H5Fpkg.h:325
Definition: H5FSpkg.h:150
struct H5F_t * parent
Definition: H5Fpkg.h:383
herr_t H5F__get_maxaddr_test(hid_t file_id, haddr_t *maxaddr)
Definition: H5Ftest.c:185
H5_DLL herr_t H5F__mount(H5G_loc_t *loc, const char *name, H5F_t *child, hid_t plist_id)
char * extpath
Definition: H5Fpkg.h:360
H5F_super_t * sblock
Definition: H5Fpkg.h:244
hbool_t id_exists
Definition: H5Fpkg.h:381
H5F_fspace_strategy_t
Definition: H5Fpublic.h:174
void * vol_info
Definition: H5Fpkg.h:314
haddr_t fs_addr[H5F_MEM_PAGE_NTYPES]
Definition: H5Fpkg.h:328
H5_DLL herr_t H5F__accum_read(H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, void *buf)
Definition: H5Faccum.c:114
unsigned btree_k[H5B_NUM_BTREE_ID]
Definition: H5Fpkg.h:226
hbool_t ignore_drvrinfo
Definition: H5Fpkg.h:163
unsigned sohm_vers
Definition: H5Fpkg.h:269
struct H5F_super_t H5F_super_t
H5_DLL htri_t H5F__try_extend(H5F_t *f, H5FD_mem_t type, haddr_t blk_end, hsize_t extra_requested)
Definition: H5Fspace.c:200
Definition: H5Cpkg.h:4642
Definition: H5FDpublic.h:317
Definition: H5VLprivate.h:39
unsigned super_vers
Definition: H5Fpkg.h:169
uint32_t
Definition: H5overflow.txt:38
H5AC_info_t cache_info
Definition: H5Fpkg.h:220
H5VL_object_t * vol_obj
Definition: H5Fpkg.h:378
H5_DLL herr_t H5F__format_convert(H5F_t *f)
Definition: H5Fint.c:3531
CATCH haddr_t
Definition: H5EAdblock.c:162
unsigned fs_aggr_merge[H5FD_MEM_NTYPES]
Definition: H5Fpkg.h:339
uint8_t sizeof_addr
Definition: H5Fpkg.h:266
hsize_t size
Definition: H5Fpkg.h:185
hid_t vol_id
Definition: H5Fpkg.h:312
haddr_t sohm_addr
Definition: H5Fpkg.h:268
H5_DLL herr_t H5F__set_libver_bounds(H5F_t *f, H5F_libver_t low, H5F_libver_t high)
Definition: H5Fint.c:2764
haddr_t stored_eof
Definition: H5Fpkg.h:167
H5_DLL herr_t H5F__efc_try_close(H5F_t *f)
Definition: H5Fefc.c:840
unsigned sohm_nindexes
Definition: H5Fpkg.h:270
H5_DLL herr_t H5F__super_size(H5F_t *f, hsize_t *super_size, hsize_t *super_ext_size)
Definition: H5Fsuper.c:1612
double rdcc_w0
Definition: H5Fpkg.h:296
H5AC_cache_config_t mdc_initCacheCfg
Definition: H5Fpkg.h:277
H5F_shared_t * shared
Definition: H5Fpkg.h:377
H5P_coll_md_read_flag_t
Definition: H5Pprivate.h:52
H5PB_t * page_buf
Definition: H5Fpkg.h:274
const H5VL_class_t * vol_cls
Definition: H5Fpkg.h:313
H5F_mtab_t mtab
Definition: H5Fpkg.h:262
H5_DLL herr_t H5F__super_ext_close(H5F_t *f, H5O_loc_t *ext_ptr, hbool_t was_created)
Definition: H5Fsuper.c:188
unsigned retries_nbins
Definition: H5Fpkg.h:353
haddr_t eoa_fsm_fsalloc
Definition: H5Fpkg.h:332
haddr_t base_addr
Definition: H5Fpkg.h:227
hsize_t fs_threshold
Definition: H5Fpkg.h:318
Definition: H5Gprivate.h:144
H5FO_t * obj_count
Definition: H5Fpkg.h:380
H5F_mount_t * child
Definition: H5Fpkg.h:213
unsigned char uint8_t
Definition: H5private.h:429
unsigned nopen_objs
Definition: H5Fpkg.h:379
hsize_t alloc_size
Definition: H5Fpkg.h:183
haddr_t ext_addr
Definition: H5Fpkg.h:229
H5_DLL H5F_efc_t * H5F__efc_create(unsigned max_nfiles)
Definition: H5Fefc.c:93
H5_DLL herr_t H5F__efc_release(H5F_efc_t *efc)
Definition: H5Fefc.c:508
H5F_fspace_strategy_t fs_strategy
Definition: H5Fpkg.h:317
size_t rdcc_nslots
Definition: H5Fpkg.h:294
uint8_t sizeof_size
Definition: H5Fpkg.h:223
struct H5F_drvrinfo_cache_ud_t H5F_drvrinfo_cache_ud_t
int htri_t
Definition: H5public.h:160
hbool_t fs_persist
Definition: H5Fpkg.h:319
size_t pgend_meta_thres
Definition: H5Fpkg.h:346
H5FD_mem_t fs_type_map[H5FD_MEM_NTYPES]
Definition: H5Fpkg.h:340
unsigned nalloc
Definition: H5Fpkg.h:212
H5_DLL herr_t H5F__get_max_eof_eoa(const H5F_t *f, haddr_t *max_eof_eoa)
Definition: H5Fint.c:3168
uint8_t status_flags
Definition: H5Fpkg.h:224
haddr_t tmp_addr
Definition: H5Fpkg.h:324
haddr_t maxaddr
Definition: H5Fpkg.h:272
@ H5FD_MEM_NTYPES
Definition: H5Fpublic.h:152
H5_DLL herr_t H5F__accum_flush(H5F_shared_t *f_sh)
Definition: H5Faccum.c:1016
struct H5G_t * root_grp
Definition: H5Fpkg.h:306
htri_t H5F__same_file_test(hid_t file_id1, hid_t file_id2)
Definition: H5Ftest.c:250
H5_DLL herr_t H5F__super_ext_write_msg(H5F_t *f, unsigned id, void *mesg, hbool_t may_create, unsigned mesg_flags)
Definition: H5Fsuper.c:1675
int64_t hid_t
Definition: H5Ipublic.h:55
herr_t H5F__check_cached_stab_test(hid_t file_id)
Definition: H5Ftest.c:143
H5FO_t * open_objs
Definition: H5Fpkg.h:307
H5_DLL herr_t H5F__close_mounts(H5F_t *f)
Definition: H5Fmount.c:46
haddr_t driver_addr
Definition: H5Fpkg.h:177
Definition: H5UCprivate.h:43
H5_DLL herr_t H5F__super_init(H5F_t *f)
Definition: H5Fsuper.c:1069
Definition: H5HGpkg.h:122
H5_DLL herr_t H5F__super_free(H5F_super_t *sblock)
Definition: H5Fsuper.c:1581
hbool_t use_mdc_logging
Definition: H5Fpkg.h:287
unsigned gc_ref
Definition: H5Fpkg.h:300
H5_DLL herr_t H5F__flush(H5F_t *f)
Definition: H5Fint.c:1978
H5_DLL herr_t H5F__get_cont_info(const H5F_t *f, H5VL_file_cont_info_t *info)
Definition: H5Fquery.c:1342
Definition: H5VLconnector.h:281
uint8_t sizeof_addr
Definition: H5Fpkg.h:222
H5_DLL haddr_t H5F__alloc(H5F_t *f, H5F_mem_t type, hsize_t size, haddr_t *frag_addr, hsize_t *frag_size)
Definition: H5Fspace.c:96
H5_DLL herr_t H5F__super_ext_remove_msg(H5F_t *f, unsigned id)
Definition: H5Fsuper.c:1760
H5F_blk_aggr_t sdata_aggr
Definition: H5Fpkg.h:342
hsize_t fs_page_size
Definition: H5Fpkg.h:345
unsigned fs_version
Definition: H5Fpkg.h:320
unsigned ncwfs
Definition: H5Fpkg.h:304
unsigned sym_leaf_k
Definition: H5Fpkg.h:165
hbool_t closing
Definition: H5Fpkg.h:309
char * mdc_log_location
Definition: H5Fpkg.h:290
haddr_t driver_addr
Definition: H5Fpkg.h:230
H5_DLL herr_t H5F__start_swmr_write(H5F_t *f)
Definition: H5Fint.c:3321
haddr_t root_addr
Definition: H5Fpkg.h:231
H5F_fs_state_t fs_state[H5F_MEM_PAGE_NTYPES]
Definition: H5Fpkg.h:327
struct H5F_t * file
Definition: H5Fpkg.h:203
H5F_close_degree_t fc_degree
Definition: H5Fpkg.h:292
struct H5F_mtab_t H5F_mtab_t
H5F_fs_state_t
Definition: H5Fprivate.h:681
H5F_t * f
Definition: H5Fpkg.h:162
H5F_libver_t low_bound
Definition: H5Fpkg.h:301
H5F_t * f
Definition: H5Fpkg.h:176
H5_DLL herr_t H5F__set_eoa(const H5F_t *f, H5F_mem_t type, haddr_t addr)
Definition: H5Fint.c:3112
H5_DLL herr_t H5F__accum_reset(H5F_shared_t *f_sh, hbool_t flush)
Definition: H5Faccum.c:1059
H5_DLL herr_t H5F__accum_free(H5F_shared_t *f, H5FD_mem_t type, haddr_t addr, hsize_t size)
Definition: H5PBprivate.h:51
enum H5F_mem_t H5FD_mem_t
Definition: H5FDpublic.h:28
char * actual_name
Definition: H5Fpkg.h:376
Definition: H5ACpublic.h:448
hsize_t alignment
Definition: H5Fpkg.h:299
unsigned btree_k[H5B_NUM_BTREE_ID]
Definition: H5Fpkg.h:166
hbool_t evict_on_close
Definition: H5Fpkg.h:293
H5AC_t * cache
Definition: H5Fpkg.h:275
herr_t H5F__get_sohm_mesg_count_test(hid_t file_id, unsigned type_id, size_t *mesg_count)
Definition: H5Ftest.c:98
struct H5F_meta_accum_t H5F_meta_accum_t
hsize_t tot_size
Definition: H5Fpkg.h:184
H5F_libver_t
Definition: H5Fpublic.h:162
H5_DLL herr_t H5F__post_open(H5F_t *f)
Definition: H5Fint.c:1842
Definition: H5Fpublic.h:110
char * open_name
Definition: H5Fpkg.h:375
hsize_t threshold
Definition: H5Fpkg.h:298
#define H5_DLL
Definition: H5api_adpt.h:234
haddr_t addr
Definition: H5Fpkg.h:186
unsigned sym_leaf_k
Definition: H5Fpkg.h:225
Definition: H5Fprivate.h:669
struct H5F_superblock_cache_ud_t H5F_superblock_cache_ud_t
H5_DLL H5F_t * H5F__reopen(H5F_t *f)
Definition: H5Fint.c:2256
H5_DLL herr_t H5F__accum_write(H5F_shared_t *f_sh, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf)
Definition: H5Faccum.c:422
H5_DLL htri_t H5F__is_hdf5(const char *name, hid_t fapl_id)
Definition: H5Fint.c:853
H5_DLL herr_t H5F__close(H5F_t *f)
Definition: H5Fint.c:2023
H5_DLL herr_t H5F__unmount(H5G_loc_t *loc, const char *name)
Definition: H5Fmount.c:267
uint8_t sizeof_size
Definition: H5Fpkg.h:267
H5F_efc_t * efc
Definition: H5Fpkg.h:263
H5FD_t * lf
Definition: H5Fpkg.h:243
Definition: H5VLconnector.h:463
unsigned nrefs
Definition: H5Fpkg.h:260
H5_DLL herr_t H5F__super_ext_open(H5F_t *f, haddr_t ext_addr, H5O_loc_t *ext_ptr)
Definition: H5Fsuper.c:150
H5F_meta_accum_t accum
Definition: H5Fpkg.h:349
H5_DLL H5F_shared_t * H5F__sfile_search(H5FD_t *lf)
Definition: H5Fsfile.c:139
struct H5G_t * group
Definition: H5Fpkg.h:202
uint32_t * retries[H5AC_NTYPES]
Definition: H5Fpkg.h:354
H5G_entry_t * root_ent
Definition: H5Fpkg.h:232
H5_DLL herr_t H5F__dest(H5F_t *f, hbool_t flush)
Definition: H5Fint.c:1167
H5_DLL unsigned H5F__efc_max_nfiles(H5F_efc_t *efc)
Definition: H5Fefc.c:419
unsigned nmounts
Definition: H5Fpkg.h:384
unsigned read_attempts
Definition: H5Fpkg.h:352
hbool_t closing
Definition: H5Fpkg.h:382
hid_t fcpl_id
Definition: H5Fpkg.h:291
int herr_t
Definition: H5public.h:128
size_t sieve_buf_size
Definition: H5Fpkg.h:297
hbool_t null_fsm_addr
Definition: H5Fpkg.h:330
bool hbool_t
Definition: H5public.h:159
unsigned super_vers
Definition: H5Fpkg.h:221
@ H5B_NUM_BTREE_ID
Definition: H5Bprivate.h:62
hbool_t drvinfo_sb_msg_exists
Definition: H5Fpkg.h:252
H5UC_t * grp_btree_shared
Definition: H5Fpkg.h:308
Definition: H5Cprivate.h:1597
H5F_blk_aggr_t meta_aggr
Definition: H5Fpkg.h:341
H5_DLL herr_t H5F__sfile_add(H5F_shared_t *shared)
Definition: H5Fsfile.c:99
hsize_t
Definition: H5overflow.txt:44
unsigned flags
Definition: H5Fpkg.h:261
H5F_mem_t
Definition: H5Fpublic.h:136
H5_DLL H5F_t * H5F__efc_open(H5F_t *parent, const char *name, unsigned flags, hid_t fcpl_id, hid_t fapl_id)
Definition: H5Fefc.c:144
sblock
Definition: H5EAsblock.c:446
H5_DLL ssize_t H5F__get_file_image(H5F_t *f, void *buf_ptr, size_t buf_len)
Definition: H5Fint.c:2819
H5_DLL herr_t H5F__super_read(H5F_t *f, H5P_genplist_t *fa_plist, hbool_t initial_read)
Definition: H5Fsuper.c:326
struct H5F_mount_t H5F_mount_t
haddr_t eoa_post_mdci_fsalloc
Definition: H5Fpkg.h:334
Definition: H5Oprivate.h:769
hbool_t start_mdc_log_on_access
Definition: H5Fpkg.h:288
unsigned nmounts
Definition: H5Fpkg.h:211
H5F_libver_t high_bound
Definition: H5Fpkg.h:302
Definition: H5ACpublic.h:563
H5AC_cache_image_config_t mdc_initCacheImageCfg
Definition: H5Fpkg.h:282
H5F_object_flush_t object_flush
Definition: H5Fpkg.h:357
H5_DLL herr_t H5F__get_info(H5F_t *f, H5F_info2_t *finfo)
Definition: H5Fint.c:2925
H5_DLL herr_t H5F__set_base_addr(const H5F_t *f, haddr_t addr)
Definition: H5Fint.c:3085
H5_DLL herr_t H5F__evict_cache_entries(H5F_t *f)
Definition: H5Fio.c:337
H5_DLL herr_t H5F__set_paged_aggr(const H5F_t *f, hbool_t paged)
Definition: H5Fint.c:3140
H5_DLL herr_t H5F__mount_count_ids(H5F_t *f, unsigned *nopen_files, unsigned *nopen_objs)
Definition: H5Fmount.c:609