HDF5  1.12.0
H5Gpkg.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: Robb Matzke <matzke@llnl.gov>
16  * Thursday, September 18, 1997
17  *
18  * Purpose: This file contains declarations which are visible
19  * only within the H5G package. Source files outside the
20  * H5G package should include H5Gprivate.h instead.
21  */
22 #if !(defined H5G_FRIEND || defined H5G_MODULE)
23 #error "Do not include this file outside the H5G package!"
24 #endif
25 
26 #ifndef _H5Gpkg_H
27 #define _H5Gpkg_H
28 
29 /* Get package's private header */
30 #include "H5Gprivate.h"
31 
32 /* Other private headers needed by this file */
33 #include "H5B2private.h" /* v2 B-trees */
34 #include "H5FLprivate.h" /* Free Lists */
35 #include "H5HFprivate.h" /* Fractal heaps */
36 #include "H5HLprivate.h" /* Local Heaps */
37 #include "H5Oprivate.h" /* Object headers */
38 #include "H5SLprivate.h" /* Skip lists */
39 
40 /**************************/
41 /* Package Private Macros */
42 /**************************/
43 
44 /* Standard length of fractal heap ID for link */
45 #define H5G_DENSE_FHEAP_ID_LEN 7
46 
47 /* Size of a symbol table node on disk */
48 #define H5G_NODE_SIZE(f) ( \
49  /* General metadata fields */ \
50  H5_SIZEOF_MAGIC \
51  + 1 /* Version */ \
52  + 1 /* Reserved */ \
53  + 2 /* Number of symbols */ \
54  \
55  /* Entries */ \
56  + ((2 * H5F_SYM_LEAF_K(f)) * (unsigned)H5G_SIZEOF_ENTRY_FILE(f)) \
57  )
58 
59 
60 /****************************/
61 /* Package Private Typedefs */
62 /****************************/
63 
64 /*
65  * Various types of object header information can be cached in a symbol
66  * table entry (it's normal home is the object header to which the entry
67  * points). This datatype determines what (if anything) is cached in the
68  * symbol table entry.
69  */
70 typedef enum H5G_cache_type_t {
71  H5G_CACHED_ERROR = -1, /*force enum to be signed */
72  H5G_NOTHING_CACHED = 0, /*nothing is cached, must be 0 */
73  H5G_CACHED_STAB = 1, /*symbol table, `stab' */
74  H5G_CACHED_SLINK = 2, /*symbolic link */
75 
76  H5G_NCACHED /*THIS MUST BE LAST */
78 
79 /*
80  * A symbol table entry caches these parameters from object header
81  * messages... The values are entered into the symbol table when an object
82  * header is created (by hand) and are extracted from the symbol table with a
83  * callback function registered in H5O_init_interface(). Be sure to update
84  * H5G_ent_decode(), H5G_ent_encode(), and H5G__ent_debug() as well.
85  */
86 typedef union H5G_cache_t {
87  struct {
88  haddr_t btree_addr; /*file address of symbol table B-tree*/
89  haddr_t heap_addr; /*file address of stab name heap */
90  } stab;
91 
92  struct {
93  size_t lval_offset; /*link value offset */
94  } slink;
96 
97 /*
98  * A symbol table entry. The two important fields are `name_off' and
99  * `header'. The remaining fields are used for caching information that
100  * also appears in the object header to which this symbol table entry
101  * points.
102  */
103 struct H5G_entry_t {
104  H5G_cache_type_t type; /*type of information cached */
105  H5G_cache_t cache; /*cached data from object header */
106  size_t name_off; /*offset of name within name heap */
107  haddr_t header; /*file address of object header */
108 };
109 
110 /*
111  * A symbol table node is a collection of symbol table entries. It can
112  * be thought of as the lowest level of the B-link tree that points to
113  * a collection of symbol table entries that belong to a specific symbol
114  * table or group.
115  */
116 typedef struct H5G_node_t {
117  H5AC_info_t cache_info; /* Information for H5AC cache functions, _must_ be */
118  /* first field in structure */
119  size_t node_size; /* Size of node on disk */
120  unsigned nsyms; /* Number of symbols */
121  H5G_entry_t *entry; /* Array of symbol table entries */
123 
124 /*
125  * Shared information for all open group objects
126  */
127 struct H5G_shared_t {
128  int fo_count; /* open file object count */
129  hbool_t mounted; /* Group is mount point */
130 };
131 
132 /*
133  * A group handle passed around through layers of the library within and
134  * above the H5G layer.
135  */
136 struct H5G_t {
137  H5G_shared_t *shared; /* Shared file object data */
138  H5O_loc_t oloc; /* Object location for group */
139  H5G_name_t path; /* Group hierarchy path */
140 };
141 
142 /* Link iteration operator for internal library callbacks */
143 typedef herr_t (*H5G_lib_iterate_t)(const H5O_link_t *lnk, void *op_data);
144 
145 /* Data structure to hold table of links for a group */
146 typedef struct {
147  size_t nlinks; /* # of links in table */
148  H5O_link_t *lnks; /* Pointer to array of links */
150 
151 /*
152  * Common data exchange structure for symbol table nodes. This structure is
153  * passed through the B-link tree layer to the methods for the objects
154  * to which the B-link tree points.
155  *
156  * It's also used for B-tree iterators which require no additional info.
157  *
158  */
159 typedef struct H5G_bt_common_t {
160  /* downward */
161  const char *name; /*points to temporary memory */
162  H5HL_t *heap; /*symbol table heap */
164 
165 /*
166  * Data exchange structure for symbol table nodes. This structure is
167  * passed through the B-link tree layer to the insert method for entries.
168  */
169 typedef struct H5G_bt_ins_t {
170  /* downward */
171  H5G_bt_common_t common; /* Common info for B-tree user data (must be first) */
172  const H5O_link_t *lnk; /* Link to insert into table */
173  H5O_type_t obj_type; /* Type of object being inserted */
174  const void *crt_info; /* Creation info for object being inserted */
176 
177 /*
178  * Data exchange structure for symbol table nodes. This structure is
179  * passed through the B-link tree layer to the remove method for entries.
180  */
181 typedef struct H5G_bt_rm_t {
182  /* downward */
183  H5G_bt_common_t common; /* Common info for B-tree user data (must be first) */
184  H5RS_str_t *grp_full_path_r; /* Full path of group where link is removed */
186 
187 /* Typedef for B-tree 'find' operation */
188 typedef herr_t (*H5G_bt_find_op_t)(const H5G_entry_t *ent/*in*/, void *operator_data/*in,out*/);
189 
190 /*
191  * Data exchange structure for symbol table nodes. This structure is
192  * passed through the B-link tree layer to the 'find' method for entries.
193  */
194 typedef struct H5G_bt_lkp_t {
195  /* downward */
196  H5G_bt_common_t common; /* Common info for B-tree user data (must be first) */
197  H5G_bt_find_op_t op; /* Operator to call when correct entry is found */
198  void *op_data; /* Data to pass to operator */
199 
200  /* upward */
202 
203 /*
204  * Data exchange structure to pass through the B-tree layer for the
205  * H5B_iterate function.
206  */
207 typedef struct H5G_bt_it_it_t {
208  /* downward */
209  H5HL_t *heap; /*symbol table heap */
210  hsize_t skip; /*initial entries to skip */
211  H5G_lib_iterate_t op; /*iteration operator */
212  void *op_data; /*user-defined operator data */
213 
214  /* upward */
215  hsize_t *final_ent; /*final entry looked at */
217 
218 /* Data passed through B-tree iteration for copying copy symbol table content */
219 typedef struct H5G_bt_it_cpy_t {
220  const H5O_loc_t *src_oloc; /* Source object location */
221  haddr_t src_heap_addr; /* Heap address of the source symbol table */
222  H5F_t *dst_file; /* File of destination group */
223  const H5O_stab_t *dst_stab; /* Symbol table message for destination group */
224  H5O_copy_t *cpy_info; /* Information for copy operation */
226 
227 /* Common information for "by index" lookups in symbol tables */
228 typedef struct H5G_bt_it_idx_common_t {
229  /* downward */
230  hsize_t idx; /* Index of group member to be queried */
231  hsize_t num_objs; /* The number of objects having been traversed */
232  H5G_bt_find_op_t op; /* Operator to call when correct entry is found */
234 
235 /* Data passed through B-tree iteration for building a table of the links */
236 typedef struct H5G_bt_it_bt_t {
237  /* downward */
238  size_t alloc_nlinks; /* Number of links allocated in table */
239  H5HL_t *heap; /* Symbol table heap */
240 
241  /* upward */
242  H5G_link_table_t *ltable; /* Link table to add information to */
244 
245 /* Typedefs for "new format" groups */
246 /* (fractal heap & v2 B-tree info) */
247 
248 /* Typedef for native 'name' field index records in the v2 B-tree */
249 /* (Keep 'id' field first so generic record handling in callbacks works) */
250 typedef struct H5G_dense_bt2_name_rec_t {
251  uint8_t id[H5G_DENSE_FHEAP_ID_LEN]; /* Heap ID for link */
252  uint32_t hash; /* Hash of 'name' field value */
254 
255 /* Typedef for native 'creation order' field index records in the v2 B-tree */
256 /* (Keep 'id' field first so generic record handling in callbacks works) */
258  uint8_t id[H5G_DENSE_FHEAP_ID_LEN]; /* Heap ID for link */
259  int64_t corder; /* 'creation order' field value */
261 
262 /*
263  * Common data exchange structure for dense link storage. This structure is
264  * passed through the v2 B-tree layer to the methods for the objects
265  * to which the v2 B-tree points.
266  */
267 typedef struct H5G_bt2_ud_common_t {
268  /* downward */
269  H5F_t *f; /* Pointer to file that fractal heap is in */
270  H5HF_t *fheap; /* Fractal heap handle */
271  const char *name; /* Name of link to compare */
272  uint32_t name_hash; /* Hash of name of link to compare */
273  int64_t corder; /* Creation order value of link to compare */
274  H5B2_found_t found_op; /* Callback when correct link is found */
275  void *found_op_data; /* Callback data when correct link is found */
277 
278 /*
279  * Data exchange structure for dense link storage. This structure is
280  * passed through the v2 B-tree layer when inserting links.
281  */
282 typedef struct H5G_bt2_ud_ins_t {
283  /* downward */
284  H5G_bt2_ud_common_t common; /* Common info for B-tree user data (must be first) */
285  uint8_t id[H5G_DENSE_FHEAP_ID_LEN]; /* Heap ID of link to insert */
287 
288 /* Typedef for group creation operation */
289 typedef struct H5G_obj_create_t{
290  hid_t gcpl_id; /* Group creation property list */
291  H5G_cache_type_t cache_type; /* Type of symbol table entry cache */
292  H5G_cache_t cache; /* Cached data for symbol table entry */
294 
295 /* Callback information for copying groups */
296 typedef struct H5G_copy_file_ud_t {
297  H5O_copy_file_ud_common_t common; /* Shared information (must be first) */
298  H5G_cache_type_t cache_type; /* Type of symbol table entry cache */
299  H5G_cache_t cache; /* Cached data for symbol table entry */
301 
302 
303 /*****************************/
304 /* Package Private Variables */
305 /*****************************/
306 
307 /*
308  * This is the class identifier to give to the B-tree functions.
309  */
311 
312 /* The v2 B-tree class for indexing 'name' field on links */
314 
315 /* The v2 B-tree class for indexing 'creation order' field on links */
317 
318 /* Free list for managing H5G_t structs */
320 
321 /* Free list for managing H5G_shared_t structs */
323 
324 /******************************/
325 /* Package Private Prototypes */
326 /******************************/
327 
328 /*
329  * General group routines
330  */
331 H5_DLL H5G_t *H5G__create(H5F_t *file, H5G_obj_create_t *gcrt_info);
332 H5_DLL H5G_t *H5G__create_named(const H5G_loc_t *loc, const char *name,
333  hid_t lcpl_id, hid_t gcpl_id);
334 H5_DLL H5G_t *H5G__open_name(const H5G_loc_t *loc, const char *name);
335 H5_DLL herr_t H5G__get_info_by_name(const H5G_loc_t *loc, const char *name,
336  H5G_info_t *grp_info);
337 H5_DLL herr_t H5G__get_info_by_idx(const H5G_loc_t *loc, const char *group_name,
338  H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5G_info_t *grp_info);
339 
340 /*
341  * Group hierarchy traversal routines
342  */
344  const H5O_link_t *lnk, unsigned target, hbool_t last_comp,
345  H5G_loc_t *obj_loc, hbool_t *obj_exists);
346 
347 /*
348  * Utility functions
349  */
350 H5_DLL const char *H5G__component(const char *name, size_t *size_p);
351 
352 /*
353  * Functions that understand symbol tables but not names. The
354  * functions that understand names are exported to the rest of
355  * the library and appear in H5Gprivate.h.
356  */
357 H5_DLL herr_t H5G__stab_create(H5O_loc_t *grp_oloc, const H5O_ginfo_t *ginfo,
358  H5O_stab_t *stab);
359 H5_DLL herr_t H5G__stab_create_components(H5F_t *f, H5O_stab_t *stab, size_t size_hint);
360 H5_DLL herr_t H5G__stab_insert(const H5O_loc_t *grp_oloc, const char *name,
361  H5O_link_t *obj_lnk, H5O_type_t obj_type, const void *crt_info);
363  const char *name, H5O_link_t *obj_lnk, H5O_type_t obj_type,
364  const void *crt_info);
367  hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data);
368 H5_DLL herr_t H5G__stab_count(const struct H5O_loc_t *oloc, hsize_t *num_objs);
370  H5_ih_info_t *bh_info);
372  hsize_t n, char* name, size_t size);
373 H5_DLL herr_t H5G__stab_remove(const H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r,
374  const char *name);
376  H5RS_str_t *grp_full_path_r, H5_iter_order_t order, hsize_t n);
377 H5_DLL herr_t H5G__stab_lookup(const H5O_loc_t *grp_oloc, const char *name,
378  H5O_link_t *lnk);
380  hsize_t n, H5O_link_t *lnk);
381 #ifndef H5_STRICT_FORMAT_CHECKS
382 H5_DLL herr_t H5G__stab_valid(H5O_loc_t *grp_oloc, H5O_stab_t *alt_stab);
383 #endif /* H5_STRICT_FORMAT_CHECKS */
384 
385 
386 /*
387  * Functions that understand symbol table entries.
388  */
389 H5_DLL void H5G__ent_copy(H5G_entry_t *dst, const H5G_entry_t *src,
390  H5_copy_depth_t depth);
392 H5_DLL herr_t H5G__ent_decode_vec(const H5F_t *f, const uint8_t **pp,
393  const uint8_t *p_end, H5G_entry_t *ent, unsigned n);
395  const H5G_entry_t *ent, unsigned n);
396 H5_DLL herr_t H5G__ent_convert(H5F_t *f, H5HL_t *heap, const char *name,
397  const H5O_link_t *lnk, H5O_type_t obj_type, const void *crt_info,
398  H5G_entry_t *ent);
399 H5_DLL herr_t H5G__ent_debug(const H5G_entry_t *ent, FILE * stream, int indent,
400  int fwidth, const H5HL_t *heap);
401 
402 /* Functions that understand symbol table nodes */
404 H5_DLL int H5G__node_iterate(H5F_t *f, const void *_lt_key, haddr_t addr,
405  const void *_rt_key, void *_udata);
406 H5_DLL int H5G__node_sumup(H5F_t *f, const void *_lt_key, haddr_t addr,
407  const void *_rt_key, void *_udata);
408 H5_DLL int H5G__node_by_idx(H5F_t *f, const void *_lt_key, haddr_t addr,
409  const void *_rt_key, void *_udata);
410 H5_DLL int H5G__node_copy(H5F_t *f, const void *_lt_key, haddr_t addr,
411  const void *_rt_key, void *_udata);
412 H5_DLL int H5G__node_build_table(H5F_t *f, const void *_lt_key, haddr_t addr,
413  const void *_rt_key, void *_udata);
414 H5_DLL herr_t H5G__node_iterate_size(H5F_t *f, const void *_lt_key, haddr_t addr,
415  const void *_rt_key, void *_udata);
417 
418 /* Functions that understand links in groups */
420  const H5G_entry_t *ent, const char *name);
421 H5_DLL herr_t H5G__link_to_loc(const H5G_loc_t *grp_loc, const H5O_link_t *lnk,
422  H5G_loc_t *obj_loc);
424  H5_iter_order_t order);
426  hsize_t skip, hsize_t *last_lnk, const H5G_lib_iterate_t op, void *op_data);
428 H5_DLL herr_t H5G__link_name_replace(H5F_t *file, H5RS_str_t *grp_full_path_r, const H5O_link_t *lnk);
429 
430 /* Functions that understand "compact" link storage */
431 H5_DLL herr_t H5G__compact_insert(const H5O_loc_t *grp_oloc, H5O_link_t *obj_lnk);
433  const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
434  hsize_t idx, char *name, size_t size);
435 H5_DLL herr_t H5G__compact_remove(const H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r,
436  const char *name);
438  const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, H5_index_t idx_type,
439  H5_iter_order_t order, hsize_t n);
441  const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
442  hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data);
443 H5_DLL htri_t H5G__compact_lookup(const H5O_loc_t *grp_oloc, const char *name,
444  H5O_link_t *lnk);
446  const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order,
447  hsize_t n, H5O_link_t *lnk);
448 
449 /* Functions that understand "dense" link storage */
451  H5_index_t idx_type, H5_iter_order_t order, H5G_link_table_t *ltable);
453  const H5O_pline_t *pline);
455  const H5O_link_t *lnk);
457  const char *name, H5O_link_t *lnk);
459  H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_link_t *lnk);
461  H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
462  H5G_lib_iterate_t op, void *op_data);
464  H5_index_t idx_type, H5_iter_order_t order, hsize_t n, char *name,
465  size_t size);
467  H5RS_str_t *grp_full_path_r, const char *name);
469  H5RS_str_t *grp_full_path_r, H5_index_t idx_type, H5_iter_order_t order,
470  hsize_t n);
472 
473 /* Functions that understand group objects */
475  H5O_loc_t *oloc/*out*/);
477  const H5O_linfo_t *linfo, const H5O_pline_t *pline, H5G_obj_create_t *gcrt_info,
478  H5O_loc_t *oloc/*out*/);
479 H5_DLL htri_t H5G__obj_get_linfo(const H5O_loc_t *grp_oloc, H5O_linfo_t *linfo);
480 H5_DLL herr_t H5G__obj_iterate(const H5O_loc_t *grp_oloc,
481  H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
482  H5G_lib_iterate_t op, void *op_data);
483 H5_DLL herr_t H5G__obj_info(const H5O_loc_t *oloc, H5G_info_t *grp_info);
484 H5_DLL htri_t H5G__obj_lookup(const H5O_loc_t *grp_oloc, const char *name,
485  H5O_link_t *lnk);
486 #ifndef H5_NO_DEPRECATED_SYMBOLS
487 H5_DLL herr_t H5G__get_objinfo(const H5G_loc_t *loc, const char *name,
488  hbool_t follow_link, H5G_stat_t *statbuf/*out*/);
489 #endif /* H5_NO_DEPRECATED_SYMBOLS */
490 
491 /*
492  * These functions operate on group hierarchy names.
493  */
494 H5_DLL herr_t H5G__name_init(H5G_name_t *name, const char *path);
495 
496 /*
497  * These functions operate on group "locations"
498  */
499 H5_DLL herr_t H5G__loc_insert(H5G_loc_t *grp_loc, const char *name,
500  H5G_loc_t *obj_loc, H5O_type_t obj_type, const void *crt_info);
501 H5_DLL herr_t H5G__loc_addr(const H5G_loc_t *loc, const char *name,
502  haddr_t *addr/*out*/);
503 
504 /* Testing functions */
505 #ifdef H5G_TESTING
507 H5_DLL htri_t H5G__has_links_test(hid_t gid, unsigned *nmsgs);
510 H5_DLL herr_t H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count);
511 H5_DLL herr_t H5G__lheap_size_test(hid_t gid, size_t *lheap_size);
512 H5_DLL herr_t H5G__user_path_test(hid_t obj_id, char *user_path, size_t *user_path_len, unsigned *user_path_hidden);
515 #endif /* H5G_TESTING */
516 
517 #endif /* _H5Gpkg_H */
518 
H5G_bt_it_bt_t
struct H5G_bt_it_bt_t H5G_bt_it_bt_t
H5G_dense_bt2_corder_rec_t
struct H5G_dense_bt2_corder_rec_t H5G_dense_bt2_corder_rec_t
H5G_copy_file_ud_t
struct H5G_copy_file_ud_t H5G_copy_file_ud_t
H5G__get_objinfo
H5_DLL herr_t H5G__get_objinfo(const H5G_loc_t *loc, const char *name, hbool_t follow_link, H5G_stat_t *statbuf)
Definition: H5Gdeprec.c:1072
H5O_loc_t
Definition: H5Oprivate.h:152
ssize_t
int ssize_t
Definition: H5public.h:167
H5G__stab_bh_size
H5_DLL herr_t H5G__stab_bh_size(H5F_t *f, const H5O_stab_t *stab, H5_ih_info_t *bh_info)
Definition: H5Gstab.c:653
H5G__obj_create
H5_DLL herr_t H5G__obj_create(H5F_t *f, H5G_obj_create_t *gcrt_info, H5O_loc_t *oloc)
Definition: H5Gobj.c:123
H5G_copy_file_ud_t::cache_type
H5G_cache_type_t cache_type
Definition: H5Gpkg.h:298
H5G_lib_iterate_t
herr_t(* H5G_lib_iterate_t)(const H5O_link_t *lnk, void *op_data)
Definition: H5Gpkg.h:143
H5G_t
Definition: H5Gpkg.h:136
H5G_bt_common_t
Definition: H5Gpkg.h:159
H5G_bt_lkp_t
Definition: H5Gpkg.h:194
H5G_node_t::nsyms
unsigned nsyms
Definition: H5Gpkg.h:120
H5G__node_iterate
H5_DLL int H5G__node_iterate(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
H5G_bt_ins_t::crt_info
const void * crt_info
Definition: H5Gpkg.h:174
size
iblock size
Definition: H5EAcache.c:787
f
hdr f
Definition: H5EA.c:755
H5G__verify_cached_stab_test
herr_t H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent)
Definition: H5Gtest.c:672
H5G_cache_t::stab
struct H5G_cache_t::@14 stab
H5G__stab_remove
H5_DLL herr_t H5G__stab_remove(const H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r, const char *name)
Definition: H5Gstab.c:351
H5G_bt2_ud_common_t::found_op
H5B2_found_t found_op
Definition: H5Gpkg.h:274
H5G__stab_insert_real
H5_DLL herr_t H5G__stab_insert_real(H5F_t *f, const H5O_stab_t *stab, const char *name, H5O_link_t *obj_lnk, H5O_type_t obj_type, const void *crt_info)
Definition: H5Gstab.c:258
H5G__name_init
H5_DLL herr_t H5G__name_init(H5G_name_t *name, const char *path)
Definition: H5Gname.c:425
H5G__stab_count
H5_DLL herr_t H5G__stab_count(const struct H5O_loc_t *oloc, hsize_t *num_objs)
H5G_entry_t::type
H5G_cache_type_t type
Definition: H5Gpkg.h:104
H5G_t::path
H5G_name_t path
Definition: H5Gpkg.h:139
H5G__get_info_by_name
H5_DLL herr_t H5G__get_info_by_name(const H5G_loc_t *loc, const char *name, H5G_info_t *grp_info)
Definition: H5Gint.c:1272
H5G_cache_t::slink
struct H5G_cache_t::@15 slink
H5G_bt_rm_t
Definition: H5Gpkg.h:181
H5G__ent_decode_vec
H5_DLL herr_t H5G__ent_decode_vec(const H5F_t *f, const uint8_t **pp, const uint8_t *p_end, H5G_entry_t *ent, unsigned n)
Definition: H5Gent.c:95
H5G_bt2_ud_common_t::f
H5F_t * f
Definition: H5Gpkg.h:269
H5Gprivate.h
H5G__new_dense_info_test
herr_t H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
Definition: H5Gtest.c:420
H5G_bt_it_it_t
Definition: H5Gpkg.h:207
uint32_t
uint32_t
Definition: H5overflow.txt:38
H5G__link_to_loc
H5_DLL herr_t H5G__link_to_loc(const H5G_loc_t *grp_loc, const H5O_link_t *lnk, H5G_loc_t *obj_loc)
Definition: H5Glink.c:374
H5G_bt_it_cpy_t::src_heap_addr
haddr_t src_heap_addr
Definition: H5Gpkg.h:221
H5G__ent_debug
H5_DLL herr_t H5G__ent_debug(const H5G_entry_t *ent, FILE *stream, int indent, int fwidth, const H5HL_t *heap)
Definition: H5Gent.c:539
H5G__dense_remove
H5_DLL herr_t H5G__dense_remove(H5F_t *f, const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, const char *name)
Definition: H5Gdense.c:1395
H5G__loc_addr
H5_DLL herr_t H5G__loc_addr(const H5G_loc_t *loc, const char *name, haddr_t *addr)
Definition: H5Gloc.c:753
H5G_stat_t
Definition: H5Gpublic.h:136
haddr_t
CATCH haddr_t
Definition: H5EAdblock.c:162
H5G_obj_create_t::cache
H5G_cache_t cache
Definition: H5Gpkg.h:292
indent
*s *s indent
Definition: H5HLdbg.c:111
H5G_cache_type_t
H5G_cache_type_t
Definition: H5Gpkg.h:70
H5G_node_t
Definition: H5Gpkg.h:116
H5G__dense_lookup
H5_DLL htri_t H5G__dense_lookup(H5F_t *f, const H5O_linfo_t *linfo, const char *name, H5O_link_t *lnk)
Definition: H5Gdense.c:525
H5G_BT2_NAME
H5_DLLVAR const H5B2_class_t H5G_BT2_NAME[1]
Definition: H5Gpkg.h:313
H5G_bt_rm_t
struct H5G_bt_rm_t H5G_bt_rm_t
H5G__has_stab_test
htri_t H5G__has_stab_test(hid_t gid)
Definition: H5Gtest.c:284
H5G__dense_delete
H5_DLL herr_t H5G__dense_delete(H5F_t *f, H5O_linfo_t *linfo, hbool_t adj_link)
Definition: H5Gdense.c:1709
H5G_bt_lkp_t::op_data
void * op_data
Definition: H5Gpkg.h:198
H5G__compact_iterate
H5_DLL herr_t H5G__compact_iterate(const H5O_loc_t *oloc, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data)
Definition: H5Gcompact.c:404
H5G__obj_get_linfo
H5_DLL htri_t H5G__obj_get_linfo(const H5O_loc_t *grp_oloc, H5O_linfo_t *linfo)
Definition: H5Gobj.c:313
H5HL_t
Definition: H5HLpkg.h:88
H5_DLLVAR
#define H5_DLLVAR
Definition: H5api_adpt.h:235
H5O_pline_t
Definition: H5Oprivate.h:701
H5G_bt_it_idx_common_t
Definition: H5Gpkg.h:228
H5G_shared_t
Definition: H5Gpkg.h:127
H5G__link_sort_table
H5_DLL herr_t H5G__link_sort_table(H5G_link_table_t *ltable, H5_index_t idx_type, H5_iter_order_t order)
Definition: H5Glink.c:422
H5G_t::oloc
H5O_loc_t oloc
Definition: H5Gpkg.h:138
path
H5T_path_t ** path
Definition: H5T.c:558
H5G_bt_it_cpy_t
Definition: H5Gpkg.h:219
H5G__dense_iterate
H5_DLL herr_t H5G__dense_iterate(H5F_t *f, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data)
Definition: H5Gdense.c:968
H5G__is_new_dense_test
htri_t H5G__is_new_dense_test(hid_t gid)
Definition: H5Gtest.c:343
H5HLprivate.h
H5G_loc_t
Definition: H5Gprivate.h:144
uint8_t
unsigned char uint8_t
Definition: H5private.h:429
H5G__ent_reset
H5_DLL void H5G__ent_reset(H5G_entry_t *ent)
Definition: H5Gent.c:364
H5G_BT2_CORDER
H5_DLLVAR const H5B2_class_t H5G_BT2_CORDER[1]
Definition: H5Gpkg.h:316
H5G_bt_it_it_t::final_ent
hsize_t * final_ent
Definition: H5Gpkg.h:215
H5G_shared_t::mounted
hbool_t mounted
Definition: H5Gpkg.h:129
H5G_DENSE_FHEAP_ID_LEN
#define H5G_DENSE_FHEAP_ID_LEN
Definition: H5Gpkg.h:45
int64_t
int64_t
Definition: H5overflow.txt:35
H5G_bt_it_bt_t::ltable
H5G_link_table_t * ltable
Definition: H5Gpkg.h:242
H5G_bt_it_idx_common_t::op
H5G_bt_find_op_t op
Definition: H5Gpkg.h:232
H5B_class_t
Definition: H5Bprivate.h:111
H5G_bt_ins_t::obj_type
H5O_type_t obj_type
Definition: H5Gpkg.h:173
H5G_cache_t::heap_addr
haddr_t heap_addr
Definition: H5Gpkg.h:89
H5G_obj_create_t
Definition: H5Gpkg.h:289
H5G_bt_it_bt_t::alloc_nlinks
size_t alloc_nlinks
Definition: H5Gpkg.h:238
htri_t
int htri_t
Definition: H5public.h:160
H5G__node_iterate_size
H5_DLL herr_t H5G__node_iterate_size(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
H5G_dense_bt2_name_rec_t::hash
uint32_t hash
Definition: H5Gpkg.h:252
H5_iter_order_t
H5_iter_order_t
Definition: H5public.h:295
H5G_bt_it_it_t::skip
hsize_t skip
Definition: H5Gpkg.h:210
H5G_bt2_ud_common_t::name_hash
uint32_t name_hash
Definition: H5Gpkg.h:272
H5G_bt_it_it_t
struct H5G_bt_it_it_t H5G_bt_it_it_t
H5G_cache_t
union H5G_cache_t H5G_cache_t
H5G__stab_delete
H5_DLL herr_t H5G__stab_delete(H5F_t *f, const H5O_stab_t *stab)
Definition: H5Gstab.c:465
H5G_bt_it_cpy_t::cpy_info
H5O_copy_t * cpy_info
Definition: H5Gpkg.h:224
H5G_copy_file_ud_t::common
H5O_copy_file_ud_common_t common
Definition: H5Gpkg.h:297
H5G_entry_t::cache
H5G_cache_t cache
Definition: H5Gpkg.h:105
H5G__stab_remove_by_idx
H5_DLL herr_t H5G__stab_remove_by_idx(const H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r, H5_iter_order_t order, hsize_t n)
Definition: H5Gstab.c:403
H5O_stab_t
Definition: H5Oprivate.h:748
H5SLprivate.h
H5G__node_build_table
H5_DLL int H5G__node_build_table(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5G_dense_bt2_corder_rec_t::corder
int64_t corder
Definition: H5Gpkg.h:259
H5G_copy_file_ud_t::cache
H5G_cache_t cache
Definition: H5Gpkg.h:299
H5G_entry_t
Definition: H5Gpkg.h:103
H5O_copy_file_ud_common_t
Definition: H5private.h:621
H5G__link_release_table
H5_DLL herr_t H5G__link_release_table(H5G_link_table_t *ltable)
Definition: H5Glink.c:527
H5G_bt_it_bt_t::heap
H5HL_t * heap
Definition: H5Gpkg.h:239
H5G__obj_info
H5_DLL herr_t H5G__obj_info(const H5O_loc_t *oloc, H5G_info_t *grp_info)
Definition: H5Gobj.c:719
H5G__dense_remove_by_idx
H5_DLL herr_t H5G__dense_remove_by_idx(H5F_t *f, const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, H5_index_t idx_type, H5_iter_order_t order, hsize_t n)
Definition: H5Gdense.c:1600
H5G_bt2_ud_common_t::found_op_data
void * found_op_data
Definition: H5Gpkg.h:275
H5_ih_info_t
Definition: H5public.h:326
H5G__lheap_size_test
herr_t H5G__lheap_size_test(hid_t gid, size_t *lheap_size)
Definition: H5Gtest.c:510
H5G__get_info_by_idx
H5_DLL herr_t H5G__get_info_by_idx(const H5G_loc_t *loc, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5G_info_t *grp_info)
Definition: H5Gint.c:1322
H5G__ent_convert
H5_DLL herr_t H5G__ent_convert(H5F_t *f, H5HL_t *heap, const char *name, const H5O_link_t *lnk, H5O_type_t obj_type, const void *crt_info, H5G_entry_t *ent)
Definition: H5Gent.c:394
H5G__user_path_test
herr_t H5G__user_path_test(hid_t obj_id, char *user_path, size_t *user_path_len, unsigned *obj_hidden)
Definition: H5Gtest.c:567
H5G__ent_to_link
H5_DLL herr_t H5G__ent_to_link(H5O_link_t *lnk, const H5HL_t *heap, const H5G_entry_t *ent, const char *name)
Definition: H5Glink.c:226
H5G_cache_t::lval_offset
size_t lval_offset
Definition: H5Gpkg.h:93
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_ginfo_t
Definition: H5Oprivate.h:666
H5G_CACHED_SLINK
@ H5G_CACHED_SLINK
Definition: H5Gpkg.h:74
H5O_copy_t
Definition: H5Oprivate.h:172
H5G_entry_t::header
haddr_t header
Definition: H5Gpkg.h:107
H5G__stab_create
H5_DLL herr_t H5G__stab_create(H5O_loc_t *grp_oloc, const H5O_ginfo_t *ginfo, H5O_stab_t *stab)
Definition: H5Gstab.c:203
H5G__node_by_idx
H5_DLL int H5G__node_by_idx(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
H5G__loc_insert
H5_DLL herr_t H5G__loc_insert(H5G_loc_t *grp_loc, const char *name, H5G_loc_t *obj_loc, H5O_type_t obj_type, const void *crt_info)
Definition: H5Gloc.c:588
H5Oprivate.h
H5G__node_init
H5_DLL herr_t H5G__node_init(H5F_t *f)
Definition: H5Gnode.c:1145
H5G__obj_iterate
H5_DLL herr_t H5G__obj_iterate(const H5O_loc_t *grp_oloc, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data)
Definition: H5Gobj.c:650
H5G_bt2_ud_ins_t
struct H5G_bt2_ud_ins_t H5G_bt2_ud_ins_t
H5B2_found_t
herr_t(* H5B2_found_t)(const void *record, void *op_data)
Definition: H5B2private.h:63
H5G_bt_lkp_t
struct H5G_bt_lkp_t H5G_bt_lkp_t
H5G_shared_t::fo_count
int fo_count
Definition: H5Gpkg.h:128
H5G_cache_t::btree_addr
haddr_t btree_addr
Definition: H5Gpkg.h:88
H5G_bt_it_bt_t
Definition: H5Gpkg.h:236
H5G__dense_lookup_by_idx
H5_DLL herr_t H5G__dense_lookup_by_idx(H5F_t *f, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_link_t *lnk)
Definition: H5Gdense.c:666
H5G_bt_it_idx_common_t::num_objs
hsize_t num_objs
Definition: H5Gpkg.h:231
H5G_node_t
struct H5G_node_t H5G_node_t
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5G_CACHED_STAB
@ H5G_CACHED_STAB
Definition: H5Gpkg.h:73
H5G__dense_build_table
H5_DLL herr_t H5G__dense_build_table(H5F_t *f, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, H5G_link_table_t *ltable)
Definition: H5Gdense.c:817
H5G__compact_lookup
H5_DLL htri_t H5G__compact_lookup(const H5O_loc_t *grp_oloc, const char *name, H5O_link_t *lnk)
Definition: H5Gcompact.c:496
H5G_bt_it_it_t::heap
H5HL_t * heap
Definition: H5Gpkg.h:209
H5G__verify_cached_stabs_test
herr_t H5G__verify_cached_stabs_test(hid_t gid)
Definition: H5Gtest.c:823
H5G__stab_insert
H5_DLL herr_t H5G__stab_insert(const H5O_loc_t *grp_oloc, const char *name, H5O_link_t *obj_lnk, H5O_type_t obj_type, const void *crt_info)
Definition: H5Gstab.c:313
H5G__compact_get_name_by_idx
H5_DLL ssize_t H5G__compact_get_name_by_idx(const H5O_loc_t *oloc, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t idx, char *name, size_t size)
Definition: H5Gcompact.c:220
H5G__ent_encode_vec
H5_DLL herr_t H5G__ent_encode_vec(const H5F_t *f, uint8_t **pp, const H5G_entry_t *ent, unsigned n)
Definition: H5Gent.c:203
H5G_node_t::cache_info
H5AC_info_t cache_info
Definition: H5Gpkg.h:117
H5G_bt_lkp_t::op
H5G_bt_find_op_t op
Definition: H5Gpkg.h:197
H5G__create
H5_DLL H5G_t * H5G__create(H5F_t *file, H5G_obj_create_t *gcrt_info)
Definition: H5Gint.c:188
H5G__link_iterate_table
H5_DLL herr_t H5G__link_iterate_table(const H5G_link_table_t *ltable, hsize_t skip, hsize_t *last_lnk, const H5G_lib_iterate_t op, void *op_data)
Definition: H5Glink.c:478
H5G_bt_common_t::name
const char * name
Definition: H5Gpkg.h:161
H5G_bt_common_t
struct H5G_bt_common_t H5G_bt_common_t
H5G_name_t
Definition: H5Gprivate.h:130
H5G_obj_create_t::gcpl_id
hid_t gcpl_id
Definition: H5Gpkg.h:290
H5G_bt_it_idx_common_t
struct H5G_bt_it_idx_common_t H5G_bt_it_idx_common_t
H5G__stab_lookup_by_idx
H5_DLL herr_t H5G__stab_lookup_by_idx(const H5O_loc_t *grp_oloc, H5_iter_order_t order, hsize_t n, H5O_link_t *lnk)
Definition: H5Gstab.c:966
H5O_linfo_t
Definition: H5Oprivate.h:291
H5G_cache_t
Definition: H5Gpkg.h:86
H5G__node_free
H5_DLL herr_t H5G__node_free(H5G_node_t *sym)
Definition: H5Gnode.c:279
H5G_NCACHED
@ H5G_NCACHED
Definition: H5Gpkg.h:76
H5G_copy_file_ud_t
Definition: H5Gpkg.h:296
H5G__compact_remove
H5_DLL herr_t H5G__compact_remove(const H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r, const char *name)
Definition: H5Gcompact.c:314
H5G__is_empty_test
htri_t H5G__is_empty_test(hid_t gid)
Definition: H5Gtest.c:96
H5G__obj_lookup
H5_DLL htri_t H5G__obj_lookup(const H5O_loc_t *grp_oloc, const char *name, H5O_link_t *lnk)
Definition: H5Gobj.c:1111
H5G__traverse_special
H5_DLL herr_t H5G__traverse_special(const H5G_loc_t *grp_loc, const H5O_link_t *lnk, unsigned target, hbool_t last_comp, H5G_loc_t *obj_loc, hbool_t *obj_exists)
Definition: H5Gtraverse.c:364
H5G_bt2_ud_ins_t::common
H5G_bt2_ud_common_t common
Definition: H5Gpkg.h:284
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
H5G__dense_create
H5_DLL herr_t H5G__dense_create(H5F_t *f, H5O_linfo_t *linfo, const H5O_pline_t *pline)
Definition: H5Gdense.c:259
H5G_CACHED_ERROR
@ H5G_CACHED_ERROR
Definition: H5Gpkg.h:71
H5G__link_name_replace
H5_DLL herr_t H5G__link_name_replace(H5F_t *file, H5RS_str_t *grp_full_path_r, const H5O_link_t *lnk)
Definition: H5Glink.c:570
H5FL_EXTERN
H5FL_EXTERN(H5G_t)
H5G__obj_create_real
H5_DLL herr_t H5G__obj_create_real(H5F_t *f, const H5O_ginfo_t *ginfo, const H5O_linfo_t *linfo, const H5O_pline_t *pline, H5G_obj_create_t *gcrt_info, H5O_loc_t *oloc)
Definition: H5Gobj.c:178
H5G_bt_ins_t::lnk
const H5O_link_t * lnk
Definition: H5Gpkg.h:172
H5G_bt2_ud_common_t::corder
int64_t corder
Definition: H5Gpkg.h:273
H5G_node_t::node_size
size_t node_size
Definition: H5Gpkg.h:119
H5G_bt_lkp_t::common
H5G_bt_common_t common
Definition: H5Gpkg.h:196
heap
CATCH unable to release unprotect heap
Definition: H5HLdbg.c:119
H5G_bt_rm_t::common
H5G_bt_common_t common
Definition: H5Gpkg.h:183
H5G__create_named
H5_DLL H5G_t * H5G__create_named(const H5G_loc_t *loc, const char *name, hid_t lcpl_id, hid_t gcpl_id)
Definition: H5Gint.c:131
H5G__component
H5_DLL const char * H5G__component(const char *name, size_t *size_p)
Definition: H5Gname.c:132
H5G__compact_lookup_by_idx
H5_DLL herr_t H5G__compact_lookup_by_idx(const H5O_loc_t *oloc, const H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_link_t *lnk)
Definition: H5Gcompact.c:542
H5G_bt_ins_t
struct H5G_bt_ins_t H5G_bt_ins_t
H5G_bt2_ud_common_t
Definition: H5Gpkg.h:267
H5G__has_links_test
htri_t H5G__has_links_test(hid_t gid, unsigned *nmsgs)
Definition: H5Gtest.c:217
H5_copy_depth_t
H5_copy_depth_t
Definition: H5private.h:615
H5G__dense_insert
H5_DLL herr_t H5G__dense_insert(H5F_t *f, const H5O_linfo_t *linfo, const H5O_link_t *lnk)
Definition: H5Gdense.c:377
H5G_bt_it_cpy_t::dst_stab
const H5O_stab_t * dst_stab
Definition: H5Gpkg.h:223
H5G_bt_rm_t::grp_full_path_r
H5RS_str_t * grp_full_path_r
Definition: H5Gpkg.h:184
H5G_dense_bt2_name_rec_t
struct H5G_dense_bt2_name_rec_t H5G_dense_bt2_name_rec_t
H5F_t
Definition: H5Fpkg.h:374
H5B_SNODE
H5_DLLVAR H5B_class_t H5B_SNODE[1]
Definition: H5Gpkg.h:310
H5G_dense_bt2_corder_rec_t
Definition: H5Gpkg.h:257
n
*s *s n
Definition: H5HLdbg.c:111
H5RS_str_t
Definition: H5RS.c:27
H5G_bt_it_cpy_t::src_oloc
const H5O_loc_t * src_oloc
Definition: H5Gpkg.h:220
H5G_bt_it_cpy_t::dst_file
H5F_t * dst_file
Definition: H5Gpkg.h:222
H5G__dense_get_name_by_idx
H5_DLL ssize_t H5G__dense_get_name_by_idx(H5F_t *f, H5O_linfo_t *linfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, char *name, size_t size)
Definition: H5Gdense.c:1170
H5G_t::shared
H5G_shared_t * shared
Definition: H5Gpkg.h:137
H5G_bt2_ud_common_t::name
const char * name
Definition: H5Gpkg.h:271
H5G__node_copy
H5_DLL int H5G__node_copy(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
H5G_bt_it_it_t::op
H5G_lib_iterate_t op
Definition: H5Gpkg.h:211
H5FLprivate.h
H5G_bt2_ud_common_t
struct H5G_bt2_ud_common_t H5G_bt2_ud_common_t
herr_t
int herr_t
Definition: H5public.h:128
H5G_bt_it_it_t::op_data
void * op_data
Definition: H5Gpkg.h:212
H5G_obj_create_t
struct H5G_obj_create_t H5G_obj_create_t
H5G__stab_lookup
H5_DLL herr_t H5G__stab_lookup(const H5O_loc_t *grp_oloc, const char *name, H5O_link_t *lnk)
Definition: H5Gstab.c:864
hbool_t
bool hbool_t
Definition: H5public.h:159
H5G_bt_ins_t::common
H5G_bt_common_t common
Definition: H5Gpkg.h:171
H5G__open_name
H5_DLL H5G_t * H5G__open_name(const H5G_loc_t *loc, const char *name)
Definition: H5Gint.c:259
H5C_cache_entry_t
Definition: H5Cprivate.h:1597
H5G_bt_find_op_t
herr_t(* H5G_bt_find_op_t)(const H5G_entry_t *ent, void *operator_data)
Definition: H5Gpkg.h:188
H5HF_t
Definition: H5HFpkg.h:459
H5G_entry_t::name_off
size_t name_off
Definition: H5Gpkg.h:106
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5G_node_t::entry
H5G_entry_t * entry
Definition: H5Gpkg.h:121
H5G__stab_get_name_by_idx
H5_DLL ssize_t H5G__stab_get_name_by_idx(const H5O_loc_t *oloc, H5_iter_order_t order, hsize_t n, char *name, size_t size)
Definition: H5Gstab.c:741
H5G_bt2_ud_common_t::fheap
H5HF_t * fheap
Definition: H5Gpkg.h:270
H5G__node_sumup
H5_DLL int H5G__node_sumup(H5F_t *f, const void *_lt_key, haddr_t addr, const void *_rt_key, void *_udata)
H5B2_class_t
Definition: H5B2private.h:82
H5G_dense_bt2_name_rec_t
Definition: H5Gpkg.h:250
H5G_obj_create_t::cache_type
H5G_cache_type_t cache_type
Definition: H5Gpkg.h:291
H5HFprivate.h
H5G_bt_it_idx_common_t::idx
hsize_t idx
Definition: H5Gpkg.h:230
H5_index_t
H5_index_t
Definition: H5public.h:316
H5G_bt2_ud_ins_t
Definition: H5Gpkg.h:282
H5G_bt_ins_t
Definition: H5Gpkg.h:169
H5G__stab_valid
H5_DLL herr_t H5G__stab_valid(H5O_loc_t *grp_oloc, H5O_stab_t *alt_stab)
Definition: H5Gstab.c:1049
H5G__compact_insert
H5_DLL herr_t H5G__compact_insert(const H5O_loc_t *grp_oloc, H5O_link_t *obj_lnk)
Definition: H5Gcompact.c:187
H5G__stab_create_components
H5_DLL herr_t H5G__stab_create_components(H5F_t *f, H5O_stab_t *stab, size_t size_hint)
Definition: H5Gstab.c:136
H5B2private.h
H5G__stab_iterate
H5_DLL herr_t H5G__stab_iterate(const H5O_loc_t *oloc, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk, H5G_lib_iterate_t op, void *op_data)
Definition: H5Gstab.c:521
H5G_NOTHING_CACHED
@ H5G_NOTHING_CACHED
Definition: H5Gpkg.h:72
H5G_info_t
Definition: H5Gpublic.h:54
H5G_bt_it_cpy_t
struct H5G_bt_it_cpy_t H5G_bt_it_cpy_t
H5G_bt_common_t::heap
H5HL_t * heap
Definition: H5Gpkg.h:162
H5G__ent_copy
H5_DLL void H5G__ent_copy(H5G_entry_t *dst, const H5G_entry_t *src, H5_copy_depth_t depth)
Definition: H5Gent.c:325
H5O_type_t
H5O_type_t
Definition: H5Opublic.h:102
H5G__compact_remove_by_idx
H5_DLL herr_t H5G__compact_remove_by_idx(const H5O_loc_t *oloc, const H5O_linfo_t *linfo, H5RS_str_t *grp_full_path_r, H5_index_t idx_type, H5_iter_order_t order, hsize_t n)
Definition: H5Gcompact.c:352