HDF5  1.12.0
H5Oshared.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * Programmer: Quincey Koziol <koziol@hdfgroup.org>
16  * Friday, January 19, 2007
17  *
18  * Purpose: This file contains inline definitions for "generic" routines
19  * supporting a "shared message interface" (ala Java) for object
20  * header messages that can be shared. This interface is
21  * dependent on a bunch of macros being defined which define
22  * the name of the interface and "real" methods which need to
23  * be implemented for each message class that supports the
24  * shared message interface.
25  */
26 
27 #ifndef H5Oshared_H
28 #define H5Oshared_H
29 
30 
31 /*-------------------------------------------------------------------------
32  * Function: H5O_SHARED_DECODE
33  *
34  * Purpose: Decode an object header message that may be shared.
35  *
36  * Note: The actual name of this routine can be different in each source
37  * file that this header file is included in, and must be defined
38  * prior to including this header file.
39  *
40  * Return: Success: Pointer to the new message in native form
41  * Failure: NULL
42  *
43  * Programmer: Quincey Koziol
44  * Friday, January 19, 2007
45  *
46  *-------------------------------------------------------------------------
47  */
48 static H5_INLINE void *
49 H5O_SHARED_DECODE(H5F_t *f, H5O_t *open_oh, unsigned mesg_flags,
50  unsigned *ioflags, size_t p_size, const uint8_t *p)
51 {
52  void *ret_value = NULL; /* Return value */
53 
55 
56 #ifndef H5O_SHARED_TYPE
57 #error "Need to define H5O_SHARED_TYPE macro!"
58 #endif /* H5O_SHARED_TYPE */
59 #ifndef H5O_SHARED_DECODE
60 #error "Need to define H5O_SHARED_DECODE macro!"
61 #endif /* H5O_SHARED_DECODE */
62 #ifndef H5O_SHARED_DECODE_REAL
63 #error "Need to define H5O_SHARED_DECODE_REAL macro!"
64 #endif /* H5O_SHARED_DECODE_REAL */
65 
66  /* Check for shared message */
67  if(mesg_flags & H5O_MSG_FLAG_SHARED) {
68  /* Retrieve native message info indirectly through shared message */
69  if(NULL == (ret_value = H5O__shared_decode(f, open_oh, ioflags, p, H5O_SHARED_TYPE)))
70  HGOTO_ERROR(H5E_OHDR, H5E_CANTDECODE, NULL, "unable to decode shared message")
71 
72  /* We currently do not support automatically fixing shared messages */
73 #ifdef H5_STRICT_FORMAT_CHECKS
74  if(*ioflags & H5O_DECODEIO_DIRTY)
75  HGOTO_ERROR(H5E_OHDR, H5E_UNSUPPORTED, NULL, "unable to mark shared message dirty")
76 #else /* H5_STRICT_FORMAT_CHECKS */
77  *ioflags &= ~H5O_DECODEIO_DIRTY;
78 #endif /* H5_STRICT_FORMAT_CHECKS */
79  } /* end if */
80  else {
81  /* Decode native message directly */
82  if(NULL == (ret_value = H5O_SHARED_DECODE_REAL(f, open_oh, mesg_flags, ioflags, p_size, p)))
83  HGOTO_ERROR(H5E_OHDR, H5E_CANTDECODE, NULL, "unable to decode native message")
84  } /* end else */
85 
86 done:
88 } /* end H5O_SHARED_DECODE() */
89 
90 
91 /*-------------------------------------------------------------------------
92  * Function: H5O_SHARED_ENCODE
93  *
94  * Purpose: Encode an object header message that may be shared.
95  *
96  * Note: The actual name of this routine can be different in each source
97  * file that this header file is included in, and must be defined
98  * prior to including this header file.
99  *
100  * Return: Success: Non-negative
101  * Failure: Negative
102  *
103  * Programmer: Quincey Koziol
104  * Friday, January 19, 2007
105  *
106  *-------------------------------------------------------------------------
107  */
108 static H5_INLINE herr_t
109 H5O_SHARED_ENCODE(H5F_t *f, hbool_t disable_shared, uint8_t *p, const void *_mesg)
110 {
111  const H5O_shared_t *sh_mesg = (const H5O_shared_t *)_mesg; /* Pointer to shared message portion of actual message */
112  herr_t ret_value = SUCCEED; /* Return value */
113 
115 
116 #ifndef H5O_SHARED_TYPE
117 #error "Need to define H5O_SHARED_TYPE macro!"
118 #endif /* H5O_SHARED_TYPE */
119 #ifndef H5O_SHARED_ENCODE
120 #error "Need to define H5O_SHARED_ENCODE macro!"
121 #endif /* H5O_SHARED_ENCODE */
122 #ifndef H5O_SHARED_ENCODE_REAL
123 #error "Need to define H5O_SHARED_ENCODE_REAL macro!"
124 #endif /* H5O_SHARED_ENCODE_REAL */
125 
126  /* Sanity check */
127  HDassert(sh_mesg->type == H5O_SHARE_TYPE_UNSHARED || sh_mesg->msg_type_id == H5O_SHARED_TYPE->id);
128 
129  /* Check for message stored elsewhere */
130  if(H5O_IS_STORED_SHARED(sh_mesg->type) && !disable_shared) {
131  /* Encode shared message into buffer */
132  if(H5O__shared_encode(f, p, sh_mesg) < 0)
133  HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "unable to encode shared message")
134  } /* end if */
135  else {
136  /* Encode native message directly */
137  if(H5O_SHARED_ENCODE_REAL(f, p, _mesg) < 0)
138  HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "unable to encode native message")
139  } /* end else */
140 
141 done:
143 } /* end H5O_SHARED_ENCODE() */
144 
145 
146 /*-------------------------------------------------------------------------
147  * Function: H5O_SHARED_SIZE
148  *
149  * Purpose: Returns the length of an encoded message.
150  *
151  * Note: The actual name of this routine can be different in each source
152  * file that this header file is included in, and must be defined
153  * prior to including this header file.
154  *
155  * Return: Success: Length
156  * Failure: 0
157  *
158  * Programmer: Quincey Koziol
159  * Friday, January 19, 2007
160  *
161  *-------------------------------------------------------------------------
162  */
163 static H5_INLINE size_t
164 H5O_SHARED_SIZE(const H5F_t *f, hbool_t disable_shared, const void *_mesg)
165 {
166  const H5O_shared_t *sh_mesg = (const H5O_shared_t *)_mesg; /* Pointer to shared message portion of actual message */
167  size_t ret_value = 0; /* Return value */
168 
170 
171 #ifndef H5O_SHARED_TYPE
172 #error "Need to define H5O_SHARED_TYPE macro!"
173 #endif /* H5O_SHARED_TYPE */
174 #ifndef H5O_SHARED_SIZE
175 #error "Need to define H5O_SHARED_SIZE macro!"
176 #endif /* H5O_SHARED_SIZE */
177 #ifndef H5O_SHARED_SIZE_REAL
178 #error "Need to define H5O_SHARED_SIZE_REAL macro!"
179 #endif /* H5O_SHARED_SIZE_REAL */
180 
181  /* Check for message stored elsewhere */
182  if(H5O_IS_STORED_SHARED(sh_mesg->type) && !disable_shared) {
183  /* Retrieve encoded size of shared message */
184  if(0 == (ret_value = H5O__shared_size(f, sh_mesg)))
185  HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, 0, "unable to retrieve encoded size of shared message")
186  } /* end if */
187  else {
188  /* Retrieve size of native message directly */
189  if(0 == (ret_value = H5O_SHARED_SIZE_REAL(f, _mesg)))
190  HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, 0, "unable to retrieve encoded size of native message")
191  } /* end else */
192 
193 done:
195 } /* end H5O_SHARED_SIZE() */
196 
197 
198 /*-------------------------------------------------------------------------
199  * Function: H5O_SHARED_DELETE
200  *
201  * Purpose: Decrement reference count on any objects referenced by
202  * message
203  *
204  * Note: The actual name of this routine can be different in each source
205  * file that this header file is included in, and must be defined
206  * prior to including this header file.
207  *
208  * Return: Success: Non-negative
209  * Failure: Negative
210  *
211  * Programmer: Quincey Koziol
212  * Friday, January 19, 2007
213  *
214  *-------------------------------------------------------------------------
215  */
216 static H5_INLINE herr_t
217 H5O_SHARED_DELETE(H5F_t *f, H5O_t *open_oh, void *_mesg)
218 {
219  H5O_shared_t *sh_mesg = (H5O_shared_t *)_mesg; /* Pointer to shared message portion of actual message */
220  herr_t ret_value = SUCCEED; /* Return value */
221 
223 
224 #ifndef H5O_SHARED_TYPE
225 #error "Need to define H5O_SHARED_TYPE macro!"
226 #endif /* H5O_SHARED_TYPE */
227 #ifndef H5O_SHARED_DELETE
228 #error "Need to define H5O_SHARED_DELETE macro!"
229 #endif /* H5O_SHARED_DELETE */
230 
231  /* Check for message tracked elsewhere */
232  if(H5O_IS_TRACKED_SHARED(sh_mesg->type)) {
233  /* Decrement the reference count on the shared message/object */
234  if(H5O__shared_delete(f, open_oh, H5O_SHARED_TYPE, sh_mesg) < 0)
235  HGOTO_ERROR(H5E_OHDR, H5E_CANTDEC, FAIL, "unable to decrement ref count for shared message")
236  } /* end if */
237 #ifdef H5O_SHARED_DELETE_REAL
238  else {
239  /* Decrement the reference count on the native message directly */
240  if(H5O_SHARED_DELETE_REAL(f, open_oh, _mesg) < 0)
241  HGOTO_ERROR(H5E_OHDR, H5E_CANTDEC, FAIL, "unable to decrement ref count for native message")
242  } /* end else */
243 #endif /* H5O_SHARED_DELETE_REAL */
244 
245 done:
247 } /* end H5O_SHARED_DELETE() */
248 
249 
250 /*-------------------------------------------------------------------------
251  * Function: H5O_SHARED_LINK
252  *
253  * Purpose: Increment reference count on any objects referenced by
254  * message
255  *
256  * Note: The actual name of this routine can be different in each source
257  * file that this header file is included in, and must be defined
258  * prior to including this header file.
259  *
260  * Return: Success: Non-negative
261  * Failure: Negative
262  *
263  * Programmer: Quincey Koziol
264  * Friday, January 19, 2007
265  *
266  *-------------------------------------------------------------------------
267  */
268 static H5_INLINE herr_t
269 H5O_SHARED_LINK(H5F_t *f, H5O_t *open_oh, void *_mesg)
270 {
271  H5O_shared_t *sh_mesg = (H5O_shared_t *)_mesg; /* Pointer to shared message portion of actual message */
272  herr_t ret_value = SUCCEED; /* Return value */
273 
275 
276 #ifndef H5O_SHARED_TYPE
277 #error "Need to define H5O_SHARED_TYPE macro!"
278 #endif /* H5O_SHARED_TYPE */
279 #ifndef H5O_SHARED_LINK
280 #error "Need to define H5O_SHARED_LINK macro!"
281 #endif /* H5O_SHARED_LINK */
282 
283  /* Check for message tracked elsewhere */
284  if(H5O_IS_TRACKED_SHARED(sh_mesg->type)) {
285  /* Increment the reference count on the shared message/object */
286  if(H5O__shared_link(f, open_oh, H5O_SHARED_TYPE, sh_mesg) < 0)
287  HGOTO_ERROR(H5E_OHDR, H5E_CANTINC, FAIL, "unable to increment ref count for shared message")
288  } /* end if */
289 #ifdef H5O_SHARED_LINK_REAL
290  else {
291  /* Increment the reference count on the native message directly */
292  if(H5O_SHARED_LINK_REAL(f, open_oh, _mesg) < 0)
293  HGOTO_ERROR(H5E_OHDR, H5E_CANTINC, FAIL, "unable to increment ref count for native message")
294  } /* end else */
295 #endif /* H5O_SHARED_LINK_REAL */
296 
297 done:
299 } /* end H5O_SHARED_LINK() */
300 
301 
302 /*-------------------------------------------------------------------------
303  * Function: H5O_SHARED_COPY_FILE
304  *
305  * Purpose: Copies a message from _SRC to _DEST in file
306  *
307  * Note: The actual name of this routine can be different in each source
308  * file that this header file is included in, and must be defined
309  * prior to including this header file.
310  *
311  * Return: Success: Non-negative
312  * Failure: Negative
313  *
314  * Programmer: Quincey Koziol
315  * Friday, January 19, 2007
316  *
317  *-------------------------------------------------------------------------
318  */
319 static H5_INLINE void *
320 H5O_SHARED_COPY_FILE(H5F_t *file_src, void *_native_src, H5F_t *file_dst,
321  hbool_t *recompute_size, unsigned *mesg_flags, H5O_copy_t *cpy_info,
322  void *udata)
323 {
324  void *dst_mesg = NULL; /* Destination message */
325  void *ret_value = NULL; /* Return value */
326 
328 
329 #ifndef H5O_SHARED_TYPE
330 #error "Need to define H5O_SHARED_TYPE macro!"
331 #endif /* H5O_SHARED_TYPE */
332 #ifndef H5O_SHARED_COPY_FILE
333 #error "Need to define H5O_SHARED_COPY_FILE macro!"
334 #endif /* H5O_SHARED_COPY_FILE */
335 
336 #ifdef H5O_SHARED_COPY_FILE_REAL
337  /* Call native message's copy file callback to copy the message */
338  if(NULL == (dst_mesg = H5O_SHARED_COPY_FILE_REAL(file_src, H5O_SHARED_TYPE, _native_src, file_dst, recompute_size, cpy_info, udata)))
339  HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, NULL, "unable to copy native message to another file")
340 #else /* H5O_SHARED_COPY_FILE_REAL */
341  /* No copy file callback defined, just copy the message itself */
342  if(NULL == (dst_mesg = (H5O_SHARED_TYPE->copy)(_native_src, NULL)))
343  HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, NULL, "unable to copy native message")
344 #endif /* H5O_SHARED_COPY_FILE_REAL */
345 
346  /* Reset shared message info for new message */
347  HDmemset(dst_mesg, 0, sizeof(H5O_shared_t));
348 
349  /* Handle sharing destination message */
350  if(H5O__shared_copy_file(file_src, file_dst, H5O_SHARED_TYPE, _native_src,
351  dst_mesg, recompute_size, mesg_flags, cpy_info, udata) < 0)
352  HGOTO_ERROR(H5E_OHDR, H5E_WRITEERROR, NULL, "unable to determine if message should be shared")
353 
354  /* Set return value */
355  ret_value = dst_mesg;
356 
357 done:
358  if(!ret_value)
359  if(dst_mesg)
360  H5O_msg_free(H5O_SHARED_TYPE->id, dst_mesg);
361 
363 } /* end H5O_SHARED_COPY_FILE() */
364 
365 
366 /*-------------------------------------------------------------------------
367  * Function: H5O_SHARED_POST_COPY_FILE
368  *
369  * Purpose: Copies a message from _SRC to _DEST in file
370  *
371  * Note: The actual name of this routine can be different in each source
372  * file that this header file is included in, and must be defined
373  * prior to including this header file.
374  *
375  * Return: Success: Non-negative
376  * Failure: Negative
377  *
378  * Programmer: Peter Cao
379  * May 25, 2007
380  *
381  *-------------------------------------------------------------------------
382  */
383 static H5_INLINE herr_t
384 H5O_SHARED_POST_COPY_FILE(const H5O_loc_t H5_ATTR_NDEBUG_UNUSED *oloc_src, const void *mesg_src,
385  H5O_loc_t *oloc_dst, void *mesg_dst, unsigned *mesg_flags,
386  H5O_copy_t *cpy_info)
387 {
388  const H5O_shared_t *shared_src = (const H5O_shared_t *)mesg_src; /* Alias to shared info in native source */
389  H5O_shared_t *shared_dst = (H5O_shared_t *)mesg_dst; /* Alias to shared info in native destination */
390  herr_t ret_value = SUCCEED; /* Return value */
391 
393 
394  HDassert(oloc_src->file);
395  HDassert(oloc_dst->file);
396  HDassert(mesg_src);
397  HDassert(mesg_dst);
398  HDassert(cpy_info);
399 
400 #ifndef H5O_SHARED_TYPE
401 #error "Need to define H5O_SHARED_TYPE macro!"
402 #endif /* H5O_SHARED_TYPE */
403 #ifndef H5O_SHARED_POST_COPY_FILE
404 #error "Need to define H5O_SHARED_POST_COPY_FILE macro!"
405 #endif /* H5O_SHARED_POST_COPY_FILE */
406 
407 #ifdef H5O_SHARED_POST_COPY_FILE_REAL
408  /* Call native message's post copy file callback to copy the message */
409  if(H5O_SHARED_POST_COPY_FILE_REAL(oloc_src, mesg_src, oloc_dst, mesg_dst, cpy_info) <0 )
410  HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to copy native message to another file")
411 #endif /* H5O_SHARED_POST_COPY_FILE_REAL */
412 
413  /* Update shared message after the post copy - will short circuit in
414  * production if the DEFER pass determined it will not be shared; debug mode
415  * verifies that it is indeed the case */
416  if(H5O__shared_post_copy_file(oloc_dst->file, H5O_SHARED_TYPE,
417  shared_src, shared_dst, mesg_flags, cpy_info) < 0)
418  HGOTO_ERROR(H5E_OHDR, H5E_WRITEERROR, FAIL, "unable to fix shared message in post copy")
419 
420 #ifdef H5O_SHARED_POST_COPY_FILE_UPD
421  /* Call native message's post copy file update callback to update the
422  * message */
423  if(H5O_SHARED_POST_COPY_FILE_UPD(oloc_src, mesg_src, oloc_dst, mesg_dst, cpy_info) < 0)
424  HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to update native message")
425 #endif /* H5O_SHARED_POST_COPY_FILE_UPD */
426 
427  /* Make sure that if the the source or destination is committed, both are
428  * committed */
429  HDassert((shared_src->type == H5O_SHARE_TYPE_COMMITTED)
430  == (shared_dst->type == H5O_SHARE_TYPE_COMMITTED));
431 
432 done:
434 } /* end H5O_SHARED_POST_COPY_FILE() */
435 
436 
437 /*-------------------------------------------------------------------------
438  * Function: H5O_SHARED_DEBUG
439  *
440  * Purpose: Prints debugging info for a potentially shared message.
441  *
442  * Note: The actual name of this routine can be different in each source
443  * file that this header file is included in, and must be defined
444  * prior to including this header file.
445  *
446  * Return: Success: Non-negative
447  * Failure: Negative
448  *
449  * Programmer: Quincey Koziol
450  * Saturday, February 3, 2007
451  *
452  *-------------------------------------------------------------------------
453  */
454 static H5_INLINE herr_t
455 H5O_SHARED_DEBUG(H5F_t *f, const void *_mesg, FILE *stream, int indent,
456  int fwidth)
457 {
458  const H5O_shared_t *sh_mesg = (const H5O_shared_t *)_mesg; /* Pointer to shared message portion of actual message */
459  herr_t ret_value = SUCCEED; /* Return value */
460 
462 
463 #ifndef H5O_SHARED_TYPE
464 #error "Need to define H5O_SHARED_TYPE macro!"
465 #endif /* H5O_SHARED_TYPE */
466 #ifndef H5O_SHARED_DEBUG
467 #error "Need to define H5O_SHARED_DEBUG macro!"
468 #endif /* H5O_SHARED_DEBUG */
469 #ifndef H5O_SHARED_DEBUG_REAL
470 #error "Need to define H5O_SHARED_DEBUG_REAL macro!"
471 #endif /* H5O_SHARED_DEBUG_REAL */
472 
473  /* Check for message stored elsewhere */
474  if(H5O_IS_STORED_SHARED(sh_mesg->type)) {
475  /* Print shared message information */
476  if(H5O__shared_debug(sh_mesg, stream, indent, fwidth) < 0)
477  HGOTO_ERROR(H5E_OHDR, H5E_WRITEERROR, FAIL, "unable to display shared message info")
478  } /* end if */
479 
480  /* Call native message's debug callback */
481  if(H5O_SHARED_DEBUG_REAL(f, _mesg, stream, indent, fwidth) < 0)
482  HGOTO_ERROR(H5E_OHDR, H5E_WRITEERROR, FAIL, "unable to display native message info")
483 
484 done:
486 } /* end H5O_SHARED_DEBUG() */
487 
488 #endif /* H5Oshared_H */
489 
H5O_SHARED_DELETE
#define H5O_SHARED_DELETE
Definition: H5Oattr.c:54
H5O_loc_t
Definition: H5Oprivate.h:152
HGOTO_ERROR
#define HGOTO_ERROR(maj, min, ret_val,...)
Definition: H5Eprivate.h:65
f
hdr f
Definition: H5EA.c:755
H5E_CANTGET
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed Write failed Close failed Address overflowed File Unable to initialize object Object already initialized Unable to release object Unable to find atom Unable to find ID group information Unable to register new atom Unable to increment reference count Unable to decrement reference count Out of IDs for group Unable to flush data from cache Unable to mark metadata as unserialized Unable to serialize data from cache Unable to tag metadata in the cache Unable to load metadata into cache Protected metadata error Metadata not currently cached Internal error detected Unable to insert metadata into cache Unable to protect metadata Unable to unprotect metadata Unable to pin cache entry Unable to un pin cache entry Unable to mark a pinned entry as dirty Unable to mark a pinned entry as clean Unable to mark an entry as unserialized Unable to mark an entry as serialized Unable to mark metadata as dirty Unable to mark metadata as clean Unable to expunge a metadata cache entry Unable to resize a metadata cache entry Unable to create a flush dependency Unable to destroy a flush dependency Unable to notify object about action Failure in the cache logging framework Unable to cork an object Unable to uncork an object Object not found Object already exists Unable to encode value Unable to decode value Unable to split node Unable to redistribute records Unable to swap records Unable to insert object Unable to list node Unable to modify record Unable to remove object Bad object header link count Wrong version number Alignment error Unrecognized message Can t delete message Iteration failed Can t pack messages Can t reset object Unable to rename object Can t open object Can t close object Name component is too long Problem with path to object Can t convert datatypes Bad size for object Can t clip hyperslab region Can t count elements Can t select hyperslab Can t move to next iterator location Invalid selection Can t compare objects Internal states are inconsistent Can t append object H5E_CANTGET
Definition: H5err.txt:235
H5O_shared_t
Definition: H5Oprivate.h:268
H5E_CANTCOPY
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space H5E_CANTCOPY
Definition: H5err.txt:119
H5O_IS_STORED_SHARED
#define H5O_IS_STORED_SHARED(T)
Definition: H5Oprivate.h:247
H5O__shared_size
H5_DLL size_t H5O__shared_size(const H5F_t *f, const H5O_shared_t *sh_mesg)
Definition: H5Oshared.c:481
H5_ATTR_NDEBUG_UNUSED
#define H5_ATTR_NDEBUG_UNUSED
Definition: H5private.h:334
H5O_SHARE_TYPE_UNSHARED
#define H5O_SHARE_TYPE_UNSHARED
Definition: H5Oprivate.h:241
H5O_SHARE_TYPE_COMMITTED
#define H5O_SHARE_TYPE_COMMITTED
Definition: H5Oprivate.h:243
H5O_SHARED_DECODE
#define H5O_SHARED_DECODE
Definition: H5Oattr.c:48
SUCCEED
#define SUCCEED
Definition: H5private.h:351
FUNC_LEAVE_NOAPI
#define FUNC_LEAVE_NOAPI(ret_value)
Definition: H5private.h:2335
indent
*s *s indent
Definition: H5HLdbg.c:111
H5O_SHARED_SIZE_REAL
#define H5O_SHARED_SIZE_REAL
Definition: H5Oattr.c:53
ret_value
ret_value
Definition: H5EAcache.c:412
H5E_CANTDECODE
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed Write failed Close failed Address overflowed File Unable to initialize object Object already initialized Unable to release object Unable to find atom Unable to find ID group information Unable to register new atom Unable to increment reference count Unable to decrement reference count Out of IDs for group Unable to flush data from cache Unable to mark metadata as unserialized Unable to serialize data from cache Unable to tag metadata in the cache Unable to load metadata into cache Protected metadata error Metadata not currently cached Internal error detected Unable to insert metadata into cache Unable to protect metadata Unable to unprotect metadata Unable to pin cache entry Unable to un pin cache entry Unable to mark a pinned entry as dirty Unable to mark a pinned entry as clean Unable to mark an entry as unserialized Unable to mark an entry as serialized Unable to mark metadata as dirty Unable to mark metadata as clean Unable to expunge a metadata cache entry Unable to resize a metadata cache entry Unable to create a flush dependency Unable to destroy a flush dependency Unable to notify object about action Failure in the cache logging framework Unable to cork an object Unable to uncork an object Object not found Object already exists Unable to encode value H5E_CANTDECODE
Definition: H5err.txt:194
H5O__shared_decode
H5_DLL void * H5O__shared_decode(H5F_t *f, H5O_t *open_oh, unsigned *ioflags, const uint8_t *buf, const H5O_msg_class_t *type)
Definition: H5Oshared.c:314
H5E_WRITEERROR
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed H5E_WRITEERROR
Definition: H5err.txt:143
uint8_t
unsigned char uint8_t
Definition: H5private.h:429
H5O__shared_post_copy_file
H5_DLL herr_t H5O__shared_post_copy_file(H5F_t *f, const H5O_msg_class_t *mesg_type, const H5O_shared_t *shared_src, H5O_shared_t *shared_dst, unsigned *mesg_flags, H5O_copy_t *cpy_info)
Definition: H5Oshared.c:663
H5O_msg_free
void * H5O_msg_free(unsigned type_id, void *mesg)
Definition: H5Omessage.c:648
HDassert
#define HDassert(X)
Definition: H5private.h:669
H5E_OHDR
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 H5E_OHDR
Definition: H5err.txt:58
H5O_SHARED_COPY_FILE_REAL
#define H5O_SHARED_COPY_FILE_REAL
Definition: H5Oattr.c:59
H5E_CANTENCODE
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed Write failed Close failed Address overflowed File Unable to initialize object Object already initialized Unable to release object Unable to find atom Unable to find ID group information Unable to register new atom Unable to increment reference count Unable to decrement reference count Out of IDs for group Unable to flush data from cache Unable to mark metadata as unserialized Unable to serialize data from cache Unable to tag metadata in the cache Unable to load metadata into cache Protected metadata error Metadata not currently cached Internal error detected Unable to insert metadata into cache Unable to protect metadata Unable to unprotect metadata Unable to pin cache entry Unable to un pin cache entry Unable to mark a pinned entry as dirty Unable to mark a pinned entry as clean Unable to mark an entry as unserialized Unable to mark an entry as serialized Unable to mark metadata as dirty Unable to mark metadata as clean Unable to expunge a metadata cache entry Unable to resize a metadata cache entry Unable to create a flush dependency Unable to destroy a flush dependency Unable to notify object about action Failure in the cache logging framework Unable to cork an object Unable to uncork an object Object not found Object already exists H5E_CANTENCODE
Definition: H5err.txt:193
H5O_t
Definition: H5Opkg.h:279
H5O_MSG_FLAG_SHARED
#define H5O_MSG_FLAG_SHARED
Definition: H5Oprivate.h:76
H5O_SHARED_TYPE
#define H5O_SHARED_TYPE
Definition: H5Oattr.c:47
H5O_SHARED_ENCODE_REAL
#define H5O_SHARED_ENCODE_REAL
Definition: H5Oattr.c:51
H5E_CANTDEC
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed Write failed Close failed Address overflowed File Unable to initialize object Object already initialized Unable to release object Unable to find atom Unable to find ID group information Unable to register new atom Unable to increment reference count H5E_CANTDEC
Definition: H5err.txt:158
H5_INLINE
#define H5_INLINE
Definition: H5private.h:207
H5O_shared_t::type
unsigned type
Definition: H5Oprivate.h:269
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_copy_t
Definition: H5Oprivate.h:172
H5O_SHARED_COPY_FILE
#define H5O_SHARED_COPY_FILE
Definition: H5Oattr.c:58
H5O__shared_link
H5_DLL herr_t H5O__shared_link(H5F_t *f, H5O_t *open_oh, const H5O_msg_class_t *mesg_type, H5O_shared_t *sh_mesg)
Definition: H5Oshared.c:559
H5O_IS_TRACKED_SHARED
#define H5O_IS_TRACKED_SHARED(T)
Definition: H5Oprivate.h:250
FAIL
#define FAIL
Definition: H5private.h:352
fwidth
*s *s fwidth
Definition: H5HLdbg.c:111
H5O_SHARED_LINK
#define H5O_SHARED_LINK
Definition: H5Oattr.c:56
H5O__shared_delete
H5_DLL herr_t H5O__shared_delete(H5F_t *f, H5O_t *open_oh, const H5O_msg_class_t *mesg_type, H5O_shared_t *sh_mesg)
Definition: H5Oshared.c:516
H5O_SHARED_SIZE
#define H5O_SHARED_SIZE
Definition: H5Oattr.c:52
FUNC_ENTER_STATIC
#define FUNC_ENTER_STATIC
Definition: H5private.h:2261
H5O__shared_encode
H5_DLL herr_t H5O__shared_encode(const H5F_t *f, uint8_t *buf, const H5O_shared_t *sh_mesg)
Definition: H5Oshared.c:402
H5O__shared_copy_file
H5_DLL herr_t H5O__shared_copy_file(H5F_t *file_src, H5F_t *file_dst, const H5O_msg_class_t *mesg_type, const void *_native_src, void *_native_dst, hbool_t *recompute_size, unsigned *mesg_flags, H5O_copy_t *cpy_info, void *udata)
H5E_CANTINC
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized Feature is unsupported Inappropriate type Out of range Bad value No space available for allocation Can t allocate space Unable to copy object Unable to free object Object already exists Unable to lock object Unable to unlock object Unable to garbage collect Unable to compute size Object is already open File already exists File already open Unable to create file Unable to open file Unable to close file Not an HDF5 file Bad file ID accessed File has been truncated File mount error Unable to delete file Seek failed Read failed Write failed Close failed Address overflowed File Unable to initialize object Object already initialized Unable to release object Unable to find atom Unable to find ID group information Unable to register new atom H5E_CANTINC
Definition: H5err.txt:157
H5O_SHARED_DEBUG
#define H5O_SHARED_DEBUG
Definition: H5Oattr.c:63
FUNC_ENTER_NOAPI_NOINIT
#define FUNC_ENTER_NOAPI_NOINIT
Definition: H5private.h:2174
H5O_DECODEIO_DIRTY
#define H5O_DECODEIO_DIRTY
Definition: H5Opkg.h:171
H5F_t
Definition: H5Fpkg.h:374
H5O_SHARED_ENCODE
#define H5O_SHARED_ENCODE
Definition: H5Oattr.c:50
H5O_shared_t::msg_type_id
unsigned msg_type_id
Definition: H5Oprivate.h:271
H5O_SHARED_DEBUG_REAL
#define H5O_SHARED_DEBUG_REAL
Definition: H5Oattr.c:64
HDmemset
#define HDmemset(X, C, Z)
Definition: H5private.h:1132
herr_t
int herr_t
Definition: H5public.h:128
H5O_SHARED_POST_COPY_FILE_REAL
#define H5O_SHARED_POST_COPY_FILE_REAL
Definition: H5Oattr.c:61
hbool_t
bool hbool_t
Definition: H5public.h:159
H5O_SHARED_LINK_REAL
#define H5O_SHARED_LINK_REAL
Definition: H5Oattr.c:57
H5O_SHARED_POST_COPY_FILE_UPD
#define H5O_SHARED_POST_COPY_FILE_UPD
Definition: H5Odtype.c:67
H5E_UNSUPPORTED
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 Generic low level file I O errors Function entry exit interface errors Object atom related errors Cache related errors Link related errors B tree related errors Object header related errors Group related errors Datatype conversion errors Dataspace errors Property list errors Parallel MPI errors Heap errors Free space errors I O pipeline errors System level errors Plugin errors No error Information is uinitialized H5E_UNSUPPORTED
Definition: H5err.txt:111
H5O_SHARED_DELETE_REAL
#define H5O_SHARED_DELETE_REAL
Definition: H5Oattr.c:55
H5O__shared_debug
H5_DLL herr_t H5O__shared_debug(const H5O_shared_t *mesg, FILE *stream, int indent, int fwidth)
Definition: H5Oshared.c:715
if
if(NULL==(iblock=H5EA__iblock_protect(hdr, thing_acc)))
Definition: H5EA.c:408
H5O_SHARED_DECODE_REAL
#define H5O_SHARED_DECODE_REAL
Definition: H5Oattr.c:49