HDF5  1.12.0
H5Gprivate.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: H5Gprivate.h
17  * Jul 11 1997
18  * Robb Matzke <matzke@llnl.gov>
19  *
20  * Purpose: Library-visible declarations.
21  *
22  *-------------------------------------------------------------------------
23  */
24 
25 #ifndef _H5Gprivate_H
26 #define _H5Gprivate_H
27 
28 /* Include package's public header */
29 #include "H5Gpublic.h"
30 
31 /* Private headers needed by this file */
32 #include "H5private.h" /* Generic Functions */
33 #include "H5Bprivate.h" /* B-trees */
34 #include "H5Fprivate.h" /* File access */
35 #include "H5RSprivate.h" /* Reference-counted strings */
36 
37 /*
38  * The disk size for a symbol table entry...
39  */
40 #define H5G_SIZEOF_SCRATCH 16
41 #define H5G_SIZEOF_ENTRY(sizeof_addr, sizeof_size) \
42  ((sizeof_size) + /*offset of name into heap */ \
43  (sizeof_addr) + /*address of object header */ \
44  4 + /*entry type */ \
45  4 + /*reserved */ \
46  H5G_SIZEOF_SCRATCH) /*scratch pad space */
47 #define H5G_SIZEOF_ENTRY_FILE(F) \
48  H5G_SIZEOF_ENTRY(H5F_SIZEOF_ADDR(F), H5F_SIZEOF_SIZE(F))
49 
50 /* ========= Group Creation properties ============ */
51 
52 /* Defaults for link info values */
53 #define H5G_CRT_LINFO_TRACK_CORDER FALSE
54 #define H5G_CRT_LINFO_INDEX_CORDER FALSE
55 #define H5G_CRT_LINFO_NLINKS 0
56 #define H5G_CRT_LINFO_MAX_CORDER 0
57 #define H5G_CRT_LINFO_LINK_FHEAP_ADDR HADDR_UNDEF
58 #define H5G_CRT_LINFO_NAME_BT2_ADDR HADDR_UNDEF
59 #define H5G_CRT_LINFO_CORDER_BT2_ADDR HADDR_UNDEF
60 
61 /* Definitions for link info settings */
62 #define H5G_CRT_LINK_INFO_NAME "link info"
63 #define H5G_CRT_LINK_INFO_SIZE sizeof(H5O_linfo_t)
64 #define H5G_CRT_LINK_INFO_DEF {H5G_CRT_LINFO_TRACK_CORDER, \
65  H5G_CRT_LINFO_INDEX_CORDER, \
66  H5G_CRT_LINFO_MAX_CORDER, \
67  H5G_CRT_LINFO_CORDER_BT2_ADDR, \
68  H5G_CRT_LINFO_NLINKS, \
69  H5G_CRT_LINFO_LINK_FHEAP_ADDR, \
70  H5G_CRT_LINFO_NAME_BT2_ADDR \
71  }
72 
73 /* Defaults for group info values */
74 #define H5G_CRT_GINFO_LHEAP_SIZE_HINT 0
75 #define H5G_CRT_GINFO_STORE_LINK_PHASE_CHANGE FALSE
76 #define H5G_CRT_GINFO_MAX_COMPACT 8
77 #define H5G_CRT_GINFO_MIN_DENSE 6
78 #define H5G_CRT_GINFO_STORE_EST_ENTRY_INFO FALSE
79 #define H5G_CRT_GINFO_EST_NUM_ENTRIES 4
80 #define H5G_CRT_GINFO_EST_NAME_LEN 8
81 
82 /* Definitions for group info settings */
83 #define H5G_CRT_GROUP_INFO_NAME "group info"
84 #define H5G_CRT_GROUP_INFO_SIZE sizeof(H5O_ginfo_t)
85 #define H5G_CRT_GROUP_INFO_DEF {H5G_CRT_GINFO_LHEAP_SIZE_HINT, \
86  H5G_CRT_GINFO_STORE_LINK_PHASE_CHANGE, \
87  H5G_CRT_GINFO_MAX_COMPACT, \
88  H5G_CRT_GINFO_MIN_DENSE, \
89  H5G_CRT_GINFO_STORE_EST_ENTRY_INFO, \
90  H5G_CRT_GINFO_EST_NUM_ENTRIES, \
91  H5G_CRT_GINFO_EST_NAME_LEN \
92  }
93 
94 /* If the module using this macro is allowed access to the private variables, access them directly */
95 #ifdef H5G_MODULE
96 #define H5G_MOUNTED(G) ((G)->shared->mounted)
97 #else /* H5G_MODULE */
98 #define H5G_MOUNTED(G) (H5G_mounted(G))
99 #endif /* H5G_MODULE */
100 
101 /*
102  * During name lookups (see H5G_traverse()) we sometimes want information about
103  * a symbolic link or a mount point. The normal operation is to follow the
104  * symbolic link or mount point and return information about its target.
105  */
106 #define H5G_TARGET_NORMAL 0x0000
107 #define H5G_TARGET_SLINK 0x0001
108 #define H5G_TARGET_MOUNT 0x0002
109 #define H5G_TARGET_UDLINK 0x0004
110 #define H5G_TARGET_EXISTS 0x0008
111 #define H5G_CRT_INTMD_GROUP 0x0010
112 
113 /* Type of operation being performed for call to H5G_name_replace() */
114 typedef enum {
115  H5G_NAME_MOVE = 0, /* H5*move call */
116  H5G_NAME_DELETE, /* H5Ldelete call */
117  H5G_NAME_MOUNT, /* H5Fmount call */
118  H5G_NAME_UNMOUNT /* H5Funmount call */
120 
121 /* Status returned from traversal callbacks; whether the object location
122  * or group location need to be closed */
123 #define H5G_OWN_NONE 0
124 #define H5G_OWN_OBJ_LOC 1
125 #define H5G_OWN_GRP_LOC 2
126 #define H5G_OWN_BOTH 3
127 typedef int H5G_own_loc_t;
128 
129 /* Structure to store information about the name an object was opened with */
130 typedef struct {
131  H5RS_str_t *full_path_r; /* Path to object, as seen from root of current file mounting hierarchy */
132  H5RS_str_t *user_path_r; /* Path to object, as opened by user */
133  unsigned obj_hidden; /* Whether the object is visible in group hier. */
134 } H5G_name_t;
135 
136 /* Forward declarations (for prototypes & struct definitions) */
137 struct H5O_loc_t;
138 struct H5O_link_t;
139 
140 /*
141  * The "location" of an object in a group hierarchy. This points to an object
142  * location and a group hierarchy path for the object.
143  */
144 typedef struct {
145  struct H5O_loc_t *oloc; /* Object header location */
146  H5G_name_t *path; /* Group hierarchy path */
147 } H5G_loc_t;
148 
149 /* Typedef for path traversal operations */
150 /* grp_loc is the location of the group in which the targeted object is located.
151  * name is the last component of the object's name
152  * lnk is the link between the group and the object
153  * obj_loc is the target of the traversal (or NULL if the object doesn't exist)
154  * operator_data is whatever udata was supplied when H5G_traverse was called
155  * own_loc should be set to H5G_OWN_OBJ_LOC if this callback takes ownership of obj_loc,
156  * H5G_OWN_GRP_LOC if it takes ownership of grp_loc, and H5G_OWN_NONE if obj_loc and
157  * grp_loc need to be deleted.
158  */
159 typedef herr_t (*H5G_traverse_t)(H5G_loc_t *grp_loc/*in*/, const char *name,
160  const struct H5O_link_t *lnk/*in*/, H5G_loc_t *obj_loc/*out*/, void *operator_data/*in,out*/,
161  H5G_own_loc_t *own_loc/*out*/);
162 
163 /* Describe kind of callback to make for each link */
165 #ifndef H5_NO_DEPRECATED_SYMBOLS
166  H5G_LINK_OP_OLD, /* "Old" application callback */
167 #endif /* H5_NO_DEPRECATED_SYMBOLS */
168  H5G_LINK_OP_NEW /* "New" application callback */
170 
171 typedef struct {
173  union {
174 #ifndef H5_NO_DEPRECATED_SYMBOLS
175  H5G_iterate_t op_old; /* "Old" application callback for each link */
176 #endif /* H5_NO_DEPRECATED_SYMBOLS */
177  H5L_iterate2_t op_new; /* "New" application callback for each link */
178  } op_func;
180 
181 typedef struct H5G_t H5G_t;
182 typedef struct H5G_shared_t H5G_shared_t;
183 typedef struct H5G_entry_t H5G_entry_t;
184 
185 /*
186  * Library prototypes... These are the ones that other packages routinely
187  * call.
188  */
189 H5_DLL herr_t H5G_init(void);
190 H5_DLL struct H5O_loc_t *H5G_oloc(H5G_t *grp);
191 H5_DLL H5G_name_t * H5G_nameof(const H5G_t *grp);
193 H5_DLL H5G_t *H5G_open(const H5G_loc_t *loc);
199 #ifndef H5_NO_DEPRECATED_SYMBOLS
201 #endif /* H5_NO_DEPRECATED_SYMBOLS */
202 
203 /*
204  * Utility functions
205  */
206 H5_DLL char *H5G_normalize(const char *name);
207 
208 /*
209  * Group hierarchy traversal routines
210  */
211 H5_DLL herr_t H5G_traverse(const H5G_loc_t *loc, const char *name,
212  unsigned target, H5G_traverse_t op, void *op_data);
213 H5_DLL herr_t H5G_iterate(H5G_loc_t *loc, const char *group_name,
214  H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk,
215  const H5G_link_iterate_t *lnk_op, void *op_data);
216 H5_DLL herr_t H5G_visit(H5G_loc_t *loc, const char *group_name,
217  H5_index_t idx_type, H5_iter_order_t order, H5L_iterate2_t op, void *op_data);
218 
219 /*
220  * Functions that understand links in groups
221  */
222 H5_DLL herr_t H5G_link_to_info(const struct H5O_loc_t *link_loc, const struct H5O_link_t *lnk, H5L_info2_t *linfo);
223 
224 /*
225  * Functions that understand group objects
226  */
227 H5_DLL herr_t H5G_obj_insert(const struct H5O_loc_t *grp_oloc, const char *name,
228  struct H5O_link_t *obj_lnk, hbool_t adj_link, H5O_type_t obj_type,
229  const void *crt_info);
231  H5_iter_order_t order, hsize_t n, char* name, size_t size);
232 H5_DLL herr_t H5G_obj_remove(const struct H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r,
233  const char *name);
234 H5_DLL herr_t H5G_obj_remove_by_idx(const struct H5O_loc_t *grp_oloc, H5RS_str_t *grp_full_path_r,
235  H5_index_t idx_type, H5_iter_order_t order, hsize_t n);
236 H5_DLL herr_t H5G_obj_lookup_by_idx(const struct H5O_loc_t *grp_oloc, H5_index_t idx_type,
237  H5_iter_order_t order, hsize_t n, struct H5O_link_t *lnk);
239 
240 /*
241  * These functions operate on symbol table nodes.
242  */
245  int fwidth, haddr_t heap);
246 
247 /*
248  * These functions operate on group object locations.
249  */
250 H5_DLL herr_t H5G_ent_encode(const H5F_t *f, uint8_t **pp, const H5G_entry_t *ent);
251 H5_DLL herr_t H5G_ent_decode(const H5F_t *f, const uint8_t **pp, H5G_entry_t *ent);
252 
253 /*
254  * These functions operate on group hierarchy names.
255  */
256 H5_DLL herr_t H5G_name_set(const H5G_name_t *loc, H5G_name_t *obj, const char *name);
258  H5F_t *src_file, H5RS_str_t *src_full_path_r, H5F_t *dst_file,
259  H5RS_str_t *dst_full_path_r);
263 H5_DLL ssize_t H5G_get_name(const H5G_loc_t *loc, char *name/*out*/, size_t size,
264  hbool_t *cached);
266  char* name, size_t size);
267 H5_DLL H5RS_str_t *H5G_build_fullpath_refstr_str(H5RS_str_t *path_r, const char *name);
268 
269 /*
270  * These functions operate on group "locations"
271  */
272 H5_DLL herr_t H5G_loc_real(void *obj, H5I_type_t type, H5G_loc_t *loc);
273 H5_DLL herr_t H5G_loc(hid_t loc_id, H5G_loc_t *loc);
275 H5_DLL herr_t H5G_loc_find(const H5G_loc_t *loc, const char *name,
276  H5G_loc_t *obj_loc/*out*/);
277 H5_DLL herr_t H5G_loc_find_by_idx(const H5G_loc_t *loc, const char *group_name,
278  H5_index_t idx_type, H5_iter_order_t order, hsize_t n,
279  H5G_loc_t *obj_loc/*out*/);
280 H5_DLL htri_t H5G_loc_exists(const H5G_loc_t *loc, const char *name);
281 H5_DLL herr_t H5G_loc_info(const H5G_loc_t *loc, const char *name,
282  H5O_info2_t *oinfo/*out*/, unsigned fields);
283 H5_DLL herr_t H5G_loc_native_info(const H5G_loc_t *loc, const char *name,
284  H5O_native_info_t *oinfo/*out*/, unsigned fields);
285 H5_DLL herr_t H5G_loc_set_comment(const H5G_loc_t *loc, const char *name,
286  const char *comment);
287 H5_DLL ssize_t H5G_loc_get_comment(const H5G_loc_t *loc, const char *name,
288  char *comment/*out*/, size_t bufsize);
291 
292 /*
293  * These functions operate on the root group
294  */
295 H5_DLL herr_t H5G_mkroot(H5F_t *f, hbool_t create_root);
299 
300 #endif /* _H5Gprivate_H */
301 
H5G_link_iterate_op_type_t
H5G_link_iterate_op_type_t
Definition: H5Gprivate.h:164
H5G_name_copy
H5_DLL herr_t H5G_name_copy(H5G_name_t *dst, const H5G_name_t *src, H5_copy_depth_t depth)
Definition: H5Gname.c:513
H5O_loc_t
Definition: H5Oprivate.h:152
ssize_t
int ssize_t
Definition: H5public.h:167
H5G_link_to_info
H5_DLL herr_t H5G_link_to_info(const struct H5O_loc_t *link_loc, const struct H5O_link_t *lnk, H5L_info2_t *linfo)
H5G_t
Definition: H5Gpkg.h:136
H5G_own_loc_t
int H5G_own_loc_t
Definition: H5Gprivate.h:127
H5G_loc_t::path
H5G_name_t * path
Definition: H5Gprivate.h:146
size
iblock size
Definition: H5EAcache.c:787
f
hdr f
Definition: H5EA.c:755
H5G_loc_info
H5_DLL herr_t H5G_loc_info(const H5G_loc_t *loc, const char *name, H5O_info2_t *oinfo, unsigned fields)
Definition: H5Gloc.c:825
H5G_loc_find
H5_DLL herr_t H5G_loc_find(const H5G_loc_t *loc, const char *name, H5G_loc_t *obj_loc)
Definition: H5Gloc.c:445
H5L_iterate2_t
herr_t(* H5L_iterate2_t)(hid_t group, const char *name, const H5L_info2_t *info, void *op_data)
Definition: H5Lpublic.h:132
H5G_mount
H5_DLL herr_t H5G_mount(H5G_t *grp)
Definition: H5Gint.c:654
H5G_root_free
H5_DLL herr_t H5G_root_free(H5G_t *grp)
Definition: H5Groot.c:346
H5L_info2_t
Definition: H5Lpublic.h:76
H5G_obj_remove
H5_DLL herr_t H5G_obj_remove(const struct H5O_loc_t *oloc, H5RS_str_t *grp_full_path_r, const char *name)
H5G_LINK_OP_OLD
@ H5G_LINK_OP_OLD
Definition: H5Gprivate.h:166
H5G_name_t::obj_hidden
unsigned obj_hidden
Definition: H5Gprivate.h:133
H5G_obj_get_name_by_idx
H5_DLL ssize_t H5G_obj_get_name_by_idx(const struct H5O_loc_t *oloc, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, char *name, size_t size)
H5G_traverse
H5_DLL herr_t H5G_traverse(const H5G_loc_t *loc, const char *name, unsigned target, H5G_traverse_t op, void *op_data)
Definition: H5Gtraverse.c:820
H5I_type_t
H5I_type_t
Definition: H5Ipublic.h:33
H5G_mounted
H5_DLL hbool_t H5G_mounted(H5G_t *grp)
Definition: H5Gint.c:682
H5G_traverse_t
herr_t(* H5G_traverse_t)(H5G_loc_t *grp_loc, const char *name, const struct H5O_link_t *lnk, H5G_loc_t *obj_loc, void *operator_data, H5G_own_loc_t *own_loc)
Definition: H5Gprivate.h:159
haddr_t
CATCH haddr_t
Definition: H5EAdblock.c:162
indent
*s *s indent
Definition: H5HLdbg.c:111
H5G_mkroot
H5_DLL herr_t H5G_mkroot(H5F_t *f, hbool_t create_root)
Definition: H5Groot.c:146
H5G_iterate
H5_DLL herr_t H5G_iterate(H5G_loc_t *loc, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_lnk, const H5G_link_iterate_t *lnk_op, void *op_data)
Definition: H5Gint.c:789
H5G_loc_reset
H5_DLL herr_t H5G_loc_reset(H5G_loc_t *loc)
Definition: H5Gloc.c:341
H5G_obj_lookup_by_idx
H5_DLL herr_t H5G_obj_lookup_by_idx(const struct H5O_loc_t *grp_oloc, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, struct H5O_link_t *lnk)
H5G_node_close
H5_DLL herr_t H5G_node_close(const H5F_t *f)
Definition: H5Gnode.c:1191
H5G_name_t::user_path_r
H5RS_str_t * user_path_r
Definition: H5Gprivate.h:132
H5G_shared_t
Definition: H5Gpkg.h:127
H5G_nameof
H5_DLL H5G_name_t * H5G_nameof(const H5G_t *grp)
Definition: H5Gint.c:582
H5G_fileof
H5_DLL H5F_t * H5G_fileof(H5G_t *grp)
Definition: H5Gint.c:606
H5G_loc_t
Definition: H5Gprivate.h:144
uint8_t
unsigned char uint8_t
Definition: H5private.h:429
H5G_loc_real
H5_DLL herr_t H5G_loc_real(void *obj, H5I_type_t type, H5G_loc_t *loc)
Definition: H5Gloc.c:164
H5G_get_create_plist
H5_DLL hid_t H5G_get_create_plist(const H5G_t *grp)
Definition: H5Gint.c:1181
htri_t
int htri_t
Definition: H5public.h:160
H5G_name_free
H5_DLL herr_t H5G_name_free(H5G_name_t *name)
Definition: H5Gname.c:649
H5_iter_order_t
H5_iter_order_t
Definition: H5public.h:295
H5G_loc_exists
H5_DLL htri_t H5G_loc_exists(const H5G_loc_t *loc, const char *name)
Definition: H5Gloc.c:675
H5G_get_name_by_addr
H5_DLL ssize_t H5G_get_name_by_addr(H5F_t *f, const struct H5O_loc_t *loc, char *name, size_t size)
hid_t
int64_t hid_t
Definition: H5Ipublic.h:55
H5G_obj_insert
H5_DLL herr_t H5G_obj_insert(const struct H5O_loc_t *grp_oloc, const char *name, struct H5O_link_t *obj_lnk, hbool_t adj_link, H5O_type_t obj_type, const void *crt_info)
H5G_ent_decode
H5_DLL herr_t H5G_ent_decode(const H5F_t *f, const uint8_t **pp, H5G_entry_t *ent)
Definition: H5Gent.c:137
H5G_entry_t
Definition: H5Gpkg.h:103
H5G_LINK_OP_NEW
@ H5G_LINK_OP_NEW
Definition: H5Gprivate.h:168
H5G_loc
H5_DLL herr_t H5G_loc(hid_t loc_id, H5G_loc_t *loc)
Definition: H5Gloc.c:274
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
H5G_map_obj_type
H5_DLL H5G_obj_t H5G_map_obj_type(H5O_type_t obj_type)
Definition: H5Gdeprec.c:113
H5G_unmount
H5_DLL herr_t H5G_unmount(H5G_t *grp)
Definition: H5Gint.c:706
H5G_rootof
H5_DLL H5G_t * H5G_rootof(H5F_t *f)
Definition: H5Groot.c:100
H5G_loc_set_comment
H5_DLL herr_t H5G_loc_set_comment(const H5G_loc_t *loc, const char *name, const char *comment)
Definition: H5Gloc.c:995
H5O_info2_t
Definition: H5Opublic.h:131
H5Fprivate.h
H5G_normalize
H5_DLL char * H5G_normalize(const char *name)
Definition: H5Gname.c:162
H5RSprivate.h
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5G_loc_find_by_idx
H5_DLL herr_t H5G_loc_find_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_loc_t *obj_loc)
Definition: H5Gloc.c:547
H5G_NAME_UNMOUNT
@ H5G_NAME_UNMOUNT
Definition: H5Gprivate.h:118
H5G_get_name
H5_DLL ssize_t H5G_get_name(const H5G_loc_t *loc, char *name, size_t size, hbool_t *cached)
Definition: H5Gname.c:562
H5G_name_t
Definition: H5Gprivate.h:130
H5G_open
H5_DLL H5G_t * H5G_open(const H5G_loc_t *loc)
Definition: H5Gint.c:323
H5G_loc_get_comment
H5_DLL ssize_t H5G_loc_get_comment(const H5G_loc_t *loc, const char *name, char *comment, size_t bufsize)
Definition: H5Gloc.c:1086
H5G_NAME_DELETE
@ H5G_NAME_DELETE
Definition: H5Gprivate.h:116
H5G_close
H5_DLL herr_t H5G_close(H5G_t *grp)
Definition: H5Gint.c:465
H5G_visit
H5_DLL herr_t H5G_visit(H5G_loc_t *loc, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, H5L_iterate2_t op, void *op_data)
Definition: H5Gint.c:1048
H5G_name_set
H5_DLL herr_t H5G_name_set(const H5G_name_t *loc, H5G_name_t *obj, const char *name)
Definition: H5Gname.c:457
H5G_init
H5_DLL herr_t H5G_init(void)
Definition: H5G.c:157
H5_DLL
#define H5_DLL
Definition: H5api_adpt.h:234
heap
CATCH unable to release unprotect heap
Definition: H5HLdbg.c:119
H5G_oloc
H5_DLL struct H5O_loc_t * H5G_oloc(H5G_t *grp)
Definition: H5Gint.c:559
H5G_loc_t::oloc
struct H5O_loc_t * oloc
Definition: H5Gprivate.h:145
H5G_get_shared_count
H5_DLL herr_t H5G_get_shared_count(H5G_t *grp)
Definition: H5Gint.c:630
H5Gpublic.h
H5G_obj_remove_by_idx
H5_DLL herr_t H5G_obj_remove_by_idx(const struct H5O_loc_t *grp_oloc, H5RS_str_t *grp_full_path_r, H5_index_t idx_type, H5_iter_order_t order, hsize_t n)
H5_copy_depth_t
H5_copy_depth_t
Definition: H5private.h:615
H5G_loc_free
H5_DLL herr_t H5G_loc_free(H5G_loc_t *loc)
Definition: H5Gloc.c:374
H5G_ent_encode
H5_DLL herr_t H5G_ent_encode(const H5F_t *f, uint8_t **pp, const H5G_entry_t *ent)
Definition: H5Gent.c:243
H5F_t
Definition: H5Fpkg.h:374
H5G_names_op_t
H5G_names_op_t
Definition: H5Gprivate.h:114
H5G_root_loc
H5_DLL herr_t H5G_root_loc(H5F_t *f, H5G_loc_t *loc)
Definition: H5Groot.c:379
n
*s *s n
Definition: H5HLdbg.c:111
H5RS_str_t
Definition: H5RS.c:27
H5G_name_replace
H5_DLL herr_t H5G_name_replace(const struct H5O_link_t *lnk, H5G_names_op_t op, H5F_t *src_file, H5RS_str_t *src_full_path_r, H5F_t *dst_file, H5RS_str_t *dst_full_path_r)
H5G_node_debug
H5_DLL herr_t H5G_node_debug(H5F_t *f, haddr_t addr, FILE *stream, int indent, int fwidth, haddr_t heap)
Definition: H5Gnode.c:1484
herr_t
int herr_t
Definition: H5public.h:128
hbool_t
bool hbool_t
Definition: H5public.h:159
H5G_name_t::full_path_r
H5RS_str_t * full_path_r
Definition: H5Gprivate.h:131
H5G_iterate_t
herr_t(* H5G_iterate_t)(hid_t group, const char *name, void *op_data)
Definition: H5Gpublic.h:133
H5G_NAME_MOVE
@ H5G_NAME_MOVE
Definition: H5Gprivate.h:115
hsize_t
hsize_t
Definition: H5overflow.txt:44
H5G_build_fullpath_refstr_str
H5_DLL H5RS_str_t * H5G_build_fullpath_refstr_str(H5RS_str_t *path_r, const char *name)
Definition: H5Gname.c:352
H5Bprivate.h
H5G_loc_native_info
H5_DLL herr_t H5G_loc_native_info(const H5G_loc_t *loc, const char *name, H5O_native_info_t *oinfo, unsigned fields)
Definition: H5Gloc.c:902
H5_index_t
H5_index_t
Definition: H5public.h:316
H5G_name_reset
H5_DLL herr_t H5G_name_reset(H5G_name_t *name)
Definition: H5Gname.c:621
H5G_loc_copy
H5_DLL herr_t H5G_loc_copy(H5G_loc_t *dst, const H5G_loc_t *src, H5_copy_depth_t depth)
Definition: H5Gloc.c:307
H5G_obj_t
H5G_obj_t
Definition: H5Gpublic.h:120
H5G_NAME_MOUNT
@ H5G_NAME_MOUNT
Definition: H5Gprivate.h:117
H5O_native_info_t
Definition: H5Opublic.h:145
H5private.h
H5O_type_t
H5O_type_t
Definition: H5Opublic.h:102
H5O_loc_t::addr
haddr_t addr
Definition: H5Oprivate.h:154