HDF5  1.12.0
H5Oprivate.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  *
16  * Created: H5Oprivate.h
17  * Aug 5 1997
18  * Robb Matzke <matzke@llnl.gov>
19  *
20  * Purpose: Object header private include file.
21  *
22  *-------------------------------------------------------------------------
23  */
24 #ifndef _H5Oprivate_H
25 #define _H5Oprivate_H
26 
27 /* Early typedefs to avoid circular dependencies */
28 typedef struct H5O_t H5O_t;
29 typedef struct H5O_fill_t H5O_fill_t;
30 
31 /* Include the public header file for this API */
32 #include "H5Opublic.h" /* Object header functions */
33 
34 /* Public headers needed by this file */
35 #include "H5Dpublic.h" /* Dataset functions */
36 #include "H5Lpublic.h" /* Link functions */
37 #include "H5Spublic.h" /* Dataspace functions */
38 
39 /* Private headers needed by this file */
40 #include "H5private.h" /* Generic Functions */
41 #include "H5ACprivate.h" /* Metadata cache */
42 #include "H5Fprivate.h" /* File access */
43 #include "H5HGprivate.h" /* Global Heaps */
44 #include "H5SLprivate.h" /* Skip lists */
45 #include "H5Tprivate.h" /* Datatype functions */
46 #include "H5VLprivate.h"
47 #include "H5Zprivate.h" /* I/O pipeline filters */
48 
49 /* Forward references of package typedefs */
50 typedef struct H5O_msg_class_t H5O_msg_class_t;
51 typedef struct H5O_mesg_t H5O_mesg_t;
52 
53 /* Values used to create the shared message & attribute heaps */
54 /* (Note that these parameters have been tuned so that the resulting heap ID
55  * is exactly 8 bytes. This is an efficient size as it can be stored
56  * directly in an 8 byte integer in memory, think carefully before changing it.
57  * -QAK)
58  */
59 #define H5O_FHEAP_MAN_WIDTH 4
60 #define H5O_FHEAP_MAN_START_BLOCK_SIZE 1024
61 #define H5O_FHEAP_MAN_MAX_DIRECT_SIZE (64 * 1024)
62 #define H5O_FHEAP_MAN_MAX_INDEX 40
63 #define H5O_FHEAP_MAN_START_ROOT_ROWS 1
64 #define H5O_FHEAP_CHECKSUM_DBLOCKS TRUE
65 #define H5O_FHEAP_MAX_MAN_SIZE (4 * 1024)
66 #define H5O_FHEAP_ID_LEN 8
67 
68 /* Object header macros */
69 #define H5O_MESG_MAX_SIZE 65536 /*max obj header message size */
70 #define H5O_ALL (-1) /* Operate on all messages of type */
71 #define H5O_FIRST (-2) /* Operate on first message of type */
72 
73 /* Flags needed when encoding messages */
74 #define H5O_MSG_NO_FLAGS_SET 0x00u
75 #define H5O_MSG_FLAG_CONSTANT 0x01u
76 #define H5O_MSG_FLAG_SHARED 0x02u
77 #define H5O_MSG_FLAG_DONTSHARE 0x04u
78 #define H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE 0x08u
79 #define H5O_MSG_FLAG_MARK_IF_UNKNOWN 0x10u
80 #define H5O_MSG_FLAG_WAS_UNKNOWN 0x20u
81 #define H5O_MSG_FLAG_SHAREABLE 0x40u
82 #define H5O_MSG_FLAG_FAIL_IF_UNKNOWN_ALWAYS 0x80u
83 #define H5O_MSG_FLAG_BITS (H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN_ALWAYS)
84 
85 /* Flags for updating messages */
86 #define H5O_UPDATE_TIME 0x01u
87 #define H5O_UPDATE_FORCE 0x02u /* Force updating the message */
88 
89 /* Hash value constants */
90 #define H5O_HASH_SIZE 32
91 
92 /* Enable reading/writing "bogus" messages */
93 /* #define H5O_ENABLE_BOGUS */
94 
95 /* ========= Object Creation properties ============ */
96 #define H5O_CRT_ATTR_MAX_COMPACT_NAME "max compact attr" /* Max. # of attributes to store compactly */
97 #define H5O_CRT_ATTR_MIN_DENSE_NAME "min dense attr" /* Min. # of attributes to store densely */
98 #define H5O_CRT_OHDR_FLAGS_NAME "object header flags" /* Object header flags */
99 #define H5O_CRT_PIPELINE_NAME "pline" /* Filter pipeline */
100 #define H5O_CRT_PIPELINE_DEF {{0, NULL, H5O_NULL_ID, {{0, HADDR_UNDEF}}}, H5O_PLINE_VERSION_1, 0, 0, NULL}
101 #ifdef H5O_ENABLE_BOGUS
102 #define H5O_BOGUS_MSG_FLAGS_NAME "bogus msg flags" /* Flags for 'bogus' message */
103 #define H5O_BOGUS_MSG_FLAGS_SIZE sizeof(uint8_t)
104 
105 /* bogus ID can be either (a) H5O_BOGUS_VALID_ID or (b) H5O_BOGUS_INVALID_ID */
106 #define H5O_BOGUS_MSG_ID_NAME "bogus msg id" /* ID for 'bogus' message */
107 #define H5O_BOGUS_MSG_ID_SIZE sizeof(unsigned)
108 
109 #endif /* H5O_ENABLE_BOGUS */
110 
111 #ifdef H5O_ENABLE_BAD_MESG_COUNT
112 #define H5O_BAD_MESG_COUNT_NAME "bad message count" /* Flag setting bad message count */
113 #define H5O_BAD_MESG_COUNT_SIZE sizeof(hbool_t)
114 #endif /* H5O_ENABLE_BAD_MESG_COUNT */
115 
116 /* ========= Object Copy properties ============ */
117 #define H5O_CPY_OPTION_NAME "copy object" /* Copy options */
118 #define H5O_CPY_MERGE_COMM_DT_LIST_NAME "merge committed dtype list" /* List of datatype paths to search in the dest file for merging */
119 #define H5O_CPY_MCDT_SEARCH_CB_NAME "committed dtype list search" /* Callback function when the search for a matching committed datatype is complete */
120 
121 /* If the module using this macro is allowed access to the private variables, access them directly */
122 #ifdef H5O_MODULE
123 #define H5O_OH_GET_ADDR(O) ((O)->chunk[0].addr)
124 #define H5O_OH_GET_VERSION(O) ((O)->version)
125 #define H5O_OH_GET_FLAGS(O) ((O)->flags)
126 #define H5O_OH_GET_MTIME(O) ((O)->mtime)
127 #else /* H5O_MODULE */
128 #define H5O_OH_GET_ADDR(O) (H5O_get_oh_addr(O))
129 #define H5O_OH_GET_VERSION(O) (H5O_get_oh_version(O))
130 #define H5O_OH_GET_FLAGS(O) (H5O_get_oh_flags(O))
131 #define H5O_OH_GET_MTIME(O) (H5O_get_oh_mtime(O))
132 #endif /* H5O_MODULE */
133 
134 /* Set the fields in a shared message structure */
135 #define H5O_UPDATE_SHARED(SH_MESG, SH_TYPE, F, MSG_TYPE, CRT_IDX, OH_ADDR) \
136  { \
137  (SH_MESG)->type = (SH_TYPE); \
138  (SH_MESG)->file = (F); \
139  (SH_MESG)->msg_type_id = (MSG_TYPE); \
140  (SH_MESG)->u.loc.index = (CRT_IDX); \
141  (SH_MESG)->u.loc.oh_addr = (OH_ADDR); \
142  } /* end block */
143 
144 
145 /* Fractal heap ID type for shared message & attribute heap IDs. */
146 typedef union {
147  uint8_t id[H5O_FHEAP_ID_LEN]; /* Buffer to hold ID, for encoding/decoding */
148  uint64_t val; /* Value, for quick comparisons */
150 
151 /* The object location information for an object */
152 typedef struct H5O_loc_t {
153  H5F_t *file; /* File that object header is located within */
154  haddr_t addr; /* File address of object header */
155  hbool_t holding_file; /* True if this object header has incremented
156  * its file's count of open objects. */
158 
159 /* Typedef for linked list of datatype merge suggestions */
161  char *path; /* Path to datatype in destination file */
162  struct H5O_copy_dtype_merge_list_t *next; /* Next object in list */
164 
165 /* Structure for callback property before searching the global list of committed datatypes at destination */
166 typedef struct H5O_mcdt_cb_info_t {
168  void *user_data;
170 
171 /* Settings/flags for copying an object */
172 typedef struct H5O_copy_t {
173  hbool_t copy_shallow; /* Flag to perform shallow hierarchy copy */
174  hbool_t expand_soft_link; /* Flag to expand soft links */
175  hbool_t expand_ext_link; /* Flag to expand external links */
176  hbool_t expand_ref; /* Flag to expand object references */
177  hbool_t copy_without_attr; /* Flag to not copy attributes */
178  hbool_t preserve_null; /* Flag to not delete NULL messages */
179  hbool_t merge_comm_dt; /* Flag to merge committed datatypes in dest file */
180  H5O_copy_dtype_merge_list_t *dst_dt_suggestion_list; /* Suggestions for merging committed datatypes */
181  int curr_depth; /* Current depth in hierarchy copied */
182  int max_depth; /* Maximum depth in hierarchy to copy */
183  H5SL_t *map_list; /* Skip list to hold address mappings */
184  H5SL_t *dst_dt_list; /* Skip list to hold committed datatypes in dest file */
185  hbool_t dst_dt_list_complete; /* Whether the destination datatype list is complete (i.e. not only populated with "suggestions" from H5Padd_merge_committed_dtype_path) */
186  H5O_t *oh_dst; /* The destination object header */
187  H5F_t *file_dst; /* The destination file pointer */
188  /* This is used in the pre_copy_file callback to obtain
189  the destination file's high bound. The high bound
190  is used to index into the corresponding message's
191  array of versions for doing version bounds check. */
192  void *shared_fo; /* The shared pointer for the src object */
193  H5O_mcdt_search_cb_t mcdt_cb; /* The callback to invoke before searching the global list of committed datatypes at destination */
194  void *mcdt_ud; /* User data passed to callback */
195  hid_t lcpl_id; /* LCPL for callbacks' use */
197 
198 /* Header message IDs */
199 #define H5O_NULL_ID 0x0000 /* Null Message. */
200 #define H5O_SDSPACE_ID 0x0001 /* Dataspace Message. */
201 #define H5O_LINFO_ID 0x0002 /* Link info Message. */
202 #define H5O_DTYPE_ID 0x0003 /* Datatype Message. */
203 #define H5O_FILL_ID 0x0004 /* Fill Value Message. (Old) */
204 #define H5O_FILL_NEW_ID 0x0005 /* Fill Value Message. (New) */
205 #define H5O_LINK_ID 0x0006 /* Link Message. */
206 #define H5O_EFL_ID 0x0007 /* External File List Message */
207 #define H5O_LAYOUT_ID 0x0008 /* Data Layout Message. */
208 #define H5O_BOGUS_VALID_ID 0x0009 /* "Bogus valid" Message. */
209 #define H5O_GINFO_ID 0x000a /* Group info Message. */
210 #define H5O_PLINE_ID 0x000b /* Filter pipeline message. */
211 #define H5O_ATTR_ID 0x000c /* Attribute Message. */
212 #define H5O_NAME_ID 0x000d /* Object name message. */
213 #define H5O_MTIME_ID 0x000e /* Modification time message. (Old) */
214 #define H5O_SHMESG_ID 0x000f /* Shared message "SOHM" table. */
215 #define H5O_CONT_ID 0x0010 /* Object header continuation message. */
216 #define H5O_STAB_ID 0x0011 /* Symbol table message. */
217 #define H5O_MTIME_NEW_ID 0x0012 /* Modification time message. (New) */
218 #define H5O_BTREEK_ID 0x0013 /* v1 B-tree 'K' values message. */
219 #define H5O_DRVINFO_ID 0x0014 /* Driver info message. */
220 #define H5O_AINFO_ID 0x0015 /* Attribute info message. */
221 #define H5O_REFCOUNT_ID 0x0016 /* Reference count message. */
222 #define H5O_FSINFO_ID 0x0017 /* File space info message. */
223 #define H5O_MDCI_MSG_ID 0x0018 /* Metadata Cache Image Message */
224 #define H5O_UNKNOWN_ID 0x0019 /* Placeholder message ID for unknown message. */
225  /* (this should never exist in a file) */
226 /*
227  * Note: Must increment H5O_MSG_TYPES in H5Opkg.h and update H5O_msg_class_g
228  * in H5O.c when creating a new message type. Also bump the value of
229  * H5O_BOGUS_INVALID_ID, below, to be one greater than the value of
230  * H5O_UNKNOWN_ID, and re-run gen_bogus.c.
231  *
232  * (this should never exist in a file)
233  */
234 #define H5O_BOGUS_INVALID_ID 0x001a /* "Bogus invalid" Message. */
235 
236 /* Shared object message types.
237  * Shared objects can be committed, in which case the shared message contains
238  * the location of the object header that holds the message, or shared in the
239  * heap, in which case the shared message holds their heap ID.
240  */
241 #define H5O_SHARE_TYPE_UNSHARED 0 /* Message is not shared */
242 #define H5O_SHARE_TYPE_SOHM 1 /* Message is stored in SOHM heap */
243 #define H5O_SHARE_TYPE_COMMITTED 2 /* Message is stored in another object header */
244 #define H5O_SHARE_TYPE_HERE 3 /* Message is stored in this object header, but is sharable */
245 
246 /* Detect messages that aren't stored in message's object header */
247 #define H5O_IS_STORED_SHARED(T) ((((T) == H5O_SHARE_TYPE_SOHM) || ((T) == H5O_SHARE_TYPE_COMMITTED)) ? TRUE : FALSE)
248 
249 /* Detect shared messages that are "tracked" in some other location */
250 #define H5O_IS_TRACKED_SHARED(T) ((T) > 0)
251 
252 
253 /* Specify the object header address and index needed
254  * to locate a message in another object header.
255  */
256 typedef struct H5O_mesg_loc_t {
257  H5O_msg_crt_idx_t index; /* index within object header */
258  haddr_t oh_addr; /* address of object header */
260 
261 
262 /*
263  * Shared object header message info.
264  *
265  * (This structure is used in other messages that can be shared and will
266  * include a H5O_shared_t struct as the first field in their "native" type)
267  */
268 typedef struct H5O_shared_t {
269  unsigned type; /* Type describing how message is shared */
270  H5F_t *file; /* File that message is located within */
271  unsigned msg_type_id; /* Message's type ID */
272  union {
273  H5O_mesg_loc_t loc; /* Object location info */
274  H5O_fheap_id_t heap_id; /* ID within the SOHM heap */
275  } u;
277 
278 
279 /*
280  * Link Info Message.
281  * (Contains dynamic information about links in a group)
282  * (Data structure in memory)
283  * (if the fields in this struct are changed, remember to change the default
284  * link info structure in src/H5Gprivate.h - QAK)
285  * (if the fields in this struct are changed, also look at the code that
286  * creates intermediate groups in src/H5Gtraverse.c - QAK)
287  * (The "max. creation order" field is signed so that we might have an easy
288  * way to add links to the front of the creation ordering (with negative
289  * values) as well as the end of the creation ordering - QAK)
290  */
291 typedef struct H5O_linfo_t {
292  /* Creation order info */
293  hbool_t track_corder; /* Are creation order values tracked on links? */
294  hbool_t index_corder; /* Are creation order values indexed on links? */
295  int64_t max_corder; /* Current max. creation order value for group */
296  haddr_t corder_bt2_addr; /* Address of v2 B-tree for indexing creation order values of links */
297 
298  /* Storage management info */
299  hsize_t nlinks; /* Number of links in the group */
300  haddr_t fheap_addr; /* Address of fractal heap for storing "dense" links */
301  haddr_t name_bt2_addr; /* Address of v2 B-tree for indexing names of links */
303 
304 /* Initial version of the "old" fill value information */
305 /* (It doesn't look like this value was ever used in the file -QAK) */
306 #define H5O_FILL_VERSION_1 1
307 /* Revised version of the "new" fill value information */
308 #define H5O_FILL_VERSION_2 2
309 /* Version of the "new" fill value information with smaller default format */
310 #define H5O_FILL_VERSION_3 3
311 
312 /* The latest version of the format. Look through the 'encode', 'decode'
313  * and 'size' callback for places to change when updating this. */
314 #define H5O_FILL_VERSION_LATEST H5O_FILL_VERSION_3
315 
316 /*
317  * Fill Value Message.
318  * (Data structure in memory for both "old" and "new" fill value messages)
319  *
320  * The fill value message is fill value plus space allocation time, fill value
321  * writing time, whether fill value is defined, and the location of the
322  * message if it's shared.
323  */
324 
325 struct H5O_fill_t {
326  H5O_shared_t sh_loc; /* Shared message info (must be first) */
327 
328  unsigned version; /* Encoding version number */
329  H5T_t *type; /*type. Null implies same as dataset */
330  ssize_t size; /*number of bytes in the fill value */
331  void *buf; /*the fill value */
332  H5D_alloc_time_t alloc_time; /* time to allocate space */
333  H5D_fill_time_t fill_time; /* time to write fill value */
334  hbool_t fill_defined; /* whether fill value is defined */
335 };
336 
337 /*
338  * Link message.
339  * (Data structure in memory)
340  */
341 typedef struct H5O_link_hard_t {
342  haddr_t addr; /* Object header address */
344 
345 typedef struct H5O_link_soft_t {
346  char *name; /* Destination name */
348 
349 typedef struct H5O_link_ud_t {
350  void *udata; /* Opaque data supplied by the user */
351  size_t size; /* Size of udata */
353 
354 typedef struct H5O_link_t {
355  H5L_type_t type; /* Type of link */
356  hbool_t corder_valid; /* Creation order for link is valid (not stored) */
357  int64_t corder; /* Creation order for link (stored if it's valid) */
358  H5T_cset_t cset; /* Character set of link name */
359  char *name; /* Link name */
360  union {
361  H5O_link_hard_t hard; /* Information for hard links */
362  H5O_link_soft_t soft; /* Information for soft links */
363  H5O_link_ud_t ud; /* Information for user-defined links */
364  } u;
366 
367 /*
368  * External File List Message
369  * (Data structure in memory)
370  */
371 #define H5O_EFL_ALLOC 16 /*number of slots to alloc at once */
372 #define H5O_EFL_UNLIMITED H5F_UNLIMITED /*max possible file size */
373 
374 typedef struct H5O_efl_entry_t {
375  size_t name_offset; /*offset of name within heap */
376  char *name; /*malloc'd name */
377  HDoff_t offset; /*offset of data within file */
378  hsize_t size; /*size allocated within file */
380 
381 typedef struct H5O_efl_t {
382  haddr_t heap_addr; /*address of name heap */
383  size_t nalloc; /*number of slots allocated */
384  size_t nused; /*number of slots used */
385  H5O_efl_entry_t *slot; /*array of external file entries */
387 
388 
389 /*
390  * Data Layout Message.
391  * (Data structure in file)
392  */
393 #define H5O_LAYOUT_NDIMS (H5S_MAX_RANK+1)
394 
395 /* Flags for chunked layout feature encoding */
396 #define H5O_LAYOUT_CHUNK_DONT_FILTER_PARTIAL_BOUND_CHUNKS 0x01
397 #define H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER 0x02
398 #define H5O_LAYOUT_ALL_CHUNK_FLAGS ( \
399  H5O_LAYOUT_CHUNK_DONT_FILTER_PARTIAL_BOUND_CHUNKS \
400  | H5O_LAYOUT_CHUNK_SINGLE_INDEX_WITH_FILTER \
401  )
402 
403 /* Version # of encoded virtual dataset global heap blocks */
404 #define H5O_LAYOUT_VDS_GH_ENC_VERS 0
405 
406 /* Initial version of the layout information. Used when space is allocated */
407 #define H5O_LAYOUT_VERSION_1 1
408 
409 /* This version added support for delaying allocation */
410 #define H5O_LAYOUT_VERSION_2 2
411 
412 /* This version is revised to store just the information needed for each
413  * storage type, and to straighten out problems with contiguous layout's
414  * sizes (was encoding them as 4-byte values when they were really n-byte
415  * values (where n usually is 8)).
416  */
417 #define H5O_LAYOUT_VERSION_3 3
418 
419 /* This version adds different types of indices to chunked datasets, allows
420  * for larger chunk dimensions, stores chunk indices into their own
421  * message (the "layout index" message), adds features for compact/dense
422  * storage of elements and/or chunk records, adds features for abbreviating
423  * the storage used for partial chunks on boundaries, adds the virtual
424  * layout type, etc.
425  */
426 #define H5O_LAYOUT_VERSION_4 4
427 
428 /* The default version of the format. (Earlier versions had bugs) */
429 #define H5O_LAYOUT_VERSION_DEFAULT H5O_LAYOUT_VERSION_3
430 
431 /* The latest version of the format. Look through the 'encode'
432  * and 'size' callbacks for places to change when updating this. */
433 #define H5O_LAYOUT_VERSION_LATEST H5O_LAYOUT_VERSION_4
434 
435 /* Forward declaration of structs used below */
436 struct H5D_layout_ops_t; /* Defined in H5Dpkg.h */
437 struct H5D_chunk_ops_t; /* Defined in H5Dpkg.h */
438 
439 typedef struct H5O_storage_contig_t {
440  haddr_t addr; /* File address of data */
441  hsize_t size; /* Size of data in bytes */
443 
445  haddr_t dset_ohdr_addr; /* File address dataset's object header */
446  H5UC_t *shared; /* Ref-counted shared info for B-tree nodes */
448 
449 /* Forward declaration of structs used below */
450 struct H5FA_t; /* Defined in H5FAprivate.h */
451 
453  haddr_t dset_ohdr_addr; /* File address dataset's object header */
454  struct H5FA_t *fa; /* Pointer to fixed index array struct */
456 
457 /* Forward declaration of structs used below */
458 struct H5EA_t; /* Defined in H5EAprivate.h */
459 
461  haddr_t dset_ohdr_addr; /* File address dataset's object header */
462  struct H5EA_t *ea; /* Pointer to extensible index array struct */
464 
465 /* Filtered info for single chunk index */
467  uint32_t nbytes; /* Size of chunk (in file) */
468  uint32_t filter_mask; /* Excluded filters for chunk */
470 
471 /* Forward declaration of structs used below */
472 struct H5B2_t; /* Defined in H5B2pkg.h */
473 
474 typedef struct H5O_storage_chunk_bt2_t {
475  haddr_t dset_ohdr_addr; /* File address dataset's object header */
476  struct H5B2_t *bt2; /* Pointer to b-tree 2 struct */
478 
479 typedef struct H5O_storage_chunk_t {
480  H5D_chunk_index_t idx_type; /* Type of chunk index */
481  haddr_t idx_addr; /* File address of chunk index */
482  const struct H5D_chunk_ops_t *ops; /* Pointer to chunked storage operations */
483  union {
484  H5O_storage_chunk_btree_t btree; /* Information for v1 B-tree index */
485  H5O_storage_chunk_bt2_t btree2; /* Information for v2 B-tree index */
486  H5O_storage_chunk_earray_t earray; /* Information for extensible array index */
487  H5O_storage_chunk_farray_t farray; /* Information for fixed array index */
488  H5O_storage_chunk_single_filt_t single; /* Information for single chunk w/ filters index */
489  } u;
491 
492 typedef struct H5O_storage_compact_t {
493  hbool_t dirty; /* Dirty flag for compact dataset */
494  size_t size; /* Size of buffer in bytes */
495  void *buf; /* Buffer for compact dataset */
497 
499  /* Stored */
500  struct H5S_t *virtual_select; /* Selection in the virtual dataset that is mapped to source selection */
501 
502  /* Not stored */
503  char *file_name; /* Source file name used for virtual dataset mapping */
504  char *dset_name; /* Source dataset name used for virtual dataset mapping */
505  struct H5S_t *clipped_source_select; /* Clipped version of source_select */
506  struct H5S_t *clipped_virtual_select; /* Clipped version of virtual_select */
507  struct H5D_t *dset; /* Source dataset */
508  hbool_t dset_exists; /* Whether the dataset exists (was opened successfully) */
509 
510  /* Temporary - only used during I/O operation, NULL at all other times */
511  struct H5S_t *projected_mem_space; /* Selection within mem_space for this mapping */
513 
515  char *name_segment; /* String for this name segment */
516  struct H5O_storage_virtual_name_seg_t *next; /* Next name segment */
518 
520  H5O_VIRTUAL_STATUS_INVALID = 0, /* Space extent is invalid */
521  H5O_VIRTUAL_STATUS_SEL_BOUNDS, /* Space extent set to bounds of selection */
522  H5O_VIRTUAL_STATUS_USER, /* Space extent provided by application */
523  H5O_VIRTUAL_STATUS_CORRECT /* Space extent matches dataset */
525 
527  /* Stored */
528  H5O_storage_virtual_srcdset_t source_dset; /* Information about the source dataset */
529  char *source_file_name; /* Original (unparsed) source file name */
530  char *source_dset_name; /* Original (unparsed) source dataset name */
531  struct H5S_t *source_select; /* Selection in the source dataset for mapping */
532 
533  /* Not stored */
534  H5O_storage_virtual_srcdset_t *sub_dset; /* Array of sub-source dataset info structs */
535  size_t sub_dset_nalloc; /* Number of slots allocated in sub_dset */
536  size_t sub_dset_nused; /* Number of slots "used" in sub_dset - essentially the farthest sub dataset in the extent */
537  size_t sub_dset_io_start; /* First element in sub_dset involved in current I/O op. Field has no meaning and may be uninitialized at all other times */
538  size_t sub_dset_io_end; /* First element in sub_dset outside of current I/O op. Field has no meaning and may be uninitialized at all other times */
539  H5O_storage_virtual_name_seg_t *parsed_source_file_name; /* Parsed version of source_dset.file_name */
540  size_t psfn_static_strlen; /* Length of parsed_source_file_name without block number substitutions */
541  size_t psfn_nsubs; /* Number of block number substitutions in parsed_source_file_name */
542  H5O_storage_virtual_name_seg_t *parsed_source_dset_name; /* Parsed version of source_dset.dset_name */
543  size_t psdn_static_strlen; /* Length of parsed_source_dset_name without block number substitutions */
544  size_t psdn_nsubs; /* Number of block number substitutions in parsed_source_dset_name */
545  int unlim_dim_source; /* Unlimited dimension in source_select */
546  int unlim_dim_virtual; /* Unlimited dimension in virtual_select */
547  hsize_t unlim_extent_source; /* Extent of unlimited dimension in source dset last time virtual_select was patched to match selection */
548  hsize_t unlim_extent_virtual; /* Extent of unlimited dimension in virtual dset last time source_select was patched to match selection */
549  hsize_t clip_size_virtual; /* Size selection would be clipped to in virtual selection, ignoring other mappings, when source extent == unlim_extent_source */
550  hsize_t clip_size_source; /* Size selection would be clipped to in source selection when virtual extent == unlim_extent_virtual */
551  H5O_virtual_space_status_t source_space_status; /* Extent patching status of source_select */
552  H5O_virtual_space_status_t virtual_space_status; /* Extent patching status of virtual_select */
554 
555 typedef struct H5O_storage_virtual_t {
556  /* Stored in message */
557  H5HG_t serial_list_hobjid; /* Global heap ID for the list of virtual mapping entries stored on disk */
558 
559  /* Stored in heap */
560  size_t list_nused; /* Number of array elements used in list */
561  H5O_storage_virtual_ent_t *list; /* Array of virtual dataset mapping entries */
562 
563  /* Not stored */
564  size_t list_nalloc; /* Number of slots allocated */
565  hsize_t min_dims[H5S_MAX_RANK]; /* Minimum extent of VDS (maximum of all non-unlimited selection bounds) */
566  H5D_vds_view_t view; /* Method for calculating the extent of the virtual dataset with unlimited selections */
567  hsize_t printf_gap; /* Maximum number of sequential missing source datasets before terminating the search for more */
568  hid_t source_fapl; /* FAPL to use to open source files */
569  hid_t source_dapl; /* DAPL to use to open source datasets */
570  hbool_t init; /* Whether all information has been completely initialized */
572 
573 typedef struct H5O_storage_t {
574  H5D_layout_t type; /* Type of layout */
575  union {
576  H5O_storage_contig_t contig; /* Information for contiguous storage */
577  H5O_storage_chunk_t chunk; /* Information for chunked storage */
578  H5O_storage_compact_t compact; /* Information for compact storage */
579  H5O_storage_virtual_t virt; /* Information for virtual storage */
580  } u;
582 
584  /* Creation parameters for fixed array data structure */
585  struct {
586  uint8_t max_dblk_page_nelmts_bits; /* Log2(Max. # of elements in a data block page) -
587  i.e. # of bits needed to store max. # of elements
588  in a data block page */
591 
593  /* Creation parameters for extensible array data structure */
594  struct {
595  uint8_t max_nelmts_bits; /* Log2(Max. # of elements in array) - i.e. # of bits needed to store max. # of elements */
596  uint8_t idx_blk_elmts; /* # of elements to store in index block */
597  uint8_t data_blk_min_elmts; /* Min. # of elements per data block */
598  uint8_t sup_blk_min_data_ptrs; /* Min. # of data block pointers for a super block */
599  uint8_t max_dblk_page_nelmts_bits; /* Log2(Max. # of elements in data block page) - i.e. # of bits needed to store max. # of elements in data block page */
601 
602  unsigned unlim_dim; /* Rank of unlimited dimension for dataset */
603  uint32_t swizzled_dim[H5O_LAYOUT_NDIMS]; /* swizzled chunk dimensions */
604  hsize_t swizzled_down_chunks[H5O_LAYOUT_NDIMS]; /* swizzled "down" size of number of chunks in each dimension */
605  hsize_t swizzled_max_down_chunks[H5O_LAYOUT_NDIMS]; /* swizzled max "down" size of number of chunks in each dimension */
607 
608 typedef struct H5O_layout_chunk_bt2_t {
609  /* Creation parameters for v2 B-tree data structure */
610  struct {
611  uint32_t node_size; /* Size of each node (in bytes) */
612  uint8_t split_percent; /* % full to split nodes */
613  uint8_t merge_percent; /* % full to merge nodes */
616 
617 typedef struct H5O_layout_chunk_t {
618  H5D_chunk_index_t idx_type; /* Type of chunk index */
619  uint8_t flags; /* Chunk layout flags */
620  unsigned ndims; /* Num dimensions in chunk */
621  uint32_t dim[H5O_LAYOUT_NDIMS]; /* Size of chunk in elements */
622  unsigned enc_bytes_per_dim; /* Encoded # of bytes for storing each chunk dimension */
623  uint32_t size; /* Size of chunk in bytes */
624  hsize_t nchunks; /* Number of chunks in dataset */
625  hsize_t max_nchunks; /* Max. number of chunks in dataset */
626  hsize_t chunks[H5O_LAYOUT_NDIMS]; /* # of chunks in each dataset dimension */
627  hsize_t max_chunks[H5O_LAYOUT_NDIMS]; /* # of chunks in each dataset's max. dimension */
628  hsize_t down_chunks[H5O_LAYOUT_NDIMS]; /* "down" size of number of chunks in each dimension */
629  hsize_t max_down_chunks[H5O_LAYOUT_NDIMS]; /* "down" size of number of chunks in each max dim */
630  union {
631  H5O_layout_chunk_farray_t farray; /* Information for fixed array index */
632  H5O_layout_chunk_earray_t earray; /* Information for extensible array index */
633  H5O_layout_chunk_bt2_t btree2; /* Information for v2 B-tree index */
634  } u;
636 
637 typedef struct H5O_layout_t {
638  H5D_layout_t type; /* Type of layout */
639  unsigned version; /* Version of message */
640  const struct H5D_layout_ops_t *ops; /* Pointer to data layout I/O operations */
641  union {
642  H5O_layout_chunk_t chunk; /* Information for chunked layout */
643  } u;
644  H5O_storage_t storage; /* Information for storing dataset elements */
646 
647 #ifdef H5O_ENABLE_BOGUS
648 /*
649  * "Bogus" Message.
650  * (Data structure in memory)
651  */
652 #define H5O_BOGUS_VALUE 0xdeadbeef
653 typedef struct H5O_bogus_t {
654  H5O_shared_t sh_loc; /* Shared message info (must be first) */
655  unsigned u; /* Hold the bogus info */
656 } H5O_bogus_t;
657 #endif /* H5O_ENABLE_BOGUS */
658 
659 /*
660  * Group info message.
661  * (Contains constant information about a group)
662  * (Data structure in memory)
663  * (if the fields in this struct are changed, remember to change the default
664  * group info structure in src/H5Gprivate.h - QAK)
665  */
666 typedef struct H5O_ginfo_t {
667  /* "Old" format group info (not stored) */
668  uint32_t lheap_size_hint; /* Local heap size hint */
669 
670  /* "New" format group info (stored) */
671 
672  /* (storage management info) */
673  hbool_t store_link_phase_change;/* Whether to store the link phase change values */
674  uint16_t max_compact; /* Maximum # of compact links */
675  uint16_t min_dense; /* Minimum # of "dense" links */
676 
677  /* (initial object header size info) */
678  hbool_t store_est_entry_info; /* Whether to store the est. entry values */
679  uint16_t est_num_entries; /* Estimated # of entries in group */
680  uint16_t est_name_len; /* Estimated length of entry name */
682 
683 /*
684  * Filter pipeline message.
685  * (Data structure in memory)
686  */
687 
688 /* The initial version of the format */
689 #define H5O_PLINE_VERSION_1 1
690 
691 /* This version encodes the message fields more efficiently */
692 /* (Drops the reserved bytes, doesn't align the name and doesn't encode the
693  * filter name at all if it's a filter provided by the library)
694  */
695 #define H5O_PLINE_VERSION_2 2
696 
697 /* The latest version of the format. Look through the 'encode' and 'size'
698  * callbacks for places to change when updating this. */
699 #define H5O_PLINE_VERSION_LATEST H5O_PLINE_VERSION_2
700 
701 typedef struct H5O_pline_t {
702  H5O_shared_t sh_loc; /* Shared message info (must be first) */
703 
704  unsigned version; /* Encoding version number */
705  size_t nalloc; /*num elements in `filter' array */
706  size_t nused; /*num filters defined */
707  H5Z_filter_info_t *filter; /*array of filters */
709 
710 /*
711  * Object name message.
712  * (Data structure in memory)
713  */
714 
715 typedef struct H5O_name_t {
716  char *s; /*ptr to malloc'd memory */
718 
719 /*
720  * Shared message table message
721  * Information about file-wide shared message table, stored in superblock
722  * extension
723  * (Data structure in memory)
724  */
725 typedef struct H5O_shmesg_table_t {
726  haddr_t addr; /*file address of SOHM table */
727  unsigned version; /*SOHM table version number */
728  unsigned nindexes; /*number of indexes in the table */
730 
731 /*
732  * Object header continuation message.
733  * (Data structure in memory)
734  */
735 
736 typedef struct H5O_cont_t {
737  haddr_t addr; /*address of continuation block */
738  size_t size; /*size of continuation block */
739 
740  /* the following field(s) do not appear on disk */
741  unsigned chunkno; /*chunk this mesg refers to */
743 
744 /*
745  * Symbol table message.
746  * (Data structure in memory)
747  */
748 typedef struct H5O_stab_t {
749  haddr_t btree_addr; /*address of B-tree */
750  haddr_t heap_addr; /*address of name heap */
752 
753 /*
754  * v1 B-tree 'K' value message
755  * Information about file-wide non-default v1 B-tree 'K' values, stored in
756  * superblock extension
757  * (Data structure in memory)
758  */
759 typedef struct H5O_btreek_t {
760  unsigned btree_k[H5B_NUM_BTREE_ID]; /* B-tree internal node 'K' values */
761  unsigned sym_leaf_k; /* Symbol table leaf node's 'K' value */
763 
764 /*
765  * Driver info message
766  * Information about driver info, stored in superblock extension
767  * (Data structure in memory)
768  */
769 typedef struct H5O_drvinfo_t {
770 /* Information for H5AC cache functions, _must_ be first field in structure */
772  char name[9]; /* Driver name */
773  size_t len; /* Length of encoded buffer */
774  uint8_t *buf; /* Buffer for encoded info */
776 
777 /*
778  * Attribute Info Message.
779  * (Contains dynamic information about attributes on an object)
780  * (Data structure in memory)
781  */
782 typedef struct H5O_ainfo_t {
783  /* Creation order info */
784  hbool_t track_corder; /* Are creation order values tracked on attributes? */
785  hbool_t index_corder; /* Are creation order values indexed on attributes? */
786  H5O_msg_crt_idx_t max_crt_idx; /* Maximum attribute creation index used */
787  haddr_t corder_bt2_addr; /* Address of v2 B-tree for indexing creation order values of "dense" attributes */
788 
789  /* Storage management info */
790  hsize_t nattrs; /* Number of attributes on the object */
791  haddr_t fheap_addr; /* Address of fractal heap for storing "dense" attributes */
792  haddr_t name_bt2_addr; /* Address of v2 B-tree for indexing names of "dense" attributes */
794 
795 /*
796  * Reference Count Message.
797  * (Data structure in memory)
798  */
799 typedef uint32_t H5O_refcount_t; /* Contains # of links to object, if >1 */
800 
801 /*
802  * "Unknown" Message.
803  * (Data structure in memory)
804  */
805 typedef unsigned H5O_unknown_t; /* Original message type ID */
806 
807 /* To indicate an invalid version for a message that does not exist yet for the release */
808 /* Message version is 1 byte so the value can be 0 to 255 */
809 #define H5O_INVALID_VERSION 256
810 
811 /* The initial version of the fsinfo message: deprecated */
812 /* This version is mapped to version 1 from release 1.10.1 onwards */
813 #define H5O_FSINFO_VERSION_0 0
814 
815 /* The latest version for fsinfo message */
816 #define H5O_FSINFO_VERSION_1 1
817 #define H5O_FSINFO_VERSION_LATEST H5O_FSINFO_VERSION_1
818 /*
819  * File space info Message.
820  * Contains file space management info and
821  * addresses of free space managers for file memory
822  * (Data structure in memory)
823  */
824 typedef struct H5O_fsinfo_t {
825  unsigned version; /* Version number */
826  H5F_fspace_strategy_t strategy; /* File space strategy */
827  hbool_t persist; /* Persisting free-space or not */
828  hsize_t threshold; /* Free-space section threshold */
829  hsize_t page_size; /* For paged aggregation: file space page size */
830  size_t pgend_meta_thres; /* For paged aggregation: page end metadata threshold */
831  haddr_t eoa_pre_fsm_fsalloc; /* For paged aggregation: the eoa before free-space headers & sinfo */
832  haddr_t fs_addr[H5F_MEM_PAGE_NTYPES - 1]; /* 13 addresses of free-space managers */
833  /* For non-paged aggregation: only 6 addresses are used */
834  hbool_t mapped; /* Not stored */
835  /* Indicate the message is mapped from version 0 to version 1 */
837 
838 /*
839  * Metadata Cache Image Message.
840  * Contains base address and length of the metadata cache image.
841  * (Data structure in memory)
842  */
843 typedef struct H5O_mdci_t {
844  haddr_t addr; /* address of MDC image block */
845  hsize_t size; /* size of MDC image block */
847 
848 /* Typedef for "application" iteration operations */
849 typedef herr_t (*H5O_operator_t)(const void *mesg/*in*/, unsigned idx,
850  void *operator_data/*in,out*/);
851 
852 /* Typedef for "internal library" iteration operations */
853 typedef herr_t (*H5O_lib_operator_t)(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
854  unsigned sequence, unsigned *oh_modified/*out*/, void *operator_data/*in,out*/);
855 
856 /* Some syntactic sugar to make the compiler happy with two different kinds of iterator callbacks */
858  H5O_MESG_OP_APP, /* Application callback */
859  H5O_MESG_OP_LIB /* Library internal callback */
861 
862 #define H5O_MODIFY_CONDENSE 0x01
863 #define H5O_MODIFY 0x02
864 
865 typedef struct {
867  union {
868  H5O_operator_t app_op; /* Application callback for each message */
869  H5O_lib_operator_t lib_op; /* Library internal callback for each message */
870  } u;
872 
873 /* Typedef for abstract object creation */
874 typedef struct {
875  H5O_type_t obj_type; /* Type of object to create */
876  void *crt_info; /* Information for object creation callback */
877  void *new_obj; /* Pointer to new object created */
879 
880 
881 /* Forward declarations for prototype arguments */
882 struct H5P_genplist_t;
883 
884 /* Object header routines */
886 H5_DLL herr_t H5O_create(H5F_t *f, size_t size_hint, size_t initial_rc,
887  hid_t ocpl_id, H5O_loc_t *loc/*out*/);
890  size_t size_hint, size_t initial_rc, H5O_loc_t *loc_out);
892 H5_DLL void *H5O_open_by_idx(const H5G_loc_t *loc, const char *name,
893  H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5I_type_t *opened_type/*out*/);
894 H5_DLL void *H5O_open_by_addr(const H5G_loc_t *loc, haddr_t addr, H5I_type_t *opened_type/*out*/);
895 H5_DLL void *H5O_open_by_loc(const H5G_loc_t *obj_loc, H5I_type_t *opened_type/*out*/);
896 H5_DLL herr_t H5O_close(H5O_loc_t *loc, hbool_t *file_closed/*out*/);
897 H5_DLL int H5O_link(const H5O_loc_t *loc, int adjust);
898 H5_DLL H5O_t *H5O_protect(const H5O_loc_t *loc, unsigned prot_flags, hbool_t pin_all_chunks);
899 H5_DLL H5O_t *H5O_pin(const H5O_loc_t *loc);
902 H5_DLL herr_t H5O_unprotect(const H5O_loc_t *loc, H5O_t *oh, unsigned oh_flags);
903 H5_DLL herr_t H5O_touch(const H5O_loc_t *loc, hbool_t force);
905 #ifdef H5O_ENABLE_BOGUS
906 H5_DLL herr_t H5O_bogus_oh(H5F_t *f, H5O_t *oh, unsigned mesg_id, unsigned mesg_flags);
907 #endif /* H5O_ENABLE_BOGUS */
910 H5_DLL herr_t H5O_get_info(const H5O_loc_t *oloc, H5O_info2_t *oinfo, unsigned fields);
911 H5_DLL herr_t H5O_get_native_info(const H5O_loc_t *oloc, H5O_native_info_t *oinfo, unsigned fields);
912 H5_DLL herr_t H5O_obj_type(const H5O_loc_t *loc, H5O_type_t *obj_type);
913 H5_DLL herr_t H5O_get_create_plist(const H5O_loc_t *loc, struct H5P_genplist_t *oc_plist);
914 H5_DLL void *H5O_open_name(const H5G_loc_t *loc, const char *name, H5I_type_t *opened_type/*out*/);
915 H5_DLL herr_t H5O_get_nlinks(const H5O_loc_t *loc, hsize_t *nlinks);
916 H5_DLL void *H5O_obj_create(H5F_t *f, H5O_type_t obj_type, void *crt_info, H5G_loc_t *obj_loc);
919 H5_DLL time_t H5O_get_oh_mtime(const H5O_t *oh);
921 H5_DLL herr_t H5O_get_rc_and_type(const H5O_loc_t *oloc, unsigned *rc, H5O_type_t *otype);
923 
924 /* Object header message routines */
925 H5_DLL herr_t H5O_msg_create(const H5O_loc_t *loc, unsigned type_id, unsigned mesg_flags,
926  unsigned update_flags, void *mesg);
927 H5_DLL herr_t H5O_msg_append_oh(H5F_t *f, H5O_t *oh, unsigned type_id,
928  unsigned mesg_flags, unsigned update_flags, void *mesg);
929 H5_DLL herr_t H5O_msg_write(const H5O_loc_t *loc, unsigned type_id,
930  unsigned mesg_flags, unsigned update_flags, void *mesg);
931 H5_DLL herr_t H5O_msg_write_oh(H5F_t *f, H5O_t *oh, unsigned type_id,
932  unsigned mesg_flags, unsigned update_flags, void *mesg);
934 H5_DLL void *H5O_msg_read(const H5O_loc_t *loc, unsigned type_id, void *mesg);
935 H5_DLL void *H5O_msg_read_oh(H5F_t *f, H5O_t *oh, unsigned type_id, void *mesg);
936 H5_DLL herr_t H5O_msg_reset(unsigned type_id, void *native);
937 H5_DLL void *H5O_msg_free(unsigned type_id, void *mesg);
938 H5_DLL void *H5O_msg_free_real(const H5O_msg_class_t *type, void *mesg);
939 H5_DLL void *H5O_msg_copy(unsigned type_id, const void *mesg, void *dst);
940 H5_DLL int H5O_msg_count(const H5O_loc_t *loc, unsigned type_id);
941 H5_DLL htri_t H5O_msg_exists(const H5O_loc_t *loc, unsigned type_id);
942 H5_DLL htri_t H5O_msg_exists_oh(const H5O_t *oh, unsigned type_id);
943 H5_DLL herr_t H5O_msg_remove(const H5O_loc_t *loc, unsigned type_id, int sequence,
944  hbool_t adj_link);
945 H5_DLL herr_t H5O_msg_remove_op(const H5O_loc_t *loc, unsigned type_id, int sequence,
946  H5O_operator_t op, void *op_data, hbool_t adj_link);
947 H5_DLL herr_t H5O_msg_iterate(const H5O_loc_t *loc, unsigned type_id,
948  const H5O_mesg_operator_t *op, void *op_data);
949 H5_DLL size_t H5O_msg_raw_size(const H5F_t *f, unsigned type_id,
950  hbool_t disable_shared, const void *mesg);
951 H5_DLL size_t H5O_msg_size_f(const H5F_t *f, hid_t ocpl_id, unsigned type_id,
952  const void *mesg, size_t extra_raw);
953 H5_DLL size_t H5O_msg_size_oh(const H5F_t *f, const H5O_t *oh, unsigned type_id,
954  const void *mesg, size_t extra_raw);
955 H5_DLL htri_t H5O_msg_is_shared(unsigned type_id, const void *mesg);
956 H5_DLL htri_t H5O_msg_can_share(unsigned type_id, const void *mesg);
957 H5_DLL htri_t H5O_msg_can_share_in_ohdr(unsigned type_id);
958 H5_DLL herr_t H5O_msg_set_share(unsigned type_id, const H5O_shared_t *share,
959  void *mesg);
960 H5_DLL herr_t H5O_msg_reset_share(unsigned type_id, void *mesg);
961 H5_DLL herr_t H5O_msg_get_crt_index(unsigned type_id, const void *mesg,
962  H5O_msg_crt_idx_t *crt_idx);
963 H5_DLL herr_t H5O_msg_encode(H5F_t *f, unsigned type_id, hbool_t disable_shared,
964  unsigned char *buf, const void *obj);
965 H5_DLL void* H5O_msg_decode(H5F_t *f, H5O_t *open_oh, unsigned type_id,
966  size_t buf_size, const unsigned char *buf);
967 H5_DLL herr_t H5O_msg_delete(H5F_t *f, H5O_t *open_oh, unsigned type_id,
968  void *mesg);
969 H5_DLL herr_t H5O_msg_get_flags(const H5O_loc_t *loc, unsigned type_id, uint8_t *flags);
970 
971 /* Object metadata flush/refresh routines */
972 H5_DLL herr_t H5O_flush(H5O_loc_t *oloc, hid_t obj_id);
975 H5_DLL herr_t H5O_refresh_metadata_reopen(hid_t oid, H5G_loc_t *obj_loc, H5VL_t *vol_driver, hbool_t start_swmr);
976 
977 /* Cache corking functions */
981 
982 /* Object copying routines */
983 H5_DLL herr_t H5O_copy_header_map(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst /*out */,
984  H5O_copy_t *cpy_info, hbool_t inc_depth,
985  H5O_type_t *obj_type, void **udata);
986 H5_DLL herr_t H5O_copy_expand_ref(H5F_t *file_src, hid_t tid_src, H5T_t *dt_src,
987  void *buf_src, size_t nbytes_src, H5F_t *file_dst, void *buf_dst,
988  H5O_copy_t *cpy_info);
989 H5_DLL herr_t H5O_copy(const H5G_loc_t *src_loc, const char *src_name,
990  H5G_loc_t *dst_loc, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id);
991 
992 /* Debugging routines */
993 H5_DLL herr_t H5O_debug_id(unsigned type_id, H5F_t *f, const void *mesg, FILE *stream, int indent, int fwidth);
994 H5_DLL herr_t H5O_debug(H5F_t *f, haddr_t addr, FILE * stream, int indent,
995  int fwidth);
996 
997 /* These functions operate on object locations */
1005 
1006 /* EFL operators */
1008 
1009 /* File space info routines */
1012 
1013 /* Fill value operators */
1015 H5_DLL herr_t H5O_fill_convert(H5O_fill_t *fill, H5T_t *type, hbool_t *fill_changed);
1017 
1018 /* Link operators */
1019 H5_DLL herr_t H5O_link_delete(H5F_t *f, H5O_t *open_oh, void *_mesg);
1020 
1021 /* Filter pipeline operators */
1023 
1024 /* Shared message operators */
1026 
1027 #endif /* _H5Oprivate_H */
1028 
H5O_loc_hold_file
H5_DLL herr_t H5O_loc_hold_file(H5O_loc_t *loc)
Definition: H5Oint.c:2037
u
hsize_t u
Definition: H5EA.c:1007
H5O_efl_t
Definition: H5Oprivate.h:381
H5O_get_proxy
H5_DLL H5AC_proxy_entry_t * H5O_get_proxy(const H5O_t *oh)
Definition: H5Oint.c:3064
H5O_layout_chunk_t::farray
H5O_layout_chunk_farray_t farray
Definition: H5Oprivate.h:631
H5O_layout_chunk_t::earray
H5O_layout_chunk_earray_t earray
Definition: H5Oprivate.h:632
H5O_msg_remove_op
H5_DLL herr_t H5O_msg_remove_op(const H5O_loc_t *loc, unsigned type_id, int sequence, H5O_operator_t op, void *op_data, hbool_t adj_link)
Definition: H5Omessage.c:1011
H5O_link_t
struct H5O_link_t H5O_link_t
H5O_get_hdr_info
H5_DLL herr_t H5O_get_hdr_info(const H5O_loc_t *oloc, H5O_hdr_info_t *hdr)
Definition: H5Oint.c:2109
H5O_storage_chunk_earray_t::ea
struct H5EA_t * ea
Definition: H5Oprivate.h:462
H5O_msg_exists_oh
H5_DLL htri_t H5O_msg_exists_oh(const H5O_t *oh, unsigned type_id)
Definition: H5Omessage.c:916
H5Lpublic.h
H5O_ainfo_t::nattrs
hsize_t nattrs
Definition: H5Oprivate.h:790
H5O_storage_virtual_ent_t::clip_size_source
hsize_t clip_size_source
Definition: H5Oprivate.h:550
H5O_loc_t
Definition: H5Oprivate.h:152
ssize_t
int ssize_t
Definition: H5public.h:167
H5F_MEM_PAGE_NTYPES
@ H5F_MEM_PAGE_NTYPES
Definition: H5Fprivate.h:703
H5O_ainfo_t
Definition: H5Oprivate.h:782
H5O_storage_virtual_ent_t::parsed_source_file_name
H5O_storage_virtual_name_seg_t * parsed_source_file_name
Definition: H5Oprivate.h:539
H5O_stab_t::heap_addr
haddr_t heap_addr
Definition: H5Oprivate.h:750
H5O_mdci_t::addr
haddr_t addr
Definition: H5Oprivate.h:844
H5O_storage_chunk_bt2_t
Definition: H5Oprivate.h:474
H5O_storage_virtual_srcdset_t::projected_mem_space
struct H5S_t * projected_mem_space
Definition: H5Oprivate.h:511
H5O_fill_t::type
H5T_t * type
Definition: H5Oprivate.h:329
H5O_unknown_t
unsigned H5O_unknown_t
Definition: H5Oprivate.h:805
H5O_mesg_loc_t
struct H5O_mesg_loc_t H5O_mesg_loc_t
H5O_link_soft_t
struct H5O_link_soft_t H5O_link_soft_t
H5O_linfo_t::track_corder
hbool_t track_corder
Definition: H5Oprivate.h:293
H5O_get_oh_addr
H5_DLL haddr_t H5O_get_oh_addr(const H5O_t *oh)
Definition: H5Oint.c:2553
H5SL_t
Definition: H5SL.c:557
H5O_storage_compact_t
struct H5O_storage_compact_t H5O_storage_compact_t
H5O_layout_chunk_farray_t::cparam
struct H5O_layout_chunk_farray_t::@28 cparam
H5O_delete
H5_DLL herr_t H5O_delete(H5F_t *f, haddr_t addr)
Definition: H5Oint.c:1578
H5O_storage_chunk_t::btree
H5O_storage_chunk_btree_t btree
Definition: H5Oprivate.h:484
H5O_efl_t::nalloc
size_t nalloc
Definition: H5Oprivate.h:383
H5O_layout_chunk_t::max_nchunks
hsize_t max_nchunks
Definition: H5Oprivate.h:625
H5O_get_create_plist
H5_DLL herr_t H5O_get_create_plist(const H5O_loc_t *loc, struct H5P_genplist_t *oc_plist)
Definition: H5Oint.c:2407
H5O_msg_get_crt_index
H5_DLL herr_t H5O_msg_get_crt_index(unsigned type_id, const void *mesg, H5O_msg_crt_idx_t *crt_idx)
Definition: H5Omessage.c:1720
H5O_loc_copy
H5_DLL herr_t H5O_loc_copy(H5O_loc_t *dst, H5O_loc_t *src, H5_copy_depth_t depth)
Definition: H5Oint.c:1931
H5O_layout_chunk_bt2_t::split_percent
uint8_t split_percent
Definition: H5Oprivate.h:612
H5O_msg_class_t
Definition: H5Opkg.h:226
H5O_layout_t::ops
const struct H5D_layout_ops_t * ops
Definition: H5Oprivate.h:640
H5O_msg_free
H5_DLL void * H5O_msg_free(unsigned type_id, void *mesg)
Definition: H5Omessage.c:648
H5O_copy_t::copy_without_attr
hbool_t copy_without_attr
Definition: H5Oprivate.h:177
H5O_storage_virtual_t::list_nalloc
size_t list_nalloc
Definition: H5Oprivate.h:564
H5O_layout_chunk_t::btree2
H5O_layout_chunk_bt2_t btree2
Definition: H5Oprivate.h:633
H5O_layout_chunk_earray_t::max_nelmts_bits
uint8_t max_nelmts_bits
Definition: H5Oprivate.h:595
H5D_t
Definition: H5Dpkg.h:472
H5O_refresh_metadata_reopen
H5_DLL herr_t H5O_refresh_metadata_reopen(hid_t oid, H5G_loc_t *obj_loc, H5VL_t *vol_driver, hbool_t start_swmr)
Definition: H5Oflush.c:445
H5O_open_name
H5_DLL void * H5O_open_name(const H5G_loc_t *loc, const char *name, H5I_type_t *opened_type)
Definition: H5Oint.c:628
f
hdr f
Definition: H5EA.c:755
H5O_fsinfo_t::version
unsigned version
Definition: H5Oprivate.h:825
H5O_btreek_t::btree_k
unsigned btree_k[H5B_NUM_BTREE_ID]
Definition: H5Oprivate.h:760
H5O_layout_t::u
union H5O_layout_t::@32 u
H5O_copy_dtype_merge_list_t::path
char * path
Definition: H5Oprivate.h:161
H5O_name_t::s
char * s
Definition: H5Oprivate.h:716
H5O_get_native_info
H5_DLL herr_t H5O_get_native_info(const H5O_loc_t *oloc, H5O_native_info_t *oinfo, unsigned fields)
Definition: H5Oint.c:2344
H5O_storage_virtual_ent_t::unlim_dim_source
int unlim_dim_source
Definition: H5Oprivate.h:545
H5O_shared_t
Definition: H5Oprivate.h:268
H5O_storage_chunk_farray_t::fa
struct H5FA_t * fa
Definition: H5Oprivate.h:454
H5O_ainfo_t::index_corder
hbool_t index_corder
Definition: H5Oprivate.h:785
H5O_ginfo_t::max_compact
uint16_t max_compact
Definition: H5Oprivate.h:674
H5O_efl_entry_t::name_offset
size_t name_offset
Definition: H5Oprivate.h:375
H5O_layout_chunk_farray_t
Definition: H5Oprivate.h:583
H5O_stab_t
struct H5O_stab_t H5O_stab_t
H5O_storage_chunk_single_filt_t::nbytes
uint32_t nbytes
Definition: H5Oprivate.h:467
H5O_obj_create_t::new_obj
void * new_obj
Definition: H5Oprivate.h:877
H5O_storage_virtual_ent_t::unlim_extent_virtual
hsize_t unlim_extent_virtual
Definition: H5Oprivate.h:548
H5D_vds_view_t
H5D_vds_view_t
Definition: H5Dpublic.h:98
H5S_MAX_RANK
#define H5S_MAX_RANK
Definition: H5Spublic.h:29
H5F_fspace_strategy_t
H5F_fspace_strategy_t
Definition: H5Fpublic.h:174
H5O_copy_t::expand_ext_link
hbool_t expand_ext_link
Definition: H5Oprivate.h:175
H5B2_t
Definition: H5B2pkg.h:249
H5O_msg_size_f
H5_DLL size_t H5O_msg_size_f(const H5F_t *f, hid_t ocpl_id, unsigned type_id, const void *mesg, size_t extra_raw)
Definition: H5Omessage.c:1392
H5O_copy_t::oh_dst
H5O_t * oh_dst
Definition: H5Oprivate.h:186
H5O_layout_chunk_earray_t
Definition: H5Oprivate.h:592
H5O_storage_t::compact
H5O_storage_compact_t compact
Definition: H5Oprivate.h:578
H5O_create
H5_DLL herr_t H5O_create(H5F_t *f, size_t size_hint, size_t initial_rc, hid_t ocpl_id, H5O_loc_t *loc)
Definition: H5Oint.c:296
H5O_MESG_OP_APP
@ H5O_MESG_OP_APP
Definition: H5Oprivate.h:858
H5O_msg_exists
H5_DLL htri_t H5O_msg_exists(const H5O_loc_t *loc, unsigned type_id)
Definition: H5Omessage.c:870
H5O_storage_chunk_farray_t::dset_ohdr_addr
haddr_t dset_ohdr_addr
Definition: H5Oprivate.h:453
H5O_fsinfo_t
struct H5O_fsinfo_t H5O_fsinfo_t
H5O_msg_get_flags
H5_DLL herr_t H5O_msg_get_flags(const H5O_loc_t *loc, unsigned type_id, uint8_t *flags)
Definition: H5Omessage.c:2262
H5O_msg_count
H5_DLL int H5O_msg_count(const H5O_loc_t *loc, unsigned type_id)
Definition: H5Omessage.c:782
H5O_storage_t
struct H5O_storage_t H5O_storage_t
H5O_mesg_operator_t::lib_op
H5O_lib_operator_t lib_op
Definition: H5Oprivate.h:869
H5O_drvinfo_t::len
size_t len
Definition: H5Oprivate.h:773
H5O_storage_virtual_ent_t
struct H5O_storage_virtual_ent_t H5O_storage_virtual_ent_t
H5O_storage_chunk_farray_t
Definition: H5Oprivate.h:452
uint32_t
uint32_t
Definition: H5overflow.txt:38
H5O_layout_chunk_earray_t::idx_blk_elmts
uint8_t idx_blk_elmts
Definition: H5Oprivate.h:596
H5O_ginfo_t::est_num_entries
uint16_t est_num_entries
Definition: H5Oprivate.h:679
H5O_storage_chunk_single_filt_t
Definition: H5Oprivate.h:466
H5I_type_t
H5I_type_t
Definition: H5Ipublic.h:33
H5O_layout_t
struct H5O_layout_t H5O_layout_t
H5O_storage_virtual_ent_t::sub_dset
H5O_storage_virtual_srcdset_t * sub_dset
Definition: H5Oprivate.h:534
H5O_storage_virtual_name_seg_t::next
struct H5O_storage_virtual_name_seg_t * next
Definition: H5Oprivate.h:516
H5O_msg_write_oh
H5_DLL herr_t H5O_msg_write_oh(H5F_t *f, H5O_t *oh, unsigned type_id, unsigned mesg_flags, unsigned update_flags, void *mesg)
Definition: H5Omessage.c:313
H5D_chunk_ops_t
Definition: H5Dpkg.h:314
H5O_storage_virtual_ent_t::source_select
struct H5S_t * source_select
Definition: H5Oprivate.h:531
H5O_storage_virtual_ent_t::sub_dset_io_start
size_t sub_dset_io_start
Definition: H5Oprivate.h:537
H5VL_t
Definition: H5VLprivate.h:32
H5O_msg_raw_size
H5_DLL size_t H5O_msg_raw_size(const H5F_t *f, unsigned type_id, hbool_t disable_shared, const void *mesg)
Definition: H5Omessage.c:1349
H5O_LAYOUT_NDIMS
#define H5O_LAYOUT_NDIMS
Definition: H5Oprivate.h:393
H5O_storage_chunk_t::u
union H5O_storage_chunk_t::@26 u
H5O_link_delete
H5_DLL herr_t H5O_link_delete(H5F_t *f, H5O_t *open_oh, void *_mesg)
H5O_storage_virtual_name_seg_t
Definition: H5Oprivate.h:514
H5O_mcdt_cb_info_t
Definition: H5Oprivate.h:166
haddr_t
CATCH haddr_t
Definition: H5EAdblock.c:162
H5O_layout_chunk_t::u
union H5O_layout_chunk_t::@31 u
H5O_get_rc_and_type
H5_DLL herr_t H5O_get_rc_and_type(const H5O_loc_t *oloc, unsigned *rc, H5O_type_t *otype)
Definition: H5Oint.c:2636
H5O_storage_virtual_ent_t::source_dset_name
char * source_dset_name
Definition: H5Oprivate.h:530
indent
*s *s indent
Definition: H5HLdbg.c:111
H5O_linfo_t::nlinks
hsize_t nlinks
Definition: H5Oprivate.h:299
H5O_msg_free_real
H5_DLL void * H5O_msg_free_real(const H5O_msg_class_t *type, void *mesg)
Definition: H5Omessage.c:709
H5O_storage_virtual_t::source_dapl
hid_t source_dapl
Definition: H5Oprivate.h:569
H5O_get_oh_flags
H5_DLL uint8_t H5O_get_oh_flags(const H5O_t *oh)
Definition: H5Oint.c:2574
H5O_copy_t::expand_soft_link
hbool_t expand_soft_link
Definition: H5Oprivate.h:174
H5VLprivate.h
H5O_copy_header_map
H5_DLL herr_t H5O_copy_header_map(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst, H5O_copy_t *cpy_info, hbool_t inc_depth, H5O_type_t *obj_type, void **udata)
Definition: H5Ocopy.c:949
H5O_efl_t::slot
H5O_efl_entry_t * slot
Definition: H5Oprivate.h:385
H5O_storage_chunk_btree_t::dset_ohdr_addr
haddr_t dset_ohdr_addr
Definition: H5Oprivate.h:445
H5O_mcdt_search_cb_t
H5O_mcdt_search_ret_t(* H5O_mcdt_search_cb_t)(void *op_data)
Definition: H5Opublic.h:168
H5O_shared_t::u
union H5O_shared_t::@24 u
H5O_layout_chunk_bt2_t
struct H5O_layout_chunk_bt2_t H5O_layout_chunk_bt2_t
H5O_fill_t::alloc_time
H5D_alloc_time_t alloc_time
Definition: H5Oprivate.h:332
H5O_drvinfo_t::cache_info
H5AC_info_t cache_info
Definition: H5Oprivate.h:771
H5O_fill_t::sh_loc
H5O_shared_t sh_loc
Definition: H5Oprivate.h:326
H5O_fsinfo_t::persist
hbool_t persist
Definition: H5Oprivate.h:827
H5O_storage_chunk_bt2_t::dset_ohdr_addr
haddr_t dset_ohdr_addr
Definition: H5Oprivate.h:475
H5O_drvinfo_t
struct H5O_drvinfo_t H5O_drvinfo_t
H5O_open_by_addr
H5_DLL void * H5O_open_by_addr(const H5G_loc_t *loc, haddr_t addr, H5I_type_t *opened_type)
Definition: H5Oint.c:731
H5O_ainfo_t
struct H5O_ainfo_t H5O_ainfo_t
H5O_msg_decode
H5_DLL void * H5O_msg_decode(H5F_t *f, H5O_t *open_oh, unsigned type_id, size_t buf_size, const unsigned char *buf)
Definition: H5Omessage.c:1810
H5O_pline_t
Definition: H5Oprivate.h:701
H5O_FHEAP_ID_LEN
#define H5O_FHEAP_ID_LEN
Definition: H5Oprivate.h:66
H5O_pline_t::nused
size_t nused
Definition: H5Oprivate.h:706
H5D_layout_t
H5D_layout_t
Definition: H5Dpublic.h:43
H5O_loc_copy_deep
H5_DLL herr_t H5O_loc_copy_deep(H5O_loc_t *dst, const H5O_loc_t *src)
Definition: H5Oint.c:2001
H5O_name_t
Definition: H5Oprivate.h:715
H5O_storage_contig_t::size
hsize_t size
Definition: H5Oprivate.h:441
H5O_operator_t
herr_t(* H5O_operator_t)(const void *mesg, unsigned idx, void *operator_data)
Definition: H5Oprivate.h:849
H5O_obj_type
H5_DLL herr_t H5O_obj_type(const H5O_loc_t *loc, H5O_type_t *obj_type)
Definition: H5Oint.c:1681
H5O_storage_chunk_earray_t
Definition: H5Oprivate.h:460
H5O_storage_t::contig
H5O_storage_contig_t contig
Definition: H5Oprivate.h:576
H5O_storage_virtual_ent_t::psfn_nsubs
size_t psfn_nsubs
Definition: H5Oprivate.h:541
H5G_loc_t
Definition: H5Gprivate.h:144
H5O_efl_entry_t
struct H5O_efl_entry_t H5O_efl_entry_t
H5Spublic.h
H5O_msg_size_oh
H5_DLL size_t H5O_msg_size_oh(const H5F_t *f, const H5O_t *oh, unsigned type_id, const void *mesg, size_t extra_raw)
Definition: H5Omessage.c:1456
H5O_pline_t::version
unsigned version
Definition: H5Oprivate.h:704
H5O_storage_chunk_farray_t
struct H5O_storage_chunk_farray_t H5O_storage_chunk_farray_t
H5O_efl_entry_t
Definition: H5Oprivate.h:374
H5O_efl_entry_t::size
hsize_t size
Definition: H5Oprivate.h:378
uint8_t
unsigned char uint8_t
Definition: H5private.h:429
H5O_efl_total_size
H5_DLL hsize_t H5O_efl_total_size(H5O_efl_t *efl)
Definition: H5Oefl.c:405
H5O_copy_t::merge_comm_dt
hbool_t merge_comm_dt
Definition: H5Oprivate.h:179
H5O_msg_reset_share
H5_DLL herr_t H5O_msg_reset_share(unsigned type_id, void *mesg)
H5O_layout_chunk_t::chunks
hsize_t chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:626
H5O_debug
H5_DLL herr_t H5O_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth)
Definition: H5Odbg.c:553
H5O_layout_chunk_earray_t::data_blk_min_elmts
uint8_t data_blk_min_elmts
Definition: H5Oprivate.h:597
H5O_pin
H5_DLL H5O_t * H5O_pin(const H5O_loc_t *loc)
Definition: H5Oint.c:1227
H5O_storage_virtual_name_seg_t::name_segment
char * name_segment
Definition: H5Oprivate.h:515
H5D_alloc_time_t
H5D_alloc_time_t
Definition: H5Dpublic.h:65
H5O_ginfo_t::lheap_size_hint
uint32_t lheap_size_hint
Definition: H5Oprivate.h:668
H5O_storage_virtual_ent_t::sub_dset_io_end
size_t sub_dset_io_end
Definition: H5Oprivate.h:538
hdr
hdr
Definition: H5EAhdr.c:821
int64_t
int64_t
Definition: H5overflow.txt:35
H5HGprivate.h
H5AC_proxy_entry_t
Definition: H5ACprivate.h:203
H5O_layout_chunk_farray_t::max_dblk_page_nelmts_bits
uint8_t max_dblk_page_nelmts_bits
Definition: H5Oprivate.h:586
H5O_layout_t::type
H5D_layout_t type
Definition: H5Oprivate.h:638
H5O_mesg_operator_t::op_type
H5O_mesg_operator_type_t op_type
Definition: H5Oprivate.h:866
H5O_drvinfo_t::buf
uint8_t * buf
Definition: H5Oprivate.h:774
H5O_layout_chunk_t::nchunks
hsize_t nchunks
Definition: H5Oprivate.h:624
H5O_copy_t::curr_depth
int curr_depth
Definition: H5Oprivate.h:181
H5O_are_mdc_flushes_disabled
H5_DLL herr_t H5O_are_mdc_flushes_disabled(H5O_loc_t *oloc, hbool_t *are_disabled)
Definition: H5O.c:1414
H5O_storage_chunk_t::ops
const struct H5D_chunk_ops_t * ops
Definition: H5Oprivate.h:482
H5O_storage_compact_t::dirty
hbool_t dirty
Definition: H5Oprivate.h:493
H5O_msg_is_shared
H5_DLL htri_t H5O_msg_is_shared(unsigned type_id, const void *mesg)
Definition: H5Omessage.c:1593
H5O_ainfo_t::corder_bt2_addr
haddr_t corder_bt2_addr
Definition: H5Oprivate.h:787
H5O_storage_virtual_srcdset_t
Definition: H5Oprivate.h:498
H5O_fsinfo_t::eoa_pre_fsm_fsalloc
haddr_t eoa_pre_fsm_fsalloc
Definition: H5Oprivate.h:831
H5O_storage_t::u
union H5O_storage_t::@27 u
H5P_genplist_t
Definition: H5Ppkg.h:107
H5O_shared_t::loc
H5O_mesg_loc_t loc
Definition: H5Oprivate.h:273
H5O_layout_chunk_earray_t::max_dblk_page_nelmts_bits
uint8_t max_dblk_page_nelmts_bits
Definition: H5Oprivate.h:599
H5O_storage_chunk_t::earray
H5O_storage_chunk_earray_t earray
Definition: H5Oprivate.h:486
H5O_storage_virtual_t::init
hbool_t init
Definition: H5Oprivate.h:570
H5O_pline_t::filter
H5Z_filter_info_t * filter
Definition: H5Oprivate.h:707
H5O_fsinfo_t::strategy
H5F_fspace_strategy_t strategy
Definition: H5Oprivate.h:826
H5O_shared_t::heap_id
H5O_fheap_id_t heap_id
Definition: H5Oprivate.h:274
H5O_pline_set_version
H5_DLL herr_t H5O_pline_set_version(H5F_t *f, H5O_pline_t *pline)
Definition: H5Opline.c:713
htri_t
int htri_t
Definition: H5public.h:160
H5O_init
H5_DLL herr_t H5O_init(void)
H5O_obj_create_t::crt_info
void * crt_info
Definition: H5Oprivate.h:876
H5O_layout_chunk_t
struct H5O_layout_chunk_t H5O_layout_chunk_t
H5O_protect
H5_DLL H5O_t * H5O_protect(const H5O_loc_t *loc, unsigned prot_flags, hbool_t pin_all_chunks)
Definition: H5Oint.c:1041
H5O_copy_t::expand_ref
hbool_t expand_ref
Definition: H5Oprivate.h:176
H5_iter_order_t
H5_iter_order_t
Definition: H5public.h:295
H5O_fsinfo_t::page_size
hsize_t page_size
Definition: H5Oprivate.h:829
H5O__apply_ohdr
H5_DLL herr_t H5O__apply_ohdr(H5F_t *f, H5O_t *oh, hid_t ocpl_id, size_t size_hint, size_t initial_rc, H5O_loc_t *loc_out)
Definition: H5Oint.c:409
H5O_ginfo_t::min_dense
uint16_t min_dense
Definition: H5Oprivate.h:675
H5O_msg_flush
H5_DLL herr_t H5O_msg_flush(H5F_t *f, H5O_t *oh, H5O_mesg_t *mesg)
Definition: H5Omessage.c:2116
H5O_ginfo_t::store_link_phase_change
hbool_t store_link_phase_change
Definition: H5Oprivate.h:673
H5O_pline_t
struct H5O_pline_t H5O_pline_t
H5O_pline_t::sh_loc
H5O_shared_t sh_loc
Definition: H5Oprivate.h:702
H5O_mesg_loc_t
Definition: H5Oprivate.h:256
H5O_storage_virtual_srcdset_t::virtual_select
struct H5S_t * virtual_select
Definition: H5Oprivate.h:500
H5O_mesg_operator_type_t
H5O_mesg_operator_type_t
Definition: H5Oprivate.h:857
H5O_link_hard_t
struct H5O_link_hard_t H5O_link_hard_t
H5O_unprotect
H5_DLL herr_t H5O_unprotect(const H5O_loc_t *loc, H5O_t *oh, unsigned oh_flags)
Definition: H5Oint.c:1310
H5O_copy_t::shared_fo
void * shared_fo
Definition: H5Oprivate.h:192
H5O_msg_append_oh
H5_DLL herr_t H5O_msg_append_oh(H5F_t *f, H5O_t *oh, unsigned type_id, unsigned mesg_flags, unsigned update_flags, void *mesg)
Definition: H5Omessage.c:162
H5O_storage_virtual_ent_t::parsed_source_dset_name
H5O_storage_virtual_name_seg_t * parsed_source_dset_name
Definition: H5Oprivate.h:542
H5O_copy_t::mcdt_ud
void * mcdt_ud
Definition: H5Oprivate.h:194
H5O_btreek_t::sym_leaf_k
unsigned sym_leaf_k
Definition: H5Oprivate.h:761
H5O_msg_read
H5_DLL void * H5O_msg_read(const H5O_loc_t *loc, unsigned type_id, void *mesg)
Definition: H5Omessage.c:462
H5O_flush
H5_DLL herr_t H5O_flush(H5O_loc_t *oloc, hid_t obj_id)
Definition: H5Oflush.c:117
H5O_linfo_t::index_corder
hbool_t index_corder
Definition: H5Oprivate.h:294
H5O_drvinfo_t::name
char name[9]
Definition: H5Oprivate.h:772
H5O_stab_t
Definition: H5Oprivate.h:748
H5O_storage_virtual_srcdset_t::dset_exists
hbool_t dset_exists
Definition: H5Oprivate.h:508
H5SLprivate.h
H5O_btreek_t
Definition: H5Oprivate.h:759
H5O_t
Definition: H5Opkg.h:279
H5O_storage_virtual_srcdset_t::dset
struct H5D_t * dset
Definition: H5Oprivate.h:507
H5O_shmesg_table_t
Definition: H5Oprivate.h:725
H5O_storage_virtual_t::list_nused
size_t list_nused
Definition: H5Oprivate.h:560
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5O_layout_chunk_t::max_chunks
hsize_t max_chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:627
H5O_layout_chunk_t::idx_type
H5D_chunk_index_t idx_type
Definition: H5Oprivate.h:618
H5O_cont_t::size
size_t size
Definition: H5Oprivate.h:738
H5O_ainfo_t::max_crt_idx
H5O_msg_crt_idx_t max_crt_idx
Definition: H5Oprivate.h:786
H5O_fill_t::version
unsigned version
Definition: H5Oprivate.h:328
H5O_copy_t::copy_shallow
hbool_t copy_shallow
Definition: H5Oprivate.h:173
H5O_shared_t::file
H5F_t * file
Definition: H5Oprivate.h:270
H5O_copy_t::max_depth
int max_depth
Definition: H5Oprivate.h:182
H5O_copy_dtype_merge_list_t
Definition: H5Oprivate.h:160
H5O_fill_t::fill_time
H5D_fill_time_t fill_time
Definition: H5Oprivate.h:333
H5O_msg_delete
H5_DLL herr_t H5O_msg_delete(H5F_t *f, H5O_t *open_oh, unsigned type_id, void *mesg)
Definition: H5Omessage.c:2038
H5O_fsinfo_check_version
H5_DLL herr_t H5O_fsinfo_check_version(H5F_libver_t high, H5O_fsinfo_t *fsinfo)
Definition: H5Ofsinfo.c:397
H5O_copy_t::lcpl_id
hid_t lcpl_id
Definition: H5Oprivate.h:195
H5O_layout_chunk_bt2_t
Definition: H5Oprivate.h:608
H5O_pline_t::nalloc
size_t nalloc
Definition: H5Oprivate.h:705
H5UC_t
Definition: H5UCprivate.h:43
H5O_msg_encode
H5_DLL herr_t H5O_msg_encode(H5F_t *f, unsigned type_id, hbool_t disable_shared, unsigned char *buf, const void *obj)
Definition: H5Omessage.c:1765
H5T_t
Definition: H5Tpkg.h:350
H5O_linfo_t::corder_bt2_addr
haddr_t corder_bt2_addr
Definition: H5Oprivate.h:296
H5O_mdci_t
struct H5O_mdci_t H5O_mdci_t
H5O_storage_virtual_ent_t::unlim_extent_source
hsize_t unlim_extent_source
Definition: H5Oprivate.h:547
H5O_layout_chunk_earray_t::swizzled_down_chunks
hsize_t swizzled_down_chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:604
H5O_copy_t
struct H5O_copy_t H5O_copy_t
uint16_t
uint16_t
Definition: H5overflow.txt:37
H5O_shared_t::type
unsigned type
Definition: H5Oprivate.h:269
H5O_fill_t::size
ssize_t size
Definition: H5Oprivate.h:330
H5O_storage_virtual_t::list
H5O_storage_virtual_ent_t * list
Definition: H5Oprivate.h:561
FILE
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
H5O__create_ohdr
H5_DLL H5O_t * H5O__create_ohdr(H5F_t *f, hid_t ocpl_id)
Definition: H5Oint.c:341
H5O_ginfo_t
Definition: H5Oprivate.h:666
H5ACprivate.h
H5O_copy_t
Definition: H5Oprivate.h:172
H5O_fill_t::fill_defined
hbool_t fill_defined
Definition: H5Oprivate.h:334
H5O_storage_chunk_t::idx_type
H5D_chunk_index_t idx_type
Definition: H5Oprivate.h:480
H5O_VIRTUAL_STATUS_CORRECT
@ H5O_VIRTUAL_STATUS_CORRECT
Definition: H5Oprivate.h:523
H5O_fill_convert
H5_DLL herr_t H5O_fill_convert(H5O_fill_t *fill, H5T_t *type, hbool_t *fill_changed)
Definition: H5Ofill.c:982
H5O_layout_chunk_earray_t::swizzled_dim
uint32_t swizzled_dim[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:603
H5O_ainfo_t::name_bt2_addr
haddr_t name_bt2_addr
Definition: H5Oprivate.h:792
H5O_storage_contig_t::addr
haddr_t addr
Definition: H5Oprivate.h:440
H5O_info2_t
Definition: H5Opublic.h:131
H5O_storage_virtual_ent_t::psfn_static_strlen
size_t psfn_static_strlen
Definition: H5Oprivate.h:540
H5S_t
Definition: H5Spkg.h:317
H5O_ainfo_t::fheap_addr
haddr_t fheap_addr
Definition: H5Oprivate.h:791
H5O_open_by_loc
H5_DLL void * H5O_open_by_loc(const H5G_loc_t *obj_loc, H5I_type_t *opened_type)
Definition: H5Oint.c:774
H5O_mdci_t
Definition: H5Oprivate.h:843
H5O_VIRTUAL_STATUS_USER
@ H5O_VIRTUAL_STATUS_USER
Definition: H5Oprivate.h:522
H5Fprivate.h
H5O_layout_chunk_earray_t::cparam
struct H5O_layout_chunk_earray_t::@29 cparam
H5O_copy_t::dst_dt_suggestion_list
H5O_copy_dtype_merge_list_t * dst_dt_suggestion_list
Definition: H5Oprivate.h:180
H5O_storage_virtual_ent_t::source_file_name
char * source_file_name
Definition: H5Oprivate.h:529
H5O_msg_crt_idx_t
uint32_t H5O_msg_crt_idx_t
Definition: H5Opublic.h:155
H5O_shared_t
struct H5O_shared_t H5O_shared_t
H5O_loc_t::file
H5F_t * file
Definition: H5Oprivate.h:153
H5O_storage_virtual_ent_t::psdn_static_strlen
size_t psdn_static_strlen
Definition: H5Oprivate.h:543
H5O_storage_chunk_btree_t::shared
H5UC_t * shared
Definition: H5Oprivate.h:446
H5O_mcdt_cb_info_t
struct H5O_mcdt_cb_info_t H5O_mcdt_cb_info_t
H5T_cset_t
H5T_cset_t
Definition: H5Tpublic.h:78
H5D_chunk_index_t
H5D_chunk_index_t
Definition: H5Dpublic.h:54
H5O_fsinfo_set_version
H5_DLL herr_t H5O_fsinfo_set_version(H5F_libver_t low, H5F_libver_t high, H5O_fsinfo_t *fsinfo)
Definition: H5Ofsinfo.c:355
H5O_storage_virtual_t::view
H5D_vds_view_t view
Definition: H5Oprivate.h:566
H5O_shmesg_table_t
struct H5O_shmesg_table_t H5O_shmesg_table_t
H5O_linfo_t
struct H5O_linfo_t H5O_linfo_t
H5O_loc_copy_shallow
H5_DLL herr_t H5O_loc_copy_shallow(H5O_loc_t *dst, H5O_loc_t *src)
Definition: H5Oint.c:1967
H5O_msg_reset
H5_DLL herr_t H5O_msg_reset(unsigned type_id, void *native)
Definition: H5Omessage.c:572
H5O_cont_t::addr
haddr_t addr
Definition: H5Oprivate.h:737
H5O_cont_t::chunkno
unsigned chunkno
Definition: H5Oprivate.h:741
H5O_storage_virtual_t
Definition: H5Oprivate.h:555
H5O_touch_oh
H5_DLL herr_t H5O_touch_oh(H5F_t *f, H5O_t *oh, hbool_t force)
Definition: H5Oint.c:1365
uint64_t
uint64_t
Definition: H5overflow.txt:39
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5O_layout_chunk_t::enc_bytes_per_dim
unsigned enc_bytes_per_dim
Definition: H5Oprivate.h:622
H5O_storage_chunk_single_filt_t::filter_mask
uint32_t filter_mask
Definition: H5Oprivate.h:468
H5O_storage_virtual_ent_t::psdn_nsubs
size_t psdn_nsubs
Definition: H5Oprivate.h:544
H5O_hdr_info_t
Definition: H5Opublic.h:112
H5O_msg_set_share
H5_DLL herr_t H5O_msg_set_share(unsigned type_id, const H5O_shared_t *share, void *mesg)
Definition: H5Omessage.c:1638
H5O_layout_chunk_t::size
uint32_t size
Definition: H5Oprivate.h:623
H5O_copy_t::preserve_null
hbool_t preserve_null
Definition: H5Oprivate.h:178
H5O_storage_virtual_name_seg_t
struct H5O_storage_virtual_name_seg_t H5O_storage_virtual_name_seg_t
H5O_get_oh_version
H5_DLL uint8_t H5O_get_oh_version(const H5O_t *oh)
Definition: H5Oint.c:2613
H5O_lib_operator_t
herr_t(* H5O_lib_operator_t)(H5O_t *oh, H5O_mesg_t *mesg, unsigned sequence, unsigned *oh_modified, void *operator_data)
Definition: H5Oprivate.h:853
H5O_shmesg_table_t::addr
haddr_t addr
Definition: H5Oprivate.h:726
H5O_efl_t
struct H5O_efl_t H5O_efl_t
H5O_msg_create
H5_DLL herr_t H5O_msg_create(const H5O_loc_t *loc, unsigned type_id, unsigned mesg_flags, unsigned update_flags, void *mesg)
Definition: H5Omessage.c:114
H5O_disable_mdc_flushes
H5_DLL herr_t H5O_disable_mdc_flushes(H5O_loc_t *oloc)
Definition: H5O.c:1276
H5O_ainfo_t::track_corder
hbool_t track_corder
Definition: H5Oprivate.h:784
H5O_storage_virtual_srcdset_t::clipped_source_select
struct H5S_t * clipped_source_select
Definition: H5Oprivate.h:505
H5O_copy_dtype_merge_list_t
struct H5O_copy_dtype_merge_list_t H5O_copy_dtype_merge_list_t
H5O_efl_entry_t::offset
HDoff_t offset
Definition: H5Oprivate.h:377
H5O_efl_entry_t::name
char * name
Definition: H5Oprivate.h:376
H5O_storage_virtual_ent_t::source_space_status
H5O_virtual_space_status_t source_space_status
Definition: H5Oprivate.h:551
H5O_storage_virtual_srcdset_t::clipped_virtual_select
struct H5S_t * clipped_virtual_select
Definition: H5Oprivate.h:506
H5O_storage_virtual_t::serial_list_hobjid
H5HG_t serial_list_hobjid
Definition: H5Oprivate.h:557
H5O_layout_t::storage
H5O_storage_t storage
Definition: H5Oprivate.h:644
H5O_MESG_OP_LIB
@ H5O_MESG_OP_LIB
Definition: H5Oprivate.h:859
H5O_layout_chunk_t
Definition: H5Oprivate.h:617
H5O_layout_chunk_t::ndims
unsigned ndims
Definition: H5Oprivate.h:620
H5O_touch
H5_DLL herr_t H5O_touch(const H5O_loc_t *loc, hbool_t force)
Definition: H5Oint.c:1461
H5O_linfo_t
Definition: H5Oprivate.h:291
H5O_debug_id
H5_DLL herr_t H5O_debug_id(unsigned type_id, H5F_t *f, const void *mesg, FILE *stream, int indent, int fwidth)
Definition: H5Odbg.c:245
H5O_storage_virtual_t
struct H5O_storage_virtual_t H5O_storage_virtual_t
H5F_libver_t
H5F_libver_t
Definition: H5Fpublic.h:162
H5O_ginfo_t
struct H5O_ginfo_t H5O_ginfo_t
H5O_mesg_operator_t
Definition: H5Oprivate.h:865
H5O_storage_contig_t
struct H5O_storage_contig_t H5O_storage_contig_t
H5O_storage_chunk_btree_t
Definition: H5Oprivate.h:444
H5O_storage_virtual_t::min_dims
hsize_t min_dims[H5S_MAX_RANK]
Definition: H5Oprivate.h:565
H5O_enable_mdc_flushes
H5_DLL herr_t H5O_enable_mdc_flushes(H5O_loc_t *oloc)
Definition: H5O.c:1345
H5O_copy_dtype_merge_list_t::next
struct H5O_copy_dtype_merge_list_t * next
Definition: H5Oprivate.h:162
H5O_mcdt_cb_info_t::func
H5O_mcdt_search_cb_t func
Definition: H5Oprivate.h:167
H5O_loc_t::holding_file
hbool_t holding_file
Definition: H5Oprivate.h:155
H5O_mesg_loc_t::index
H5O_msg_crt_idx_t index
Definition: H5Oprivate.h:257
H5O_storage_chunk_t::idx_addr
haddr_t idx_addr
Definition: H5Oprivate.h:481
H5O_shmesg_table_t::nindexes
unsigned nindexes
Definition: H5Oprivate.h:728
H5O_get_loc
H5_DLL H5O_loc_t * H5O_get_loc(hid_t id)
Definition: H5Oint.c:1839
H5O_storage_chunk_t
Definition: H5Oprivate.h:479
H5O_storage_chunk_t::farray
H5O_storage_chunk_farray_t farray
Definition: H5Oprivate.h:487
H5O_layout_chunk_bt2_t::cparam
struct H5O_layout_chunk_bt2_t::@30 cparam
H5O_efl_t::heap_addr
haddr_t heap_addr
Definition: H5Oprivate.h:382
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5O_storage_chunk_earray_t
struct H5O_storage_chunk_earray_t H5O_storage_chunk_earray_t
H5O_loc_free
H5_DLL herr_t H5O_loc_free(H5O_loc_t *loc)
Definition: H5Oint.c:2071
H5O_cont_t
struct H5O_cont_t H5O_cont_t
H5O_storage_t::chunk
H5O_storage_chunk_t chunk
Definition: H5Oprivate.h:577
H5O_VIRTUAL_STATUS_SEL_BOUNDS
@ H5O_VIRTUAL_STATUS_SEL_BOUNDS
Definition: H5Oprivate.h:521
H5O_layout_chunk_bt2_t::node_size
uint32_t node_size
Definition: H5Oprivate.h:611
H5O_get_info
H5_DLL herr_t H5O_get_info(const H5O_loc_t *oloc, H5O_info2_t *oinfo, unsigned fields)
Definition: H5Oint.c:2234
H5O_get_oh_mtime
H5_DLL time_t H5O_get_oh_mtime(const H5O_t *oh)
Definition: H5Oint.c:2595
H5O_storage_compact_t
Definition: H5Oprivate.h:492
H5O_shmesg_table_t::version
unsigned version
Definition: H5Oprivate.h:727
H5O_layout_chunk_farray_t
struct H5O_layout_chunk_farray_t H5O_layout_chunk_farray_t
H5O_storage_chunk_bt2_t
struct H5O_storage_chunk_bt2_t H5O_storage_chunk_bt2_t
H5O_fheap_id_t
Definition: H5Oprivate.h:146
H5O_loc_t
struct H5O_loc_t H5O_loc_t
H5O_mesg_operator_t::app_op
H5O_operator_t app_op
Definition: H5Oprivate.h:868
H5O_storage_chunk_single_filt_t
struct H5O_storage_chunk_single_filt_t H5O_storage_chunk_single_filt_t
H5O_layout_chunk_bt2_t::merge_percent
uint8_t merge_percent
Definition: H5Oprivate.h:613
H5O_get_nlinks
H5_DLL herr_t H5O_get_nlinks(const H5O_loc_t *loc, hsize_t *nlinks)
Definition: H5Oint.c:2462
H5O_fill_t
Definition: H5Oprivate.h:325
H5Zprivate.h
H5Tprivate.h
H5O_ginfo_t::store_est_entry_info
hbool_t store_est_entry_info
Definition: H5Oprivate.h:678
H5O_copy_t::file_dst
H5F_t * file_dst
Definition: H5Oprivate.h:187
H5O_storage_virtual_srcdset_t
struct H5O_storage_virtual_srcdset_t H5O_storage_virtual_srcdset_t
H5O_name_t
struct H5O_name_t H5O_name_t
H5O_mcdt_cb_info_t::user_data
void * user_data
Definition: H5Oprivate.h:168
H5O_layout_chunk_t::dim
uint32_t dim[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:621
H5O_close
H5_DLL herr_t H5O_close(H5O_loc_t *loc, hbool_t *file_closed)
Definition: H5Oint.c:810
H5O_btreek_t
struct H5O_btreek_t H5O_btreek_t
H5O_storage_virtual_ent_t
Definition: H5Oprivate.h:526
H5O_storage_virtual_ent_t::unlim_dim_virtual
int unlim_dim_virtual
Definition: H5Oprivate.h:546
H5EA_t
Definition: H5EApkg.h:331
H5O_storage_t::type
H5D_layout_t type
Definition: H5Oprivate.h:574
H5O_layout_t::version
unsigned version
Definition: H5Oprivate.h:639
H5O_storage_virtual_srcdset_t::file_name
char * file_name
Definition: H5Oprivate.h:503
H5O_mesg_loc_t::oh_addr
haddr_t oh_addr
Definition: H5Oprivate.h:258
H5_copy_depth_t
H5_copy_depth_t
Definition: H5private.h:615
H5O_fsinfo_t::threshold
hsize_t threshold
Definition: H5Oprivate.h:828
H5Z_filter_info_t
Definition: H5Zprivate.h:55
H5O_layout_chunk_earray_t
struct H5O_layout_chunk_earray_t H5O_layout_chunk_earray_t
H5O_storage_t::virt
H5O_storage_virtual_t virt
Definition: H5Oprivate.h:579
H5Dpublic.h
H5O_storage_virtual_ent_t::source_dset
H5O_storage_virtual_srcdset_t source_dset
Definition: H5Oprivate.h:528
H5O_msg_write
H5_DLL herr_t H5O_msg_write(const H5O_loc_t *loc, unsigned type_id, unsigned mesg_flags, unsigned update_flags, void *mesg)
Definition: H5Omessage.c:257
H5F_t
Definition: H5Fpkg.h:374
H5FA_t
Definition: H5FApkg.h:217
H5O_storage_virtual_ent_t::sub_dset_nused
size_t sub_dset_nused
Definition: H5Oprivate.h:536
H5O_storage_virtual_srcdset_t::dset_name
char * dset_name
Definition: H5Oprivate.h:504
H5O_dec_rc_by_loc
H5_DLL herr_t H5O_dec_rc_by_loc(const H5O_loc_t *loc)
Definition: H5Oint.c:3023
n
*s *s n
Definition: H5HLdbg.c:111
H5O_storage_compact_t::size
size_t size
Definition: H5Oprivate.h:494
H5O_shared_t::msg_type_id
unsigned msg_type_id
Definition: H5Oprivate.h:271
H5O_obj_create_t::obj_type
H5O_type_t obj_type
Definition: H5Oprivate.h:875
H5O_layout_chunk_t::down_chunks
hsize_t down_chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:628
H5O_copy_t::dst_dt_list
H5SL_t * dst_dt_list
Definition: H5Oprivate.h:184
H5O_fill_reset_dyn
H5_DLL herr_t H5O_fill_reset_dyn(H5O_fill_t *fill)
Definition: H5Ofill.c:717
H5O_storage_virtual_ent_t::virtual_space_status
H5O_virtual_space_status_t virtual_space_status
Definition: H5Oprivate.h:552
H5O_mdci_t::size
hsize_t size
Definition: H5Oprivate.h:845
H5O_layout_chunk_earray_t::sup_blk_min_data_ptrs
uint8_t sup_blk_min_data_ptrs
Definition: H5Oprivate.h:598
H5O_link_ud_t
struct H5O_link_ud_t H5O_link_ud_t
H5O_virtual_space_status_t
H5O_virtual_space_status_t
Definition: H5Oprivate.h:519
H5O_storage_t
Definition: H5Oprivate.h:573
H5O_fsinfo_t::pgend_meta_thres
size_t pgend_meta_thres
Definition: H5Oprivate.h:830
H5O_ginfo_t::est_name_len
uint16_t est_name_len
Definition: H5Oprivate.h:680
H5O_storage_virtual_ent_t::sub_dset_nalloc
size_t sub_dset_nalloc
Definition: H5Oprivate.h:535
H5O_msg_remove
H5_DLL herr_t H5O_msg_remove(const H5O_loc_t *loc, unsigned type_id, int sequence, hbool_t adj_link)
Definition: H5Omessage.c:960
H5O_copy_t::map_list
H5SL_t * map_list
Definition: H5Oprivate.h:183
herr_t
int herr_t
Definition: H5public.h:128
H5O_storage_chunk_btree_t
struct H5O_storage_chunk_btree_t H5O_storage_chunk_btree_t
H5O_obj_create
H5_DLL void * H5O_obj_create(H5F_t *f, H5O_type_t obj_type, void *crt_info, H5G_loc_t *obj_loc)
Definition: H5Oint.c:2502
H5O_storage_chunk_t
struct H5O_storage_chunk_t H5O_storage_chunk_t
H5O_layout_t::chunk
H5O_layout_chunk_t chunk
Definition: H5Oprivate.h:642
H5O_layout_chunk_t::flags
uint8_t flags
Definition: H5Oprivate.h:619
H5O_storage_chunk_t::single
H5O_storage_chunk_single_filt_t single
Definition: H5Oprivate.h:488
H5O_fsinfo_t
Definition: H5Oprivate.h:824
H5O_open
H5_DLL herr_t H5O_open(H5O_loc_t *loc)
Definition: H5Oint.c:588
hbool_t
bool hbool_t
Definition: H5public.h:159
H5HG_t
Definition: H5HGprivate.h:25
H5O_linfo_t::name_bt2_addr
haddr_t name_bt2_addr
Definition: H5Oprivate.h:301
H5B_NUM_BTREE_ID
@ H5B_NUM_BTREE_ID
Definition: H5Bprivate.h:62
H5O_refresh_metadata
H5_DLL herr_t H5O_refresh_metadata(hid_t oid, H5O_loc_t oloc)
Definition: H5Oflush.c:288
H5L_type_t
H5L_type_t
Definition: H5Lpublic.h:63
H5O_layout_chunk_earray_t::unlim_dim
unsigned unlim_dim
Definition: H5Oprivate.h:602
H5O_fill_t::buf
void * buf
Definition: H5Oprivate.h:331
H5O_msg_iterate
H5_DLL herr_t H5O_msg_iterate(const H5O_loc_t *loc, unsigned type_id, const H5O_mesg_operator_t *op, void *op_data)
Definition: H5Omessage.c:1200
H5O_copy_t::dst_dt_list_complete
hbool_t dst_dt_list_complete
Definition: H5Oprivate.h:185
H5O_linfo_t::fheap_addr
haddr_t fheap_addr
Definition: H5Oprivate.h:300
H5C_cache_entry_t
Definition: H5Cprivate.h:1597
H5D_layout_ops_t
Definition: H5Dpkg.h:147
H5O_refcount_t
uint32_t H5O_refcount_t
Definition: H5Oprivate.h:799
H5O_set_shared
H5_DLL herr_t H5O_set_shared(H5O_shared_t *dst, const H5O_shared_t *src)
Definition: H5Oshared.c:452
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5O_mesg_t
Definition: H5Opkg.h:249
H5O_copy_expand_ref
H5_DLL herr_t H5O_copy_expand_ref(H5F_t *file_src, hid_t tid_src, H5T_t *dt_src, void *buf_src, size_t nbytes_src, H5F_t *file_dst, void *buf_dst, H5O_copy_t *cpy_info)
Definition: H5Ocopy_ref.c:439
H5O_open_by_idx
H5_DLL void * H5O_open_by_idx(const H5G_loc_t *loc, const char *name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5I_type_t *opened_type)
Definition: H5Oint.c:679
H5O_storage_virtual_t::printf_gap
hsize_t printf_gap
Definition: H5Oprivate.h:567
H5O_msg_read_oh
H5_DLL void * H5O_msg_read_oh(H5F_t *f, H5O_t *oh, unsigned type_id, void *mesg)
Definition: H5Omessage.c:515
H5O_storage_chunk_t::btree2
H5O_storage_chunk_bt2_t btree2
Definition: H5Oprivate.h:485
H5O_cont_t
Definition: H5Oprivate.h:736
H5O_VIRTUAL_STATUS_INVALID
@ H5O_VIRTUAL_STATUS_INVALID
Definition: H5Oprivate.h:520
H5O_msg_can_share_in_ohdr
H5_DLL htri_t H5O_msg_can_share_in_ohdr(unsigned type_id)
Definition: H5Omessage.c:1555
H5O_layout_t
Definition: H5Oprivate.h:637
H5O_fheap_id_t::val
uint64_t val
Definition: H5Oprivate.h:148
H5_index_t
H5_index_t
Definition: H5public.h:316
HDoff_t
#define HDoff_t
Definition: H5private.h:928
H5O_storage_virtual_ent_t::clip_size_virtual
hsize_t clip_size_virtual
Definition: H5Oprivate.h:549
H5O_storage_chunk_earray_t::dset_ohdr_addr
haddr_t dset_ohdr_addr
Definition: H5Oprivate.h:461
H5O_fsinfo_t::fs_addr
haddr_t fs_addr[H5F_MEM_PAGE_NTYPES - 1]
Definition: H5Oprivate.h:832
H5O_storage_compact_t::buf
void * buf
Definition: H5Oprivate.h:495
H5O_layout_chunk_t::max_down_chunks
hsize_t max_down_chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:629
H5O_fill_set_version
H5_DLL herr_t H5O_fill_set_version(H5F_t *f, H5O_fill_t *fill)
Definition: H5Ofill.c:1081
H5O_msg_can_share
H5_DLL htri_t H5O_msg_can_share(unsigned type_id, const void *mesg)
Definition: H5Omessage.c:1508
H5O_drvinfo_t
Definition: H5Oprivate.h:769
H5O_stab_t::btree_addr
haddr_t btree_addr
Definition: H5Oprivate.h:749
H5O_layout_chunk_earray_t::swizzled_max_down_chunks
hsize_t swizzled_max_down_chunks[H5O_LAYOUT_NDIMS]
Definition: H5Oprivate.h:605
H5O_msg_copy
H5_DLL void * H5O_msg_copy(unsigned type_id, const void *mesg, void *dst)
Definition: H5Omessage.c:744
H5O_efl_t::nused
size_t nused
Definition: H5Oprivate.h:384
H5O_copy
H5_DLL herr_t H5O_copy(const H5G_loc_t *src_loc, const char *src_name, H5G_loc_t *dst_loc, const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id)
Definition: H5Ocopy.c:271
H5O_storage_virtual_t::source_fapl
hid_t source_fapl
Definition: H5Oprivate.h:568
H5O_storage_chunk_bt2_t::bt2
struct H5B2_t * bt2
Definition: H5Oprivate.h:476
H5O_copy_t::mcdt_cb
H5O_mcdt_search_cb_t mcdt_cb
Definition: H5Oprivate.h:193
H5O_loc_reset
H5_DLL herr_t H5O_loc_reset(H5O_loc_t *loc)
Definition: H5Oint.c:1901
H5O_native_info_t
Definition: H5Opublic.h:145
H5private.h
H5O_unpin
H5_DLL herr_t H5O_unpin(H5O_t *oh)
Definition: H5Oint.c:1274
H5O_storage_contig_t
Definition: H5Oprivate.h:439
H5O_linfo_t::max_corder
int64_t max_corder
Definition: H5Oprivate.h:295
H5O_flush_common
H5_DLL herr_t H5O_flush_common(H5O_loc_t *oloc, hid_t obj_id)
Definition: H5Oflush.c:159
H5O_link
H5_DLL int H5O_link(const H5O_loc_t *loc, int adjust)
Definition: H5Oint.c:992
H5Opublic.h
H5O_obj_create_t
Definition: H5Oprivate.h:874
H5O_type_t
H5O_type_t
Definition: H5Opublic.h:102
H5O_loc_t::addr
haddr_t addr
Definition: H5Oprivate.h:154
H5D_fill_time_t
H5D_fill_time_t
Definition: H5Dpublic.h:82
H5O_fsinfo_t::mapped
hbool_t mapped
Definition: H5Oprivate.h:834