mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r25468] some code refactoring to align trunk with VOL branch.
tested with h5committest.
This commit is contained in:
parent
f1f7b15e50
commit
bd66cdd5d6
1
MANIFEST
1
MANIFEST
@ -673,6 +673,7 @@
|
|||||||
./src/H5Fdeprec.c
|
./src/H5Fdeprec.c
|
||||||
./src/H5Fefc.c
|
./src/H5Fefc.c
|
||||||
./src/H5Ffake.c
|
./src/H5Ffake.c
|
||||||
|
./src/H5Fint.c
|
||||||
./src/H5Fio.c
|
./src/H5Fio.c
|
||||||
./src/H5Fmount.c
|
./src/H5Fmount.c
|
||||||
./src/H5Fmpi.c
|
./src/H5Fmpi.c
|
||||||
|
@ -162,6 +162,7 @@ IDE_GENERATED_PROPERTIES ("H5EA" "${H5EA_HDRS}" "${H5EA_SRCS}" )
|
|||||||
|
|
||||||
set (H5F_SRCS
|
set (H5F_SRCS
|
||||||
${HDF5_SRC_DIR}/H5F.c
|
${HDF5_SRC_DIR}/H5F.c
|
||||||
|
${HDF5_SRC_DIR}/H5Fint.c
|
||||||
${HDF5_SRC_DIR}/H5Faccum.c
|
${HDF5_SRC_DIR}/H5Faccum.c
|
||||||
${HDF5_SRC_DIR}/H5Fcwfs.c
|
${HDF5_SRC_DIR}/H5Fcwfs.c
|
||||||
${HDF5_SRC_DIR}/H5Fdbg.c
|
${HDF5_SRC_DIR}/H5Fdbg.c
|
||||||
|
@ -162,6 +162,7 @@ hid_t
|
|||||||
H5Acreate1(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
|
H5Acreate1(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
|
||||||
hid_t plist_id)
|
hid_t plist_id)
|
||||||
{
|
{
|
||||||
|
H5A_t *attr = NULL; /* Attribute created */
|
||||||
H5G_loc_t loc; /* Object location */
|
H5G_loc_t loc; /* Object location */
|
||||||
H5T_t *type; /* Datatype to use for attribute */
|
H5T_t *type; /* Datatype to use for attribute */
|
||||||
H5S_t *space; /* Dataspace to use for attribute */
|
H5S_t *space; /* Dataspace to use for attribute */
|
||||||
@ -185,9 +186,13 @@ H5Acreate1(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
||||||
|
|
||||||
/* 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((ret_value = H5A_create(&loc, name, type, space, plist_id, H5AC_dxpl_id)) < 0)
|
if((attr = H5A_create(&loc, name, type, space, plist_id, H5AC_dxpl_id)) < 0)
|
||||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to create attribute")
|
HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to create attribute")
|
||||||
|
|
||||||
|
/* Register the new attribute and get an ID for it */
|
||||||
|
if((ret_value = H5I_register(H5I_ATTR, attr, TRUE)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register attribute for ID")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
} /* H5Acreate1() */
|
} /* H5Acreate1() */
|
||||||
|
1152
src/H5Aint.c
1152
src/H5Aint.c
File diff suppressed because it is too large
Load Diff
14
src/H5Apkg.h
14
src/H5Apkg.h
@ -186,19 +186,29 @@ H5_DLLVAR const H5B2_class_t H5A_BT2_CORDER[1];
|
|||||||
/* Function prototypes for H5A package scope */
|
/* Function prototypes for H5A package scope */
|
||||||
H5_DLL herr_t H5A_init(void);
|
H5_DLL herr_t H5A_init(void);
|
||||||
H5_DLL herr_t H5A__term_deprec_interface(void);
|
H5_DLL herr_t H5A__term_deprec_interface(void);
|
||||||
H5_DLL hid_t H5A_create(const H5G_loc_t *loc, const char *name,
|
H5_DLL H5A_t *H5A_create(const H5G_loc_t *loc, const char *name,
|
||||||
const H5T_t *type, const H5S_t *space, hid_t acpl_id, hid_t dxpl_id);
|
const H5T_t *type, const H5S_t *space, hid_t acpl_id, hid_t dxpl_id);
|
||||||
H5_DLL H5A_t * H5A_open_by_name(const H5G_loc_t *loc, const char *obj_name,
|
H5_DLL H5A_t *H5A_open_by_name(const H5G_loc_t *loc, const char *obj_name,
|
||||||
const char *attr_name, hid_t lapl_id, hid_t dxpl_id);
|
const char *attr_name, hid_t lapl_id, hid_t dxpl_id);
|
||||||
H5_DLL H5A_t *H5A_open_by_idx(const H5G_loc_t *loc, const char *obj_name,
|
H5_DLL H5A_t *H5A_open_by_idx(const H5G_loc_t *loc, const char *obj_name,
|
||||||
H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id, hid_t dxpl_id);
|
H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id, hid_t dxpl_id);
|
||||||
|
H5_DLL herr_t H5A_open_common(const H5G_loc_t *loc, H5A_t *attr);
|
||||||
|
H5_DLL herr_t H5A_write(H5A_t *attr, const H5T_t *mem_type, const void *buf, hid_t dxpl_id);
|
||||||
|
H5_DLL herr_t H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_t dxpl_id);
|
||||||
H5_DLL ssize_t H5A_get_name(H5A_t *attr, size_t buf_size, char *buf);
|
H5_DLL ssize_t H5A_get_name(H5A_t *attr, size_t buf_size, char *buf);
|
||||||
H5_DLL H5A_t *H5A_copy(H5A_t *new_attr, const H5A_t *old_attr);
|
H5_DLL H5A_t *H5A_copy(H5A_t *new_attr, const H5A_t *old_attr);
|
||||||
H5_DLL herr_t H5A_get_info(const H5A_t *attr, H5A_info_t *ainfo);
|
H5_DLL herr_t H5A_get_info(const H5A_t *attr, H5A_info_t *ainfo);
|
||||||
|
H5_DLL hid_t H5A_get_type(H5A_t *attr);
|
||||||
|
H5_DLL hid_t H5A_get_space(H5A_t *attr);
|
||||||
|
H5_DLL hid_t H5A_get_create_plist(H5A_t* attr);
|
||||||
H5_DLL herr_t H5A_free(H5A_t *attr);
|
H5_DLL herr_t H5A_free(H5A_t *attr);
|
||||||
H5_DLL herr_t H5A_close(H5A_t *attr);
|
H5_DLL herr_t H5A_close(H5A_t *attr);
|
||||||
H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo);
|
H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo);
|
||||||
H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr);
|
H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr);
|
||||||
|
H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name,
|
||||||
|
const char *new_attr_name, hid_t lapl_id);
|
||||||
|
H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name,
|
||||||
|
hid_t lapl_id);
|
||||||
|
|
||||||
/* Attribute "dense" storage routines */
|
/* Attribute "dense" storage routines */
|
||||||
H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo);
|
H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo);
|
||||||
|
193
src/H5D.c
193
src/H5D.c
@ -450,7 +450,6 @@ hid_t
|
|||||||
H5Dget_space(hid_t dset_id)
|
H5Dget_space(hid_t dset_id)
|
||||||
{
|
{
|
||||||
H5D_t *dset = NULL;
|
H5D_t *dset = NULL;
|
||||||
H5S_t *space = NULL;
|
|
||||||
hid_t ret_value;
|
hid_t ret_value;
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -460,22 +459,10 @@ H5Dget_space(hid_t dset_id)
|
|||||||
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
|
|
||||||
/* Read the dataspace message and return a dataspace object */
|
if((ret_value = H5D_get_space(dset)) < 0)
|
||||||
if(NULL == (space = H5S_copy(dset->shared->space, FALSE, TRUE)))
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get dataspace")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get dataspace")
|
||||||
|
|
||||||
/* Create an atom */
|
|
||||||
if((ret_value = H5I_register (H5I_DATASPACE, space, TRUE)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace")
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if(ret_value < 0) {
|
|
||||||
if(space!=NULL) {
|
|
||||||
if(H5S_close(space) < 0)
|
|
||||||
HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
|
|
||||||
} /* end if */
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,7 +491,7 @@ H5Dget_space_status(hid_t dset_id, H5D_space_status_t *allocation)
|
|||||||
H5TRACE2("e", "i*Ds", dset_id, allocation);
|
H5TRACE2("e", "i*Ds", dset_id, allocation);
|
||||||
|
|
||||||
/* Check arguments */
|
/* Check arguments */
|
||||||
if(NULL==(dset=(H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
||||||
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 */
|
||||||
@ -537,7 +524,6 @@ H5Dget_type(hid_t dset_id)
|
|||||||
{
|
{
|
||||||
|
|
||||||
H5D_t *dset; /* Dataset */
|
H5D_t *dset; /* Dataset */
|
||||||
H5T_t *dt = NULL; /* Datatype to return */
|
|
||||||
hid_t ret_value; /* Return value */
|
hid_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -547,32 +533,10 @@ H5Dget_type(hid_t dset_id)
|
|||||||
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
|
|
||||||
/* Patch the datatype's "top level" file pointer */
|
if((ret_value = H5D_get_type(dset)) < 0)
|
||||||
if(H5T_patch_file(dset->shared->type, dset->oloc.file) < 0)
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get dataspace")
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to patch datatype's file pointer")
|
|
||||||
|
|
||||||
/* Copy the dataset's datatype */
|
|
||||||
if(NULL == (dt = H5T_copy(dset->shared->type, H5T_COPY_REOPEN)))
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy datatype")
|
|
||||||
|
|
||||||
/* Mark any datatypes as being in memory now */
|
|
||||||
if(H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid datatype location")
|
|
||||||
|
|
||||||
/* Lock copied type */
|
|
||||||
if(H5T_lock(dt, FALSE) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to lock transient datatype")
|
|
||||||
|
|
||||||
/* Create an atom */
|
|
||||||
if((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register datatype")
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if(ret_value < 0) {
|
|
||||||
if(dt && H5T_close(dt) < 0)
|
|
||||||
HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release datatype")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
} /* end H5Dget_type() */
|
} /* end H5Dget_type() */
|
||||||
|
|
||||||
@ -607,129 +571,12 @@ H5Dget_create_plist(hid_t dset_id)
|
|||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
|
|
||||||
if((ret_value = H5D_get_create_plist(dataset)) < 0)
|
if((ret_value = H5D_get_create_plist(dataset)) < 0)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "Can't get creation plist")
|
||||||
|
|
||||||
done:
|
done:
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
} /* end H5Dget_create_plist() */
|
} /* end H5Dget_create_plist() */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
|
||||||
* Function: H5D_get_create_plist
|
|
||||||
*
|
|
||||||
* Purpose: Private function for H5Dget_create_plist
|
|
||||||
*
|
|
||||||
* Return: Success: ID for a copy of the dataset creation
|
|
||||||
* property list. The template should be
|
|
||||||
* released by calling H5P_close().
|
|
||||||
*
|
|
||||||
* Failure: FAIL
|
|
||||||
*
|
|
||||||
* Programmer: Robb Matzke
|
|
||||||
* Tuesday, February 3, 1998
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
hid_t
|
|
||||||
H5D_get_create_plist(H5D_t *dset)
|
|
||||||
{
|
|
||||||
H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
|
|
||||||
H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
|
|
||||||
H5O_fill_t copied_fill; /* Fill value to tweak */
|
|
||||||
hid_t new_dcpl_id = FAIL;
|
|
||||||
hid_t ret_value; /* Return value */
|
|
||||||
|
|
||||||
FUNC_ENTER_NOAPI(FAIL)
|
|
||||||
|
|
||||||
/* Check args */
|
|
||||||
if(NULL == (dcpl_plist = (H5P_genplist_t *)H5I_object(dset->shared->dcpl_id)))
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
|
||||||
|
|
||||||
/* Copy the creation property list */
|
|
||||||
if((new_dcpl_id = H5P_copy_plist(dcpl_plist, TRUE)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to copy the creation property list")
|
|
||||||
if(NULL == (new_plist = (H5P_genplist_t *)H5I_object(new_dcpl_id)))
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
|
||||||
|
|
||||||
/* Retrieve any object creation properties */
|
|
||||||
if(H5O_get_create_plist(&dset->oloc, H5AC_ind_dxpl_id, new_plist) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object creation info")
|
|
||||||
|
|
||||||
/* Get the fill value property */
|
|
||||||
if(H5P_get(new_plist, H5D_CRT_FILL_VALUE_NAME, &copied_fill) < 0)
|
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get fill value")
|
|
||||||
|
|
||||||
/* Check if there is a fill value, but no type yet */
|
|
||||||
if(copied_fill.buf != NULL && copied_fill.type == NULL) {
|
|
||||||
H5T_path_t *tpath; /* Conversion information*/
|
|
||||||
|
|
||||||
/* Copy the dataset type into the fill value message */
|
|
||||||
if(NULL == (copied_fill.type = H5T_copy(dset->shared->type, H5T_COPY_TRANSIENT)))
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy dataset datatype for fill value")
|
|
||||||
|
|
||||||
/* Set up type conversion function */
|
|
||||||
if(NULL == (tpath = H5T_path_find(dset->shared->type, copied_fill.type, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
|
||||||
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 */
|
|
||||||
if(!H5T_path_noop(tpath)) {
|
|
||||||
hid_t dst_id, src_id; /* Source & destination datatypes for type conversion */
|
|
||||||
uint8_t *bkg_buf = NULL; /* Background conversion buffer */
|
|
||||||
size_t bkg_size; /* Size of background buffer */
|
|
||||||
|
|
||||||
/* Wrap copies of types to convert */
|
|
||||||
dst_id = H5I_register(H5I_DATATYPE, H5T_copy(copied_fill.type, H5T_COPY_TRANSIENT), FALSE);
|
|
||||||
if(dst_id < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register datatype")
|
|
||||||
src_id = H5I_register(H5I_DATATYPE, H5T_copy(dset->shared->type, H5T_COPY_ALL), FALSE);
|
|
||||||
if(src_id < 0) {
|
|
||||||
H5I_dec_ref(dst_id);
|
|
||||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register datatype")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* Allocate a background buffer */
|
|
||||||
bkg_size = MAX(H5T_GET_SIZE(copied_fill.type), H5T_GET_SIZE(dset->shared->type));
|
|
||||||
if(H5T_path_bkg(tpath) && NULL == (bkg_buf = H5FL_BLK_CALLOC(type_conv, bkg_size))) {
|
|
||||||
H5I_dec_ref(src_id);
|
|
||||||
H5I_dec_ref(dst_id);
|
|
||||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* 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) {
|
|
||||||
H5I_dec_ref(src_id);
|
|
||||||
H5I_dec_ref(dst_id);
|
|
||||||
if(bkg_buf)
|
|
||||||
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, FAIL, "datatype conversion failed")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* Release local resources */
|
|
||||||
if(H5I_dec_ref(src_id) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
|
||||||
if(H5I_dec_ref(dst_id) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
|
||||||
if(bkg_buf)
|
|
||||||
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
|
||||||
} /* end if */
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* Set back the fill value property to property list */
|
|
||||||
if(H5P_set(new_plist, H5D_CRT_FILL_VALUE_NAME, &copied_fill) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to set property list fill value")
|
|
||||||
|
|
||||||
/* Set the return value */
|
|
||||||
ret_value = new_dcpl_id;
|
|
||||||
|
|
||||||
done:
|
|
||||||
if(ret_value < 0)
|
|
||||||
if(new_dcpl_id > 0)
|
|
||||||
if(H5I_dec_app_ref(new_dcpl_id) < 0)
|
|
||||||
HDONE_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
|
||||||
|
|
||||||
FUNC_LEAVE_NOAPI(ret_value)
|
|
||||||
} /* end H5D_get_create_plist() */
|
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
* Function: H5Dget_access_plist
|
* Function: H5Dget_access_plist
|
||||||
@ -768,9 +615,6 @@ hid_t
|
|||||||
H5Dget_access_plist(hid_t dset_id)
|
H5Dget_access_plist(hid_t dset_id)
|
||||||
{
|
{
|
||||||
H5D_t *dset; /* Dataset structure */
|
H5D_t *dset; /* Dataset structure */
|
||||||
H5P_genplist_t *old_plist; /* Default DAPL */
|
|
||||||
H5P_genplist_t *new_plist; /* New DAPL */
|
|
||||||
hid_t new_dapl_id = FAIL;
|
|
||||||
hid_t ret_value; /* Return value */
|
hid_t ret_value; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
@ -780,33 +624,10 @@ H5Dget_access_plist(hid_t dset_id)
|
|||||||
if (NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
if (NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
|
|
||||||
/* Make a copy of the default dataset access property list */
|
if((ret_value = H5D_get_access_plist(dset)) < 0)
|
||||||
if (NULL == (old_plist = (H5P_genplist_t *)H5I_object(H5P_LST_DATASET_ACCESS_ID_g)))
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "Can't get access plist")
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
|
|
||||||
if ((new_dapl_id = H5P_copy_plist(old_plist, TRUE)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_INTERNAL, H5E_CANTINIT, FAIL, "can't copy dataset access property list")
|
|
||||||
if (NULL == (new_plist = (H5P_genplist_t *)H5I_object(new_dapl_id)))
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
|
|
||||||
|
|
||||||
/* If the dataset is chunked then copy the rdcc parameters */
|
|
||||||
if (dset->shared->layout.type == H5D_CHUNKED) {
|
|
||||||
if (H5P_set(new_plist, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, &(dset->shared->cache.chunk.nslots)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set data cache number of slots")
|
|
||||||
if (H5P_set(new_plist, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, &(dset->shared->cache.chunk.nbytes_max)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set data cache byte size")
|
|
||||||
if (H5P_set(new_plist, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, &(dset->shared->cache.chunk.w0)) < 0)
|
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set preempt read chunks")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* Set the return value */
|
|
||||||
ret_value = new_dapl_id;
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if(ret_value < 0)
|
|
||||||
if(new_dapl_id >= 0)
|
|
||||||
if(H5I_dec_app_ref(new_dapl_id) < 0)
|
|
||||||
HDONE_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
|
||||||
|
|
||||||
FUNC_LEAVE_API(ret_value)
|
FUNC_LEAVE_API(ret_value)
|
||||||
} /* end H5Dget_access_plist() */
|
} /* end H5Dget_access_plist() */
|
||||||
|
|
||||||
|
269
src/H5Dint.c
269
src/H5Dint.c
@ -103,6 +103,9 @@ H5FL_BLK_EXTERN(sieve_buf);
|
|||||||
/* Declare the external free list to manage the H5D_chunk_info_t struct */
|
/* Declare the external free list to manage the H5D_chunk_info_t struct */
|
||||||
H5FL_EXTERN(H5D_chunk_info_t);
|
H5FL_EXTERN(H5D_chunk_info_t);
|
||||||
|
|
||||||
|
/* Declare extern the free list to manage blocks of type conversion data */
|
||||||
|
H5FL_BLK_EXTERN(type_conv);
|
||||||
|
|
||||||
/* Define a static "default" dataset structure to use to initialize new datasets */
|
/* Define a static "default" dataset structure to use to initialize new datasets */
|
||||||
static H5D_shared_t H5D_def_dset;
|
static H5D_shared_t H5D_def_dset;
|
||||||
|
|
||||||
@ -2456,3 +2459,269 @@ done:
|
|||||||
FUNC_LEAVE_NOAPI(ret_value)
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
} /* end H5D_flush() */
|
} /* end H5D_flush() */
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5D_get_create_plist
|
||||||
|
*
|
||||||
|
* Purpose: Private function for H5Dget_create_plist
|
||||||
|
*
|
||||||
|
* Return: Success: ID for a copy of the dataset creation
|
||||||
|
* property list. The template should be
|
||||||
|
* released by calling H5P_close().
|
||||||
|
*
|
||||||
|
* Failure: FAIL
|
||||||
|
*
|
||||||
|
* Programmer: Robb Matzke
|
||||||
|
* Tuesday, February 3, 1998
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
hid_t
|
||||||
|
H5D_get_create_plist(H5D_t *dset)
|
||||||
|
{
|
||||||
|
H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
|
||||||
|
H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
|
||||||
|
H5O_fill_t copied_fill; /* Fill value to tweak */
|
||||||
|
hid_t new_dcpl_id = FAIL;
|
||||||
|
hid_t ret_value; /* Return value */
|
||||||
|
|
||||||
|
FUNC_ENTER_NOAPI(FAIL)
|
||||||
|
|
||||||
|
/* Check args */
|
||||||
|
if(NULL == (dcpl_plist = (H5P_genplist_t *)H5I_object(dset->shared->dcpl_id)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
||||||
|
|
||||||
|
/* Copy the creation property list */
|
||||||
|
if((new_dcpl_id = H5P_copy_plist(dcpl_plist, TRUE)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to copy the creation property list")
|
||||||
|
if(NULL == (new_plist = (H5P_genplist_t *)H5I_object(new_dcpl_id)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list")
|
||||||
|
|
||||||
|
/* Retrieve any object creation properties */
|
||||||
|
if(H5O_get_create_plist(&dset->oloc, H5AC_ind_dxpl_id, new_plist) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get object creation info")
|
||||||
|
|
||||||
|
/* Get the fill value property */
|
||||||
|
if(H5P_get(new_plist, H5D_CRT_FILL_VALUE_NAME, &copied_fill) < 0)
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get fill value")
|
||||||
|
|
||||||
|
/* Check if there is a fill value, but no type yet */
|
||||||
|
if(copied_fill.buf != NULL && copied_fill.type == NULL) {
|
||||||
|
H5T_path_t *tpath; /* Conversion information*/
|
||||||
|
|
||||||
|
/* Copy the dataset type into the fill value message */
|
||||||
|
if(NULL == (copied_fill.type = H5T_copy(dset->shared->type, H5T_COPY_TRANSIENT)))
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy dataset datatype for fill value")
|
||||||
|
|
||||||
|
/* Set up type conversion function */
|
||||||
|
if(NULL == (tpath = H5T_path_find(dset->shared->type, copied_fill.type, NULL, NULL, H5AC_ind_dxpl_id, FALSE)))
|
||||||
|
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 */
|
||||||
|
if(!H5T_path_noop(tpath)) {
|
||||||
|
hid_t dst_id, src_id; /* Source & destination datatypes for type conversion */
|
||||||
|
uint8_t *bkg_buf = NULL; /* Background conversion buffer */
|
||||||
|
size_t bkg_size; /* Size of background buffer */
|
||||||
|
|
||||||
|
/* Wrap copies of types to convert */
|
||||||
|
dst_id = H5I_register(H5I_DATATYPE, H5T_copy(copied_fill.type, H5T_COPY_TRANSIENT), FALSE);
|
||||||
|
if(dst_id < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register datatype")
|
||||||
|
src_id = H5I_register(H5I_DATATYPE, H5T_copy(dset->shared->type, H5T_COPY_ALL), FALSE);
|
||||||
|
if(src_id < 0) {
|
||||||
|
H5I_dec_ref(dst_id);
|
||||||
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register datatype")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
/* Allocate a background buffer */
|
||||||
|
bkg_size = MAX(H5T_GET_SIZE(copied_fill.type), H5T_GET_SIZE(dset->shared->type));
|
||||||
|
if(H5T_path_bkg(tpath) && NULL == (bkg_buf = H5FL_BLK_CALLOC(type_conv, bkg_size))) {
|
||||||
|
H5I_dec_ref(src_id);
|
||||||
|
H5I_dec_ref(dst_id);
|
||||||
|
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
/* 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) {
|
||||||
|
H5I_dec_ref(src_id);
|
||||||
|
H5I_dec_ref(dst_id);
|
||||||
|
if(bkg_buf)
|
||||||
|
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTCONVERT, FAIL, "datatype conversion failed")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
/* Release local resources */
|
||||||
|
if(H5I_dec_ref(src_id) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
||||||
|
if(H5I_dec_ref(dst_id) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
||||||
|
if(bkg_buf)
|
||||||
|
bkg_buf = H5FL_BLK_FREE(type_conv, bkg_buf);
|
||||||
|
} /* end if */
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
/* Set back the fill value property to property list */
|
||||||
|
if(H5P_set(new_plist, H5D_CRT_FILL_VALUE_NAME, &copied_fill) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to set property list fill value")
|
||||||
|
|
||||||
|
/* Set the return value */
|
||||||
|
ret_value = new_dcpl_id;
|
||||||
|
|
||||||
|
done:
|
||||||
|
if(ret_value < 0)
|
||||||
|
if(new_dcpl_id > 0)
|
||||||
|
if(H5I_dec_app_ref(new_dcpl_id) < 0)
|
||||||
|
HDONE_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object")
|
||||||
|
|
||||||
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
} /* end H5D_get_create_plist() */
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5D_get_access_plist
|
||||||
|
*
|
||||||
|
* Purpose: Returns a copy of the dataset access property list.
|
||||||
|
*
|
||||||
|
* Return: Success: ID for a copy of the dataset access
|
||||||
|
* property list.
|
||||||
|
*
|
||||||
|
* Failure: FAIL
|
||||||
|
*
|
||||||
|
* Programmer: Mohamad Chaarawi
|
||||||
|
* March, 2012
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
hid_t
|
||||||
|
H5D_get_access_plist(H5D_t *dset)
|
||||||
|
{
|
||||||
|
H5P_genplist_t *old_plist; /* Default DAPL */
|
||||||
|
H5P_genplist_t *new_plist; /* New DAPL */
|
||||||
|
hid_t new_dapl_id = FAIL;
|
||||||
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
|
|
||||||
|
/* Make a copy of the default dataset access property list */
|
||||||
|
if (NULL == (old_plist = (H5P_genplist_t *)H5I_object(H5P_LST_DATASET_ACCESS_ID_g)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
|
||||||
|
if ((new_dapl_id = H5P_copy_plist(old_plist, TRUE)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_INTERNAL, H5E_CANTINIT, FAIL, "can't copy dataset access property list")
|
||||||
|
if (NULL == (new_plist = (H5P_genplist_t *)H5I_object(new_dapl_id)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list")
|
||||||
|
|
||||||
|
/* If the dataset is chunked then copy the rdcc parameters */
|
||||||
|
if (dset->shared->layout.type == H5D_CHUNKED) {
|
||||||
|
if (H5P_set(new_plist, H5D_ACS_DATA_CACHE_NUM_SLOTS_NAME, &(dset->shared->cache.chunk.nslots)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set data cache number of slots")
|
||||||
|
if (H5P_set(new_plist, H5D_ACS_DATA_CACHE_BYTE_SIZE_NAME, &(dset->shared->cache.chunk.nbytes_max)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set data cache byte size")
|
||||||
|
if (H5P_set(new_plist, H5D_ACS_PREEMPT_READ_CHUNKS_NAME, &(dset->shared->cache.chunk.w0)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set preempt read chunks")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
/* Set the return value */
|
||||||
|
ret_value = new_dapl_id;
|
||||||
|
|
||||||
|
done:
|
||||||
|
if(ret_value < 0) {
|
||||||
|
if(new_dapl_id > 0)
|
||||||
|
if(H5I_dec_app_ref(new_dapl_id) < 0)
|
||||||
|
HDONE_ERROR(H5E_SYM, H5E_CANTDEC, FAIL, "can't free")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
} /* end H5D_get_access_plist() */
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5D_get_space
|
||||||
|
*
|
||||||
|
* Purpose: Returns and ID for the dataspace of the dataset.
|
||||||
|
*
|
||||||
|
* Return: Success: ID for dataspace
|
||||||
|
*
|
||||||
|
* Failure: FAIL
|
||||||
|
*
|
||||||
|
* Programmer: Mohamad Chaarawi
|
||||||
|
* March, 2012
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
hid_t
|
||||||
|
H5D_get_space(H5D_t *dset)
|
||||||
|
{
|
||||||
|
H5S_t *space = NULL;
|
||||||
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
|
|
||||||
|
/* Read the data space message and return a data space object */
|
||||||
|
if(NULL == (space = H5S_copy(dset->shared->space, FALSE, TRUE)))
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get data space")
|
||||||
|
|
||||||
|
/* Create an atom */
|
||||||
|
if((ret_value = H5I_register (H5I_DATASPACE, space, TRUE)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register data space")
|
||||||
|
|
||||||
|
done:
|
||||||
|
if(ret_value < 0) {
|
||||||
|
if(space!=NULL) {
|
||||||
|
if(H5S_close(space) < 0)
|
||||||
|
HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
|
||||||
|
} /* end if */
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
} /* end H5D_get_space() */
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5D_get_type
|
||||||
|
*
|
||||||
|
* Purpose: Returns and ID for the datatype of the dataset.
|
||||||
|
*
|
||||||
|
* Return: Success: ID for datatype
|
||||||
|
*
|
||||||
|
* Failure: FAIL
|
||||||
|
*
|
||||||
|
* Programmer: Mohamad Chaarawi
|
||||||
|
* March, 2012
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
hid_t
|
||||||
|
H5D_get_type(H5D_t *dset)
|
||||||
|
{
|
||||||
|
H5T_t *dt = NULL;
|
||||||
|
hid_t ret_value = FAIL;
|
||||||
|
|
||||||
|
FUNC_ENTER_NOAPI_NOINIT
|
||||||
|
|
||||||
|
/* Patch the datatype's "top level" file pointer */
|
||||||
|
if(H5T_patch_file(dset->shared->type, dset->oloc.file) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to patch datatype's file pointer")
|
||||||
|
|
||||||
|
/* Copy the dataset's datatype */
|
||||||
|
if(NULL == (dt = H5T_copy(dset->shared->type, H5T_COPY_REOPEN)))
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to copy datatype")
|
||||||
|
|
||||||
|
/* Mark any datatypes as being in memory now */
|
||||||
|
if(H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid datatype location")
|
||||||
|
|
||||||
|
/* Lock copied type */
|
||||||
|
if(H5T_lock(dt, FALSE) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to lock transient datatype")
|
||||||
|
|
||||||
|
if((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0)
|
||||||
|
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register datatype")
|
||||||
|
|
||||||
|
done:
|
||||||
|
if(ret_value < 0) {
|
||||||
|
if(dt && H5T_close(dt) < 0)
|
||||||
|
HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release datatype")
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
FUNC_LEAVE_NOAPI(ret_value)
|
||||||
|
} /* end H5D_get_type() */
|
||||||
|
123
src/H5Dio.c
123
src/H5Dio.c
@ -55,8 +55,8 @@
|
|||||||
static herr_t H5D__write(H5D_t *dataset, hid_t mem_type_id,
|
static herr_t H5D__write(H5D_t *dataset, hid_t mem_type_id,
|
||||||
const H5S_t *mem_space, const H5S_t *file_space, hid_t dset_xfer_plist,
|
const H5S_t *mem_space, const H5S_t *file_space, hid_t dset_xfer_plist,
|
||||||
const void *buf);
|
const void *buf);
|
||||||
static herr_t H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
static herr_t H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id,
|
||||||
hid_t file_space_id, hid_t dxpl_id, const void *buf);
|
const H5S_t *mem_space, const H5S_t *file_space, hid_t dxpl_id, const void *buf);
|
||||||
|
|
||||||
/* Setup/teardown routines */
|
/* Setup/teardown routines */
|
||||||
static herr_t H5D__ioinfo_init(H5D_t *dset,
|
static herr_t H5D__ioinfo_init(H5D_t *dset,
|
||||||
@ -212,46 +212,17 @@ herr_t
|
|||||||
H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
H5Dwrite(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
||||||
hid_t file_space_id, hid_t dxpl_id, const void *buf)
|
hid_t file_space_id, hid_t dxpl_id, const void *buf)
|
||||||
{
|
{
|
||||||
|
H5D_t *dset = NULL;
|
||||||
|
H5P_genplist_t *plist; /* Property list pointer */
|
||||||
|
const H5S_t *mem_space = NULL;
|
||||||
|
const H5S_t *file_space = NULL;
|
||||||
|
hbool_t direct_write = FALSE;
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
FUNC_ENTER_API(FAIL)
|
FUNC_ENTER_API(FAIL)
|
||||||
H5TRACE6("e", "iiiii*x", dset_id, mem_type_id, mem_space_id, file_space_id,
|
H5TRACE6("e", "iiiii*x", dset_id, mem_type_id, mem_space_id, file_space_id,
|
||||||
dxpl_id, buf);
|
dxpl_id, buf);
|
||||||
|
|
||||||
if(!dset_id)
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
|
||||||
|
|
||||||
if(H5D__pre_write(dset_id, mem_type_id, mem_space_id, file_space_id, dxpl_id, buf) < 0)
|
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't prepare for writing data")
|
|
||||||
|
|
||||||
done:
|
|
||||||
FUNC_LEAVE_API(ret_value)
|
|
||||||
} /* end H5Dwrite() */
|
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
|
||||||
* Function: H5D__pre_write
|
|
||||||
*
|
|
||||||
* Purpose: Preparation for writing data.
|
|
||||||
*
|
|
||||||
* Return: Non-negative on success/Negative on failure
|
|
||||||
*
|
|
||||||
* Programmer: Raymond Lu
|
|
||||||
* 2 November 2012
|
|
||||||
*
|
|
||||||
*-------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
static herr_t
|
|
||||||
H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
|
||||||
hid_t file_space_id, hid_t dxpl_id, const void *buf)
|
|
||||||
{
|
|
||||||
H5D_t *dset = NULL;
|
|
||||||
H5P_genplist_t *plist; /* Property list pointer */
|
|
||||||
hbool_t direct_write = FALSE;
|
|
||||||
herr_t ret_value = SUCCEED; /* Return value */
|
|
||||||
|
|
||||||
FUNC_ENTER_STATIC
|
|
||||||
|
|
||||||
/* check arguments */
|
/* check arguments */
|
||||||
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
if(NULL == (dset = (H5D_t *)H5I_object_verify(dset_id, H5I_DATASET)))
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
|
||||||
@ -273,8 +244,61 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
|||||||
if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &direct_write) < 0)
|
if(H5P_get(plist, H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME, &direct_write) < 0)
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting flag for direct chunk write")
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "error getting flag for direct chunk write")
|
||||||
|
|
||||||
|
/* Check dataspace selections if this is not a direct write */
|
||||||
|
if(!direct_write) {
|
||||||
|
if(mem_space_id < 0 || file_space_id < 0)
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
||||||
|
|
||||||
|
if(H5S_ALL != mem_space_id) {
|
||||||
|
if(NULL == (mem_space = (const H5S_t *)H5I_object_verify(mem_space_id, H5I_DATASPACE)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
||||||
|
|
||||||
|
/* Check for valid selection */
|
||||||
|
if(H5S_SELECT_VALID(mem_space) != TRUE)
|
||||||
|
HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "memory selection+offset not within extent")
|
||||||
|
} /* end if */
|
||||||
|
if(H5S_ALL != file_space_id) {
|
||||||
|
if(NULL == (file_space = (const H5S_t *)H5I_object_verify(file_space_id, H5I_DATASPACE)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
||||||
|
|
||||||
|
/* Check for valid selection */
|
||||||
|
if(H5S_SELECT_VALID(file_space) != TRUE)
|
||||||
|
HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "file selection+offset not within extent")
|
||||||
|
} /* end if */
|
||||||
|
}
|
||||||
|
|
||||||
|
if(H5D__pre_write(dset, direct_write, mem_type_id, mem_space, file_space, dxpl_id, buf) < 0)
|
||||||
|
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't prepare for writing data")
|
||||||
|
|
||||||
|
done:
|
||||||
|
FUNC_LEAVE_API(ret_value)
|
||||||
|
} /* end H5Dwrite() */
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------
|
||||||
|
* Function: H5D__pre_write
|
||||||
|
*
|
||||||
|
* Purpose: Preparation for writing data.
|
||||||
|
*
|
||||||
|
* Return: Non-negative on success/Negative on failure
|
||||||
|
*
|
||||||
|
* Programmer: Raymond Lu
|
||||||
|
* 2 November 2012
|
||||||
|
*
|
||||||
|
*-------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
static herr_t
|
||||||
|
H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id,
|
||||||
|
const H5S_t *mem_space, const H5S_t *file_space,
|
||||||
|
hid_t dxpl_id, const void *buf)
|
||||||
|
{
|
||||||
|
herr_t ret_value = SUCCEED; /* Return value */
|
||||||
|
|
||||||
|
FUNC_ENTER_STATIC
|
||||||
|
|
||||||
/* Direct chunk write */
|
/* Direct chunk write */
|
||||||
if(direct_write) {
|
if(direct_write) {
|
||||||
|
H5P_genplist_t *plist; /* Property list pointer */
|
||||||
uint32_t direct_filters;
|
uint32_t direct_filters;
|
||||||
hsize_t *direct_offset;
|
hsize_t *direct_offset;
|
||||||
uint32_t direct_datasize;
|
uint32_t direct_datasize;
|
||||||
@ -283,6 +307,10 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
|||||||
hsize_t internal_offset[H5O_LAYOUT_NDIMS];
|
hsize_t internal_offset[H5O_LAYOUT_NDIMS];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* Get the dataset transfer property list */
|
||||||
|
if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
|
||||||
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset transfer property list")
|
||||||
|
|
||||||
if(H5D_CHUNKED != dset->shared->layout.type)
|
if(H5D_CHUNKED != dset->shared->layout.type)
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset")
|
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a chunked dataset")
|
||||||
|
|
||||||
@ -319,29 +347,6 @@ H5D__pre_write(hid_t dset_id, hid_t mem_type_id, hid_t mem_space_id,
|
|||||||
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write chunk directly")
|
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write chunk directly")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
else { /* Normal write */
|
else { /* Normal write */
|
||||||
const H5S_t *mem_space = NULL;
|
|
||||||
const H5S_t *file_space = NULL;
|
|
||||||
|
|
||||||
if(mem_space_id < 0 || file_space_id < 0)
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
|
||||||
|
|
||||||
if(H5S_ALL != mem_space_id) {
|
|
||||||
if(NULL == (mem_space = (const H5S_t *)H5I_object_verify(mem_space_id, H5I_DATASPACE)))
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
|
||||||
|
|
||||||
/* Check for valid selection */
|
|
||||||
if(H5S_SELECT_VALID(mem_space) != TRUE)
|
|
||||||
HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "memory selection+offset not within extent")
|
|
||||||
} /* end if */
|
|
||||||
if(H5S_ALL != file_space_id) {
|
|
||||||
if(NULL == (file_space = (const H5S_t *)H5I_object_verify(file_space_id, H5I_DATASPACE)))
|
|
||||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
|
|
||||||
|
|
||||||
/* Check for valid selection */
|
|
||||||
if(H5S_SELECT_VALID(file_space) != TRUE)
|
|
||||||
HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "file selection+offset not within extent")
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
/* write raw data */
|
/* write raw data */
|
||||||
if(H5D__write(dset, mem_type_id, mem_space, file_space, dxpl_id, buf) < 0)
|
if(H5D__write(dset, mem_type_id, mem_space, file_space, dxpl_id, buf) < 0)
|
||||||
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data")
|
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data")
|
||||||
|
@ -163,6 +163,9 @@ H5_DLL H5G_name_t *H5D_nameof(H5D_t *dataset);
|
|||||||
H5_DLL H5T_t *H5D_typeof(const H5D_t *dset);
|
H5_DLL H5T_t *H5D_typeof(const H5D_t *dset);
|
||||||
H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id);
|
H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id);
|
||||||
H5_DLL hid_t H5D_get_create_plist(H5D_t *dset);
|
H5_DLL hid_t H5D_get_create_plist(H5D_t *dset);
|
||||||
|
H5_DLL hid_t H5D_get_access_plist(H5D_t *dset);
|
||||||
|
H5_DLL hid_t H5D_get_space(H5D_t *dset);
|
||||||
|
H5_DLL hid_t H5D_get_type(H5D_t *dset);
|
||||||
|
|
||||||
/* Functions that operate on vlen data */
|
/* Functions that operate on vlen data */
|
||||||
H5_DLL herr_t H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id,
|
H5_DLL herr_t H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id,
|
||||||
|
2051
src/H5Fint.c
Normal file
2051
src/H5Fint.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -292,7 +292,13 @@ H5_DLLVAR const H5AC_class_t H5AC_SUPERBLOCK[1];
|
|||||||
/* General routines */
|
/* General routines */
|
||||||
H5_DLL herr_t H5F_init(void);
|
H5_DLL herr_t H5F_init(void);
|
||||||
H5_DLL herr_t H5F__term_deprec_interface(void);
|
H5_DLL herr_t H5F__term_deprec_interface(void);
|
||||||
|
H5F_t *H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id,
|
||||||
|
hid_t fapl_id, H5FD_t *lf);
|
||||||
|
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 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_close(H5F_t *f);
|
||||||
|
|
||||||
/* File mount related routines */
|
/* File mount related routines */
|
||||||
H5_DLL herr_t H5F_close_mounts(H5F_t *f);
|
H5_DLL herr_t H5F_close_mounts(H5F_t *f);
|
||||||
|
@ -598,6 +598,7 @@ 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);
|
||||||
|
@ -52,7 +52,7 @@ libhdf5_la_SOURCES= H5.c H5checksum.c H5dbg.c H5system.c H5timer.c H5trace.c \
|
|||||||
H5E.c H5Edeprec.c H5Eint.c \
|
H5E.c H5Edeprec.c H5Eint.c \
|
||||||
H5EA.c H5EAcache.c H5EAdbg.c H5EAdblkpage.c H5EAdblock.c H5EAhdr.c \
|
H5EA.c H5EAcache.c H5EAdbg.c H5EAdblkpage.c H5EAdblock.c H5EAhdr.c \
|
||||||
H5EAiblock.c H5EAint.c H5EAsblock.c H5EAstat.c H5EAtest.c \
|
H5EAiblock.c H5EAint.c H5EAsblock.c H5EAstat.c H5EAtest.c \
|
||||||
H5F.c H5Faccum.c H5Fcwfs.c \
|
H5F.c H5Fint.c H5Faccum.c H5Fcwfs.c \
|
||||||
H5Fdbg.c H5Fdeprec.c H5Fefc.c H5Ffake.c H5Fio.c \
|
H5Fdbg.c H5Fdeprec.c H5Fefc.c H5Ffake.c H5Fio.c \
|
||||||
H5Fmount.c H5Fmpi.c H5Fquery.c \
|
H5Fmount.c H5Fmpi.c H5Fquery.c \
|
||||||
H5Fsfile.c H5Fsuper.c H5Fsuper_cache.c H5Ftest.c \
|
H5Fsfile.c H5Fsuper.c H5Fsuper_cache.c H5Ftest.c \
|
||||||
|
@ -158,19 +158,19 @@ am_libhdf5_la_OBJECTS = H5.lo H5checksum.lo H5dbg.lo H5system.lo \
|
|||||||
H5Dtest.lo H5E.lo H5Edeprec.lo H5Eint.lo H5EA.lo H5EAcache.lo \
|
H5Dtest.lo H5E.lo H5Edeprec.lo H5Eint.lo H5EA.lo H5EAcache.lo \
|
||||||
H5EAdbg.lo H5EAdblkpage.lo H5EAdblock.lo H5EAhdr.lo \
|
H5EAdbg.lo H5EAdblkpage.lo H5EAdblock.lo H5EAhdr.lo \
|
||||||
H5EAiblock.lo H5EAint.lo H5EAsblock.lo H5EAstat.lo H5EAtest.lo \
|
H5EAiblock.lo H5EAint.lo H5EAsblock.lo H5EAstat.lo H5EAtest.lo \
|
||||||
H5F.lo H5Faccum.lo H5Fcwfs.lo H5Fdbg.lo H5Fdeprec.lo H5Fefc.lo \
|
H5F.lo H5Fint.lo H5Faccum.lo H5Fcwfs.lo H5Fdbg.lo H5Fdeprec.lo \
|
||||||
H5Ffake.lo H5Fio.lo H5Fmount.lo H5Fmpi.lo H5Fquery.lo \
|
H5Fefc.lo H5Ffake.lo H5Fio.lo H5Fmount.lo H5Fmpi.lo \
|
||||||
H5Fsfile.lo H5Fsuper.lo H5Fsuper_cache.lo H5Ftest.lo H5FA.lo \
|
H5Fquery.lo H5Fsfile.lo H5Fsuper.lo H5Fsuper_cache.lo \
|
||||||
H5FAcache.lo H5FAdbg.lo H5FAdblock.lo H5FAdblkpage.lo \
|
H5Ftest.lo H5FA.lo H5FAcache.lo H5FAdbg.lo H5FAdblock.lo \
|
||||||
H5FAhdr.lo H5FAstat.lo H5FAtest.lo H5FD.lo H5FDcore.lo \
|
H5FAdblkpage.lo H5FAhdr.lo H5FAstat.lo H5FAtest.lo H5FD.lo \
|
||||||
H5FDdirect.lo H5FDfamily.lo H5FDint.lo H5FDlog.lo H5FDmpi.lo \
|
H5FDcore.lo H5FDdirect.lo H5FDfamily.lo H5FDint.lo H5FDlog.lo \
|
||||||
H5FDmpio.lo H5FDmulti.lo H5FDsec2.lo H5FDspace.lo H5FDstdio.lo \
|
H5FDmpi.lo H5FDmpio.lo H5FDmulti.lo H5FDsec2.lo H5FDspace.lo \
|
||||||
H5FL.lo H5FO.lo H5FS.lo H5FScache.lo H5FSdbg.lo H5FSsection.lo \
|
H5FDstdio.lo H5FL.lo H5FO.lo H5FS.lo H5FScache.lo H5FSdbg.lo \
|
||||||
H5FSstat.lo H5FStest.lo H5G.lo H5Gbtree2.lo H5Gcache.lo \
|
H5FSsection.lo H5FSstat.lo H5FStest.lo H5G.lo H5Gbtree2.lo \
|
||||||
H5Gcompact.lo H5Gdense.lo H5Gdeprec.lo H5Gent.lo H5Gint.lo \
|
H5Gcache.lo H5Gcompact.lo H5Gdense.lo H5Gdeprec.lo H5Gent.lo \
|
||||||
H5Glink.lo H5Gloc.lo H5Gname.lo H5Gnode.lo H5Gobj.lo H5Goh.lo \
|
H5Gint.lo H5Glink.lo H5Gloc.lo H5Gname.lo H5Gnode.lo H5Gobj.lo \
|
||||||
H5Groot.lo H5Gstab.lo H5Gtest.lo H5Gtraverse.lo H5HF.lo \
|
H5Goh.lo H5Groot.lo H5Gstab.lo H5Gtest.lo H5Gtraverse.lo \
|
||||||
H5HFbtree2.lo H5HFcache.lo H5HFdbg.lo H5HFdblock.lo \
|
H5HF.lo H5HFbtree2.lo H5HFcache.lo H5HFdbg.lo H5HFdblock.lo \
|
||||||
H5HFdtable.lo H5HFhdr.lo H5HFhuge.lo H5HFiblock.lo H5HFiter.lo \
|
H5HFdtable.lo H5HFhdr.lo H5HFhuge.lo H5HFiblock.lo H5HFiter.lo \
|
||||||
H5HFman.lo H5HFsection.lo H5HFspace.lo H5HFstat.lo H5HFtest.lo \
|
H5HFman.lo H5HFsection.lo H5HFspace.lo H5HFstat.lo H5HFtest.lo \
|
||||||
H5HFtiny.lo H5HG.lo H5HGcache.lo H5HGdbg.lo H5HGquery.lo \
|
H5HFtiny.lo H5HG.lo H5HGcache.lo H5HGdbg.lo H5HGquery.lo \
|
||||||
@ -758,7 +758,7 @@ libhdf5_la_SOURCES = H5.c H5checksum.c H5dbg.c H5system.c H5timer.c H5trace.c \
|
|||||||
H5E.c H5Edeprec.c H5Eint.c \
|
H5E.c H5Edeprec.c H5Eint.c \
|
||||||
H5EA.c H5EAcache.c H5EAdbg.c H5EAdblkpage.c H5EAdblock.c H5EAhdr.c \
|
H5EA.c H5EAcache.c H5EAdbg.c H5EAdblkpage.c H5EAdblock.c H5EAhdr.c \
|
||||||
H5EAiblock.c H5EAint.c H5EAsblock.c H5EAstat.c H5EAtest.c \
|
H5EAiblock.c H5EAint.c H5EAsblock.c H5EAstat.c H5EAtest.c \
|
||||||
H5F.c H5Faccum.c H5Fcwfs.c \
|
H5F.c H5Fint.c H5Faccum.c H5Fcwfs.c \
|
||||||
H5Fdbg.c H5Fdeprec.c H5Fefc.c H5Ffake.c H5Fio.c \
|
H5Fdbg.c H5Fdeprec.c H5Fefc.c H5Ffake.c H5Fio.c \
|
||||||
H5Fmount.c H5Fmpi.c H5Fquery.c \
|
H5Fmount.c H5Fmpi.c H5Fquery.c \
|
||||||
H5Fsfile.c H5Fsuper.c H5Fsuper_cache.c H5Ftest.c \
|
H5Fsfile.c H5Fsuper.c H5Fsuper_cache.c H5Ftest.c \
|
||||||
@ -1054,6 +1054,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fdeprec.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fdeprec.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fefc.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fefc.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Ffake.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Ffake.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fint.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fio.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fio.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fmount.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fmount.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fmpi.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Fmpi.Plo@am__quote@
|
||||||
|
@ -54,9 +54,6 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
|||||||
#001: (file name) line (number) in test_error2(): H5Dwrite shouldn't succeed
|
#001: (file name) line (number) in test_error2(): H5Dwrite shouldn't succeed
|
||||||
major: Error API
|
major: Error API
|
||||||
minor: Write failed
|
minor: Write failed
|
||||||
#002: (file name) line (number) in H5Dwrite(): can't prepare for writing data
|
#002: (file name) line (number) in H5Dwrite(): not a dataset
|
||||||
major: Dataset
|
|
||||||
minor: Write failed
|
|
||||||
#003: (file name) line (number) in H5D__pre_write(): not a dataset
|
|
||||||
major: Invalid arguments to routine
|
major: Invalid arguments to routine
|
||||||
minor: Inappropriate type
|
minor: Inappropriate type
|
||||||
|
Loading…
Reference in New Issue
Block a user