MISR Toolkit  1.5.1
H5Fpkg.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * Programmer: Quincey Koziol <koziol@ncsa.uiuc.edu>
16  * Thursday, September 28, 2000
17  *
18  * Purpose: This file contains declarations which are visible only within
19  * the H5F package. Source files outside the H5F package should
20  * include H5Fprivate.h instead.
21  */
22 #ifndef H5F_PACKAGE
23 #error "Do not include this file outside the H5F package!"
24 #endif
25 
26 #ifndef _H5Fpkg_H
27 #define _H5Fpkg_H
28 
29 /* Get package's private header */
30 #include "H5Fprivate.h"
31 
32 /* Other public headers needed by this file */
33 #include "H5Bpublic.h" /* B-tree header, for H5B_NUM_BTREE_ID */
34 
35 /* Other private headers needed by this file */
36 #include "H5private.h" /* Generic Functions */
37 #include "H5ACprivate.h" /* Metadata cache */
38 #include "H5FLprivate.h" /* Free Lists */
39 #include "H5FOprivate.h" /* File objects */
40 #include "H5FSprivate.h" /* File free space */
41 #include "H5Gprivate.h" /* Groups */
42 #include "H5Oprivate.h" /* Object header messages */
43 #include "H5RCprivate.h" /* Reference counted object functions */
44 
45 
46 /*
47  * Feature: Define this constant on the compiler command-line if you want to
48  * see some debugging messages on the debug stream.
49  */
50 #ifdef NDEBUG
51 # undef H5F_DEBUG
52 #endif
53 
54 /* Superblock status flags */
55 #define H5F_SUPER_WRITE_ACCESS 0x01
56 #define H5F_SUPER_FILE_OK 0x02
57 #define H5F_SUPER_ALL_FLAGS (H5F_SUPER_WRITE_ACCESS | H5F_SUPER_FILE_OK)
58 
59 /* Mask for removing private file access flags */
60 #define H5F_ACC_PUBLIC_FLAGS 0x001fu
61 
62 /* Free space section+aggregator merge flags */
63 #define H5F_FS_MERGE_METADATA 0x01 /* Section can merge with metadata aggregator */
64 #define H5F_FS_MERGE_RAWDATA 0x02 /* Section can merge with small 'raw' data aggregator */
65 
66 /* Macro to abstract checking whether file is using a free space manager */
67 #define H5F_HAVE_FREE_SPACE_MANAGER(F) TRUE /* Currently always have a free space manager */
68 
69 /* Macros for encoding/decoding superblock */
70 #define H5F_MAX_DRVINFOBLOCK_SIZE 1024 /* Maximum size of superblock driver info buffer */
71 #define H5F_DRVINFOBLOCK_HDR_SIZE 16 /* Size of superblock driver info header */
72 
73 /* Superblock sizes for various versions */
74 #define H5F_SIZEOF_CHKSUM 4 /* Checksum size in the file */
75 
76 /* Fixed-size portion at the beginning of all superblocks */
77 #define H5F_SUPERBLOCK_FIXED_SIZE ( H5F_SIGNATURE_LEN \
78  + 1) /* superblock version */
79 
80 /* Macros for computing variable-size superblock size */
81 #define H5F_SUPERBLOCK_VARLEN_SIZE_COMMON \
82  (2 /* freespace, and root group versions */ \
83  + 1 /* reserved */ \
84  + 3 /* shared header vers, size of address, size of lengths */ \
85  + 1 /* reserved */ \
86  + 4 /* group leaf k, group internal k */ \
87  + 4) /* consistency flags */
88 #define H5F_SUPERBLOCK_VARLEN_SIZE_V0(f) \
89  ( H5F_SUPERBLOCK_VARLEN_SIZE_COMMON /* Common variable-length info */ \
90  + H5F_SIZEOF_ADDR(f) /* base address */ \
91  + H5F_SIZEOF_ADDR(f) /* <unused> */ \
92  + H5F_SIZEOF_ADDR(f) /* EOF address */ \
93  + H5F_SIZEOF_ADDR(f) /* driver block address */ \
94  + H5G_SIZEOF_ENTRY(f)) /* root group ptr */
95 #define H5F_SUPERBLOCK_VARLEN_SIZE_V1(f) \
96  ( H5F_SUPERBLOCK_VARLEN_SIZE_COMMON /* Common variable-length info */ \
97  + 2 /* indexed B-tree internal k */ \
98  + 2 /* reserved */ \
99  + H5F_SIZEOF_ADDR(f) /* base address */ \
100  + H5F_SIZEOF_ADDR(f) /* <unused> */ \
101  + H5F_SIZEOF_ADDR(f) /* EOF address */ \
102  + H5F_SIZEOF_ADDR(f) /* driver block address */ \
103  + H5G_SIZEOF_ENTRY(f)) /* root group ptr */
104 #define H5F_SUPERBLOCK_VARLEN_SIZE_V2(f) \
105  ( 2 /* size of address, size of lengths */ \
106  + 1 /* consistency flags */ \
107  + H5F_SIZEOF_ADDR(f) /* base address */ \
108  + H5F_SIZEOF_ADDR(f) /* superblock extension address */ \
109  + H5F_SIZEOF_ADDR(f) /* EOF address */ \
110  + H5F_SIZEOF_ADDR(f) /* root group object header address */ \
111  + H5F_SIZEOF_CHKSUM) /* superblock checksum (keep this last) */
112 #define H5F_SUPERBLOCK_VARLEN_SIZE(v, f) ( \
113  (v == 0 ? H5F_SUPERBLOCK_VARLEN_SIZE_V0(f) : 0) \
114  + (v == 1 ? H5F_SUPERBLOCK_VARLEN_SIZE_V1(f) : 0) \
115  + (v == 2 ? H5F_SUPERBLOCK_VARLEN_SIZE_V2(f) : 0))
116 
117 /* Total size of superblock, depends on superblock version */
118 #define H5F_SUPERBLOCK_SIZE(v, f) ( H5F_SUPERBLOCK_FIXED_SIZE \
119  + H5F_SUPERBLOCK_VARLEN_SIZE(v, f))
120 
121 
122 /* Forward declaration external file cache struct used below (defined in
123  * H5Fefc.c) */
124 typedef struct H5F_efc_t H5F_efc_t;
125 
126 /* Structure for metadata & "small [raw] data" block aggregation fields */
128  unsigned long feature_flag; /* Feature flag type */
129  hsize_t alloc_size; /* Size for allocating new blocks */
130  hsize_t tot_size; /* Total amount of bytes aggregated into block */
131  hsize_t size; /* Current size of block left */
132  haddr_t addr; /* Location of block left */
133 };
134 
135 /* Structure for metadata accumulator fields */
136 typedef struct H5F_meta_accum_t {
137  unsigned char *buf; /* Buffer to hold the accumulated metadata */
138  haddr_t loc; /* File location (offset) of the accumulated metadata */
139  size_t size; /* Size of the accumulated metadata buffer used (in bytes) */
140  size_t alloc_size; /* Size of the accumulated metadata buffer allocated (in bytes) */
141  size_t dirty_off; /* Offset of the dirty region in the accumulator buffer */
142  size_t dirty_len; /* Length of the dirty region in the accumulator buffer */
143  hbool_t dirty; /* Flag to indicate that the accumulated metadata is dirty */
145 
146 /* Enum for free space manager state */
147 typedef enum H5F_fs_state_t {
148  H5F_FS_STATE_CLOSED, /* Free space manager is closed */
149  H5F_FS_STATE_OPEN, /* Free space manager has been opened */
150  H5F_FS_STATE_DELETING /* Free space manager is being deleted */
152 
153 /* A record of the mount table */
154 typedef struct H5F_mount_t {
155  struct H5G_t *group; /* Mount point group held open */
156  struct H5F_t *file; /* File mounted at that point */
157 } H5F_mount_t;
158 
159 /*
160  * The mount table describes what files are attached to (mounted on) the file
161  * to which this table belongs.
162  */
163 typedef struct H5F_mtab_t {
164  unsigned nmounts;/* Number of children which are mounted */
165  unsigned nalloc; /* Number of mount slots allocated */
166  H5F_mount_t *child; /* An array of mount records */
167 } H5F_mtab_t;
168 
169 /* Structure specifically to store superblock. This was originally
170  * maintained entirely within H5F_file_t, but is now extracted
171  * here because the superblock is now handled by the cache */
172 typedef struct H5F_super_t {
173  H5AC_info_t cache_info; /* Cache entry information structure */
174  unsigned super_vers; /* Superblock version */
175  uint8_t status_flags; /* File status flags */
176  unsigned sym_leaf_k; /* Size of leaves in symbol tables */
177  unsigned btree_k[H5B_NUM_BTREE_ID]; /* B-tree key values for each type */
178  haddr_t base_addr; /* Absolute base address for rel.addrs. */
179  /* (superblock for file is at this offset) */
180  haddr_t ext_addr; /* Relative address of superblock extension */
181  haddr_t driver_addr; /* File driver information block address */
182  haddr_t root_addr; /* Root group address */
183  H5G_entry_t *root_ent; /* Root group symbol table entry */
184 } H5F_super_t;
185 
186 /*
187  * Define the structure to store the file information for HDF5 files. One of
188  * these structures is allocated per file, not per H5Fopen(). That is, set of
189  * H5F_t structs can all point to the same H5F_file_t struct. The `nrefs'
190  * count in this struct indicates the number of H5F_t structs which are
191  * pointing to this struct.
192  */
193 struct H5F_file_t {
194  H5FD_t *lf; /* Lower level file handle for I/O */
195  H5F_super_t *sblock; /* Pointer to (pinned) superblock for file */
196  unsigned nrefs; /* Ref count for times file is opened */
197  unsigned flags; /* Access Permissions for file */
198  H5F_mtab_t mtab; /* File mount table */
199  H5F_efc_t *efc; /* External file cache */
200 
201  /* Cached values from FCPL/superblock */
202  uint8_t sizeof_addr; /* Size of addresses in file */
203  uint8_t sizeof_size; /* Size of offsets in file */
204  haddr_t sohm_addr; /* Relative address of shared object header message table */
205  unsigned sohm_vers; /* Version of shared message table on disk */
206  unsigned sohm_nindexes; /* Number of shared messages indexes in the table */
207  unsigned long feature_flags; /* VFL Driver feature Flags */
208  haddr_t maxaddr; /* Maximum address for file */
209 
210  H5AC_t *cache; /* The object cache */
212  mdc_initCacheCfg; /* initial configuration for the */
213  /* metadata cache. This structure is */
214  /* fixed at creation time and should */
215  /* not change thereafter. */
216  hid_t fcpl_id; /* File creation property list ID */
217  H5F_close_degree_t fc_degree; /* File close behavior degree */
218  size_t rdcc_nslots; /* Size of raw data chunk cache (slots) */
219  size_t rdcc_nbytes; /* Size of raw data chunk cache (bytes) */
220  double rdcc_w0; /* Preempt read chunks first? [0.0..1.0]*/
221  size_t sieve_buf_size; /* Size of the data sieve buffer allocated (in bytes) */
222  hsize_t threshold; /* Threshold for alignment */
223  hsize_t alignment; /* Alignment */
224  unsigned gc_ref; /* Garbage-collect references? */
225  hbool_t latest_format; /* Always use the latest format? */
226  hbool_t store_msg_crt_idx; /* Store creation index for object header messages? */
227  unsigned ncwfs; /* Num entries on cwfs list */
228  struct H5HG_heap_t **cwfs; /* Global heap cache */
229  struct H5G_t *root_grp; /* Open root group */
230  H5FO_t *open_objs; /* Open objects in file */
231  H5RC_t *grp_btree_shared; /* Ref-counted group B-tree node info */
232 
233  /* File space allocation information */
234  hbool_t use_tmp_space; /* Whether temp. file space allocation is allowed */
235  haddr_t tmp_addr; /* Next address to use for temp. space in the file */
236  unsigned fs_aggr_merge[H5FD_MEM_NTYPES]; /* Flags for whether free space can merge with aggregator(s) */
237  H5F_fs_state_t fs_state[H5FD_MEM_NTYPES]; /* State of free space manager for each type */
238  haddr_t fs_addr[H5FD_MEM_NTYPES]; /* Address of free space manager info for each type */
239  H5FS_t *fs_man[H5FD_MEM_NTYPES]; /* Free space manager for each file space type */
240  H5FD_mem_t fs_type_map[H5FD_MEM_NTYPES]; /* Mapping of "real" file space type into tracked type */
241  H5F_blk_aggr_t meta_aggr; /* Metadata aggregation info */
242  /* (if aggregating metadata allocations) */
243  H5F_blk_aggr_t sdata_aggr; /* "Small data" aggregation info */
244  /* (if aggregating "small data" allocations) */
245 
246  /* Metadata accumulator information */
247  H5F_meta_accum_t accum; /* Metadata accumulator info */
248 };
249 
250 /*
251  * This is the top-level file descriptor. One of these structures is
252  * allocated every time H5Fopen() is called although they may contain pointers
253  * to shared H5F_file_t structs.
254  */
255 struct H5F_t {
256  char *open_name; /* Name used to open file */
257  char *actual_name; /* Actual name of the file, after resolving symlinks, etc. */
258  char *extpath; /* Path for searching target external link file */
259  H5F_file_t *shared; /* The shared file info */
260  unsigned nopen_objs; /* Number of open object headers*/
261  H5FO_t *obj_count; /* # of time each object is opened through top file structure */
262  hid_t file_id; /* ID of this file */
263  hbool_t closing; /* File is in the process of being closed */
264  struct H5F_t *parent; /* Parent file that this file is mounted to */
265  unsigned nmounts; /* Number of children mounted to this file */
266 };
267 
268 
269 /*****************************/
270 /* Package Private Variables */
271 /*****************************/
272 
273 /* Declare a free list to manage the H5F_t struct */
275 
276 /* Declare a free list to manage the H5F_file_t struct */
278 
279 H5_DLLVAR const H5AC_class_t H5AC_SUPERBLOCK[1];
280 
281 
282 /******************************/
283 /* Package Private Prototypes */
284 /******************************/
285 
286 /* General routines */
287 H5_DLL herr_t H5F_init(void);
289 H5F_t *H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id,
290  hid_t fapl_id, H5FD_t *lf);
291 herr_t H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush);
293 H5_DLL htri_t H5F_is_hdf5(const char *name);
294 H5_DLL herr_t H5F_get_objects(const H5F_t *f, unsigned types, size_t max_index, hid_t *obj_id_list, hbool_t app_ref, size_t *obj_id_count_ptr);
296 
297 /* File mount related routines */
299 H5_DLL int H5F_term_unmount_cb(void *obj_ptr, hid_t obj_id, void *key);
300 H5_DLL herr_t H5F_mount_count_ids(H5F_t *f, unsigned *nopen_files, unsigned *nopen_objs);
301 
302 /* Superblock related routines */
303 H5_DLL herr_t H5F_super_init(H5F_t *f, hid_t dxpl_id);
304 H5_DLL herr_t H5F_super_read(H5F_t *f, hid_t dxpl_id);
305 H5_DLL herr_t H5F_super_size(H5F_t *f, hid_t dxpl_id, hsize_t *super_size,
306  hsize_t *super_ext_info);
308 
309 /* Superblock extension related routines */
310 H5_DLL herr_t H5F_super_ext_open(H5F_t *f, haddr_t ext_addr, H5O_loc_t *ext_ptr);
311 H5_DLL herr_t H5F_super_ext_write_msg(H5F_t *f, hid_t dxpl_id, unsigned id, void *mesg, hbool_t may_create);
312 H5_DLL herr_t H5F_super_ext_close(H5F_t *f, H5O_loc_t *ext_ptr, hid_t dxpl_id,
313  hbool_t was_created);
314 
315 /* Metadata accumulator routines */
316 H5_DLL herr_t H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type,
317  haddr_t addr, size_t size, void *buf);
318 H5_DLL herr_t H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type,
319  haddr_t addr, size_t size, const void *buf);
320 H5_DLL herr_t H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t type,
322 H5_DLL herr_t H5F__accum_flush(const H5F_io_info_t *fio_info);
323 H5_DLL herr_t H5F__accum_reset(const H5F_io_info_t *fio_info, hbool_t flush);
324 
325 /* Shared file list related routines */
329 
330 /* External file cache routines */
331 H5_DLL H5F_efc_t *H5F_efc_create(unsigned max_nfiles);
332 H5_DLL unsigned H5F_efc_max_nfiles(H5F_efc_t *efc);
336 
337 /* Testing functions */
338 #ifdef H5F_TESTING
339 H5_DLL herr_t H5F_get_sohm_mesg_count_test(hid_t fid, unsigned type_id,
340  size_t *mesg_count);
341 H5_DLL herr_t H5F_check_cached_stab_test(hid_t file_id);
342 H5_DLL herr_t H5F_get_maxaddr_test(hid_t file_id, haddr_t *maxaddr);
343 #endif /* H5F_TESTING */
344 
345 #endif /* _H5Fpkg_H */
346 
H5FD_t * lf
Definition: H5Fpkg.h:194
unsigned sohm_nindexes
Definition: H5Fpkg.h:206
uint8_t status_flags
Definition: H5Fpkg.h:175
size_t alloc_size
Definition: H5Fpkg.h:140
H5F_super_t * sblock
Definition: H5Fpkg.h:195
unsigned sohm_vers
Definition: H5Fpkg.h:205
unsigned int hbool_t
Definition: H5public.h:142
hbool_t use_tmp_space
Definition: H5Fpkg.h:234
struct H5F_super_t H5F_super_t
H5_DLL herr_t H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf)
struct H5F_mount_t H5F_mount_t
H5_DLL herr_t H5F__accum_flush(const H5F_io_info_t *fio_info)
haddr_t ext_addr
Definition: H5Fpkg.h:180
Definition: H5Gpkg.h:136
H5AC_cache_config_t mdc_initCacheCfg
Definition: H5Fpkg.h:212
H5_DLL herr_t H5F_efc_destroy(H5F_efc_t *efc)
hbool_t store_msg_crt_idx
Definition: H5Fpkg.h:226
haddr_t driver_addr
Definition: H5Fpkg.h:181
H5F_efc_t * efc
Definition: H5Fpkg.h:199
H5_DLL int H5F_term_unmount_cb(void *obj_ptr, hid_t obj_id, void *key)
H5_DLL herr_t H5F_close(H5F_t *f)
double rdcc_w0
Definition: H5Fpkg.h:220
#define H5_DLL
Definition: H5api_adpt.h:256
int herr_t
Definition: H5public.h:124
H5F_meta_accum_t accum
Definition: H5Fpkg.h:247
unsigned nopen_objs
Definition: H5Fpkg.h:260
Definition: H5Gpkg.h:103
H5F_mount_t * child
Definition: H5Fpkg.h:166
H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing)
unsigned long long hsize_t
Definition: H5public.h:169
H5F_blk_aggr_t sdata_aggr
Definition: H5Fpkg.h:243
haddr_t loc
Definition: H5Fpkg.h:138
unsigned nrefs
Definition: H5Fpkg.h:196
H5_DLL herr_t H5F_super_ext_open(H5F_t *f, haddr_t ext_addr, H5O_loc_t *ext_ptr)
size_t sieve_buf_size
Definition: H5Fpkg.h:221
unsigned nalloc
Definition: H5Fpkg.h:165
haddr_t root_addr
Definition: H5Fpkg.h:182
hid_t file_id
Definition: H5Fpkg.h:262
hsize_t threshold
Definition: H5Fpkg.h:222
hbool_t closing
Definition: H5Fpkg.h:263
H5FO_t * obj_count
Definition: H5Fpkg.h:261
haddr_t sohm_addr
Definition: H5Fpkg.h:204
uint8_t sizeof_addr
Definition: H5Fpkg.h:202
unsigned char * buf
Definition: H5Fpkg.h:137
hsize_t alignment
Definition: H5Fpkg.h:223
H5F_mtab_t mtab
Definition: H5Fpkg.h:198
H5F_file_t * shared
Definition: H5Fpkg.h:259
haddr_t tmp_addr
Definition: H5Fpkg.h:235
uint64_t haddr_t
Definition: H5public.h:182
H5_DLL herr_t H5F_super_read(H5F_t *f, hid_t dxpl_id)
hid_t fcpl_id
Definition: H5Fpkg.h:216
HDFFCLIBAPI _fcd name
unsigned sym_leaf_k
Definition: H5Fpkg.h:176
hbool_t latest_format
Definition: H5Fpkg.h:225
H5_DLL herr_t H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, hsize_t size)
H5_DLL herr_t H5F_sfile_add(H5F_file_t *shared)
H5_DLL H5F_efc_t * H5F_efc_create(unsigned max_nfiles)
char * actual_name
Definition: H5Fpkg.h:257
char * open_name
Definition: H5Fpkg.h:256
H5_DLL herr_t H5F_get_objects(const H5F_t *f, unsigned types, size_t max_index, hid_t *obj_id_list, hbool_t app_ref, size_t *obj_id_count_ptr)
int hid_t
Definition: H5Ipublic.h:54
H5FL_EXTERN(H5F_t)
enum H5F_mem_t H5FD_mem_t
Definition: H5FDpublic.h:28
char * extpath
Definition: H5Fpkg.h:258
haddr_t addr
Definition: H5Fpkg.h:132
size_t dirty_len
Definition: H5Fpkg.h:142
H5RC_t * grp_btree_shared
Definition: H5Fpkg.h:231
struct H5G_t * group
Definition: H5Fpkg.h:155
unsigned nmounts
Definition: H5Fpkg.h:164
struct H5F_efc_t H5F_efc_t
Definition: H5Fpkg.h:124
H5_DLL herr_t H5F_efc_try_close(H5F_t *f)
H5G_entry_t * root_ent
Definition: H5Fpkg.h:183
H5FO_t * open_objs
Definition: H5Fpkg.h:230
size_t rdcc_nslots
Definition: H5Fpkg.h:218
H5_DLL herr_t H5F_close_mounts(H5F_t *f)
size_t rdcc_nbytes
Definition: H5Fpkg.h:219
unsigned long feature_flag
Definition: H5Fpkg.h:128
herr_t H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush)
H5_DLLVAR const H5AC_class_t H5AC_SUPERBLOCK[1]
Definition: H5Fpkg.h:279
H5F_close_degree_t fc_degree
Definition: H5Fpkg.h:217
H5AC_info_t cache_info
Definition: H5Fpkg.h:173
H5_DLL herr_t H5F_super_ext_write_msg(H5F_t *f, hid_t dxpl_id, unsigned id, void *mesg, hbool_t may_create)
haddr_t maxaddr
Definition: H5Fpkg.h:208
struct H5F_t * parent
Definition: H5Fpkg.h:264
H5_DLL htri_t H5F_is_hdf5(const char *name)
unsigned gc_ref
Definition: H5Fpkg.h:224
HDFFCLIBAPI intf intf intf * type
struct H5HG_heap_t ** cwfs
Definition: H5Fpkg.h:228
struct H5F_t * file
Definition: H5Fpkg.h:156
HDFFCLIBAPI intf intf * flags
unsigned ncwfs
Definition: H5Fpkg.h:227
uint8_t sizeof_size
Definition: H5Fpkg.h:203
#define H5_DLLVAR
Definition: H5api_adpt.h:257
H5F_close_degree_t
Definition: H5Fpublic.h:95
H5_DLL herr_t H5F_efc_release(H5F_efc_t *efc)
struct H5F_meta_accum_t H5F_meta_accum_t
hsize_t tot_size
Definition: H5Fpkg.h:130
unsigned flags
Definition: H5Fpkg.h:197
H5_DLL unsigned H5F_efc_max_nfiles(H5F_efc_t *efc)
hsize_t alloc_size
Definition: H5Fpkg.h:129
hbool_t dirty
Definition: H5Fpkg.h:143
size_t size
Definition: H5Fpkg.h:139
H5_DLL herr_t H5F__accum_reset(const H5F_io_info_t *fio_info, hbool_t flush)
H5_DLL herr_t H5F_mount_count_ids(H5F_t *f, unsigned *nopen_files, unsigned *nopen_objs)
unsigned nmounts
Definition: H5Fpkg.h:265
int htri_t
Definition: H5public.h:143
H5_DLL herr_t H5F_super_ext_close(H5F_t *f, H5O_loc_t *ext_ptr, hid_t dxpl_id, hbool_t was_created)
struct H5G_t * root_grp
Definition: H5Fpkg.h:229
struct H5F_mtab_t H5F_mtab_t
H5_DLL herr_t H5F_super_init(H5F_t *f, hid_t dxpl_id)
H5_DLL herr_t H5F_super_size(H5F_t *f, hid_t dxpl_id, hsize_t *super_size, hsize_t *super_ext_info)
H5AC_t * cache
Definition: H5Fpkg.h:210
unsigned long feature_flags
Definition: H5Fpkg.h:207
H5F_t * H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id, hid_t fapl_id, H5FD_t *lf)
size_t dirty_off
Definition: H5Fpkg.h:141
H5F_fs_state_t
Definition: H5Fpkg.h:147
H5_DLL herr_t H5F__term_deprec_interface(void)
H5_DLL herr_t H5F_super_free(H5F_super_t *sblock)
haddr_t base_addr
Definition: H5Fpkg.h:178
H5_DLL herr_t H5F_sfile_remove(H5F_file_t *shared)
H5_DLL herr_t H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr, size_t size, void *buf)
HDFFCLIBAPI intf * buf
H5_DLL herr_t H5F_init(void)
H5F_blk_aggr_t meta_aggr
Definition: H5Fpkg.h:241
unsigned super_vers
Definition: H5Fpkg.h:174
H5_DLL H5F_file_t * H5F_sfile_search(H5FD_t *lf)
Definition: H5Fpkg.h:255
hsize_t size
Definition: H5Fpkg.h:131

MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:52