diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2018-04-29 08:04:21 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2018-04-29 08:04:21 (GMT) |
commit | 01f196b31a03f072b685f998b0805c1f90322c2b (patch) | |
tree | 6e1cae004705ade1c870e4c6612a76b55be3c331 /src/H5Olinfo.c | |
parent | da4b69097756158fdbfcbf52b5b552e2034d263d (diff) | |
parent | b3c5284692093953132c6c8227e0980b670bf4ad (diff) | |
download | hdf5-01f196b31a03f072b685f998b0805c1f90322c2b.zip hdf5-01f196b31a03f072b685f998b0805c1f90322c2b.tar.gz hdf5-01f196b31a03f072b685f998b0805c1f90322c2b.tar.bz2 |
Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into merge_hyperslab_updates
Diffstat (limited to 'src/H5Olinfo.c')
-rw-r--r-- | src/H5Olinfo.c | 141 |
1 files changed, 68 insertions, 73 deletions
diff --git a/src/H5Olinfo.c b/src/H5Olinfo.c index 62e63d4..4903d9f 100644 --- a/src/H5Olinfo.c +++ b/src/H5Olinfo.c @@ -5,12 +5,10 @@ * * * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /*------------------------------------------------------------------------- @@ -38,22 +36,21 @@ /* PRIVATE PROTOTYPES */ -static void *H5O_linfo_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, - unsigned mesg_flags, unsigned *ioflags, const uint8_t *p); +static void *H5O__linfo_decode(H5F_t *f, H5O_t *open_oh, unsigned mesg_flags, + unsigned *ioflags, size_t p_size, const uint8_t *p); static herr_t H5O_linfo_encode(H5F_t *f, hbool_t disable_shared, uint8_t *p, const void *_mesg); static void *H5O_linfo_copy(const void *_mesg, void *_dest); static size_t H5O_linfo_size(const H5F_t *f, hbool_t disable_shared, const void *_mesg); -static herr_t H5O_linfo_free(void *_mesg); -static herr_t H5O_linfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, - void *_mesg); -static void *H5O_linfo_copy_file(H5F_t *file_src, void *native_src, - H5F_t *file_dst, hbool_t *recompute_size, unsigned *mesg_flags, - H5O_copy_t *cpy_info, void *udata, hid_t dxpl_id); -static herr_t H5O_linfo_post_copy_file(const H5O_loc_t *parent_src_oloc, - const void *mesg_src, H5O_loc_t *dst_oloc, void *mesg_dst, - unsigned *mesg_flags, hid_t dxpl_id, H5O_copy_t *cpy_info); -static herr_t H5O_linfo_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, - FILE * stream, int indent, int fwidth); +static herr_t H5O__linfo_free(void *_mesg); +static herr_t H5O__linfo_delete(H5F_t *f, H5O_t *open_oh, void *_mesg); +static void *H5O__linfo_copy_file(H5F_t *file_src, void *native_src, + H5F_t *file_dst, hbool_t *recompute_size, unsigned *mesg_flags, + H5O_copy_t *cpy_info, void *udata); +static herr_t H5O__linfo_post_copy_file(const H5O_loc_t *parent_src_oloc, + const void *mesg_src, H5O_loc_t *dst_oloc, void *mesg_dst, + unsigned *mesg_flags, H5O_copy_t *cpy_info); +static herr_t H5O__linfo_debug(H5F_t *f, const void *_mesg, + FILE * stream, int indent, int fwidth); /* This message derives from H5O message class */ const H5O_msg_class_t H5O_MSG_LINFO[1] = {{ @@ -61,22 +58,22 @@ const H5O_msg_class_t H5O_MSG_LINFO[1] = {{ "linfo", /*message name for debugging */ sizeof(H5O_linfo_t), /*native message size */ 0, /* messages are sharable? */ - H5O_linfo_decode, /*decode message */ + H5O__linfo_decode, /*decode message */ H5O_linfo_encode, /*encode message */ H5O_linfo_copy, /*copy the native value */ H5O_linfo_size, /*size of symbol table entry */ NULL, /*default reset method */ - H5O_linfo_free, /* free method */ - H5O_linfo_delete, /* file delete method */ + H5O__linfo_free, /* free method */ + H5O__linfo_delete, /* file delete method */ NULL, /* link method */ NULL, /*set share method */ NULL, /*can share method */ NULL, /* pre copy native value to file */ - H5O_linfo_copy_file, /* copy native value to file */ - H5O_linfo_post_copy_file, /* post copy native value to file */ + H5O__linfo_copy_file, /* copy native value to file */ + H5O__linfo_post_copy_file, /* post copy native value to file */ NULL, /* get creation index */ NULL, /* set creation index */ - H5O_linfo_debug /*debug the message */ + H5O__linfo_debug /*debug the message */ }}; /* Current version of link info information */ @@ -92,7 +89,6 @@ typedef struct { const H5O_loc_t *src_oloc; /* Source object location */ H5O_loc_t *dst_oloc; /* Destination object location */ H5O_linfo_t *dst_linfo; /* Destination object's link info message */ - hid_t dxpl_id; /* DXPL for operation */ H5O_copy_t *cpy_info; /* Information for copy operation */ } H5O_linfo_postcopy_ud_t; @@ -101,7 +97,7 @@ H5FL_DEFINE_STATIC(H5O_linfo_t); /*------------------------------------------------------------------------- - * Function: H5O_linfo_decode + * Function: H5O__linfo_decode * * Purpose: Decode a message and return a pointer to a newly allocated one. * @@ -115,14 +111,15 @@ H5FL_DEFINE_STATIC(H5O_linfo_t); *------------------------------------------------------------------------- */ static void * -H5O_linfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, - unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p) +H5O__linfo_decode(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh, + unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, + size_t H5_ATTR_UNUSED p_size, const uint8_t *p) { H5O_linfo_t *linfo = NULL; /* Link info */ unsigned char index_flags; /* Flags for encoding link index info */ void *ret_value = NULL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* check args */ HDassert(f); @@ -134,7 +131,7 @@ H5O_linfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *o /* Allocate space for message */ if(NULL == (linfo = H5FL_MALLOC(H5O_linfo_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Get the index flags for the group */ index_flags = *p++; @@ -173,7 +170,7 @@ done: linfo = H5FL_FREE(H5O_linfo_t, linfo); FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_linfo_decode() */ +} /* end H5O__linfo_decode() */ /*------------------------------------------------------------------------- @@ -257,7 +254,7 @@ H5O_linfo_copy(const void *_mesg, void *_dest) /* check args */ HDassert(linfo); if(!dest && NULL == (dest = H5FL_MALLOC(H5O_linfo_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* copy */ *dest = *linfo; @@ -307,9 +304,9 @@ H5O_linfo_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void /*------------------------------------------------------------------------- - * Function: H5O_linfo_free + * Function: H5O__linfo_free * - * Purpose: Free's the message + * Purpose: Frees the message * * Return: Non-negative on success/Negative on failure * @@ -319,20 +316,20 @@ H5O_linfo_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *------------------------------------------------------------------------- */ static herr_t -H5O_linfo_free(void *mesg) +H5O__linfo_free(void *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOERR + FUNC_ENTER_STATIC_NOERR HDassert(mesg); mesg = H5FL_FREE(H5O_linfo_t, mesg); FUNC_LEAVE_NOAPI(SUCCEED) -} /* end H5O_linfo_free() */ +} /* end H5O__linfo_free() */ /*------------------------------------------------------------------------- - * Function: H5O_linfo_delete + * Function: H5O__linfo_delete * * Purpose: Free file space referenced by message * @@ -344,12 +341,12 @@ H5O_linfo_free(void *mesg) *------------------------------------------------------------------------- */ static herr_t -H5O_linfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *_mesg) +H5O__linfo_delete(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh, void *_mesg) { H5O_linfo_t *linfo = (H5O_linfo_t *)_mesg; herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* check args */ HDassert(f); @@ -357,16 +354,16 @@ H5O_linfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *_ /* If the group is using "dense" link storage, delete it */ if(H5F_addr_defined(linfo->fheap_addr)) - if(H5G__dense_delete(f, dxpl_id, linfo, TRUE) < 0) + if(H5G__dense_delete(f, linfo, TRUE) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to free dense link storage") done: FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_linfo_delete() */ +} /* end H5O__linfo_delete() */ /*------------------------------------------------------------------------- - * Function: H5O_linfo_copy_file + * Function: H5O__linfo_copy_file * * Purpose: Copies a message from _MESG to _DEST in file * @@ -380,16 +377,16 @@ done: *------------------------------------------------------------------------- */ static void * -H5O_linfo_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *native_src, H5F_t *file_dst, +H5O__linfo_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *native_src, H5F_t *file_dst, hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags, - H5O_copy_t *cpy_info, void *_udata, hid_t dxpl_id) + H5O_copy_t *cpy_info, void *_udata) { H5O_linfo_t *linfo_src = (H5O_linfo_t *) native_src; H5O_linfo_t *linfo_dst = NULL; H5G_copy_file_ud_t *udata = (H5G_copy_file_ud_t *) _udata; void *ret_value = NULL; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT_TAG(dxpl_id, H5AC__COPIED_TAG, NULL) + FUNC_ENTER_STATIC_TAG(H5AC__COPIED_TAG) /* check args */ HDassert(linfo_src); @@ -417,7 +414,7 @@ H5O_linfo_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *native_src, H5F_t *fil */ if(H5F_addr_defined(linfo_src->fheap_addr)) { /* Create the dense link storage */ - if(H5G__dense_create(file_dst, dxpl_id, linfo_dst, udata->common.src_pline) < 0) + if(H5G__dense_create(file_dst, linfo_dst, udata->common.src_pline) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, NULL, "unable to create 'dense' form of new format group") } /* end if */ } /* end else */ @@ -430,12 +427,12 @@ done: if(linfo_dst) linfo_dst = H5FL_FREE(H5O_linfo_t, linfo_dst); - FUNC_LEAVE_NOAPI_TAG(ret_value, NULL) -} /* H5O_linfo_copy_file() */ + FUNC_LEAVE_NOAPI_TAG(ret_value) +} /* H5O__linfo_copy_file() */ /*------------------------------------------------------------------------- - * Function: H5O_linfo_post_copy_file_cb + * Function: H5O__linfo_post_copy_file_cb * * Purpose: Callback routine for copying links from src to dst file * during "post copy" routine @@ -450,35 +447,34 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5O_linfo_post_copy_file_cb(const H5O_link_t *src_lnk, void *_udata) +H5O__linfo_post_copy_file_cb(const H5O_link_t *src_lnk, void *_udata) { H5O_linfo_postcopy_ud_t *udata = (H5O_linfo_postcopy_ud_t *)_udata; /* 'User data' passed in */ H5O_link_t dst_lnk; /* Destination link to insert */ hbool_t dst_lnk_init = FALSE; /* Whether the destination link is initialized */ herr_t ret_value = H5_ITER_CONT; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* Check arguments */ HDassert(src_lnk); HDassert(udata); /* Copy the link (and the object it points to) */ - if(H5L_link_copy_file(udata->dst_oloc->file, udata->dxpl_id, src_lnk, - udata->src_oloc, &dst_lnk, udata->cpy_info) < 0) + if(H5L__link_copy_file(udata->dst_oloc->file, src_lnk, udata->src_oloc, &dst_lnk, udata->cpy_info) < 0) HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, H5_ITER_ERROR, "unable to copy link") dst_lnk_init = TRUE; - /* Set metadata tag in dxpl_id */ - H5_BEGIN_TAG(udata->dxpl_id, H5AC__COPIED_TAG, FAIL); + /* Set metadata tag in API context */ + H5_BEGIN_TAG(H5AC__COPIED_TAG); /* Insert the new object in the destination file's group */ /* (Doesn't increment the link count - that's already been taken care of for hard links) */ - if(H5G__dense_insert(udata->dst_oloc->file, udata->dxpl_id, udata->dst_linfo, &dst_lnk) < 0) + if(H5G__dense_insert(udata->dst_oloc->file, udata->dst_linfo, &dst_lnk) < 0) HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTINSERT, H5_ITER_ERROR, "unable to insert destination link") - /* Reset metadata tag in dxpl_id */ - H5_END_TAG(FAIL); + /* Reset metadata tag in API context */ + H5_END_TAG done: /* Check if the destination link has been initialized */ @@ -486,11 +482,11 @@ done: H5O_msg_reset(H5O_LINK_ID, &dst_lnk); FUNC_LEAVE_NOAPI(ret_value) -} /* end H5O_linfo_post_copy_file_cb() */ +} /* end H5O__linfo_post_copy_file_cb() */ /*------------------------------------------------------------------------- - * Function: H5O_linfo_post_copy_file + * Function: H5O__linfo_post_copy_file * * Purpose: Finish copying a message from between files * @@ -502,15 +498,15 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5O_linfo_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src, +H5O__linfo_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src, H5O_loc_t *dst_oloc, void *mesg_dst, unsigned H5_ATTR_UNUSED *mesg_flags, - hid_t dxpl_id, H5O_copy_t *cpy_info) + H5O_copy_t *cpy_info) { const H5O_linfo_t *linfo_src = (const H5O_linfo_t *)mesg_src; H5O_linfo_t *linfo_dst = (H5O_linfo_t *)mesg_dst; herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT + FUNC_ENTER_STATIC /* check args */ HDassert(src_oloc && src_oloc->file); @@ -532,21 +528,20 @@ H5O_linfo_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src, udata.src_oloc = src_oloc; udata.dst_oloc = dst_oloc; udata.dst_linfo = linfo_dst; - udata.dxpl_id = dxpl_id; udata.cpy_info = cpy_info; /* Iterate over the links in the group, building a table of the link messages */ - if(H5G__dense_iterate(src_oloc->file, dxpl_id, linfo_src, H5_INDEX_NAME, H5_ITER_NATIVE, (hsize_t)0, NULL, H5O_linfo_post_copy_file_cb, &udata) < 0) + if(H5G__dense_iterate(src_oloc->file, linfo_src, H5_INDEX_NAME, H5_ITER_NATIVE, (hsize_t)0, NULL, H5O__linfo_post_copy_file_cb, &udata) < 0) HGOTO_ERROR(H5E_SYM, H5E_CANTNEXT, FAIL, "error iterating over links") } /* end if */ done: FUNC_LEAVE_NOAPI(ret_value) -} /* H5O_linfo_post_copy_file() */ +} /* H5O__linfo_post_copy_file() */ /*------------------------------------------------------------------------- - * Function: H5O_linfo_debug + * Function: H5O__linfo_debug * * Purpose: Prints debugging info for a message. * @@ -559,12 +554,12 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5O_linfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream, - int indent, int fwidth) +H5O__linfo_debug(H5F_t H5_ATTR_UNUSED *f, const void *_mesg, FILE * stream, + int indent, int fwidth) { const H5O_linfo_t *linfo = (const H5O_linfo_t *) _mesg; - FUNC_ENTER_NOAPI_NOINIT_NOERR + FUNC_ENTER_STATIC_NOERR /* check args */ HDassert(f); @@ -590,5 +585,5 @@ H5O_linfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const voi FUNC_LEAVE_NOAPI(SUCCEED) -} /* end H5O_linfo_debug() */ +} /* end H5O__linfo_debug() */ |