mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r28950] - remove META_FLUSH_COLLECTIVELY property for delayed sanity checks from metadata dxpls
- remove H5AC_ind_dxpl_id and use only H5AC_dxpl_id everywhere instead. - remove flush_me_collectively flag from cache entries - add a collective sanity check (MPI_Barrier) for every HDF5 API routine that could possibly touch the file. This is trigerred when the environment variable H5_COLL_API_SANITY_CHECK is set to a non 0 digit. tested on BB-8 with serial and parallel.
This commit is contained in:
parent
8ca4c2f44b
commit
91aeb766fa
81
src/H5A.c
81
src/H5A.c
@ -273,7 +273,7 @@ H5Acreate2(hid_t loc_id, const char *attr_name, hid_t type_id, hid_t space_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data space")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Go do the real work for attaching the attribute to the object */
|
/* Go do the real work for attaching the attribute to the object */
|
||||||
@ -365,8 +365,8 @@ H5Acreate_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
H5G_loc_reset(&obj_loc);
|
H5G_loc_reset(&obj_loc);
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
dxpl_id = H5AC_ind_dxpl_id;
|
dxpl_id = H5AC_dxpl_id;
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Find the object's location */
|
/* Find the object's location */
|
||||||
@ -374,11 +374,6 @@ H5Acreate_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
|
||||||
dxpl_id = H5AC_dxpl_id;
|
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
|
||||||
|
|
||||||
/* Go do the real work for attaching the attribute to the dataset */
|
/* Go do the real work for attaching the attribute to the dataset */
|
||||||
if(NULL == (attr = H5A_create(&obj_loc, attr_name, type, space, acpl_id, dxpl_id)))
|
if(NULL == (attr = H5A_create(&obj_loc, attr_name, type, space, acpl_id, dxpl_id)))
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to create attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to create attribute")
|
||||||
@ -421,7 +416,7 @@ H5Aopen(hid_t loc_id, const char *attr_name, hid_t aapl_id)
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5A_t *attr = NULL; /* Attribute opened */
|
H5A_t *attr = NULL; /* Attribute opened */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hid_t ret_value;
|
hid_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -436,7 +431,7 @@ H5Aopen(hid_t loc_id, const char *attr_name, hid_t aapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Read in attribute from object header */
|
/* Read in attribute from object header */
|
||||||
@ -488,7 +483,7 @@ H5Aopen_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5A_t *attr = NULL; /* Attribute opened */
|
H5A_t *attr = NULL; /* Attribute opened */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hid_t ret_value;
|
hid_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -510,7 +505,7 @@ H5Aopen_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the attribute on the object header */
|
/* Open the attribute on the object header */
|
||||||
@ -561,7 +556,7 @@ H5Aopen_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
{
|
{
|
||||||
H5A_t *attr = NULL; /* Attribute opened */
|
H5A_t *attr = NULL; /* Attribute opened */
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hid_t ret_value; /* Return value */
|
hid_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -586,7 +581,7 @@ H5Aopen_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the attribute in the object header */
|
/* Open the attribute in the object header */
|
||||||
@ -628,6 +623,8 @@ H5Awrite(hid_t attr_id, hid_t dtype_id, const void *buf)
|
|||||||
{
|
{
|
||||||
H5A_t *attr; /* Attribute object for ID */
|
H5A_t *attr; /* Attribute object for ID */
|
||||||
H5T_t *mem_type; /* Memory datatype */
|
H5T_t *mem_type; /* Memory datatype */
|
||||||
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
|
hid_t aapl_id = H5P_DEFAULT; /* temp access plist */
|
||||||
herr_t ret_value; /* Return value */
|
herr_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -641,6 +638,10 @@ H5Awrite(hid_t attr_id, hid_t dtype_id, const void *buf)
|
|||||||
if(NULL == buf)
|
if(NULL == buf)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer")
|
||||||
|
|
||||||
|
/* Verify access property list and get correct dxpl */
|
||||||
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, attr_id, TRUE) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Go write the actual data to the attribute */
|
/* Go write the actual data to the attribute */
|
||||||
if((ret_value = H5A__write(attr, mem_type, buf, H5AC_dxpl_id)) < 0)
|
if((ret_value = H5A__write(attr, mem_type, buf, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_WRITEERROR, FAIL, "unable to write attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_WRITEERROR, FAIL, "unable to write attribute")
|
||||||
@ -671,6 +672,8 @@ H5Aread(hid_t attr_id, hid_t dtype_id, void *buf)
|
|||||||
{
|
{
|
||||||
H5A_t *attr; /* Attribute object for ID */
|
H5A_t *attr; /* Attribute object for ID */
|
||||||
H5T_t *mem_type; /* Memory datatype */
|
H5T_t *mem_type; /* Memory datatype */
|
||||||
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
|
hid_t aapl_id = H5P_DEFAULT; /* temp access plist */
|
||||||
herr_t ret_value; /* Return value */
|
herr_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -684,8 +687,12 @@ H5Aread(hid_t attr_id, hid_t dtype_id, void *buf)
|
|||||||
if(NULL == buf)
|
if(NULL == buf)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer")
|
||||||
|
|
||||||
|
/* Verify access property list and get correct dxpl */
|
||||||
|
if(H5P_verify_apl_and_dxpl(&aapl_id, H5P_CLS_AACC, &dxpl_id, attr_id, FALSE) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Go write the actual data to the attribute */
|
/* Go write the actual data to the attribute */
|
||||||
if((ret_value = H5A__read(attr, mem_type, buf, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5A__read(attr, mem_type, buf, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_READERROR, FAIL, "unable to read attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_READERROR, FAIL, "unable to read attribute")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -898,7 +905,7 @@ H5Aget_name_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5A_t *attr = NULL; /* Attribute object for name */
|
H5A_t *attr = NULL; /* Attribute object for name */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
ssize_t ret_value; /* Return value */
|
ssize_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -918,7 +925,7 @@ H5Aget_name_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the attribute on the object header */
|
/* Open the attribute on the object header */
|
||||||
@ -1036,7 +1043,7 @@ H5Aget_info_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5A_t *attr = NULL; /* Attribute object for name */
|
H5A_t *attr = NULL; /* Attribute object for name */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1055,7 +1062,7 @@ H5Aget_info_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid info pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid info pointer")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the attribute on the object header */
|
/* Open the attribute on the object header */
|
||||||
@ -1095,7 +1102,7 @@ H5Aget_info_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5A_t *attr = NULL; /* Attribute object for name */
|
H5A_t *attr = NULL; /* Attribute object for name */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1117,7 +1124,7 @@ H5Aget_info_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid info pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid info pointer")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the attribute on the object header */
|
/* Open the attribute on the object header */
|
||||||
@ -1216,7 +1223,7 @@ H5Arename_by_name(hid_t loc_id, const char *obj_name, const char *old_attr_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no new attribute name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no new attribute name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Avoid thrashing things if the names are the same */
|
/* Avoid thrashing things if the names are the same */
|
||||||
@ -1303,7 +1310,7 @@ H5Aiterate2(hid_t loc_id, H5_index_t idx_type, H5_iter_order_t order,
|
|||||||
|
|
||||||
/* Call attribute iteration routine */
|
/* Call attribute iteration routine */
|
||||||
last_attr = start_idx = (idx ? *idx : 0);
|
last_attr = start_idx = (idx ? *idx : 0);
|
||||||
if((ret_value = H5O_attr_iterate(loc_id, H5AC_ind_dxpl_id, idx_type, order, start_idx, &last_attr, &attr_op, op_data)) < 0)
|
if((ret_value = H5O_attr_iterate(loc_id, H5AC_dxpl_id, idx_type, order, start_idx, &last_attr, &attr_op, op_data)) < 0)
|
||||||
HERROR(H5E_ATTR, H5E_BADITER, "error iterating over attributes");
|
HERROR(H5E_ATTR, H5E_BADITER, "error iterating over attributes");
|
||||||
|
|
||||||
/* Set the last attribute information */
|
/* Set the last attribute information */
|
||||||
@ -1372,7 +1379,7 @@ H5Aiterate_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
H5A_attr_iter_op_t attr_op; /* Attribute operator */
|
H5A_attr_iter_op_t attr_op; /* Attribute operator */
|
||||||
hsize_t start_idx; /* Index of attribute to start iterating at */
|
hsize_t start_idx; /* Index of attribute to start iterating at */
|
||||||
hsize_t last_attr; /* Index of last attribute examined */
|
hsize_t last_attr; /* Index of last attribute examined */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value; /* Return value */
|
herr_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1392,7 +1399,7 @@ H5Aiterate_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -1517,8 +1524,8 @@ H5Adelete_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
dxpl_id = H5AC_ind_dxpl_id;
|
dxpl_id = H5AC_dxpl_id;
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -1531,11 +1538,6 @@ H5Adelete_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
|
||||||
dxpl_id = H5AC_dxpl_id;
|
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
|
||||||
|
|
||||||
/* Delete the attribute from the location */
|
/* Delete the attribute from the location */
|
||||||
if(H5O_attr_remove(obj_loc.oloc, attr_name, dxpl_id) < 0)
|
if(H5O_attr_remove(obj_loc.oloc, attr_name, dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTDELETE, FAIL, "unable to delete attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTDELETE, FAIL, "unable to delete attribute")
|
||||||
@ -1601,8 +1603,8 @@ H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
dxpl_id = H5AC_ind_dxpl_id;
|
dxpl_id = H5AC_dxpl_id;
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -1615,11 +1617,6 @@ H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
|
||||||
dxpl_id = H5AC_dxpl_id;
|
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
|
||||||
|
|
||||||
/* Delete the attribute from the location */
|
/* Delete the attribute from the location */
|
||||||
if(H5O_attr_remove_by_idx(obj_loc.oloc, idx_type, order, n, dxpl_id) < 0)
|
if(H5O_attr_remove_by_idx(obj_loc.oloc, idx_type, order, n, dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTDELETE, FAIL, "unable to delete attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTDELETE, FAIL, "unable to delete attribute")
|
||||||
@ -1701,7 +1698,7 @@ H5Aexists(hid_t obj_id, const char *attr_name)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
||||||
|
|
||||||
/* Check if the attribute exists */
|
/* Check if the attribute exists */
|
||||||
if((ret_value = H5O_attr_exists(loc.oloc, attr_name, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5O_attr_exists(loc.oloc, attr_name, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1727,7 +1724,7 @@ H5Aexists_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
hid_t lapl_id)
|
hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
htri_t ret_value; /* Return value */
|
htri_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1744,7 +1741,7 @@ H5Aexists_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no attribute name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id, dxpl_id)) < 0)
|
if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id, dxpl_id)) < 0)
|
||||||
|
64
src/H5AC.c
64
src/H5AC.c
@ -76,22 +76,13 @@ static herr_t H5AC__ext_config_2_int_config(H5AC_cache_config_t *ext_conf_ptr,
|
|||||||
/* Package initialization variable */
|
/* Package initialization variable */
|
||||||
hbool_t H5_PKG_INIT_VAR = FALSE;
|
hbool_t H5_PKG_INIT_VAR = FALSE;
|
||||||
|
|
||||||
|
|
||||||
/*****************************/
|
/*****************************/
|
||||||
/* Library Private Variables */
|
/* Library Private Variables */
|
||||||
/*****************************/
|
/*****************************/
|
||||||
|
|
||||||
/* Default dataset transfer property list for metadata I/O calls */
|
/* Default dataset transfer property list for metadata I/O calls */
|
||||||
/* (Collective set, "block before metadata write" set and "library internal" set) */
|
|
||||||
/* (Global variable definition, declaration is in H5ACprivate.h also) */
|
|
||||||
hid_t H5AC_dxpl_id = (-1);
|
hid_t H5AC_dxpl_id = (-1);
|
||||||
|
hbool_t H5_coll_api_sanity_check_g = false;
|
||||||
/* Dataset transfer property list for independent metadata I/O calls */
|
|
||||||
/* (just "library internal" set - i.e. independent transfer mode) */
|
|
||||||
/* (Global variable definition, declaration is in H5ACprivate.h also) */
|
|
||||||
H5P_genplist_t *H5AC_ind_dxpl_g = NULL;
|
|
||||||
hid_t H5AC_ind_dxpl_id = (-1);
|
|
||||||
|
|
||||||
|
|
||||||
/*******************/
|
/*******************/
|
||||||
/* Local Variables */
|
/* Local Variables */
|
||||||
@ -172,55 +163,27 @@ done:
|
|||||||
herr_t
|
herr_t
|
||||||
H5AC__init_package(void)
|
H5AC__init_package(void)
|
||||||
{
|
{
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
H5P_genplist_t *xfer_plist; /* Dataset transfer property list object */
|
|
||||||
unsigned coll_meta_write; /* "collective metadata write" property value */
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
|
|
||||||
#ifdef H5_HAVE_PARALLEL
|
#ifdef H5_HAVE_PARALLEL
|
||||||
/* Sanity check */
|
/* Get an ID for the metadata (H5AC) dxpl */
|
||||||
HDassert(H5P_CLS_DATASET_XFER_g != NULL);
|
|
||||||
|
|
||||||
/* Get an ID for the collective H5AC dxpl */
|
|
||||||
if((H5AC_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
|
if((H5AC_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
|
HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
|
||||||
|
|
||||||
/* Get the property list object */
|
/* check whether to enable strict collective function calling
|
||||||
if(NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_dxpl_id)))
|
sanity checks using MPI barriers */
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
|
{
|
||||||
|
const char *s; /* String for environment variables */
|
||||||
|
|
||||||
/* Insert 'collective metadata write' property */
|
s = HDgetenv("H5_COLL_API_SANITY_CHECK");
|
||||||
coll_meta_write = 1;
|
if(s && HDisdigit(*s)) {
|
||||||
if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write,
|
H5_coll_api_sanity_check_g = (hbool_t)HDstrtol(s, NULL, 0);
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
}
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
|
}
|
||||||
|
|
||||||
/* Get an ID for the independent H5AC dxpl */
|
|
||||||
if((H5AC_ind_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
|
|
||||||
|
|
||||||
/* Get the property list object */
|
|
||||||
if(NULL == (H5AC_ind_dxpl_g = (H5P_genplist_t *)H5I_object(H5AC_ind_dxpl_id)))
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
|
|
||||||
|
|
||||||
/* Insert 'collective metadata write' property */
|
|
||||||
coll_meta_write = 0;
|
|
||||||
if(H5P_insert(H5AC_ind_dxpl_g, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write,
|
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
|
|
||||||
#else /* H5_HAVE_PARALLEL */
|
#else /* H5_HAVE_PARALLEL */
|
||||||
/* Sanity check */
|
|
||||||
HDassert(H5P_LST_DATASET_XFER_ID_g!=(-1));
|
|
||||||
|
|
||||||
H5AC_dxpl_id = H5P_DATASET_XFER_DEFAULT;
|
H5AC_dxpl_id = H5P_DATASET_XFER_DEFAULT;
|
||||||
H5AC_ind_dxpl_id = H5P_DATASET_XFER_DEFAULT;
|
|
||||||
|
|
||||||
/* Get the property list objects for the IDs */
|
|
||||||
if(NULL == (H5AC_ind_dxpl_g = (H5P_genplist_t *)H5I_object(H5AC_ind_dxpl_id)))
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get property list object")
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -251,19 +214,18 @@ H5AC_term_package(void)
|
|||||||
|
|
||||||
if(H5_PKG_INIT_VAR) {
|
if(H5_PKG_INIT_VAR) {
|
||||||
#ifdef H5_HAVE_PARALLEL
|
#ifdef H5_HAVE_PARALLEL
|
||||||
if(H5AC_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) {
|
if(H5AC_dxpl_id > 0) {
|
||||||
/* Indicate more work to do */
|
/* Indicate more work to do */
|
||||||
n = 1; /* H5I */
|
n = 1; /* H5I */
|
||||||
|
|
||||||
/* Close H5AC dxpl */
|
/* Close H5AC dxpl */
|
||||||
if(H5I_dec_ref(H5AC_dxpl_id) < 0 || H5I_dec_ref(H5AC_ind_dxpl_id) < 0)
|
if(H5I_dec_ref(H5AC_dxpl_id) < 0)
|
||||||
H5E_clear_stack(NULL); /*ignore error*/
|
H5E_clear_stack(NULL); /*ignore error*/
|
||||||
} /* end if */
|
} /* end if */
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
/* Reset static IDs */
|
/* Reset static IDs */
|
||||||
H5AC_dxpl_id = (-1);
|
H5AC_dxpl_id = (-1);
|
||||||
H5AC_ind_dxpl_id = (-1);
|
|
||||||
|
|
||||||
/* Reset interface initialization flag */
|
/* Reset interface initialization flag */
|
||||||
if(0 == n)
|
if(0 == n)
|
||||||
|
@ -197,17 +197,8 @@ typedef H5C_t H5AC_t;
|
|||||||
#define H5AC_RING_NAME "H5AC_ring_type"
|
#define H5AC_RING_NAME "H5AC_ring_type"
|
||||||
|
|
||||||
/* Dataset transfer property list for flush calls */
|
/* Dataset transfer property list for flush calls */
|
||||||
/* (Collective set, "block before metadata write" set and "library internal" set) */
|
|
||||||
/* (Global variable declaration, definition is in H5AC.c) */
|
|
||||||
extern hid_t H5AC_dxpl_id;
|
extern hid_t H5AC_dxpl_id;
|
||||||
|
|
||||||
/* Dataset transfer property list for independent metadata I/O calls */
|
|
||||||
/* (just "library internal" set - i.e. independent transfer mode) */
|
|
||||||
/* (Global variable declaration, definition is in H5AC.c) */
|
|
||||||
H5_DLLVAR H5P_genplist_t *H5AC_ind_dxpl_g;
|
|
||||||
H5_DLLVAR hid_t H5AC_ind_dxpl_id;
|
|
||||||
|
|
||||||
|
|
||||||
/* Default cache configuration. */
|
/* Default cache configuration. */
|
||||||
|
|
||||||
#define H5AC__DEFAULT_METADATA_WRITE_STRATEGY \
|
#define H5AC__DEFAULT_METADATA_WRITE_STRATEGY \
|
||||||
|
@ -191,7 +191,7 @@ H5Aopen_name(hid_t loc_id, const char *name)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Open the attribute on the object header */
|
/* Open the attribute on the object header */
|
||||||
if(NULL == (attr = H5A_open_by_name(&loc, ".", name, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id)))
|
if(NULL == (attr = H5A_open_by_name(&loc, ".", name, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id)))
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTOPENOBJ, FAIL, "can't open attribute: '%s'", name)
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTOPENOBJ, FAIL, "can't open attribute: '%s'", name)
|
||||||
|
|
||||||
/* Register the attribute and get an ID for it */
|
/* Register the attribute and get an ID for it */
|
||||||
@ -247,7 +247,7 @@ H5Aopen_idx(hid_t loc_id, unsigned idx)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
||||||
|
|
||||||
/* Open the attribute in the object header */
|
/* Open the attribute in the object header */
|
||||||
if(NULL == (attr = H5A_open_by_idx(&loc, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)idx, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id)))
|
if(NULL == (attr = H5A_open_by_idx(&loc, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)idx, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id)))
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTOPENOBJ, FAIL, "unable to open attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTOPENOBJ, FAIL, "unable to open attribute")
|
||||||
|
|
||||||
/* Register the attribute and get an ID for it */
|
/* Register the attribute and get an ID for it */
|
||||||
@ -333,7 +333,7 @@ H5Aget_num_attrs(hid_t loc_id)
|
|||||||
} /*lint !e788 All appropriate cases are covered */
|
} /*lint !e788 All appropriate cases are covered */
|
||||||
|
|
||||||
/* Look up the # of attributes for the object */
|
/* Look up the # of attributes for the object */
|
||||||
if((ret_value = H5O_attr_count(loc, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5O_attr_count(loc, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "can't get attribute count for object")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "can't get attribute count for object")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -399,7 +399,7 @@ H5Aiterate1(hid_t loc_id, unsigned *attr_num, H5A_operator1_t op, void *op_data)
|
|||||||
|
|
||||||
/* Call attribute iteration routine */
|
/* Call attribute iteration routine */
|
||||||
last_attr = start_idx = (hsize_t)(attr_num ? *attr_num : 0);
|
last_attr = start_idx = (hsize_t)(attr_num ? *attr_num : 0);
|
||||||
if((ret_value = H5O_attr_iterate(loc_id, H5AC_ind_dxpl_id, H5_INDEX_CRT_ORDER, H5_ITER_INC, start_idx, &last_attr, &attr_op, op_data)) < 0)
|
if((ret_value = H5O_attr_iterate(loc_id, H5AC_dxpl_id, H5_INDEX_CRT_ORDER, H5_ITER_INC, start_idx, &last_attr, &attr_op, op_data)) < 0)
|
||||||
HERROR(H5E_ATTR, H5E_BADITER, "error iterating over attributes");
|
HERROR(H5E_ATTR, H5E_BADITER, "error iterating over attributes");
|
||||||
|
|
||||||
/* Set the last attribute information */
|
/* Set the last attribute information */
|
||||||
|
@ -161,7 +161,7 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type,
|
|||||||
* name, but it's going to be hard to unwind all the special cases on
|
* name, but it's going to be hard to unwind all the special cases on
|
||||||
* failure, so just check first, for now - QAK)
|
* failure, so just check first, for now - QAK)
|
||||||
*/
|
*/
|
||||||
if((exists = H5O_attr_exists(loc->oloc, name, H5AC_ind_dxpl_id)) < 0)
|
if((exists = H5O_attr_exists(loc->oloc, name, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, NULL, "error checking attributes")
|
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, NULL, "error checking attributes")
|
||||||
else if(exists > 0)
|
else if(exists > 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_ALREADYEXISTS, NULL, "attribute already exists")
|
HGOTO_ERROR(H5E_ATTR, H5E_ALREADYEXISTS, NULL, "attribute already exists")
|
||||||
@ -2397,7 +2397,7 @@ H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_nam
|
|||||||
H5G_loc_reset(&obj_loc);
|
H5G_loc_reset(&obj_loc);
|
||||||
|
|
||||||
/* Find the object's location */
|
/* Find the object's location */
|
||||||
if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
|
if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ H5A_get_shared_rc_test(hid_t attr_id, hsize_t *ref_count)
|
|||||||
HDassert(H5O_msg_is_shared(H5O_ATTR_ID, attr));
|
HDassert(H5O_msg_is_shared(H5O_ATTR_ID, attr));
|
||||||
|
|
||||||
/* Retrieve ref count for shared or shareable attribute */
|
/* Retrieve ref count for shared or shareable attribute */
|
||||||
if(H5SM_get_refcount(attr->oloc.file, H5AC_ind_dxpl_id, H5O_ATTR_ID,
|
if(H5SM_get_refcount(attr->oloc.file, H5AC_dxpl_id, H5O_ATTR_ID,
|
||||||
&attr->sh_loc, ref_count) < 0)
|
&attr->sh_loc, ref_count) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't retrieve shared message ref count")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't retrieve shared message ref count")
|
||||||
|
|
||||||
|
58
src/H5C.c
58
src/H5C.c
@ -1755,9 +1755,6 @@ H5C_insert_entry(H5F_t * f,
|
|||||||
H5AC_ring_t ring = H5C_RING_UNDEFINED;
|
H5AC_ring_t ring = H5C_RING_UNDEFINED;
|
||||||
hbool_t insert_pinned;
|
hbool_t insert_pinned;
|
||||||
hbool_t flush_last;
|
hbool_t flush_last;
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
hbool_t flush_collectively;
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
hbool_t set_flush_marker;
|
hbool_t set_flush_marker;
|
||||||
hbool_t write_permitted = TRUE;
|
hbool_t write_permitted = TRUE;
|
||||||
size_t empty_space;
|
size_t empty_space;
|
||||||
@ -1795,9 +1792,6 @@ H5C_insert_entry(H5F_t * f,
|
|||||||
set_flush_marker = ( (flags & H5C__SET_FLUSH_MARKER_FLAG) != 0 );
|
set_flush_marker = ( (flags & H5C__SET_FLUSH_MARKER_FLAG) != 0 );
|
||||||
insert_pinned = ( (flags & H5C__PIN_ENTRY_FLAG) != 0 );
|
insert_pinned = ( (flags & H5C__PIN_ENTRY_FLAG) != 0 );
|
||||||
flush_last = ( (flags & H5C__FLUSH_LAST_FLAG) != 0 );
|
flush_last = ( (flags & H5C__FLUSH_LAST_FLAG) != 0 );
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
flush_collectively = ( (flags & H5C__FLUSH_COLLECTIVELY_FLAG) != 0 );
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
|
|
||||||
/* Get the dataset transfer property list */
|
/* Get the dataset transfer property list */
|
||||||
if(NULL == (dxpl = (H5P_genplist_t *)H5I_object_verify(dxpl_id, H5I_GENPROP_LST)))
|
if(NULL == (dxpl = (H5P_genplist_t *)H5I_object_verify(dxpl_id, H5I_GENPROP_LST)))
|
||||||
@ -1842,9 +1836,6 @@ H5C_insert_entry(H5F_t * f,
|
|||||||
entry_ptr->pinned_from_client = insert_pinned;
|
entry_ptr->pinned_from_client = insert_pinned;
|
||||||
entry_ptr->pinned_from_cache = FALSE;
|
entry_ptr->pinned_from_cache = FALSE;
|
||||||
entry_ptr->flush_me_last = flush_last;
|
entry_ptr->flush_me_last = flush_last;
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
entry_ptr->flush_me_collectively = flush_collectively;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* newly inserted entries are assumed to be dirty */
|
/* newly inserted entries are assumed to be dirty */
|
||||||
entry_ptr->is_dirty = TRUE;
|
entry_ptr->is_dirty = TRUE;
|
||||||
@ -2563,10 +2554,10 @@ done:
|
|||||||
* This allows H5C_protect to accept flags other than
|
* This allows H5C_protect to accept flags other than
|
||||||
* H5C__READ_ONLY_FLAG.
|
* H5C__READ_ONLY_FLAG.
|
||||||
*
|
*
|
||||||
* Added support for the H5C__FLUSH_LAST_FLAG and
|
* Added support for the H5C__FLUSH_LAST_FLAG.
|
||||||
* H5C__FLUSH_COLLECTIVELY_FLAG flags. At present, these
|
* At present, this flag is only applied if the entry is
|
||||||
* flags are only applied if the entry is not in cache, and
|
* not in cache, and is loaded into the cache as a result of
|
||||||
* is loaded into the cache as a result of this call.
|
* this call.
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -2584,9 +2575,6 @@ H5C_protect(H5F_t * f,
|
|||||||
hbool_t have_write_permitted = FALSE;
|
hbool_t have_write_permitted = FALSE;
|
||||||
hbool_t read_only = FALSE;
|
hbool_t read_only = FALSE;
|
||||||
hbool_t flush_last;
|
hbool_t flush_last;
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
hbool_t flush_collectively;
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
hbool_t write_permitted;
|
hbool_t write_permitted;
|
||||||
size_t empty_space;
|
size_t empty_space;
|
||||||
void * thing;
|
void * thing;
|
||||||
@ -2619,9 +2607,6 @@ H5C_protect(H5F_t * f,
|
|||||||
|
|
||||||
read_only = ( (flags & H5C__READ_ONLY_FLAG) != 0 );
|
read_only = ( (flags & H5C__READ_ONLY_FLAG) != 0 );
|
||||||
flush_last = ( (flags & H5C__FLUSH_LAST_FLAG) != 0 );
|
flush_last = ( (flags & H5C__FLUSH_LAST_FLAG) != 0 );
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
flush_collectively = ( (flags & H5C__FLUSH_COLLECTIVELY_FLAG) != 0 );
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
|
|
||||||
/* Get the dataset transfer property list */
|
/* Get the dataset transfer property list */
|
||||||
if(NULL == (dxpl = (H5P_genplist_t *)H5I_object_verify(dxpl_id, H5I_GENPROP_LST)))
|
if(NULL == (dxpl = (H5P_genplist_t *)H5I_object_verify(dxpl_id, H5I_GENPROP_LST)))
|
||||||
@ -2784,20 +2769,16 @@ H5C_protect(H5F_t * f,
|
|||||||
*
|
*
|
||||||
* *******************************************
|
* *******************************************
|
||||||
*
|
*
|
||||||
* Set the flush_last (and possibly flush_collectively) fields
|
* Set the flush_last field
|
||||||
* of the newly loaded entry before inserting it into the
|
* of the newly loaded entry before inserting it into the
|
||||||
* index. Must do this, as the index tracked the number of
|
* index. Must do this, as the index tracked the number of
|
||||||
* entries with the flush_last field set, but assumes that
|
* entries with the flush_last field set, but assumes that
|
||||||
* the field will not change after insertion into the index.
|
* the field will not change after insertion into the index.
|
||||||
*
|
*
|
||||||
* Note that this means that the H5C__FLUSH_LAST_FLAG and
|
* Note that this means that the H5C__FLUSH_LAST_FLAG flag
|
||||||
* H5C__FLUSH_COLLECTIVELY_FLAG flags are ignored if the
|
* is ignored if the entry is already in cache.
|
||||||
* entry is already in cache.
|
|
||||||
*/
|
*/
|
||||||
entry_ptr->flush_me_last = flush_last;
|
entry_ptr->flush_me_last = flush_last;
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
entry_ptr->flush_me_collectively = flush_collectively;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
H5C__INSERT_IN_INDEX(cache_ptr, entry_ptr, NULL)
|
H5C__INSERT_IN_INDEX(cache_ptr, entry_ptr, NULL)
|
||||||
|
|
||||||
@ -7648,31 +7629,6 @@ H5C__flush_single_entry(const H5F_t *f, hid_t dxpl_id, H5C_cache_entry_t *entry_
|
|||||||
entry_ptr->flush_in_progress = TRUE;
|
entry_ptr->flush_in_progress = TRUE;
|
||||||
entry_ptr->flush_marker = FALSE;
|
entry_ptr->flush_marker = FALSE;
|
||||||
|
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
#ifndef NDEBUG
|
|
||||||
/* If MPI based VFD is used, do special parallel I/O sanity checks.
|
|
||||||
* Note that we only do these sanity checks when the clear_only flag
|
|
||||||
* is not set, and the entry to be flushed is dirty. Don't bother
|
|
||||||
* otherwise as no file I/O can result.
|
|
||||||
*/
|
|
||||||
if(!clear_only && entry_ptr->is_dirty && H5F_HAS_FEATURE(f, H5FD_FEAT_HAS_MPI)) {
|
|
||||||
H5P_genplist_t *dxpl; /* Dataset transfer property list */
|
|
||||||
unsigned coll_meta; /* Collective metadata write flag */
|
|
||||||
|
|
||||||
/* Get the dataset transfer property list */
|
|
||||||
if(NULL == (dxpl = (H5P_genplist_t *)H5I_object(dxpl_id)))
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_BADTYPE, FAIL, "not a dataset transfer property list")
|
|
||||||
|
|
||||||
/* Get the collective metadata write property */
|
|
||||||
if(H5P_get(dxpl, H5AC_COLLECTIVE_META_WRITE_NAME, &coll_meta) < 0)
|
|
||||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTGET, FAIL, "can't retrieve xfer mode")
|
|
||||||
|
|
||||||
/* Sanity check collective metadata write flag */
|
|
||||||
HDassert(coll_meta);
|
|
||||||
} /* end if */
|
|
||||||
#endif /* NDEBUG */
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
|
||||||
|
|
||||||
/* serialize the entry if necessary, and then write it to disk. */
|
/* serialize the entry if necessary, and then write it to disk. */
|
||||||
if(write_entry) {
|
if(write_entry) {
|
||||||
unsigned serialize_flags = H5C__SERIALIZE_NO_FLAGS_SET;
|
unsigned serialize_flags = H5C__SERIALIZE_NO_FLAGS_SET;
|
||||||
|
@ -386,7 +386,7 @@ H5C_apply_candidate_list(H5F_t * f,
|
|||||||
* Now scan the LRU and PEL lists, flushing or clearing entries as
|
* Now scan the LRU and PEL lists, flushing or clearing entries as
|
||||||
* needed.
|
* needed.
|
||||||
*
|
*
|
||||||
* The flush_me_last and flush_me_collectively flags may dictate how or
|
* The flush_me_last flag may dictate how or
|
||||||
* when some entries can be flushed, and should be addressed here.
|
* when some entries can be flushed, and should be addressed here.
|
||||||
* However, in their initial implementation, these flags only apply to the
|
* However, in their initial implementation, these flags only apply to the
|
||||||
* superblock, so there's only a relatively small change to this function
|
* superblock, so there's only a relatively small change to this function
|
||||||
@ -607,11 +607,10 @@ H5C_apply_candidate_list(H5F_t * f,
|
|||||||
it is the simple case of a single pinned entry needing
|
it is the simple case of a single pinned entry needing
|
||||||
flushed last and collectively is just a minor addition to
|
flushed last and collectively is just a minor addition to
|
||||||
this routine, but signficantly buffing up the usage of
|
this routine, but signficantly buffing up the usage of
|
||||||
flush_me_last or flush_me_collectively will require a more
|
flush_me_last will require a more
|
||||||
intense rework of this function and potentially the function
|
intense rework of this function and potentially the function
|
||||||
of candidate lists as a whole. */
|
of candidate lists as a whole. */
|
||||||
|
|
||||||
HDassert(entry_ptr->flush_me_collectively);
|
|
||||||
entries_to_flush_or_clear_last++;
|
entries_to_flush_or_clear_last++;
|
||||||
entries_to_flush_collectively++;
|
entries_to_flush_collectively++;
|
||||||
HDassert(entries_to_flush_or_clear_last == 1);
|
HDassert(entries_to_flush_or_clear_last == 1);
|
||||||
|
@ -1383,13 +1383,10 @@ typedef int H5C_ring_t;
|
|||||||
* flushed from the cache until all other entries without
|
* flushed from the cache until all other entries without
|
||||||
* the flush_me_last flag set have been flushed.
|
* the flush_me_last flag set have been flushed.
|
||||||
*
|
*
|
||||||
* flush_me_collectively: Boolean flag indicating that this entry needs
|
|
||||||
* to be flushed collectively when in a parallel situation.
|
|
||||||
*
|
|
||||||
* Note:
|
* Note:
|
||||||
*
|
*
|
||||||
* At this time, the flush_me_last and flush_me_collectively
|
* At this time, the flush_me_last
|
||||||
* flags will only be applied to one entry, the superblock,
|
* flag will only be applied to one entry, the superblock,
|
||||||
* and the code utilizing these flags is protected with HDasserts
|
* and the code utilizing these flags is protected with HDasserts
|
||||||
* to enforce this. This restraint can certainly be relaxed in
|
* to enforce this. This restraint can certainly be relaxed in
|
||||||
* the future if the the need for multiple entries getting flushed
|
* the future if the the need for multiple entries getting flushed
|
||||||
@ -1609,7 +1606,6 @@ typedef struct H5C_cache_entry_t {
|
|||||||
hbool_t flush_marker;
|
hbool_t flush_marker;
|
||||||
hbool_t flush_me_last;
|
hbool_t flush_me_last;
|
||||||
#ifdef H5_HAVE_PARALLEL
|
#ifdef H5_HAVE_PARALLEL
|
||||||
hbool_t flush_me_collectively;
|
|
||||||
hbool_t clear_on_unprotect;
|
hbool_t clear_on_unprotect;
|
||||||
hbool_t flush_immediately;
|
hbool_t flush_immediately;
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
12
src/H5D.c
12
src/H5D.c
@ -139,7 +139,7 @@ H5Dcreate2(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not dataset create property list ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not dataset create property list ID")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Create the new dataset & get its ID */
|
/* Create the new dataset & get its ID */
|
||||||
@ -219,7 +219,7 @@ H5Dcreate_anon(hid_t loc_id, hid_t type_id, hid_t space_id, hid_t dcpl_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not dataset create property list ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not dataset create property list ID")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* build and open the new dataset */
|
/* build and open the new dataset */
|
||||||
@ -275,7 +275,7 @@ H5Dopen2(hid_t loc_id, const char *name, hid_t dapl_id)
|
|||||||
{
|
{
|
||||||
H5D_t *dset = NULL;
|
H5D_t *dset = NULL;
|
||||||
H5G_loc_t loc; /* Object location of group */
|
H5G_loc_t loc; /* Object location of group */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */
|
||||||
hid_t ret_value;
|
hid_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -288,7 +288,7 @@ H5Dopen2(hid_t loc_id, const char *name, hid_t dapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&dapl_id, H5P_CLS_DACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the dataset */
|
/* Open the dataset */
|
||||||
@ -410,7 +410,7 @@ H5Dget_space_status(hid_t dset_id, H5D_space_status_t *allocation)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
|
|
||||||
/* Read dataspace address and return */
|
/* Read dataspace address and return */
|
||||||
if(H5D__get_space_status(dset, allocation, H5AC_ind_dxpl_id) < 0)
|
if(H5D__get_space_status(dset, allocation, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get space status")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get space status")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -579,7 +579,7 @@ H5Dget_storage_size(hid_t dset_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a dataset")
|
||||||
|
|
||||||
/* Set return value */
|
/* Set return value */
|
||||||
if(H5D__get_storage_size(dset, H5AC_ind_dxpl_id, &ret_value) < 0)
|
if(H5D__get_storage_size(dset, H5AC_dxpl_id, &ret_value) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, 0, "can't get size of dataset's storage")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, 0, "can't get size of dataset's storage")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -241,7 +241,7 @@ H5D__contig_fill(const H5D_t *dset, hid_t dxpl_id)
|
|||||||
using_mpi = TRUE;
|
using_mpi = TRUE;
|
||||||
|
|
||||||
/* Use the internal "independent" DXPL */
|
/* Use the internal "independent" DXPL */
|
||||||
my_dxpl_id = H5AC_ind_dxpl_id;
|
my_dxpl_id = H5AC_dxpl_id;
|
||||||
} /* end if */
|
} /* end if */
|
||||||
else {
|
else {
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
@ -90,7 +90,7 @@ H5Ddebug(hid_t dset_id)
|
|||||||
|
|
||||||
/* Print B-tree information */
|
/* Print B-tree information */
|
||||||
if(H5D_CHUNKED == dset->shared->layout.type)
|
if(H5D_CHUNKED == dset->shared->layout.type)
|
||||||
(void)H5D__chunk_dump_index(dset, H5AC_ind_dxpl_id, stdout);
|
(void)H5D__chunk_dump_index(dset, H5AC_dxpl_id, stdout);
|
||||||
else if(H5D_CONTIGUOUS == dset->shared->layout.type)
|
else if(H5D_CONTIGUOUS == dset->shared->layout.type)
|
||||||
HDfprintf(stdout, " %-10s %a\n", "Address:", dset->shared->layout.storage.u.contig.addr);
|
HDfprintf(stdout, " %-10s %a\n", "Address:", dset->shared->layout.storage.u.contig.addr);
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ H5Dopen1(hid_t loc_id, const char *name)
|
|||||||
H5D_t *dset = NULL;
|
H5D_t *dset = NULL;
|
||||||
H5G_loc_t loc; /* Object location of group */
|
H5G_loc_t loc; /* Object location of group */
|
||||||
hid_t dapl_id = H5P_DATASET_ACCESS_DEFAULT; /* dapl to use to open dataset */
|
hid_t dapl_id = H5P_DATASET_ACCESS_DEFAULT; /* dapl to use to open dataset */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datset */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datset */
|
||||||
hid_t ret_value;
|
hid_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
|
@ -134,7 +134,7 @@ H5Dfill(const void *fill, hid_t fill_type_id, void *buf, hid_t buf_type_id, hid_
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a datatype")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a datatype")
|
||||||
|
|
||||||
/* Fill the selection in the memory buffer */
|
/* Fill the selection in the memory buffer */
|
||||||
if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_ind_dxpl_id) < 0)
|
if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "filling selection failed")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "filling selection failed")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -2769,7 +2769,7 @@ H5D_get_create_plist(H5D_t *dset)
|
|||||||
HGOTO_ERROR(H5E_DATASET, H5E_BADTYPE, FAIL, "can't get property list")
|
HGOTO_ERROR(H5E_DATASET, H5E_BADTYPE, FAIL, "can't get property list")
|
||||||
|
|
||||||
/* Retrieve any object creation properties */
|
/* Retrieve any object creation properties */
|
||||||
if(H5O_get_create_plist(&dset->oloc, H5AC_ind_dxpl_id, new_plist) < 0)
|
if(H5O_get_create_plist(&dset->oloc, H5AC_dxpl_id, new_plist) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object creation info")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object creation info")
|
||||||
|
|
||||||
/* Get the layout property */
|
/* Get the layout property */
|
||||||
@ -2831,7 +2831,7 @@ H5D_get_create_plist(H5D_t *dset)
|
|||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy dataset datatype for fill value")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy dataset datatype for fill value")
|
||||||
|
|
||||||
/* Set up type conversion function */
|
/* Set up type conversion function */
|
||||||
if(NULL == (tpath = H5T_path_find(dset->shared->type, copied_fill.type, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
if(NULL == (tpath = H5T_path_find(dset->shared->type, copied_fill.type, NULL, NULL, H5AC_dxpl_id, FALSE)))
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest data types")
|
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest data types")
|
||||||
|
|
||||||
/* Convert disk form of fill value into memory form */
|
/* Convert disk form of fill value into memory form */
|
||||||
@ -2859,7 +2859,7 @@ H5D_get_create_plist(H5D_t *dset)
|
|||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Convert fill value */
|
/* Convert fill value */
|
||||||
if(H5T_convert(tpath, src_id, dst_id, (size_t)1, (size_t)0, (size_t)0, copied_fill.buf, bkg_buf, H5AC_ind_dxpl_id) < 0) {
|
if(H5T_convert(tpath, src_id, dst_id, (size_t)1, (size_t)0, (size_t)0, copied_fill.buf, bkg_buf, H5AC_dxpl_id) < 0) {
|
||||||
H5I_dec_ref(src_id);
|
H5I_dec_ref(src_id);
|
||||||
H5I_dec_ref(dst_id);
|
H5I_dec_ref(dst_id);
|
||||||
if(bkg_buf)
|
if(bkg_buf)
|
||||||
@ -2992,7 +2992,7 @@ H5D_get_space(H5D_t *dset)
|
|||||||
|
|
||||||
/* If the layout is virtual, update the extent */
|
/* If the layout is virtual, update the extent */
|
||||||
if(dset->shared->layout.type == H5D_VIRTUAL)
|
if(dset->shared->layout.type == H5D_VIRTUAL)
|
||||||
if(H5D__virtual_set_extent_unlim(dset, H5AC_ind_dxpl_id) < 0)
|
if(H5D__virtual_set_extent_unlim(dset, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update virtual dataset extent")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update virtual dataset extent")
|
||||||
|
|
||||||
/* Read the data space message and return a data space object */
|
/* Read the data space message and return a data space object */
|
||||||
|
18
src/H5F.c
18
src/H5F.c
@ -407,7 +407,7 @@ H5Fis_hdf5(const char *name)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "no file name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "no file name specified")
|
||||||
|
|
||||||
/* call the private is_HDF5 function */
|
/* call the private is_HDF5 function */
|
||||||
if((ret_value = H5F_is_hdf5(name)) < 0)
|
if((ret_value = H5F_is_hdf5(name, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, FAIL, "unable open file")
|
HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, FAIL, "unable open file")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -473,7 +473,7 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not file create property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not file create property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&fapl_id, H5P_CLS_FACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&fapl_id, H5P_CLS_FACC, &dxpl_id, H5I_INVALID_HID, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -566,7 +566,7 @@ H5Fopen(const char *filename, unsigned flags, hid_t fapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file open flags")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file open flags")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&fapl_id, H5P_CLS_FACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&fapl_id, H5P_CLS_FACC, &dxpl_id, H5I_INVALID_HID, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the file */
|
/* Open the file */
|
||||||
@ -901,7 +901,7 @@ H5Fget_freespace(hid_t file_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
|
||||||
|
|
||||||
/* Go get the actual amount of free space in the file */
|
/* Go get the actual amount of free space in the file */
|
||||||
if(H5MF_get_freespace(file, H5AC_ind_dxpl_id, &tot_space, NULL) < 0)
|
if(H5MF_get_freespace(file, H5AC_dxpl_id, &tot_space, NULL) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to check free space for file")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to check free space for file")
|
||||||
|
|
||||||
ret_value = (hssize_t)tot_space;
|
ret_value = (hssize_t)tot_space;
|
||||||
@ -1015,7 +1015,7 @@ H5Fget_file_image(hid_t file_id, void *buf_ptr, size_t buf_len)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
|
||||||
|
|
||||||
/* call private get_file_image function */
|
/* call private get_file_image function */
|
||||||
if((ret_value = H5F_get_file_image(file, buf_ptr, buf_len)) < 0)
|
if((ret_value = H5F_get_file_image(file, buf_ptr, buf_len, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get file image")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to get file image")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1348,16 +1348,16 @@ H5Fget_info2(hid_t obj_id, H5F_info2_t *finfo)
|
|||||||
HDmemset(finfo, 0, sizeof(*finfo));
|
HDmemset(finfo, 0, sizeof(*finfo));
|
||||||
|
|
||||||
/* Get the size of the superblock and any superblock extensions */
|
/* Get the size of the superblock and any superblock extensions */
|
||||||
if(H5F__super_size(f, H5AC_ind_dxpl_id, &finfo->super.super_size, &finfo->super.super_ext_size) < 0)
|
if(H5F__super_size(f, H5AC_dxpl_id, &finfo->super.super_size, &finfo->super.super_ext_size) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock sizes")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock sizes")
|
||||||
|
|
||||||
/* Get the size of any persistent free space */
|
/* Get the size of any persistent free space */
|
||||||
if(H5MF_get_freespace(f, H5AC_ind_dxpl_id, &finfo->free.tot_space, &finfo->free.meta_size) < 0)
|
if(H5MF_get_freespace(f, H5AC_dxpl_id, &finfo->free.tot_space, &finfo->free.meta_size) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve free space information")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve free space information")
|
||||||
|
|
||||||
/* Check for SOHM info */
|
/* Check for SOHM info */
|
||||||
if(H5F_addr_defined(f->shared->sohm_addr))
|
if(H5F_addr_defined(f->shared->sohm_addr))
|
||||||
if(H5SM_ih_size(f, H5AC_ind_dxpl_id, &finfo->sohm.hdr_size, &finfo->sohm.msgs_info) < 0)
|
if(H5SM_ih_size(f, H5AC_dxpl_id, &finfo->sohm.hdr_size, &finfo->sohm.msgs_info) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve SOHM index & heap storage info")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve SOHM index & heap storage info")
|
||||||
|
|
||||||
/* Set version # fields */
|
/* Set version # fields */
|
||||||
@ -1402,7 +1402,7 @@ H5Fget_free_sections(hid_t file_id, H5F_mem_t type, size_t nsects,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "nsects must be > 0")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "nsects must be > 0")
|
||||||
|
|
||||||
/* Go get the free-space section information in the file */
|
/* Go get the free-space section information in the file */
|
||||||
if((ret_value = H5MF_get_free_sections(file, H5AC_ind_dxpl_id, type, nsects, sect_info)) < 0)
|
if((ret_value = H5MF_get_free_sections(file, H5AC_dxpl_id, type, nsects, sect_info)) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to check free space for file")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "unable to check free space for file")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -96,12 +96,6 @@ static int H5FD_mpio_mpi_rank(const H5FD_t *_file);
|
|||||||
static int H5FD_mpio_mpi_size(const H5FD_t *_file);
|
static int H5FD_mpio_mpi_size(const H5FD_t *_file);
|
||||||
static MPI_Comm H5FD_mpio_communicator(const H5FD_t *_file);
|
static MPI_Comm H5FD_mpio_communicator(const H5FD_t *_file);
|
||||||
|
|
||||||
/* MPIO-specific file access properties */
|
|
||||||
typedef struct H5FD_mpio_fapl_t {
|
|
||||||
MPI_Comm comm; /*communicator */
|
|
||||||
MPI_Info info; /*file information */
|
|
||||||
} H5FD_mpio_fapl_t;
|
|
||||||
|
|
||||||
/* The MPIO file driver information */
|
/* The MPIO file driver information */
|
||||||
static const H5FD_class_mpi_t H5FD_mpio_g = {
|
static const H5FD_class_mpi_t H5FD_mpio_g = {
|
||||||
{ /* Start of superclass information */
|
{ /* Start of superclass information */
|
||||||
|
@ -96,6 +96,14 @@ typedef struct {
|
|||||||
const void *driver_info; /* Driver info, for open callbacks */
|
const void *driver_info; /* Driver info, for open callbacks */
|
||||||
} H5FD_driver_prop_t;
|
} H5FD_driver_prop_t;
|
||||||
|
|
||||||
|
#ifdef H5_HAVE_PARALLEL
|
||||||
|
/* MPIO-specific file access properties */
|
||||||
|
typedef struct H5FD_mpio_fapl_t {
|
||||||
|
MPI_Comm comm; /*communicator */
|
||||||
|
MPI_Info info; /*file information */
|
||||||
|
} H5FD_mpio_fapl_t;
|
||||||
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
|
|
||||||
/*****************************/
|
/*****************************/
|
||||||
/* Library Private Variables */
|
/* Library Private Variables */
|
||||||
|
@ -133,12 +133,12 @@ H5Fget_info1(hid_t obj_id, H5F_info1_t *finfo)
|
|||||||
HDmemset(finfo, 0, sizeof(*finfo));
|
HDmemset(finfo, 0, sizeof(*finfo));
|
||||||
|
|
||||||
/* Get the size of the superblock extension */
|
/* Get the size of the superblock extension */
|
||||||
if(H5F__super_size(f, H5AC_ind_dxpl_id, NULL, &finfo->super_ext_size) < 0)
|
if(H5F__super_size(f, H5AC_dxpl_id, NULL, &finfo->super_ext_size) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock extension size")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock extension size")
|
||||||
|
|
||||||
/* Check for SOHM info */
|
/* Check for SOHM info */
|
||||||
if(H5F_addr_defined(f->shared->sohm_addr))
|
if(H5F_addr_defined(f->shared->sohm_addr))
|
||||||
if(H5SM_ih_size(f, H5AC_ind_dxpl_id, &finfo->sohm.hdr_size, &finfo->sohm.msgs_info) < 0)
|
if(H5SM_ih_size(f, H5AC_dxpl_id, &finfo->sohm.hdr_size, &finfo->sohm.msgs_info) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve SOHM index & heap storage info")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve SOHM index & heap storage info")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
18
src/H5Fint.c
18
src/H5Fint.c
@ -497,10 +497,11 @@ done:
|
|||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
htri_t
|
htri_t
|
||||||
H5F_is_hdf5(const char *name)
|
H5F_is_hdf5(const char *name, hid_t dxpl_id)
|
||||||
{
|
{
|
||||||
H5FD_t *file = NULL; /* Low-level file struct */
|
H5FD_t *file = NULL; /* Low-level file struct */
|
||||||
haddr_t sig_addr; /* Addess of hdf5 file signature */
|
haddr_t sig_addr; /* Addess of hdf5 file signature */
|
||||||
|
H5P_genplist_t *xfer_plist= NULL; /* Dataset transfer property list object */
|
||||||
htri_t ret_value = FAIL; /* Return value */
|
htri_t ret_value = FAIL; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_NOAPI_NOINIT
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
@ -509,8 +510,12 @@ H5F_is_hdf5(const char *name)
|
|||||||
if(NULL == (file = H5FD_open(name, H5F_ACC_RDONLY, H5P_FILE_ACCESS_DEFAULT, HADDR_UNDEF)))
|
if(NULL == (file = H5FD_open(name, H5F_ACC_RDONLY, H5P_FILE_ACCESS_DEFAULT, HADDR_UNDEF)))
|
||||||
HGOTO_ERROR(H5E_IO, H5E_CANTINIT, FAIL, "unable to open file")
|
HGOTO_ERROR(H5E_IO, H5E_CANTINIT, FAIL, "unable to open file")
|
||||||
|
|
||||||
|
/* Get the property list object */
|
||||||
|
if(NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
|
||||||
|
HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
|
||||||
|
|
||||||
/* The file is an hdf5 file if the hdf5 file signature can be found */
|
/* The file is an hdf5 file if the hdf5 file signature can be found */
|
||||||
if(H5FD_locate_signature(file, H5AC_ind_dxpl_g, &sig_addr) < 0)
|
if(H5FD_locate_signature(file, xfer_plist, &sig_addr) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, FAIL, "unable to locate file signature")
|
HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, FAIL, "unable to locate file signature")
|
||||||
ret_value = (HADDR_UNDEF != sig_addr);
|
ret_value = (HADDR_UNDEF != sig_addr);
|
||||||
|
|
||||||
@ -1943,7 +1948,7 @@ H5F_set_store_msg_crt_idx(H5F_t *f, hbool_t flag)
|
|||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
ssize_t
|
ssize_t
|
||||||
H5F_get_file_image(H5F_t *file, void *buf_ptr, size_t buf_len)
|
H5F_get_file_image(H5F_t *file, void *buf_ptr, size_t buf_len, hid_t dxpl_id)
|
||||||
{
|
{
|
||||||
H5FD_t *fd_ptr; /* file driver */
|
H5FD_t *fd_ptr; /* file driver */
|
||||||
haddr_t eoa; /* End of file address */
|
haddr_t eoa; /* End of file address */
|
||||||
@ -2011,6 +2016,7 @@ H5F_get_file_image(H5F_t *file, void *buf_ptr, size_t buf_len)
|
|||||||
/* test to see if a buffer was provided -- if not, we are done */
|
/* test to see if a buffer was provided -- if not, we are done */
|
||||||
if(buf_ptr != NULL) {
|
if(buf_ptr != NULL) {
|
||||||
size_t space_needed; /* size of file image */
|
size_t space_needed; /* size of file image */
|
||||||
|
H5P_genplist_t *xfer_plist= NULL; /* Dataset transfer property list object */
|
||||||
|
|
||||||
/* Check for buffer too small */
|
/* Check for buffer too small */
|
||||||
if((haddr_t)buf_len < eoa)
|
if((haddr_t)buf_len < eoa)
|
||||||
@ -2018,9 +2024,13 @@ H5F_get_file_image(H5F_t *file, void *buf_ptr, size_t buf_len)
|
|||||||
|
|
||||||
space_needed = (size_t)eoa;
|
space_needed = (size_t)eoa;
|
||||||
|
|
||||||
|
/* Get the property list object */
|
||||||
|
if(NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
|
||||||
|
HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
|
||||||
|
|
||||||
/* read in the file image */
|
/* read in the file image */
|
||||||
/* (Note compensation for base address addition in internal routine) */
|
/* (Note compensation for base address addition in internal routine) */
|
||||||
if(H5FD_read(fd_ptr, H5AC_ind_dxpl_g, H5FD_MEM_DEFAULT, 0, space_needed, buf_ptr) < 0)
|
if(H5FD_read(fd_ptr, xfer_plist, H5FD_MEM_DEFAULT, 0, space_needed, buf_ptr) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_READERROR, FAIL, "file image read request failed")
|
HGOTO_ERROR(H5E_FILE, H5E_READERROR, FAIL, "file image read request failed")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
|
69
src/H5Fmpi.c
69
src/H5Fmpi.c
@ -258,5 +258,74 @@ H5Fget_mpi_atomicity(hid_t file_id, hbool_t *flag)
|
|||||||
done:
|
done:
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5F_mpi_retrieve_comm
|
||||||
|
*
|
||||||
|
* Purpose: Retrieves an MPI communicator from the file the location ID
|
||||||
|
* is in. If the loc_id is invalid, the fapl_id is used to
|
||||||
|
* retrieve the communicator.
|
||||||
|
*
|
||||||
|
* Return: Success: Non-negative
|
||||||
|
*
|
||||||
|
* Failure: Negative
|
||||||
|
*
|
||||||
|
* Programmer: Mohamad Chaarawi
|
||||||
|
* Feb 14, 2012
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
herr_t
|
||||||
|
H5F_mpi_retrieve_comm(hid_t loc_id, hid_t acspl_id, MPI_Comm *mpi_comm)
|
||||||
|
{
|
||||||
|
herr_t ret_value = SUCCEED;
|
||||||
|
|
||||||
|
FUNC_ENTER_NOAPI(FAIL)
|
||||||
|
|
||||||
|
HDassert(mpi_comm);
|
||||||
|
*mpi_comm = MPI_COMM_NULL;
|
||||||
|
|
||||||
|
/* if the loc_id is valid, then get the comm from the file
|
||||||
|
attached to the loc_id */
|
||||||
|
if(H5I_INVALID_HID != loc_id) {
|
||||||
|
H5G_loc_t loc;
|
||||||
|
H5F_t *f = NULL;
|
||||||
|
|
||||||
|
/* retrieve the file structure */
|
||||||
|
if(H5G_loc(loc_id, &loc) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
||||||
|
f = loc.oloc->file;
|
||||||
|
HDassert(f);
|
||||||
|
|
||||||
|
/* check if MPIO driver is used */
|
||||||
|
if(H5F_HAS_FEATURE(f, H5FD_FEAT_HAS_MPI)) {
|
||||||
|
/* retrieve the file communicator */
|
||||||
|
if(MPI_COMM_NULL == (*mpi_comm = H5F_mpi_get_comm(f)))
|
||||||
|
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, FAIL, "can't get MPI communicator")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* otherwise, this if from H5Fopen or H5Fcreate and has to be collective */
|
||||||
|
else {
|
||||||
|
H5P_genplist_t *plist; /* Property list pointer */
|
||||||
|
|
||||||
|
HDassert(H5P_isa_class(acspl_id, H5P_FILE_ACCESS));
|
||||||
|
|
||||||
|
if(NULL == (plist = H5P_object_verify(acspl_id, H5P_FILE_ACCESS)))
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_BADTYPE, FAIL, "not a file access list")
|
||||||
|
|
||||||
|
if(H5FD_MPIO == H5P_peek_driver(plist)) {
|
||||||
|
const H5FD_mpio_fapl_t *fa; /* MPIO fapl info */
|
||||||
|
|
||||||
|
if(NULL == (fa = (const H5FD_mpio_fapl_t *)H5P_peek_driver_info(plist)))
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "bad VFL driver info")
|
||||||
|
|
||||||
|
*mpi_comm = fa->comm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done:
|
||||||
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
} /* end H5F_mpi_retrieve_comm */
|
||||||
|
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
|
@ -337,8 +337,9 @@ H5F_t *H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id,
|
|||||||
hid_t fapl_id, H5FD_t *lf);
|
hid_t fapl_id, H5FD_t *lf);
|
||||||
herr_t H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush);
|
herr_t H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush);
|
||||||
H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing);
|
H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing);
|
||||||
H5_DLL htri_t H5F_is_hdf5(const char *name);
|
H5_DLL htri_t H5F_is_hdf5(const char *name, hid_t dxpl_id);
|
||||||
H5_DLL herr_t H5F_get_objects(const H5F_t *f, unsigned types, size_t max_index, hid_t *obj_id_list, hbool_t app_ref, size_t *obj_id_count_ptr);
|
H5_DLL herr_t H5F_get_objects(const H5F_t *f, unsigned types, size_t max_index, hid_t *obj_id_list, hbool_t app_ref, size_t *obj_id_count_ptr);
|
||||||
|
H5_DLL ssize_t H5F_get_file_image(H5F_t *f, void *buf_ptr, size_t buf_len, hid_t dxpl_id);
|
||||||
H5_DLL herr_t H5F_close(H5F_t *f);
|
H5_DLL herr_t H5F_close(H5F_t *f);
|
||||||
|
|
||||||
/* File mount related routines */
|
/* File mount related routines */
|
||||||
|
@ -604,7 +604,6 @@ H5_DLL unsigned H5F_get_nopen_objs(const H5F_t *f);
|
|||||||
H5_DLL unsigned H5F_incr_nopen_objs(H5F_t *f);
|
H5_DLL unsigned H5F_incr_nopen_objs(H5F_t *f);
|
||||||
H5_DLL unsigned H5F_decr_nopen_objs(H5F_t *f);
|
H5_DLL unsigned H5F_decr_nopen_objs(H5F_t *f);
|
||||||
H5_DLL hid_t H5F_get_file_id(const H5F_t *f);
|
H5_DLL hid_t H5F_get_file_id(const H5F_t *f);
|
||||||
H5_DLL ssize_t H5F_get_file_image(H5F_t *f, void *buf_ptr, size_t buf_len);
|
|
||||||
H5_DLL H5F_t *H5F_get_parent(const H5F_t *f);
|
H5_DLL H5F_t *H5F_get_parent(const H5F_t *f);
|
||||||
H5_DLL unsigned H5F_get_nmounts(const H5F_t *f);
|
H5_DLL unsigned H5F_get_nmounts(const H5F_t *f);
|
||||||
H5_DLL hid_t H5F_get_access_plist(H5F_t *f, hbool_t app_ref);
|
H5_DLL hid_t H5F_get_access_plist(H5F_t *f, hbool_t app_ref);
|
||||||
@ -680,6 +679,7 @@ H5_DLL herr_t H5F_super_dirty(H5F_t *f);
|
|||||||
H5_DLL int H5F_mpi_get_rank(const H5F_t *f);
|
H5_DLL int H5F_mpi_get_rank(const H5F_t *f);
|
||||||
H5_DLL MPI_Comm H5F_mpi_get_comm(const H5F_t *f);
|
H5_DLL MPI_Comm H5F_mpi_get_comm(const H5F_t *f);
|
||||||
H5_DLL int H5F_mpi_get_size(const H5F_t *f);
|
H5_DLL int H5F_mpi_get_size(const H5F_t *f);
|
||||||
|
H5_DLL herr_t H5F_mpi_retrieve_comm(hid_t loc_id, hid_t acspl_id, MPI_Comm *mpi_comm);
|
||||||
#endif /* H5_HAVE_PARALLEL */
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
/* External file cache routines */
|
/* External file cache routines */
|
||||||
|
@ -625,9 +625,6 @@ H5F__cache_superblock_serialize(const H5F_t *f, void *_image, size_t H5_ATTR_UNU
|
|||||||
/* (We'll rely on the cache to make sure it actually *is* flushed
|
/* (We'll rely on the cache to make sure it actually *is* flushed
|
||||||
last (and collectively in parallel), but this check doesn't hurt) */
|
last (and collectively in parallel), but this check doesn't hurt) */
|
||||||
HDassert(sblock->cache_info.flush_me_last);
|
HDassert(sblock->cache_info.flush_me_last);
|
||||||
#ifdef H5_HAVE_PARALLEL
|
|
||||||
HDassert(sblock->cache_info.flush_me_collectively);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Encode the common portion of the file superblock for all versions */
|
/* Encode the common portion of the file superblock for all versions */
|
||||||
HDmemcpy(image, H5F_SIGNATURE, (size_t)H5F_SIGNATURE_LEN);
|
HDmemcpy(image, H5F_SIGNATURE, (size_t)H5F_SIGNATURE_LEN);
|
||||||
|
@ -109,7 +109,7 @@ H5F_get_sohm_mesg_count_test(hid_t file_id, unsigned type_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file")
|
||||||
|
|
||||||
/* Retrieve count for message type */
|
/* Retrieve count for message type */
|
||||||
if(H5SM_get_mesg_count_test(file, H5AC_ind_dxpl_id, type_id, mesg_count) < 0)
|
if(H5SM_get_mesg_count_test(file, H5AC_dxpl_id, type_id, mesg_count) < 0)
|
||||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't retrieve shared message count")
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't retrieve shared message count")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
18
src/H5G.c
18
src/H5G.c
@ -317,7 +317,7 @@ H5Gcreate2(hid_t loc_id, const char *name, hid_t lcpl_id, hid_t gcpl_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group create property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group create property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Create the new group & get its ID */
|
/* Create the new group & get its ID */
|
||||||
@ -394,7 +394,7 @@ H5Gcreate_anon(hid_t loc_id, hid_t gcpl_id, hid_t gapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group create property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group create property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up group creation info */
|
/* Set up group creation info */
|
||||||
@ -453,7 +453,7 @@ H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id)
|
|||||||
{
|
{
|
||||||
H5G_t *grp = NULL; /* Group opened */
|
H5G_t *grp = NULL; /* Group opened */
|
||||||
H5G_loc_t loc; /* Location of parent for group */
|
H5G_loc_t loc; /* Location of parent for group */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hid_t ret_value; /* Return value */
|
hid_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -466,7 +466,7 @@ H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&gapl_id, H5P_CLS_GACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Open the group */
|
/* Open the group */
|
||||||
@ -559,7 +559,7 @@ H5Gget_info(hid_t grp_id, H5G_info_t *grp_info)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
||||||
|
|
||||||
/* Retrieve the group's information */
|
/* Retrieve the group's information */
|
||||||
if(H5G__obj_info(loc.oloc, grp_info/*out*/, H5AC_ind_dxpl_id) < 0)
|
if(H5G__obj_info(loc.oloc, grp_info/*out*/, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve group info")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't retrieve group info")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -589,7 +589,7 @@ H5Gget_info_by_name(hid_t loc_id, const char *name, H5G_info_t *grp_info,
|
|||||||
H5G_name_t grp_path; /* Opened object group hier. path */
|
H5G_name_t grp_path; /* Opened object group hier. path */
|
||||||
H5O_loc_t grp_oloc; /* Opened object object location */
|
H5O_loc_t grp_oloc; /* Opened object object location */
|
||||||
hbool_t loc_found = FALSE; /* Location at 'name' found */
|
hbool_t loc_found = FALSE; /* Location at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -604,7 +604,7 @@ H5Gget_info_by_name(hid_t loc_id, const char *name, H5G_info_t *grp_info,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -652,7 +652,7 @@ H5Gget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
H5G_name_t grp_path; /* Opened object group hier. path */
|
H5G_name_t grp_path; /* Opened object group hier. path */
|
||||||
H5O_loc_t grp_oloc; /* Opened object object location */
|
H5O_loc_t grp_oloc; /* Opened object object location */
|
||||||
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -672,7 +672,7 @@ H5Gget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
|
@ -274,7 +274,7 @@ H5Gopen1(hid_t loc_id, const char *name)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Open the group */
|
/* Open the group */
|
||||||
if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_ind_dxpl_id)) == NULL)
|
if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_dxpl_id)) == NULL)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group")
|
||||||
|
|
||||||
/* Register an atom for the group */
|
/* Register an atom for the group */
|
||||||
@ -602,7 +602,7 @@ H5Gget_linkval(hid_t loc_id, const char *name, size_t size, char *buf/*out*/)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
||||||
|
|
||||||
/* Call the new link routine which provides this capability */
|
/* Call the new link routine which provides this capability */
|
||||||
if(H5L_get_val(&loc, name, buf, size, H5P_DEFAULT, H5AC_ind_dxpl_id) < 0)
|
if(H5L_get_val(&loc, name, buf, size, H5P_DEFAULT, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "couldn't get link info")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "couldn't get link info")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -688,7 +688,7 @@ H5Gget_comment(hid_t loc_id, const char *name, size_t bufsize, char *buf)
|
|||||||
if(bufsize > 0 && !buf)
|
if(bufsize > 0 && !buf)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no buffer specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no buffer specified")
|
||||||
|
|
||||||
if((ret_value = (int)H5G_loc_get_comment(&loc, name, buf, bufsize, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = (int)H5G_loc_get_comment(&loc, name, buf, bufsize, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to get comment value")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to get comment value")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -752,7 +752,7 @@ H5Giterate(hid_t loc_id, const char *name, int *idx_p, H5G_iterate_t op,
|
|||||||
lnk_op.op_func.op_old = op;
|
lnk_op.op_func.op_old = op;
|
||||||
|
|
||||||
/* Call private function. */
|
/* Call private function. */
|
||||||
if((ret_value = H5G_iterate(loc_id, name, H5_INDEX_NAME, H5_ITER_INC, idx, &last_obj, &lnk_op, op_data, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_iterate(loc_id, name, H5_INDEX_NAME, H5_ITER_INC, idx, &last_obj, &lnk_op, op_data, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "group iteration failed")
|
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "group iteration failed")
|
||||||
|
|
||||||
/* Set the index we stopped at */
|
/* Set the index we stopped at */
|
||||||
@ -794,7 +794,7 @@ H5Gget_num_objs(hid_t loc_id, hsize_t *num_objs)
|
|||||||
/* Check args */
|
/* Check args */
|
||||||
if(H5G_loc(loc_id, &loc) < 0)
|
if(H5G_loc(loc_id, &loc) < 0)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location ID")
|
||||||
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_ind_dxpl_id) < 0)
|
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't get object type")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't get object type")
|
||||||
if(obj_type != H5O_TYPE_GROUP)
|
if(obj_type != H5O_TYPE_GROUP)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
|
||||||
@ -802,7 +802,7 @@ H5Gget_num_objs(hid_t loc_id, hsize_t *num_objs)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "bad pointer to # of objects")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "bad pointer to # of objects")
|
||||||
|
|
||||||
/* Retrieve information about the group */
|
/* Retrieve information about the group */
|
||||||
if(H5G__obj_info(loc.oloc, &grp_info, H5AC_ind_dxpl_id) < 0)
|
if(H5G__obj_info(loc.oloc, &grp_info, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTCOUNT, FAIL, "can't determine")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTCOUNT, FAIL, "can't determine")
|
||||||
|
|
||||||
/* Set the number of objects [sic: links] in the group */
|
/* Set the number of objects [sic: links] in the group */
|
||||||
@ -847,7 +847,7 @@ H5Gget_objinfo(hid_t loc_id, const char *name, hbool_t follow_link,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
||||||
|
|
||||||
/* Get info */
|
/* Get info */
|
||||||
if(H5G_get_objinfo(&loc, name, follow_link, statbuf, H5AC_ind_dxpl_id) < 0)
|
if(H5G_get_objinfo(&loc, name, follow_link, statbuf, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_CANTINIT, FAIL, "cannot stat object")
|
HGOTO_ERROR(H5E_ARGS, H5E_CANTINIT, FAIL, "cannot stat object")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1040,13 +1040,13 @@ H5Gget_objname_by_idx(hid_t loc_id, hsize_t idx, char *name, size_t size)
|
|||||||
/* Check args */
|
/* Check args */
|
||||||
if(H5G_loc(loc_id, &loc) < 0)
|
if(H5G_loc(loc_id, &loc) < 0)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location ID")
|
||||||
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_ind_dxpl_id) < 0)
|
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object type")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object type")
|
||||||
if(obj_type != H5O_TYPE_GROUP)
|
if(obj_type != H5O_TYPE_GROUP)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_BADTYPE, FAIL, "not a group")
|
HGOTO_ERROR(H5E_DATASET, H5E_BADTYPE, FAIL, "not a group")
|
||||||
|
|
||||||
/* Call internal function */
|
/* Call internal function */
|
||||||
if((ret_value = H5G_obj_get_name_by_idx(loc.oloc, H5_INDEX_NAME, H5_ITER_INC, idx, name, size, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_obj_get_name_by_idx(loc.oloc, H5_INDEX_NAME, H5_ITER_INC, idx, name, size, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, FAIL, "can't get object name")
|
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, FAIL, "can't get object name")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1082,13 +1082,13 @@ H5Gget_objtype_by_idx(hid_t loc_id, hsize_t idx)
|
|||||||
/* Check args */
|
/* Check args */
|
||||||
if(H5G_loc(loc_id, &loc) < 0)
|
if(H5G_loc(loc_id, &loc) < 0)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5G_UNKNOWN, "not a location ID")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5G_UNKNOWN, "not a location ID")
|
||||||
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_ind_dxpl_id) < 0)
|
if(H5O_obj_type(loc.oloc, &obj_type, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, H5G_UNKNOWN, "can't get object type")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, H5G_UNKNOWN, "can't get object type")
|
||||||
if(obj_type != H5O_TYPE_GROUP)
|
if(obj_type != H5O_TYPE_GROUP)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, H5G_UNKNOWN, "not a group")
|
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, H5G_UNKNOWN, "not a group")
|
||||||
|
|
||||||
/* Call internal function*/
|
/* Call internal function*/
|
||||||
if((ret_value = H5G_obj_get_type_by_idx(loc.oloc, idx, H5AC_ind_dxpl_id)) == H5G_UNKNOWN)
|
if((ret_value = H5G_obj_get_type_by_idx(loc.oloc, idx, H5AC_dxpl_id)) == H5G_UNKNOWN)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, H5G_UNKNOWN, "can't get object type")
|
HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, H5G_UNKNOWN, "can't get object type")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
12
src/H5Gint.c
12
src/H5Gint.c
@ -1200,17 +1200,17 @@ H5G_get_create_plist(H5G_t *grp)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
||||||
|
|
||||||
/* Retrieve any object creation properties */
|
/* Retrieve any object creation properties */
|
||||||
if(H5O_get_create_plist(&grp->oloc, H5AC_ind_dxpl_id, new_plist) < 0)
|
if(H5O_get_create_plist(&grp->oloc, H5AC_dxpl_id, new_plist) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't get object creation info")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "can't get object creation info")
|
||||||
|
|
||||||
/* Check for the group having a group info message */
|
/* Check for the group having a group info message */
|
||||||
if((ginfo_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, H5AC_ind_dxpl_id)) < 0)
|
if((ginfo_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
|
||||||
if(ginfo_exists) {
|
if(ginfo_exists) {
|
||||||
H5O_ginfo_t ginfo; /* Group info message */
|
H5O_ginfo_t ginfo; /* Group info message */
|
||||||
|
|
||||||
/* Read the group info */
|
/* Read the group info */
|
||||||
if(NULL == H5O_msg_read(&(grp->oloc), H5O_GINFO_ID, &ginfo, H5AC_ind_dxpl_id))
|
if(NULL == H5O_msg_read(&(grp->oloc), H5O_GINFO_ID, &ginfo, H5AC_dxpl_id))
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get group info")
|
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get group info")
|
||||||
|
|
||||||
/* Set the group info for the property list */
|
/* Set the group info for the property list */
|
||||||
@ -1219,7 +1219,7 @@ H5G_get_create_plist(H5G_t *grp)
|
|||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Check for the group having a link info message */
|
/* Check for the group having a link info message */
|
||||||
if((linfo_exists = H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_ind_dxpl_id)) < 0)
|
if((linfo_exists = H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
|
||||||
if(linfo_exists) {
|
if(linfo_exists) {
|
||||||
/* Set the link info for the property list */
|
/* Set the link info for the property list */
|
||||||
@ -1228,13 +1228,13 @@ H5G_get_create_plist(H5G_t *grp)
|
|||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Check for the group having a pipeline message */
|
/* Check for the group having a pipeline message */
|
||||||
if((pline_exists = H5O_msg_exists(&(grp->oloc), H5O_PLINE_ID, H5AC_ind_dxpl_id)) < 0)
|
if((pline_exists = H5O_msg_exists(&(grp->oloc), H5O_PLINE_ID, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "unable to read object header")
|
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "unable to read object header")
|
||||||
if(pline_exists) {
|
if(pline_exists) {
|
||||||
H5O_pline_t pline; /* Pipeline message */
|
H5O_pline_t pline; /* Pipeline message */
|
||||||
|
|
||||||
/* Read the pipeline */
|
/* Read the pipeline */
|
||||||
if(NULL == H5O_msg_read(&(grp->oloc), H5O_PLINE_ID, &pline, H5AC_ind_dxpl_id))
|
if(NULL == H5O_msg_read(&(grp->oloc), H5O_PLINE_ID, &pline, H5AC_dxpl_id))
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link pipeline")
|
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link pipeline")
|
||||||
|
|
||||||
/* Set the pipeline for the property list */
|
/* Set the pipeline for the property list */
|
||||||
|
@ -97,7 +97,7 @@ H5G__is_empty_test(hid_t gid)
|
|||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
htri_t msg_exists = FALSE; /* Indicate that a header message is present */
|
htri_t msg_exists = FALSE; /* Indicate that a header message is present */
|
||||||
htri_t linfo_exists = FALSE;/* Indicate that the 'link info' message is present */
|
htri_t linfo_exists = FALSE;/* Indicate that the 'link info' message is present */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
htri_t ret_value = TRUE; /* Return value */
|
htri_t ret_value = TRUE; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -209,7 +209,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs)
|
|||||||
{
|
{
|
||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
htri_t ret_value = TRUE; /* Return value */
|
htri_t ret_value = TRUE; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -268,7 +268,7 @@ H5G__has_stab_test(hid_t gid)
|
|||||||
{
|
{
|
||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
htri_t ret_value = TRUE; /* Return value */
|
htri_t ret_value = TRUE; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -319,7 +319,7 @@ H5G__is_new_dense_test(hid_t gid)
|
|||||||
{
|
{
|
||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
htri_t msg_exists = 0; /* Indicate that a header message is present */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
htri_t ret_value = TRUE; /* Return value */
|
htri_t ret_value = TRUE; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -390,7 +390,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
|
|||||||
H5B2_t *bt2_corder = NULL; /* v2 B-tree handle for creation order index */
|
H5B2_t *bt2_corder = NULL; /* v2 B-tree handle for creation order index */
|
||||||
H5O_linfo_t linfo; /* Link info message */
|
H5O_linfo_t linfo; /* Link info message */
|
||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -471,7 +471,7 @@ H5G__lheap_size_test(hid_t gid, size_t *lheap_size)
|
|||||||
{
|
{
|
||||||
H5G_t *grp = NULL; /* Pointer to group */
|
H5G_t *grp = NULL; /* Pointer to group */
|
||||||
H5O_stab_t stab; /* Symbol table message */
|
H5O_stab_t stab; /* Symbol table message */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
@ -613,7 +613,7 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent)
|
|||||||
{
|
{
|
||||||
H5O_stab_t stab; /* Symbol table */
|
H5O_stab_t stab; /* Symbol table */
|
||||||
H5HL_t *heap = NULL; /* Pointer to local heap */
|
H5HL_t *heap = NULL; /* Pointer to local heap */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE_TAG(dxpl_id, grp_oloc->addr, FAIL)
|
FUNC_ENTER_PACKAGE_TAG(dxpl_id, grp_oloc->addr, FAIL)
|
||||||
@ -770,7 +770,7 @@ H5G__verify_cached_stabs_test(hid_t gid)
|
|||||||
H5O_stab_t stab; /* Symbol table message */
|
H5O_stab_t stab; /* Symbol table message */
|
||||||
H5G_bt_common_t udata = {NULL, NULL}; /* Dummy udata so H5B_iterate doesn't freak out */
|
H5G_bt_common_t udata = {NULL, NULL}; /* Dummy udata so H5B_iterate doesn't freak out */
|
||||||
haddr_t prev_tag = HADDR_UNDEF; /* Previous metadata tag */
|
haddr_t prev_tag = HADDR_UNDEF; /* Previous metadata tag */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* transfer property list used for this operation */
|
hid_t dxpl_id = H5AC_dxpl_id; /* transfer property list used for this operation */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_PACKAGE
|
FUNC_ENTER_PACKAGE
|
||||||
|
@ -2049,7 +2049,7 @@ H5Iget_name(hid_t id, char *name/*out*/, size_t size)
|
|||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object location")
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object location")
|
||||||
|
|
||||||
/* Call internal group routine to retrieve object's name */
|
/* Call internal group routine to retrieve object's name */
|
||||||
if((ret_value = H5G_get_name(&loc, name, size, NULL, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_get_name(&loc, name, size, NULL, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object name")
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object name")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -89,7 +89,7 @@ H5I_get_name_test(hid_t id, char *name/*out*/, size_t size, hbool_t *cached)
|
|||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object location")
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object location")
|
||||||
|
|
||||||
/* Call internal group routine to retrieve object's name */
|
/* Call internal group routine to retrieve object's name */
|
||||||
if((ret_value = H5G_get_name(&loc, name, size, cached, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_get_name(&loc, name, size, cached, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object name")
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't retrieve object name")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
52
src/H5L.c
52
src/H5L.c
@ -358,7 +358,9 @@ H5Lmove(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id,
|
||||||
|
((src_loc_id != H5L_SAME_LOC) ? src_loc_id : dst_loc_id),
|
||||||
|
TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up src & dst location pointers */
|
/* Set up src & dst location pointers */
|
||||||
@ -421,7 +423,9 @@ H5Lcopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id,
|
||||||
|
((src_loc_id != H5L_SAME_LOC) ? src_loc_id : dst_loc_id),
|
||||||
|
TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up src & dst location pointers */
|
/* Set up src & dst location pointers */
|
||||||
@ -482,7 +486,7 @@ H5Lcreate_soft(const char *link_target,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, link_loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Create the link */
|
/* Create the link */
|
||||||
@ -538,7 +542,7 @@ H5Lcreate_hard(hid_t cur_loc_id, const char *cur_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, cur_loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up current & new location pointers */
|
/* Set up current & new location pointers */
|
||||||
@ -606,7 +610,7 @@ H5Lcreate_ud(hid_t link_loc_id, const char *link_name, H5L_type_t link_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link class")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link class")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, link_loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Create external link */
|
/* Create external link */
|
||||||
@ -652,7 +656,7 @@ H5Ldelete(hid_t loc_id, const char *name, hid_t lapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Unlink */
|
/* Unlink */
|
||||||
@ -706,7 +710,7 @@ H5Ldelete_by_idx(hid_t loc_id, const char *group_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up user data for unlink operation */
|
/* Set up user data for unlink operation */
|
||||||
@ -749,7 +753,7 @@ H5Lget_val(hid_t loc_id, const char *name, void *buf/*out*/, size_t size,
|
|||||||
hid_t lapl_id)
|
hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Group location for location to query */
|
H5G_loc_t loc; /* Group location for location to query */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -762,7 +766,7 @@ H5Lget_val(hid_t loc_id, const char *name, void *buf/*out*/, size_t size,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Get the link value */
|
/* Get the link value */
|
||||||
@ -799,7 +803,7 @@ H5Lget_val_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Group location for location to query */
|
H5G_loc_t loc; /* Group location for location to query */
|
||||||
H5L_trav_gvbi_t udata; /* User data for callback */
|
H5L_trav_gvbi_t udata; /* User data for callback */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -817,7 +821,7 @@ H5Lget_val_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up user data for retrieving information */
|
/* Set up user data for retrieving information */
|
||||||
@ -856,7 +860,7 @@ htri_t
|
|||||||
H5Lexists(hid_t loc_id, const char *name, hid_t lapl_id)
|
H5Lexists(hid_t loc_id, const char *name, hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc;
|
H5G_loc_t loc;
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
htri_t ret_value;
|
htri_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -869,7 +873,7 @@ H5Lexists(hid_t loc_id, const char *name, hid_t lapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Check for the existence of the link */
|
/* Check for the existence of the link */
|
||||||
@ -900,7 +904,7 @@ H5Lget_info(hid_t loc_id, const char *name, H5L_info_t *linfo /*out*/,
|
|||||||
hid_t lapl_id)
|
hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc;
|
H5G_loc_t loc;
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED;
|
herr_t ret_value = SUCCEED;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -913,7 +917,7 @@ H5Lget_info(hid_t loc_id, const char *name, H5L_info_t *linfo /*out*/,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Get the link information */
|
/* Get the link information */
|
||||||
@ -946,7 +950,7 @@ H5Lget_info_by_idx(hid_t loc_id, const char *group_name,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Group location for group to query */
|
H5G_loc_t loc; /* Group location for group to query */
|
||||||
H5L_trav_gibi_t udata; /* User data for callback */
|
H5L_trav_gibi_t udata; /* User data for callback */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -964,7 +968,7 @@ H5Lget_info_by_idx(hid_t loc_id, const char *group_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up user data for callback */
|
/* Set up user data for callback */
|
||||||
@ -1135,7 +1139,7 @@ H5Lget_name_by_idx(hid_t loc_id, const char *group_name,
|
|||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Location of group */
|
H5G_loc_t loc; /* Location of group */
|
||||||
H5L_trav_gnbi_t udata; /* User data for callback */
|
H5L_trav_gnbi_t udata; /* User data for callback */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
ssize_t ret_value; /* Return value */
|
ssize_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1153,7 +1157,7 @@ H5Lget_name_by_idx(hid_t loc_id, const char *group_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up user data for callback */
|
/* Set up user data for callback */
|
||||||
@ -1233,7 +1237,7 @@ H5Literate(hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order,
|
|||||||
lnk_op.op_func.op_new = op;
|
lnk_op.op_func.op_new = op;
|
||||||
|
|
||||||
/* Iterate over the links */
|
/* Iterate over the links */
|
||||||
if((ret_value = H5G_iterate(grp_id, ".", idx_type, order, idx, &last_lnk, &lnk_op, op_data, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_iterate(grp_id, ".", idx_type, order, idx, &last_lnk, &lnk_op, op_data, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "link iteration failed")
|
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "link iteration failed")
|
||||||
|
|
||||||
/* Set the index we stopped at */
|
/* Set the index we stopped at */
|
||||||
@ -1275,7 +1279,7 @@ H5Literate_by_name(hid_t loc_id, const char *group_name,
|
|||||||
H5G_link_iterate_t lnk_op; /* Link operator */
|
H5G_link_iterate_t lnk_op; /* Link operator */
|
||||||
hsize_t last_lnk; /* Index of last object looked at */
|
hsize_t last_lnk; /* Index of last object looked at */
|
||||||
hsize_t idx; /* Internal location to hold index */
|
hsize_t idx; /* Internal location to hold index */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value; /* Return value */
|
herr_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1293,7 +1297,7 @@ H5Literate_by_name(hid_t loc_id, const char *group_name,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no operator specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no operator specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up iteration beginning/end info */
|
/* Set up iteration beginning/end info */
|
||||||
@ -1368,7 +1372,7 @@ H5Lvisit(hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
||||||
|
|
||||||
/* Call internal group visitation routine */
|
/* Call internal group visitation routine */
|
||||||
if((ret_value = H5G_visit(grp_id, ".", idx_type, order, op, op_data, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_visit(grp_id, ".", idx_type, order, op, op_data, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "link visitation failed")
|
HGOTO_ERROR(H5E_SYM, H5E_BADITER, FAIL, "link visitation failed")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1426,7 +1430,7 @@ H5Lvisit_by_name(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Call internal group visitation routine */
|
/* Call internal group visitation routine */
|
||||||
|
@ -282,7 +282,7 @@ H5L_extern_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
|
|||||||
parent_file_name = H5F_OPEN_NAME(loc.oloc->file);
|
parent_file_name = H5F_OPEN_NAME(loc.oloc->file);
|
||||||
|
|
||||||
/* Query length of parent group name */
|
/* Query length of parent group name */
|
||||||
if((group_name_len = H5G_get_name(&loc, NULL, (size_t) 0, NULL, lapl_id, H5AC_ind_dxpl_id)) < 0)
|
if((group_name_len = H5G_get_name(&loc, NULL, (size_t) 0, NULL, lapl_id, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTGET, FAIL, "unable to retrieve length of group name")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTGET, FAIL, "unable to retrieve length of group name")
|
||||||
|
|
||||||
/* Account for null terminator */
|
/* Account for null terminator */
|
||||||
@ -297,7 +297,7 @@ H5L_extern_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
|
|||||||
parent_group_name = local_group_name;
|
parent_group_name = local_group_name;
|
||||||
|
|
||||||
/* Get parent group name */
|
/* Get parent group name */
|
||||||
if(H5G_get_name(&loc, parent_group_name, (size_t) group_name_len, NULL, lapl_id, H5AC_ind_dxpl_id) < 0)
|
if(H5G_get_name(&loc, parent_group_name, (size_t) group_name_len, NULL, lapl_id, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTGET, FAIL, "unable to retrieve group name")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTGET, FAIL, "unable to retrieve group name")
|
||||||
|
|
||||||
/* Make callback */
|
/* Make callback */
|
||||||
@ -599,7 +599,7 @@ H5Lcreate_external(const char *file_name, const char *obj_name,
|
|||||||
HDstrncpy((char *)p, norm_obj_name, buf_size - (file_name_len + 1)); /* External link's object */
|
HDstrncpy((char *)p, norm_obj_name, buf_size - (file_name_len + 1)); /* External link's object */
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, link_loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_LINK, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Create an external link */
|
/* Create an external link */
|
||||||
|
42
src/H5O.c
42
src/H5O.c
@ -282,7 +282,7 @@ H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
H5G_loc_t obj_loc; /* Location used to open group */
|
H5G_loc_t obj_loc; /* Location used to open group */
|
||||||
H5G_name_t obj_path; /* Opened object group hier. path */
|
H5G_name_t obj_path; /* Opened object group hier. path */
|
||||||
H5O_loc_t obj_oloc; /* Opened object object location */
|
H5O_loc_t obj_oloc; /* Opened object object location */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
||||||
hid_t ret_value = FAIL;
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid iteration order specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -390,7 +390,7 @@ H5Oopen_by_addr(hid_t loc_id, haddr_t addr)
|
|||||||
H5G_name_reset(obj_loc.path); /* objects opened through this routine don't have a path name */
|
H5G_name_reset(obj_loc.path); /* objects opened through this routine don't have a path name */
|
||||||
|
|
||||||
/* Open the object */
|
/* Open the object */
|
||||||
if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0)
|
if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open object")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open object")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -450,7 +450,7 @@ H5Olink(hid_t obj_id, hid_t new_loc_id, const char *new_name, hid_t lcpl_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, obj_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Link to the object */
|
/* Link to the object */
|
||||||
@ -561,7 +561,7 @@ htri_t
|
|||||||
H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id)
|
H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Location info */
|
H5G_loc_t loc; /* Location info */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
htri_t ret_value = FAIL; /* Return value */
|
htri_t ret_value = FAIL; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -574,7 +574,7 @@ H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Check if the object exists */
|
/* Check if the object exists */
|
||||||
@ -615,7 +615,7 @@ H5Oget_info(hid_t loc_id, H5O_info_t *oinfo)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
||||||
|
|
||||||
/* Retrieve the object's information */
|
/* Retrieve the object's information */
|
||||||
if(H5G_loc_info(&loc, ".", TRUE, oinfo/*out*/, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id) < 0)
|
if(H5G_loc_info(&loc, ".", TRUE, oinfo/*out*/, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -640,7 +640,7 @@ herr_t
|
|||||||
H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t lapl_id)
|
H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Location of group */
|
H5G_loc_t loc; /* Location of group */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -655,7 +655,7 @@ H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo, hid_t lap
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Retrieve the object's information */
|
/* Retrieve the object's information */
|
||||||
@ -690,7 +690,7 @@ H5Oget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
H5G_name_t obj_path; /* Opened object group hier. path */
|
H5G_name_t obj_path; /* Opened object group hier. path */
|
||||||
H5O_loc_t obj_oloc; /* Opened object object location */
|
H5O_loc_t obj_oloc; /* Opened object object location */
|
||||||
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -710,7 +710,7 @@ H5Oget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no info struct")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up opened group location to fill in */
|
/* Set up opened group location to fill in */
|
||||||
@ -724,7 +724,7 @@ H5Oget_info_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
|
|||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
/* Retrieve the object's information */
|
/* Retrieve the object's information */
|
||||||
if(H5O_get_info(obj_loc.oloc, H5AC_ind_dxpl_id, TRUE, oinfo) < 0)
|
if(H5O_get_info(obj_loc.oloc, H5AC_dxpl_id, TRUE, oinfo) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't retrieve object info")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "can't retrieve object info")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -767,7 +767,7 @@ H5Oset_comment(hid_t obj_id, const char *comment)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
||||||
|
|
||||||
/* (Re)set the object's comment */
|
/* (Re)set the object's comment */
|
||||||
if(H5G_loc_set_comment(&loc, ".", comment, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id) < 0)
|
if(H5G_loc_set_comment(&loc, ".", comment, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -810,7 +810,7 @@ H5Oset_comment_by_name(hid_t loc_id, const char *name, const char *comment,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* (Re)set the object's comment */
|
/* (Re)set the object's comment */
|
||||||
@ -852,7 +852,7 @@ H5Oget_comment(hid_t obj_id, char *comment, size_t bufsize)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
|
||||||
|
|
||||||
/* Retrieve the object's comment */
|
/* Retrieve the object's comment */
|
||||||
if((ret_value = H5G_loc_get_comment(&loc, ".", comment/*out*/, bufsize, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5G_loc_get_comment(&loc, ".", comment/*out*/, bufsize, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -881,7 +881,7 @@ H5Oget_comment_by_name(hid_t loc_id, const char *name, char *comment, size_t buf
|
|||||||
hid_t lapl_id)
|
hid_t lapl_id)
|
||||||
{
|
{
|
||||||
H5G_loc_t loc; /* Location of group */
|
H5G_loc_t loc; /* Location of group */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
ssize_t ret_value; /* Return value */
|
ssize_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -894,7 +894,7 @@ H5Oget_comment_by_name(hid_t loc_id, const char *name, char *comment, size_t buf
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Retrieve the object's comment */
|
/* Retrieve the object's comment */
|
||||||
@ -956,7 +956,7 @@ H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
||||||
|
|
||||||
/* Call internal object visitation routine */
|
/* Call internal object visitation routine */
|
||||||
if((ret_value = H5O_visit(obj_id, ".", idx_type, order, op, op_data, H5P_LINK_ACCESS_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((ret_value = H5O_visit(obj_id, ".", idx_type, order, op, op_data, H5P_LINK_ACCESS_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
|
HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "object visitation failed")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1000,7 +1000,7 @@ herr_t
|
|||||||
H5Ovisit_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
H5Ovisit_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
||||||
H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id)
|
H5_iter_order_t order, H5O_iterate_t op, void *op_data, hid_t lapl_id)
|
||||||
{
|
{
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
herr_t ret_value; /* Return value */
|
herr_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -1018,7 +1018,7 @@ H5Ovisit_by_name(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no callback operator specified")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&lapl_id, H5P_CLS_LACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Call internal object visitation routine */
|
/* Call internal object visitation routine */
|
||||||
@ -1351,7 +1351,7 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref)
|
|||||||
H5G_name_t obj_path; /* Opened object group hier. path */
|
H5G_name_t obj_path; /* Opened object group hier. path */
|
||||||
H5O_loc_t obj_oloc; /* Opened object object location */
|
H5O_loc_t obj_oloc; /* Opened object object location */
|
||||||
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
hbool_t loc_found = FALSE; /* Entry at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl used by library */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl used by library */
|
||||||
hid_t ret_value = FAIL;
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
FUNC_ENTER_NOAPI(FAIL)
|
FUNC_ENTER_NOAPI(FAIL)
|
||||||
|
@ -233,7 +233,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no destination name specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no destination name specified")
|
||||||
|
|
||||||
/* check if destination name already exists */
|
/* check if destination name already exists */
|
||||||
if((dst_exists = H5L_exists_tolerant(&dst_loc, dst_name, H5P_DEFAULT, H5AC_ind_dxpl_id)) < 0)
|
if((dst_exists = H5L_exists_tolerant(&dst_loc, dst_name, H5P_DEFAULT, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to check if destination name exists")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to check if destination name exists")
|
||||||
if(TRUE == dst_exists)
|
if(TRUE == dst_exists)
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_EXISTS, FAIL, "destination object already exists")
|
HGOTO_ERROR(H5E_OHDR, H5E_EXISTS, FAIL, "destination object already exists")
|
||||||
@ -244,7 +244,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
|
|||||||
H5G_loc_reset(&src_loc);
|
H5G_loc_reset(&src_loc);
|
||||||
|
|
||||||
/* Find the source object to copy */
|
/* Find the source object to copy */
|
||||||
if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_ind_dxpl_id) < 0)
|
if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "source object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "source object not found")
|
||||||
loc_found = TRUE;
|
loc_found = TRUE;
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@ H5O_fill_copy(const void *_src, void *_dst)
|
|||||||
H5T_path_t *tpath; /* Conversion information */
|
H5T_path_t *tpath; /* Conversion information */
|
||||||
|
|
||||||
/* Set up type conversion function */
|
/* Set up type conversion function */
|
||||||
if(NULL == (tpath = H5T_path_find(src->type, dst->type, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
if(NULL == (tpath = H5T_path_find(src->type, dst->type, NULL, NULL, H5AC_dxpl_id, FALSE)))
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_UNSUPPORTED, NULL, "unable to convert between src and dst data types")
|
HGOTO_ERROR(H5E_OHDR, H5E_UNSUPPORTED, NULL, "unable to convert between src and dst data types")
|
||||||
|
|
||||||
/* If necessary, convert fill value datatypes (which copies VL components, etc.) */
|
/* If necessary, convert fill value datatypes (which copies VL components, etc.) */
|
||||||
@ -555,7 +555,7 @@ H5O_fill_copy(const void *_src, void *_dst)
|
|||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Convert fill value */
|
/* Convert fill value */
|
||||||
if(H5T_convert(tpath, src_id, dst_id, (size_t)1, (size_t)0, (size_t)0, dst->buf, bkg_buf, H5AC_ind_dxpl_id) < 0) {
|
if(H5T_convert(tpath, src_id, dst_id, (size_t)1, (size_t)0, (size_t)0, dst->buf, bkg_buf, H5AC_dxpl_id) < 0) {
|
||||||
H5I_dec_ref(src_id);
|
H5I_dec_ref(src_id);
|
||||||
H5I_dec_ref(dst_id);
|
H5I_dec_ref(dst_id);
|
||||||
if(bkg_buf)
|
if(bkg_buf)
|
||||||
|
@ -593,7 +593,7 @@ H5O__layout_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p,
|
|||||||
UINT32ENCODE(heap_block_p, chksum)
|
UINT32ENCODE(heap_block_p, chksum)
|
||||||
|
|
||||||
/* Insert block into global heap */
|
/* Insert block into global heap */
|
||||||
if(H5HG_insert(f, H5AC_ind_dxpl_id, block_size, heap_block, &((H5O_layout_t *)mesg)->storage.u.virt.serial_list_hobjid) < 0) /* Casting away const OK --NAF */
|
if(H5HG_insert(f, H5AC_dxpl_id, block_size, heap_block, &((H5O_layout_t *)mesg)->storage.u.virt.serial_list_hobjid) < 0) /* Casting away const OK --NAF */
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTINSERT, FAIL, "unable to insert virtual dataset heap block")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTINSERT, FAIL, "unable to insert virtual dataset heap block")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
|
@ -108,14 +108,14 @@ H5O_is_attr_dense_test(hid_t oid)
|
|||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
/* Get the object header */
|
/* Get the object header */
|
||||||
if(NULL == (oh = H5O_protect(loc, H5AC_ind_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
if(NULL == (oh = H5O_protect(loc, H5AC_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
||||||
|
|
||||||
/* Check for attribute info stored */
|
/* Check for attribute info stored */
|
||||||
ainfo.fheap_addr = HADDR_UNDEF;
|
ainfo.fheap_addr = HADDR_UNDEF;
|
||||||
if(oh->version > H5O_VERSION_1) {
|
if(oh->version > H5O_VERSION_1) {
|
||||||
/* Check for (& retrieve if available) attribute info */
|
/* Check for (& retrieve if available) attribute info */
|
||||||
if(H5A_get_ainfo(loc->file, H5AC_ind_dxpl_id, oh, &ainfo) < 0)
|
if(H5A_get_ainfo(loc->file, H5AC_dxpl_id, oh, &ainfo) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ H5O_is_attr_dense_test(hid_t oid)
|
|||||||
ret_value = FALSE;
|
ret_value = FALSE;
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if(oh && H5O_unprotect(loc, H5AC_ind_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
if(oh && H5O_unprotect(loc, H5AC_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
@ -173,13 +173,13 @@ H5O_is_attr_empty_test(hid_t oid)
|
|||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
/* Get the object header */
|
/* Get the object header */
|
||||||
if(NULL == (oh = H5O_protect(loc, H5AC_ind_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
if(NULL == (oh = H5O_protect(loc, H5AC_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
||||||
|
|
||||||
/* Check for attribute info stored */
|
/* Check for attribute info stored */
|
||||||
if(oh->version > H5O_VERSION_1) {
|
if(oh->version > H5O_VERSION_1) {
|
||||||
/* Check for (& retrieve if available) attribute info */
|
/* Check for (& retrieve if available) attribute info */
|
||||||
if((ainfo_exists = H5A_get_ainfo(loc->file, H5AC_ind_dxpl_id, oh, &ainfo)) < 0)
|
if((ainfo_exists = H5A_get_ainfo(loc->file, H5AC_dxpl_id, oh, &ainfo)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
@ -195,10 +195,10 @@ H5O_is_attr_empty_test(hid_t oid)
|
|||||||
HDassert(nattrs == 0);
|
HDassert(nattrs == 0);
|
||||||
|
|
||||||
/* Set metadata tag in dxpl_id */
|
/* Set metadata tag in dxpl_id */
|
||||||
H5_BEGIN_TAG(H5AC_ind_dxpl_id, loc->addr, FAIL);
|
H5_BEGIN_TAG(H5AC_dxpl_id, loc->addr, FAIL);
|
||||||
|
|
||||||
/* Open the name index v2 B-tree */
|
/* Open the name index v2 B-tree */
|
||||||
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_ind_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
||||||
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
||||||
|
|
||||||
/* Reset metadata tag in dxpl_id */
|
/* Reset metadata tag in dxpl_id */
|
||||||
@ -221,9 +221,9 @@ H5O_is_attr_empty_test(hid_t oid)
|
|||||||
|
|
||||||
done:
|
done:
|
||||||
/* Release resources */
|
/* Release resources */
|
||||||
if(bt2_name && H5B2_close(bt2_name, H5AC_ind_dxpl_id) < 0)
|
if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
||||||
if(oh && H5O_unprotect(loc, H5AC_ind_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
if(oh && H5O_unprotect(loc, H5AC_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
@ -266,14 +266,14 @@ H5O_num_attrs_test(hid_t oid, hsize_t *nattrs)
|
|||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
/* Get the object header */
|
/* Get the object header */
|
||||||
if(NULL == (oh = H5O_protect(loc, H5AC_ind_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
if(NULL == (oh = H5O_protect(loc, H5AC_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
||||||
|
|
||||||
/* Check for attribute info stored */
|
/* Check for attribute info stored */
|
||||||
ainfo.fheap_addr = HADDR_UNDEF;
|
ainfo.fheap_addr = HADDR_UNDEF;
|
||||||
if(oh->version > H5O_VERSION_1) {
|
if(oh->version > H5O_VERSION_1) {
|
||||||
/* Check for (& retrieve if available) attribute info */
|
/* Check for (& retrieve if available) attribute info */
|
||||||
if(H5A_get_ainfo(loc->file, H5AC_ind_dxpl_id, oh, &ainfo) < 0)
|
if(H5A_get_ainfo(loc->file, H5AC_dxpl_id, oh, &ainfo) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
@ -288,10 +288,10 @@ H5O_num_attrs_test(hid_t oid, hsize_t *nattrs)
|
|||||||
HDassert(obj_nattrs == 0);
|
HDassert(obj_nattrs == 0);
|
||||||
|
|
||||||
/* Set metadata tag in dxpl_id */
|
/* Set metadata tag in dxpl_id */
|
||||||
H5_BEGIN_TAG(H5AC_ind_dxpl_id, loc->addr, FAIL);
|
H5_BEGIN_TAG(H5AC_dxpl_id, loc->addr, FAIL);
|
||||||
|
|
||||||
/* Open the name index v2 B-tree */
|
/* Open the name index v2 B-tree */
|
||||||
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_ind_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
||||||
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
||||||
|
|
||||||
/* Reset metadata tag in dxpl_id */
|
/* Reset metadata tag in dxpl_id */
|
||||||
@ -311,9 +311,9 @@ H5O_num_attrs_test(hid_t oid, hsize_t *nattrs)
|
|||||||
|
|
||||||
done:
|
done:
|
||||||
/* Release resources */
|
/* Release resources */
|
||||||
if(bt2_name && H5B2_close(bt2_name, H5AC_ind_dxpl_id) < 0)
|
if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
||||||
if(oh && H5O_unprotect(loc, H5AC_ind_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
if(oh && H5O_unprotect(loc, H5AC_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
@ -358,17 +358,17 @@ H5O_attr_dense_info_test(hid_t oid, hsize_t *name_count, hsize_t *corder_count)
|
|||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
/* Set metadata tag in dxpl_id */
|
/* Set metadata tag in dxpl_id */
|
||||||
H5_BEGIN_TAG(H5AC_ind_dxpl_id, loc->addr, FAIL);
|
H5_BEGIN_TAG(H5AC_dxpl_id, loc->addr, FAIL);
|
||||||
|
|
||||||
/* Get the object header */
|
/* Get the object header */
|
||||||
if(NULL == (oh = H5O_protect(loc, H5AC_ind_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
if(NULL == (oh = H5O_protect(loc, H5AC_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
||||||
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
||||||
|
|
||||||
/* Check for attribute info stored */
|
/* Check for attribute info stored */
|
||||||
ainfo.fheap_addr = HADDR_UNDEF;
|
ainfo.fheap_addr = HADDR_UNDEF;
|
||||||
if(oh->version > H5O_VERSION_1) {
|
if(oh->version > H5O_VERSION_1) {
|
||||||
/* Check for (& retrieve if available) attribute info */
|
/* Check for (& retrieve if available) attribute info */
|
||||||
if(H5A_get_ainfo(loc->file, H5AC_ind_dxpl_id, oh, &ainfo) < 0)
|
if(H5A_get_ainfo(loc->file, H5AC_dxpl_id, oh, &ainfo) < 0)
|
||||||
HGOTO_ERROR_TAG(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
HGOTO_ERROR_TAG(H5E_ATTR, H5E_CANTGET, FAIL, "can't check for attribute info message")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
@ -379,7 +379,7 @@ H5O_attr_dense_info_test(hid_t oid, hsize_t *name_count, hsize_t *corder_count)
|
|||||||
HGOTO_DONE_TAG(FAIL, FAIL)
|
HGOTO_DONE_TAG(FAIL, FAIL)
|
||||||
|
|
||||||
/* Open the name index v2 B-tree */
|
/* Open the name index v2 B-tree */
|
||||||
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_ind_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
if(NULL == (bt2_name = H5B2_open(loc->file, H5AC_dxpl_id, ainfo.name_bt2_addr, NULL)))
|
||||||
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
|
||||||
|
|
||||||
/* Retrieve # of records in name index */
|
/* Retrieve # of records in name index */
|
||||||
@ -389,7 +389,7 @@ H5O_attr_dense_info_test(hid_t oid, hsize_t *name_count, hsize_t *corder_count)
|
|||||||
/* Check if there is a creation order index */
|
/* Check if there is a creation order index */
|
||||||
if(H5F_addr_defined(ainfo.corder_bt2_addr)) {
|
if(H5F_addr_defined(ainfo.corder_bt2_addr)) {
|
||||||
/* Open the creation order index v2 B-tree */
|
/* Open the creation order index v2 B-tree */
|
||||||
if(NULL == (bt2_corder = H5B2_open(loc->file, H5AC_ind_dxpl_id, ainfo.corder_bt2_addr, NULL)))
|
if(NULL == (bt2_corder = H5B2_open(loc->file, H5AC_dxpl_id, ainfo.corder_bt2_addr, NULL)))
|
||||||
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index")
|
HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index")
|
||||||
|
|
||||||
/* Retrieve # of records in creation order index */
|
/* Retrieve # of records in creation order index */
|
||||||
@ -404,11 +404,11 @@ H5O_attr_dense_info_test(hid_t oid, hsize_t *name_count, hsize_t *corder_count)
|
|||||||
|
|
||||||
done:
|
done:
|
||||||
/* Release resources */
|
/* Release resources */
|
||||||
if(bt2_name && H5B2_close(bt2_name, H5AC_ind_dxpl_id) < 0)
|
if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
|
||||||
if(bt2_corder && H5B2_close(bt2_corder, H5AC_ind_dxpl_id) < 0)
|
if(bt2_corder && H5B2_close(bt2_corder, H5AC_dxpl_id) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index")
|
||||||
if(oh && H5O_unprotect(loc, H5AC_ind_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
if(oh && H5O_unprotect(loc, H5AC_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
@ -452,7 +452,7 @@ H5O_check_msg_marked_test(hid_t oid, hbool_t flag_val)
|
|||||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
|
||||||
|
|
||||||
/* Get the object header */
|
/* Get the object header */
|
||||||
if(NULL == (oh = H5O_protect(loc, H5AC_ind_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
if(NULL == (oh = H5O_protect(loc, H5AC_dxpl_id, H5AC__READ_ONLY_FLAG)))
|
||||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header")
|
||||||
|
|
||||||
/* Locate "unknown" message */
|
/* Locate "unknown" message */
|
||||||
@ -471,7 +471,7 @@ H5O_check_msg_marked_test(hid_t oid, hbool_t flag_val)
|
|||||||
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "'unknown' message type not found")
|
HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "'unknown' message type not found")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if(oh && H5O_unprotect(loc, H5AC_ind_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
if(oh && H5O_unprotect(loc, H5AC_dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
|
||||||
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
HDONE_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header")
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
@ -3125,7 +3125,7 @@ H5Pset_fill_value(hid_t plist_id, hid_t type_id, const void *value)
|
|||||||
HDmemcpy(fill.buf, value, (size_t)fill.size);
|
HDmemcpy(fill.buf, value, (size_t)fill.size);
|
||||||
|
|
||||||
/* Set up type conversion function */
|
/* Set up type conversion function */
|
||||||
if(NULL == (tpath = H5T_path_find(type, type, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
if(NULL == (tpath = H5T_path_find(type, type, NULL, NULL, H5AC_dxpl_id, FALSE)))
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest data types")
|
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest data types")
|
||||||
|
|
||||||
/* If necessary, convert fill value datatypes (which copies VL components, etc.) */
|
/* If necessary, convert fill value datatypes (which copies VL components, etc.) */
|
||||||
@ -3137,7 +3137,7 @@ H5Pset_fill_value(hid_t plist_id, hid_t type_id, const void *value)
|
|||||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
|
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
|
||||||
|
|
||||||
/* Convert the fill value */
|
/* Convert the fill value */
|
||||||
if(H5T_convert(tpath, type_id, type_id, (size_t)1, (size_t)0, (size_t)0, fill.buf, bkg_buf, H5AC_ind_dxpl_id) < 0) {
|
if(H5T_convert(tpath, type_id, type_id, (size_t)1, (size_t)0, (size_t)0, fill.buf, bkg_buf, H5AC_dxpl_id) < 0) {
|
||||||
if(bkg_buf)
|
if(bkg_buf)
|
||||||
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, FAIL, "datatype conversion failed")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, FAIL, "datatype conversion failed")
|
||||||
@ -3292,7 +3292,7 @@ H5Pget_fill_value(hid_t plist_id, hid_t type_id, void *value/*out*/)
|
|||||||
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID")
|
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID")
|
||||||
|
|
||||||
/* Get the fill value */
|
/* Get the fill value */
|
||||||
if(H5P_get_fill_value(plist, type, value, H5AC_ind_dxpl_id) < 0)
|
if(H5P_get_fill_value(plist, type, value, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get fill value")
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get fill value")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
26
src/H5Pint.c
26
src/H5Pint.c
@ -30,6 +30,7 @@
|
|||||||
/***********/
|
/***********/
|
||||||
#include "H5private.h" /* Generic Functions */
|
#include "H5private.h" /* Generic Functions */
|
||||||
#include "H5Eprivate.h" /* Error handling */
|
#include "H5Eprivate.h" /* Error handling */
|
||||||
|
#include "H5Fprivate.h" /* File access */
|
||||||
#include "H5FLprivate.h" /* Free lists */
|
#include "H5FLprivate.h" /* Free lists */
|
||||||
#include "H5Iprivate.h" /* IDs */
|
#include "H5Iprivate.h" /* IDs */
|
||||||
#include "H5MMprivate.h" /* Memory management */
|
#include "H5MMprivate.h" /* Memory management */
|
||||||
@ -273,13 +274,10 @@ const H5P_libclass_t H5P_CLS_TACC[1] = {{
|
|||||||
/* Library property list classes defined in other code modules */
|
/* Library property list classes defined in other code modules */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_OCRT[1]; /* Object creation */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_OCRT[1]; /* Object creation */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_STRCRT[1]; /* String create */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_STRCRT[1]; /* String create */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_LACC[1]; /* Link access */
|
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_GCRT[1]; /* Group create */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_GCRT[1]; /* Group create */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_OCPY[1]; /* Object copy */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_OCPY[1]; /* Object copy */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_FCRT[1]; /* File creation */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_FCRT[1]; /* File creation */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_FACC[1]; /* File access */
|
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_DCRT[1]; /* Dataset creation */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_DCRT[1]; /* Dataset creation */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_DACC[1]; /* Dataset access */
|
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_DXFR[1]; /* Data transfer */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_DXFR[1]; /* Data transfer */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_FMNT[1]; /* File mount */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_FMNT[1]; /* File mount */
|
||||||
H5_DLLVAR const H5P_libclass_t H5P_CLS_ACRT[1]; /* Attribute creation */
|
H5_DLLVAR const H5P_libclass_t H5P_CLS_ACRT[1]; /* Attribute creation */
|
||||||
@ -5452,8 +5450,10 @@ H5P_get_class(const H5P_genplist_t *plist)
|
|||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
herr_t
|
herr_t
|
||||||
H5P_verify_apl_and_dxpl(hid_t *acspl_id, const H5P_libclass_t *libclass, hid_t *dxpl_id)
|
H5P_verify_apl_and_dxpl(hid_t *acspl_id, const H5P_libclass_t *libclass,
|
||||||
|
hid_t *dxpl_id, hid_t loc_id, hbool_t is_collective)
|
||||||
{
|
{
|
||||||
|
MPI_Comm mpi_comm;
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_NOAPI_NOINIT
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
@ -5472,7 +5472,23 @@ H5P_verify_apl_and_dxpl(hid_t *acspl_id, const H5P_libclass_t *libclass, hid_t *
|
|||||||
HGOTO_ERROR(H5E_PLIST, H5E_BADTYPE, FAIL, "not the required access property list")
|
HGOTO_ERROR(H5E_PLIST, H5E_BADTYPE, FAIL, "not the required access property list")
|
||||||
} /* end else */
|
} /* end else */
|
||||||
|
|
||||||
|
#ifdef H5_HAVE_PARALLEL
|
||||||
|
/* If parallel is enabled and the file driver used in the MPI-IO
|
||||||
|
VFD, issue an MPI barrier for easier debugging if the API function
|
||||||
|
calling this is supposed to be called collectively. Note that this
|
||||||
|
happens only when the environment variable H5_COLL_BARRIER is set
|
||||||
|
to non 0. */
|
||||||
|
if(is_collective && H5_coll_api_sanity_check_g) {
|
||||||
|
/* retrieve the MPI communicator from the loc_id or the fapl_id */
|
||||||
|
if(H5F_mpi_retrieve_comm(loc_id, *acspl_id, &mpi_comm) < 0)
|
||||||
|
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get MPI communicator")
|
||||||
|
|
||||||
|
/* issue the barrier */
|
||||||
|
if(mpi_comm != MPI_COMM_NULL)
|
||||||
|
MPI_Barrier(mpi_comm);
|
||||||
|
}
|
||||||
|
#endif /* H5_HAVE_PARALLEL */
|
||||||
|
|
||||||
done:
|
done:
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
} /* end H5P_verify_apl_and_dxpl() */
|
} /* end H5P_verify_apl_and_dxpl() */
|
||||||
|
|
||||||
|
@ -181,7 +181,8 @@ H5_DLL herr_t H5P_get_filter_by_id(H5P_genplist_t *plist, H5Z_filter_t id,
|
|||||||
unsigned int *flags, size_t *cd_nelmts, unsigned cd_values[],
|
unsigned int *flags, size_t *cd_nelmts, unsigned cd_values[],
|
||||||
size_t namelen, char name[], unsigned *filter_config);
|
size_t namelen, char name[], unsigned *filter_config);
|
||||||
H5_DLL htri_t H5P_filter_in_pline(H5P_genplist_t *plist, H5Z_filter_t id);
|
H5_DLL htri_t H5P_filter_in_pline(H5P_genplist_t *plist, H5Z_filter_t id);
|
||||||
H5_DLL herr_t H5P_verify_apl_and_dxpl(hid_t *acspl_id, const H5P_libclass_t *libclass, hid_t *dxpl_id);
|
H5_DLL herr_t H5P_verify_apl_and_dxpl(hid_t *acspl_id, const H5P_libclass_t *libclass,
|
||||||
|
hid_t *dxpl_id, hid_t loc_id, hbool_t is_collective);
|
||||||
|
|
||||||
/* Query internal fields of the property list struct */
|
/* Query internal fields of the property list struct */
|
||||||
H5_DLL hid_t H5P_get_plist_id(const H5P_genplist_t *plist);
|
H5_DLL hid_t H5P_get_plist_id(const H5P_genplist_t *plist);
|
||||||
|
@ -621,7 +621,7 @@ H5Rdereference2(hid_t obj_id, hid_t oapl_id, H5R_type_t ref_type, const void *_r
|
|||||||
file = loc.oloc->file;
|
file = loc.oloc->file;
|
||||||
|
|
||||||
/* Create reference */
|
/* Create reference */
|
||||||
if((ret_value = H5R_dereference(file, oapl_id, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0)
|
if((ret_value = H5R_dereference(file, oapl_id, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to dereference object")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to dereference object")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -740,7 +740,7 @@ H5Rget_region(hid_t id, H5R_type_t ref_type, const void *ref)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer")
|
||||||
|
|
||||||
/* Get the dataspace with the correct region selected */
|
/* Get the dataspace with the correct region selected */
|
||||||
if((space = H5R_get_region(loc.oloc->file, H5AC_ind_dxpl_id, ref)) == NULL)
|
if((space = H5R_get_region(loc.oloc->file, H5AC_dxpl_id, ref)) == NULL)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to create dataspace")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to create dataspace")
|
||||||
|
|
||||||
/* Atomize */
|
/* Atomize */
|
||||||
@ -880,7 +880,7 @@ H5Rget_obj_type2(hid_t id, H5R_type_t ref_type, const void *ref,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer")
|
||||||
|
|
||||||
/* Get the object information */
|
/* Get the object information */
|
||||||
if(H5R_get_obj_type(loc.oloc->file, H5AC_ind_dxpl_id, ref_type, ref, obj_type) < 0)
|
if(H5R_get_obj_type(loc.oloc->file, H5AC_dxpl_id, ref_type, ref, obj_type) < 0)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object type")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object type")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -1044,7 +1044,7 @@ H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name,
|
|||||||
file = loc.oloc->file;
|
file = loc.oloc->file;
|
||||||
|
|
||||||
/* Get name */
|
/* Get name */
|
||||||
if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_ind_dxpl_id, id, ref_type, _ref, name, size)) < 0)
|
if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, _ref, name, size)) < 0)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -125,7 +125,7 @@ H5Rget_obj_type1(hid_t id, H5R_type_t ref_type, const void *ref)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, H5G_UNKNOWN, "invalid reference pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, H5G_UNKNOWN, "invalid reference pointer")
|
||||||
|
|
||||||
/* Get the object information */
|
/* Get the object information */
|
||||||
if(H5R_get_obj_type(loc.oloc->file, H5AC_ind_dxpl_id, ref_type, ref, &obj_type) < 0)
|
if(H5R_get_obj_type(loc.oloc->file, H5AC_dxpl_id, ref_type, ref, &obj_type) < 0)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, H5G_UNKNOWN, "unable to determine object type")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, H5G_UNKNOWN, "unable to determine object type")
|
||||||
|
|
||||||
/* Set return value */
|
/* Set return value */
|
||||||
@ -180,7 +180,7 @@ H5Rdereference1(hid_t obj_id, H5R_type_t ref_type, const void *_ref)
|
|||||||
file = loc.oloc->file;
|
file = loc.oloc->file;
|
||||||
|
|
||||||
/* Create reference */
|
/* Create reference */
|
||||||
if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0)
|
if((ret_value = H5R_dereference(file, H5P_DATASET_ACCESS_DEFAULT, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0)
|
||||||
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable dereference object")
|
HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable dereference object")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
362
src/H5T.c
362
src/H5T.c
@ -993,24 +993,24 @@ H5T__init_package(void)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
|
||||||
status = 0;
|
status = 0;
|
||||||
|
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Native conversions should be listed last since we can use hardware to
|
* Native conversions should be listed last since we can use hardware to
|
||||||
@ -1021,221 +1021,221 @@ H5T__init_package(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* floating point */
|
/* floating point */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_dxpl_id, FALSE);
|
||||||
#if H5_SIZEOF_LONG_DOUBLE != 0
|
#if H5_SIZEOF_LONG_DOUBLE != 0
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_dxpl_id, FALSE);
|
||||||
#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
|
#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
|
||||||
|
|
||||||
/* from long long */
|
/* from long long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From long */
|
/* From long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From short */
|
/* From short */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From int */
|
/* From int */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From char */
|
/* From char */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From char to floats */
|
/* From char to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From unsigned char to floats */
|
/* From unsigned char to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From short to floats */
|
/* From short to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From unsigned short to floats */
|
/* From unsigned short to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From int to floats */
|
/* From int to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From unsigned int to floats */
|
/* From unsigned int to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From long to floats */
|
/* From long to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From unsigned long to floats */
|
/* From unsigned long to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From long long to floats */
|
/* From long long to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_dxpl_id, FALSE);
|
||||||
#ifdef H5T_CONV_INTERNAL_LLONG_LDOUBLE
|
#ifdef H5T_CONV_INTERNAL_LLONG_LDOUBLE
|
||||||
status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */
|
#endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */
|
||||||
|
|
||||||
/* From unsigned long long to floats */
|
/* From unsigned long long to floats */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE);
|
||||||
#ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE
|
#ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE);
|
||||||
#endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */
|
#endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */
|
||||||
|
|
||||||
/* From floats to char */
|
/* From floats to char */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to unsigned char */
|
/* From floats to unsigned char */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to short */
|
/* From floats to short */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to unsigned short */
|
/* From floats to unsigned short */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to int */
|
/* From floats to int */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to unsigned int */
|
/* From floats to unsigned int */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to long */
|
/* From floats to long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to unsigned long */
|
/* From floats to unsigned long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* From floats to long long */
|
/* From floats to long long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_dxpl_id, FALSE);
|
||||||
#ifdef H5T_CONV_INTERNAL_LDOUBLE_LLONG
|
#ifdef H5T_CONV_INTERNAL_LDOUBLE_LLONG
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_dxpl_id, FALSE);
|
||||||
#endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */
|
#endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */
|
||||||
|
|
||||||
/* From floats to unsigned long long */
|
/* From floats to unsigned long long */
|
||||||
status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE);
|
||||||
status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE);
|
||||||
#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG
|
#if H5T_CONV_INTERNAL_LDOUBLE_ULLONG
|
||||||
status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE);
|
||||||
#endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */
|
#endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1243,7 +1243,7 @@ H5T__init_package(void)
|
|||||||
* data types we use are not important as long as the source and
|
* data types we use are not important as long as the source and
|
||||||
* destination are equal.
|
* destination are equal.
|
||||||
*/
|
*/
|
||||||
status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_ind_dxpl_id, FALSE);
|
status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_dxpl_id, FALSE);
|
||||||
|
|
||||||
/* Initialize the +/- Infinity values for floating-point types */
|
/* Initialize the +/- Infinity values for floating-point types */
|
||||||
status |= H5T__init_inf();
|
status |= H5T__init_inf();
|
||||||
@ -1365,7 +1365,7 @@ H5T_top_term_package(void)
|
|||||||
H5T__print_stats(path, &nprint/*in,out*/);
|
H5T__print_stats(path, &nprint/*in,out*/);
|
||||||
path->cdata.command = H5T_CONV_FREE;
|
path->cdata.command = H5T_CONV_FREE;
|
||||||
if((path->func)((hid_t)FAIL, (hid_t)FAIL, &(path->cdata), (size_t)0,
|
if((path->func)((hid_t)FAIL, (hid_t)FAIL, &(path->cdata), (size_t)0,
|
||||||
(size_t)0, (size_t)0, NULL, NULL,H5AC_ind_dxpl_id) < 0) {
|
(size_t)0, (size_t)0, NULL, NULL,H5AC_dxpl_id) < 0) {
|
||||||
#ifdef H5T_DEBUG
|
#ifdef H5T_DEBUG
|
||||||
if (H5DEBUG(T)) {
|
if (H5DEBUG(T)) {
|
||||||
fprintf(H5DEBUG(T), "H5T: conversion function "
|
fprintf(H5DEBUG(T), "H5T: conversion function "
|
||||||
@ -2460,7 +2460,7 @@ H5Tregister(H5T_pers_t pers, const char *name, hid_t src_id, hid_t dst_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no conversion function specified")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no conversion function specified")
|
||||||
|
|
||||||
/* Go register the function */
|
/* Go register the function */
|
||||||
if(H5T_register(pers, name, src, dst, func, H5AC_ind_dxpl_id, TRUE) < 0)
|
if(H5T_register(pers, name, src, dst, func, H5AC_dxpl_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register conversion function")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register conversion function")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -2599,7 +2599,7 @@ H5Tunregister(H5T_pers_t pers, const char *name, hid_t src_id, hid_t dst_id,
|
|||||||
if(dst_id > 0 && (NULL == (dst = (H5T_t *)H5I_object_verify(dst_id, H5I_DATATYPE))))
|
if(dst_id > 0 && (NULL == (dst = (H5T_t *)H5I_object_verify(dst_id, H5I_DATATYPE))))
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "dst is not a data type")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "dst is not a data type")
|
||||||
|
|
||||||
if(H5T_unregister(pers, name, src, dst, func, H5AC_ind_dxpl_id) < 0)
|
if(H5T_unregister(pers, name, src, dst, func, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDELETE, FAIL, "internal unregister function failed")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDELETE, FAIL, "internal unregister function failed")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -2643,7 +2643,7 @@ H5Tfind(hid_t src_id, hid_t dst_id, H5T_cdata_t **pcdata)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "no address to receive cdata pointer")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "no address to receive cdata pointer")
|
||||||
|
|
||||||
/* Find it */
|
/* Find it */
|
||||||
if(NULL == (path = H5T_path_find(src, dst, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
if(NULL == (path = H5T_path_find(src, dst, NULL, NULL, H5AC_dxpl_id, FALSE)))
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "conversion function not found")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "conversion function not found")
|
||||||
|
|
||||||
if(pcdata)
|
if(pcdata)
|
||||||
@ -2939,7 +2939,7 @@ H5T_decode(const unsigned char *buf)
|
|||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_VERSION, NULL, "unknown version of encoded datatype")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_VERSION, NULL, "unknown version of encoded datatype")
|
||||||
|
|
||||||
/* Decode the serialized datatype message */
|
/* Decode the serialized datatype message */
|
||||||
if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_ind_dxpl_id, NULL, H5O_DTYPE_ID, buf)))
|
if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_dxpl_id, NULL, H5O_DTYPE_ID, buf)))
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode object")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode object")
|
||||||
|
|
||||||
/* Mark datatype as being in memory now */
|
/* Mark datatype as being in memory now */
|
||||||
@ -4761,7 +4761,7 @@ H5T_compiler_conv(H5T_t *src, H5T_t *dst)
|
|||||||
FUNC_ENTER_NOAPI_NOINIT
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
|
|
||||||
/* Find it */
|
/* Find it */
|
||||||
if (NULL==(path=H5T_path_find(src, dst, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
if (NULL==(path=H5T_path_find(src, dst, NULL, NULL, H5AC_dxpl_id, FALSE)))
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "conversion function not found")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "conversion function not found")
|
||||||
|
|
||||||
ret_value = (htri_t)path->is_hard;
|
ret_value = (htri_t)path->is_hard;
|
||||||
|
@ -128,7 +128,7 @@ H5Tcommit2(hid_t loc_id, const char *name, hid_t type_id, hid_t lcpl_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not datatype creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not datatype creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Commit the type */
|
/* Commit the type */
|
||||||
@ -266,7 +266,7 @@ H5Tcommit_anon(hid_t loc_id, hid_t type_id, hid_t tcpl_id, hid_t tapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not datatype creation property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not datatype creation property list")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id, loc_id, TRUE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Commit the type */
|
/* Commit the type */
|
||||||
@ -529,7 +529,7 @@ H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id)
|
|||||||
H5O_type_t obj_type; /* Type of object at location */
|
H5O_type_t obj_type; /* Type of object at location */
|
||||||
H5G_loc_t type_loc; /* Group object for datatype */
|
H5G_loc_t type_loc; /* Group object for datatype */
|
||||||
hbool_t obj_found = FALSE; /* Object at 'name' found */
|
hbool_t obj_found = FALSE; /* Object at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */
|
||||||
hid_t ret_value = FAIL; /* Return value */
|
hid_t ret_value = FAIL; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -542,7 +542,7 @@ H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
|
||||||
|
|
||||||
/* Verify access property list and get correct dxpl */
|
/* Verify access property list and get correct dxpl */
|
||||||
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id) < 0)
|
if(H5P_verify_apl_and_dxpl(&tapl_id, H5P_CLS_TACC, &dxpl_id, loc_id, FALSE) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't set access and transfer property lists")
|
||||||
|
|
||||||
/* Set up datatype location to fill in */
|
/* Set up datatype location to fill in */
|
||||||
@ -637,7 +637,7 @@ H5Tget_create_plist(hid_t dtype_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
||||||
|
|
||||||
/* Retrieve any object creation properties */
|
/* Retrieve any object creation properties */
|
||||||
if(H5O_get_create_plist(&type->oloc, H5AC_ind_dxpl_id, new_plist) < 0)
|
if(H5O_get_create_plist(&type->oloc, H5AC_dxpl_id, new_plist) < 0)
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get object creation info")
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get object creation info")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ H5Topen1(hid_t loc_id, const char *name)
|
|||||||
H5O_type_t obj_type; /* Type of object at location */
|
H5O_type_t obj_type; /* Type of object at location */
|
||||||
H5G_loc_t type_loc; /* Group object for datatype */
|
H5G_loc_t type_loc; /* Group object for datatype */
|
||||||
hbool_t obj_found = FALSE; /* Object at 'name' found */
|
hbool_t obj_found = FALSE; /* Object at 'name' found */
|
||||||
hid_t dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */
|
hid_t dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */
|
||||||
hid_t ret_value = FAIL;
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
|
@ -1005,7 +1005,7 @@ H5Z_set_local_scaleoffset(hid_t dcpl_id, hid_t type_id, hid_t space_id)
|
|||||||
HGOTO_ERROR(H5E_PLINE, H5E_BADTYPE, FAIL, "cannot use C integer datatype for cast")
|
HGOTO_ERROR(H5E_PLINE, H5E_BADTYPE, FAIL, "cannot use C integer datatype for cast")
|
||||||
|
|
||||||
/* Get dataset fill value and store in cd_values[] */
|
/* Get dataset fill value and store in cd_values[] */
|
||||||
if(H5Z_scaleoffset_set_parms_fillval(dcpl_plist, type, scale_type, cd_values, need_convert, H5AC_ind_dxpl_id) < 0)
|
if(H5Z_scaleoffset_set_parms_fillval(dcpl_plist, type, scale_type, cd_values, need_convert, H5AC_dxpl_id) < 0)
|
||||||
HGOTO_ERROR(H5E_PLINE, H5E_CANTSET, FAIL, "unable to set fill value")
|
HGOTO_ERROR(H5E_PLINE, H5E_CANTSET, FAIL, "unable to set fill value")
|
||||||
} /* end else */
|
} /* end else */
|
||||||
|
|
||||||
|
@ -1699,6 +1699,7 @@ typedef struct H5_debug_t {
|
|||||||
H5_debug_open_stream_t *open_stream; /* Stack of open output streams */
|
H5_debug_open_stream_t *open_stream; /* Stack of open output streams */
|
||||||
} H5_debug_t;
|
} H5_debug_t;
|
||||||
|
|
||||||
|
extern hbool_t H5_coll_api_sanity_check_g;
|
||||||
extern H5_debug_t H5_debug_g;
|
extern H5_debug_t H5_debug_g;
|
||||||
#define H5DEBUG(X) (H5_debug_g.pkg[H5_PKG_##X].stream)
|
#define H5DEBUG(X) (H5_debug_g.pkg[H5_PKG_##X].stream)
|
||||||
/* Do not use const else AIX strings does not show it. */
|
/* Do not use const else AIX strings does not show it. */
|
||||||
|
@ -3866,26 +3866,26 @@ check_invalid_tag_application(void)
|
|||||||
|
|
||||||
/* Call H5HL_create, an internal function that calls H5AC_insert_entry without setting up a tag */
|
/* Call H5HL_create, an internal function that calls H5AC_insert_entry without setting up a tag */
|
||||||
/* Ensure this returns FAILURE, as a tag has not been set up. */
|
/* Ensure this returns FAILURE, as a tag has not been set up. */
|
||||||
if ( H5HL_create(f, H5AC_ind_dxpl_id, (size_t)1024, &addr) >= 0) TEST_ERROR;
|
if ( H5HL_create(f, H5AC_dxpl_id, (size_t)1024, &addr) >= 0) TEST_ERROR;
|
||||||
|
|
||||||
/* Now set up a tag in the dxpl */
|
/* Now set up a tag in the dxpl */
|
||||||
if ( H5AC_tag(H5AC_ind_dxpl_id, (haddr_t)25, NULL) < 0) TEST_ERROR;
|
if ( H5AC_tag(H5AC_dxpl_id, (haddr_t)25, NULL) < 0) TEST_ERROR;
|
||||||
|
|
||||||
/* Verify the same call to H5HL_create now works as intended, with a tag set up. */
|
/* Verify the same call to H5HL_create now works as intended, with a tag set up. */
|
||||||
if ( H5HL_create(f, H5AC_ind_dxpl_id, (size_t)1024, &addr) < 0) TEST_ERROR;
|
if ( H5HL_create(f, H5AC_dxpl_id, (size_t)1024, &addr) < 0) TEST_ERROR;
|
||||||
|
|
||||||
/* Reset dxpl to use invalid tag. */
|
/* Reset dxpl to use invalid tag. */
|
||||||
if ( H5AC_tag(H5AC_ind_dxpl_id, H5AC__INVALID_TAG, NULL) < 0) TEST_ERROR;
|
if ( H5AC_tag(H5AC_dxpl_id, H5AC__INVALID_TAG, NULL) < 0) TEST_ERROR;
|
||||||
|
|
||||||
/* Call H5HL_protect to protect the local heap created above. */
|
/* Call H5HL_protect to protect the local heap created above. */
|
||||||
/* This should fail as no tag is set up during the protect call */
|
/* This should fail as no tag is set up during the protect call */
|
||||||
if (( lheap = H5HL_protect(f, H5AC_ind_dxpl_id, addr, H5AC__NO_FLAGS_SET)) != NULL ) TEST_ERROR;
|
if (( lheap = H5HL_protect(f, H5AC_dxpl_id, addr, H5AC__NO_FLAGS_SET)) != NULL ) TEST_ERROR;
|
||||||
|
|
||||||
/* Again, set up a valid tag in the DXPL */
|
/* Again, set up a valid tag in the DXPL */
|
||||||
if ( H5AC_tag(H5AC_ind_dxpl_id, (haddr_t)25, NULL) < 0) TEST_ERROR;
|
if ( H5AC_tag(H5AC_dxpl_id, (haddr_t)25, NULL) < 0) TEST_ERROR;
|
||||||
|
|
||||||
/* Call H5HL_protect again to protect the local heap. This should succeed. */
|
/* Call H5HL_protect again to protect the local heap. This should succeed. */
|
||||||
if (( lheap = H5HL_protect(f, H5AC_ind_dxpl_id, addr, H5AC__NO_FLAGS_SET)) == NULL ) TEST_ERROR;
|
if (( lheap = H5HL_protect(f, H5AC_dxpl_id, addr, H5AC__NO_FLAGS_SET)) == NULL ) TEST_ERROR;
|
||||||
|
|
||||||
/* Now unprotect the heap, as we're done with the test. */
|
/* Now unprotect the heap, as we're done with the test. */
|
||||||
if ( H5HL_unprotect(lheap) < 0 ) TEST_ERROR;
|
if ( H5HL_unprotect(lheap) < 0 ) TEST_ERROR;
|
||||||
|
Loading…
Reference in New Issue
Block a user