summaryrefslogtreecommitdiffstats
path: root/src/H5Ddeprec.c
diff options
context:
space:
mode:
authorvchoi-hdfgroup <55293060+vchoi-hdfgroup@users.noreply.github.com>2021-10-28 03:45:11 (GMT)
committerGitHub <noreply@github.com>2021-10-28 03:45:11 (GMT)
commitb92c7e58a97bc81a8983da3312dbfe72f6a75745 (patch)
tree40ce8f08c2ec57a772ce57b3b91da56be21d5334 /src/H5Ddeprec.c
parentbb54464d2dcee95032332c44aa4d1ee2438e4be4 (diff)
parent33630ee54581f7f54e4ecd8e53ec3e94ba13c493 (diff)
downloadhdf5-b92c7e58a97bc81a8983da3312dbfe72f6a75745.zip
hdf5-b92c7e58a97bc81a8983da3312dbfe72f6a75745.tar.gz
hdf5-b92c7e58a97bc81a8983da3312dbfe72f6a75745.tar.bz2
Merge pull request #43 from vchoi-hdfgroup/feature/vfd_swmr
Feature/vfd swmr
Diffstat (limited to 'src/H5Ddeprec.c')
-rw-r--r--src/H5Ddeprec.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c
index 1c66f26..61ecab26 100644
--- a/src/H5Ddeprec.c
+++ b/src/H5Ddeprec.c
@@ -233,13 +233,15 @@ done:
herr_t
H5Dextend(hid_t dset_id, const hsize_t size[])
{
- H5VL_object_t *vol_obj = NULL; /* Dataset structure */
- hid_t sid = H5I_INVALID_HID; /* Dataspace ID */
- H5S_t * ds = NULL; /* Dataspace struct */
- int ndims; /* Dataset/space rank */
- hsize_t dset_dims[H5S_MAX_RANK]; /* Current dataset dimensions */
- int i; /* Local index variable */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5VL_object_t * vol_obj; /* Object for loc_id */
+ H5VL_dataset_get_args_t vol_get_cb_args; /* Arguments to VOL callback */
+ H5VL_dataset_specific_args_t vol_spec_cb_args; /* Arguments to VOL callback */
+ hid_t sid = H5I_INVALID_HID; /* Dataspace ID */
+ H5S_t * ds = NULL; /* Dataspace struct */
+ int ndims; /* Dataset/space rank */
+ hsize_t dset_dims[H5S_MAX_RANK]; /* Current dataset dimensions */
+ int i; /* Local index variable */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "i*h", dset_id, size);
@@ -250,10 +252,14 @@ H5Dextend(hid_t dset_id, const hsize_t size[])
if (!size)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no size specified")
+ /* Set up VOL callback arguments */
+ vol_get_cb_args.op_type = H5VL_DATASET_GET_SPACE;
+ vol_get_cb_args.args.get_space.space_id = H5I_INVALID_HID;
+
/* Get the dataspace pointer for the dataset */
- if (H5VL_dataset_get(vol_obj, H5VL_DATASET_GET_SPACE, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, &sid) <
- 0)
+ if (H5VL_dataset_get(vol_obj, &vol_get_cb_args, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to get dataspace")
+ sid = vol_get_cb_args.args.get_space.space_id;
if (H5I_INVALID_HID == sid)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "received an invalid dataspace from the dataset")
if (NULL == (ds = (H5S_t *)H5I_object_verify(sid, H5I_DATASPACE)))
@@ -281,9 +287,12 @@ H5Dextend(hid_t dset_id, const hsize_t size[])
if (H5CX_set_loc(dset_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set collective metadata read info")
+ /* Set up VOL callback arguments */
+ vol_spec_cb_args.op_type = H5VL_DATASET_SET_EXTENT;
+ vol_spec_cb_args.args.set_extent.size = dset_dims;
+
/* Increase size */
- if ((ret_value = H5VL_dataset_specific(vol_obj, H5VL_DATASET_SET_EXTENT, H5P_DATASET_XFER_DEFAULT,
- H5_REQUEST_NULL, dset_dims)) < 0)
+ if (H5VL_dataset_specific(vol_obj, &vol_spec_cb_args, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to extend dataset")
done: