summaryrefslogtreecommitdiffstats
path: root/src/H5Dio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Dio.c')
-rw-r--r--src/H5Dio.c190
1 files changed, 98 insertions, 92 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c
index 24c7be9..89afde5 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -109,12 +109,12 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Init io_info */
if (H5D__ioinfo_init(count, H5D_IO_OP_READ, dset_info, &io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info");
/* Allocate store buffer if necessary */
if (count > 1)
if (NULL == (store = (H5D_storage_t *)H5MM_malloc(count * sizeof(H5D_storage_t))))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "couldn't allocate dset storage info array buffer")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "couldn't allocate dset storage info array buffer");
#ifdef H5_HAVE_PARALLEL
/* Check for non-MPI-based VFD. Only need to check first dataset since all
@@ -124,11 +124,11 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Get I/O transfer mode */
if (H5CX_get_io_xfer_mode(&io_xfer_mode) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode");
/* Collective access is not permissible without a MPI based VFD */
if (io_xfer_mode == H5FD_MPIO_COLLECTIVE)
- HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPI-based drivers only")
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPI-based drivers only");
} /* end if */
#endif /*H5_HAVE_PARALLEL*/
@@ -138,29 +138,29 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* check args */
if (NULL == dset_info[i].dset)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset");
if (NULL == dset_info[i].dset->oloc.file)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file");
/* set metadata tagging with dset oheader addr */
H5AC_tag(dset_info[i].dset->oloc.addr, &prev_tag);
/* Set up datatype info for operation */
if (H5D__typeinfo_init(&io_info, &(dset_info[i]), dset_info[i].mem_type_id) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info");
/* Make certain that the number of elements in each selection is the same, and cache nelmts in
* dset_info */
dset_info[i].nelmts = H5S_GET_SELECT_NPOINTS(dset_info[i].mem_space);
if (dset_info[i].nelmts != H5S_GET_SELECT_NPOINTS(dset_info[i].file_space))
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
- "src and dest dataspaces have different number of elements selected")
+ "src and dest dataspaces have different number of elements selected");
/* Check for a NULL buffer */
if (NULL == dset_info[i].buf.vp) {
/* Check for any elements selected (which is invalid) */
if (dset_info[i].nelmts > 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer");
/* If the buffer is nil, and 0 element is selected, make a fake buffer.
* This is for some MPI package like ChaMPIon on NCSA's tungsten which
@@ -171,9 +171,9 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Make sure that both selections have their extents set */
if (!(H5S_has_extent(dset_info[i].file_space)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file dataspace does not have extent set")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file dataspace does not have extent set");
if (!(H5S_has_extent(dset_info[i].mem_space)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "memory dataspace does not have extent set")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "memory dataspace does not have extent set");
/* H5S_select_shape_same() has been modified to accept topologically identical
* selections with different rank as having the same shape (if the most
@@ -199,7 +199,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Allocate buffer */
if (NULL == (orig_mem_space = (H5S_t **)H5MM_calloc(count * sizeof(H5S_t *))))
HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL,
- "couldn't allocate original memory space array buffer")
+ "couldn't allocate original memory space array buffer");
}
else
/* Use local buffer */
@@ -214,7 +214,8 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
if (H5S_select_construct_projection(orig_mem_space[i], &dset_info[i].mem_space,
(unsigned)H5S_GET_EXTENT_NDIMS(dset_info[i].file_space),
(hsize_t)dset_info[i].type_info.dst_type_size, &buf_adj) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to construct projected memory dataspace")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
+ "unable to construct projected memory dataspace");
assert(dset_info[i].mem_space);
/* Adjust the buffer by the given amount */
@@ -236,14 +237,14 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Retrieve dataset's fill-value properties */
if (H5P_is_fill_value_defined(&dset_info[i].dset->shared->dcpl_cache.fill, &fill_status) < 0)
- HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't tell if fill value defined")
+ HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't tell if fill value defined");
/* Should be impossible, but check anyway... */
if (fill_status == H5D_FILL_VALUE_UNDEFINED &&
(dset_info[i].dset->shared->dcpl_cache.fill.fill_time == H5D_FILL_TIME_ALLOC ||
dset_info[i].dset->shared->dcpl_cache.fill.fill_time == H5D_FILL_TIME_IFSET))
HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL,
- "read failed: dataset doesn't exist, no data can be read")
+ "read failed: dataset doesn't exist, no data can be read");
/* If we're never going to fill this dataset, just leave the junk in the user's buffer */
if (dset_info[i].dset->shared->dcpl_cache.fill.fill_time != H5D_FILL_TIME_NEVER)
@@ -251,7 +252,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
if (H5D__fill(dset_info[i].dset->shared->dcpl_cache.fill.buf, dset_info[i].dset->shared->type,
dset_info[i].buf.vp, dset_info[i].type_info.mem_type,
dset_info[i].mem_space) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "filling buf failed")
+ HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "filling buf failed");
/* No need to perform any more I/O for this dataset */
dset_info[i].skip_io = TRUE;
@@ -260,7 +261,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
else {
/* Set up I/O operation */
if (H5D__dset_ioinfo_init(dset_info[i].dset, &(dset_info[i]), &(store[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to set up I/O operation")
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to set up I/O operation");
/* Sanity check that space is allocated, if there are elements */
if (dset_info[i].nelmts > 0)
@@ -275,7 +276,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Call storage method's I/O initialization routine */
if (dset_info[i].layout_ops.io_init &&
(dset_info[i].layout_ops.io_init)(&io_info, &(dset_info[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info");
dset_info[i].skip_io = FALSE;
io_op_init++;
@@ -292,18 +293,18 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Perform second phase of type info initialization */
if (H5D__typeinfo_init_phase2(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (second phase)")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (second phase)");
#ifdef H5_HAVE_PARALLEL
/* Adjust I/O info for any parallel or selection I/O */
if (H5D__ioinfo_adjust(&io_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
- "unable to adjust I/O info for parallel or selection I/O")
+ "unable to adjust I/O info for parallel or selection I/O");
#endif /* H5_HAVE_PARALLEL */
/* Perform third phase of type info initialization */
if (H5D__typeinfo_init_phase3(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (third phase)")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (third phase)");
H5CX_set_no_selection_io_cause(io_info.no_selection_io_cause);
@@ -318,7 +319,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Allocate sel_pieces array */
if (NULL ==
(io_info.sel_pieces = H5MM_malloc(io_info.piece_count * sizeof(io_info.sel_pieces[0]))))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "unable to allocate array of selected pieces")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "unable to allocate array of selected pieces");
}
/* MDIO-specific second phase initialization */
@@ -331,7 +332,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Make second phase IO init call */
if ((dset_info[i].layout_ops.mdio_init)(&io_info, &(dset_info[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't populate array of selected pieces")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't populate array of selected pieces");
/* Reset metadata tagging */
H5AC_tag(prev_tag, NULL);
@@ -339,7 +340,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Invoke correct "high level" I/O routine */
if ((*io_info.md_io_ops.multi_read_md)(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read data")
+ HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read data");
} /* end if */
else {
haddr_t prev_tag = HADDR_UNDEF;
@@ -348,23 +349,24 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
if (!H5D_LAYOUT_CB_PERFORM_IO(&io_info) && io_info.piece_count > 0) {
if (NULL == (io_info.mem_spaces = H5MM_malloc(io_info.piece_count * sizeof(H5S_t *))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for memory space list")
+ "memory allocation failed for memory space list");
if (NULL == (io_info.file_spaces = H5MM_malloc(io_info.piece_count * sizeof(H5S_t *))))
- HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL, "memory allocation failed for file space list")
+ HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
+ "memory allocation failed for file space list");
if (NULL == (io_info.addrs = H5MM_malloc(io_info.piece_count * sizeof(haddr_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for piece address list")
+ "memory allocation failed for piece address list");
if (NULL == (io_info.element_sizes = H5MM_malloc(io_info.piece_count * sizeof(size_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for element size list")
+ "memory allocation failed for element size list");
if (NULL == (io_info.rbufs = H5MM_malloc(io_info.piece_count * sizeof(void *))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for read buffer list")
+ "memory allocation failed for read buffer list");
if (io_info.max_tconv_type_size > 0)
if (NULL ==
(io_info.sel_pieces = H5MM_malloc(io_info.piece_count * sizeof(io_info.sel_pieces[0]))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "unable to allocate array of selected pieces")
+ "unable to allocate array of selected pieces");
}
/* Loop with serial & single-dset read IO path */
@@ -378,7 +380,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Invoke correct "high level" I/O routine */
if ((*dset_info[i].io_ops.multi_read)(&io_info, &dset_info[i]) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read data")
+ HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read data");
/* Reset metadata tagging */
H5AC_tag(prev_tag, NULL);
@@ -391,7 +393,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
if (io_info.max_tconv_type_size > 0) {
/* Type conversion pathway */
if (H5D__scatgath_read_select(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "type conversion selection read failed")
+ HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "type conversion selection read failed");
}
else {
/* Call selection I/O directly */
@@ -399,7 +401,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
if (H5F_shared_select_read(io_info.f_sh, H5FD_MEM_DRAW, (uint32_t)io_info.pieces_added,
io_info.mem_spaces, io_info.file_spaces, io_info.addrs,
io_info.element_sizes, io_info.rbufs) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "selection read failed")
+ HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "selection read failed");
}
}
@@ -410,7 +412,7 @@ H5D__read(size_t count, H5D_dset_io_info_t *dset_info)
/* Get the parallel I/O transfer mode */
if (H5CX_get_io_xfer_mode(&xfer_mode) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode");
/* Only report the collective I/O mode if we're actually performing collective I/O */
if (xfer_mode == H5FD_MPIO_COLLECTIVE)
@@ -506,12 +508,12 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Init io_info */
if (H5D__ioinfo_init(count, H5D_IO_OP_WRITE, dset_info, &io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info");
/* Allocate store buffer if necessary */
if (count > 1)
if (NULL == (store = (H5D_storage_t *)H5MM_malloc(count * sizeof(H5D_storage_t))))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "couldn't allocate dset storage info array buffer")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "couldn't allocate dset storage info array buffer");
/* iterate over all dsets and construct I/O information */
for (i = 0; i < count; i++) {
@@ -520,9 +522,9 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* check args */
if (NULL == dset_info[i].dset)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset");
if (NULL == dset_info[i].dset->oloc.file)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file");
/* set metadata tagging with dset oheader addr */
H5AC_tag(dset_info[i].dset->oloc.addr, &prev_tag);
@@ -530,18 +532,18 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* All filters in the DCPL must have encoding enabled. */
if (!dset_info[i].dset->shared->checked_filters) {
if (H5Z_can_apply(dset_info[i].dset->shared->dcpl_id, dset_info[i].dset->shared->type_id) < 0)
- HGOTO_ERROR(H5E_PLINE, H5E_CANAPPLY, FAIL, "can't apply filters")
+ HGOTO_ERROR(H5E_PLINE, H5E_CANAPPLY, FAIL, "can't apply filters");
dset_info[i].dset->shared->checked_filters = TRUE;
} /* end if */
/* Check if we are allowed to write to this file */
if (0 == (H5F_INTENT(dset_info[i].dset->oloc.file) & H5F_ACC_RDWR))
- HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "no write intent on file")
+ HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "no write intent on file");
/* Set up datatype info for operation */
if (H5D__typeinfo_init(&io_info, &(dset_info[i]), dset_info[i].mem_type_id) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info");
/* Various MPI based checks */
#ifdef H5_HAVE_PARALLEL
@@ -551,18 +553,19 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* support parallel access of that yet */
if (H5T_is_vl_storage(dset_info[i].type_info.mem_type) > 0)
HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL,
- "Parallel IO does not support writing VL or region reference datatypes yet")
+ "Parallel IO does not support writing VL or region reference datatypes yet");
} /* end if */
else {
H5FD_mpio_xfer_t io_xfer_mode; /* MPI I/O transfer mode */
/* Get I/O transfer mode */
if (H5CX_get_io_xfer_mode(&io_xfer_mode) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode");
/* Collective access is not permissible without a MPI based VFD */
if (io_xfer_mode == H5FD_MPIO_COLLECTIVE)
- HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPI-based driver only")
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL,
+ "collective access for MPI-based driver only");
} /* end else */
#endif /*H5_HAVE_PARALLEL*/
@@ -571,13 +574,13 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
dset_info[i].nelmts = H5S_GET_SELECT_NPOINTS(dset_info[i].mem_space);
if (dset_info[i].nelmts != H5S_GET_SELECT_NPOINTS(dset_info[i].file_space))
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
- "src and dest dataspaces have different number of elements selected")
+ "src and dest dataspaces have different number of elements selected");
/* Check for a NULL buffer */
if (NULL == dset_info[i].buf.cvp) {
/* Check for any elements selected (which is invalid) */
if (dset_info[i].nelmts > 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no output buffer");
/* If the buffer is nil, and 0 element is selected, make a fake buffer.
* This is for some MPI package like ChaMPIon on NCSA's tungsten which
@@ -588,9 +591,9 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Make sure that both selections have their extents set */
if (!(H5S_has_extent(dset_info[i].file_space)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file dataspace does not have extent set")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file dataspace does not have extent set");
if (!(H5S_has_extent(dset_info[i].mem_space)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "memory dataspace does not have extent set")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "memory dataspace does not have extent set");
/* H5S_select_shape_same() has been modified to accept topologically
* identical selections with different rank as having the same shape
@@ -616,7 +619,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Allocate buffer */
if (NULL == (orig_mem_space = (H5S_t **)H5MM_calloc(count * sizeof(H5S_t *))))
HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL,
- "couldn't allocate original memory space array buffer")
+ "couldn't allocate original memory space array buffer");
}
else
/* Use local buffer */
@@ -631,7 +634,8 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
if (H5S_select_construct_projection(orig_mem_space[i], &dset_info[i].mem_space,
(unsigned)H5S_GET_EXTENT_NDIMS(dset_info[i].file_space),
dset_info[i].type_info.src_type_size, &buf_adj) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to construct projected memory dataspace")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
+ "unable to construct projected memory dataspace");
assert(dset_info[i].mem_space);
/* Adjust the buffer by the given amount */
@@ -643,7 +647,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Set up I/O operation */
if (H5D__dset_ioinfo_init(dset_info[i].dset, &(dset_info[i]), &(store[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up I/O operation")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up I/O operation");
/* Allocate dataspace and initialize it if it hasn't been. */
should_alloc_space = dset_info[i].dset->shared->dcpl_cache.efl.nused == 0 &&
@@ -667,7 +671,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Get the number of elements in file dataset's dataspace */
if ((file_nelmts = H5S_GET_EXTENT_NPOINTS(dset_info[i].file_space)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL,
- "can't retrieve number of elements in file dataset")
+ "can't retrieve number of elements in file dataset");
/* Always allow fill values to be written if the dataset has a VL datatype */
if (H5T_detect_class(dset_info[i].dset->shared->type, H5T_VLEN, FALSE))
@@ -677,14 +681,14 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Allocate storage */
if (H5D__alloc_storage(dset_info[i].dset, H5D_ALLOC_WRITE, full_overwrite, NULL) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage");
} /* end if */
/* Call storage method's I/O initialization routine */
/* Init io_info.dset_info[] and generate piece_info in skip list */
if (dset_info[i].layout_ops.io_init &&
(*dset_info[i].layout_ops.io_init)(&io_info, &(dset_info[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info");
dset_info[i].skip_io = FALSE;
io_op_init++;
@@ -696,18 +700,18 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Perform second phase of type info initialization */
if (H5D__typeinfo_init_phase2(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (second phase)")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (second phase)");
#ifdef H5_HAVE_PARALLEL
/* Adjust I/O info for any parallel or selection I/O */
if (H5D__ioinfo_adjust(&io_info) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL,
- "unable to adjust I/O info for parallel or selection I/O")
+ "unable to adjust I/O info for parallel or selection I/O");
#endif /* H5_HAVE_PARALLEL */
/* Perform third phase of type info initialization */
if (H5D__typeinfo_init_phase3(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (third phase)")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to set up type info (third phase)");
H5CX_set_no_selection_io_cause(io_info.no_selection_io_cause);
@@ -722,7 +726,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Allocate sel_pieces array */
if (NULL ==
(io_info.sel_pieces = H5MM_malloc(io_info.piece_count * sizeof(io_info.sel_pieces[0]))))
- HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "unable to allocate array of selected pieces")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "unable to allocate array of selected pieces");
}
/* MDIO-specific second phase initialization */
@@ -735,7 +739,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Make second phase IO init call */
if ((dset_info[i].layout_ops.mdio_init)(&io_info, &(dset_info[i])) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't populate array of selected pieces")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't populate array of selected pieces");
/* Reset metadata tagging */
H5AC_tag(prev_tag, NULL);
@@ -743,7 +747,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Invoke correct "high level" I/O routine */
if ((*io_info.md_io_ops.multi_write_md)(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data")
+ HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data");
} /* end if */
else {
haddr_t prev_tag = HADDR_UNDEF;
@@ -752,23 +756,24 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
if (!H5D_LAYOUT_CB_PERFORM_IO(&io_info) && io_info.piece_count > 0) {
if (NULL == (io_info.mem_spaces = H5MM_malloc(io_info.piece_count * sizeof(H5S_t *))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for memory space list")
+ "memory allocation failed for memory space list");
if (NULL == (io_info.file_spaces = H5MM_malloc(io_info.piece_count * sizeof(H5S_t *))))
- HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL, "memory allocation failed for file space list")
+ HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
+ "memory allocation failed for file space list");
if (NULL == (io_info.addrs = H5MM_malloc(io_info.piece_count * sizeof(haddr_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for piece address list")
+ "memory allocation failed for piece address list");
if (NULL == (io_info.element_sizes = H5MM_malloc(io_info.piece_count * sizeof(size_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for element size list")
+ "memory allocation failed for element size list");
if (NULL == (io_info.wbufs = H5MM_malloc(io_info.piece_count * sizeof(const void *))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "memory allocation failed for write buffer list")
+ "memory allocation failed for write buffer list");
if (io_info.max_tconv_type_size > 0)
if (NULL ==
(io_info.sel_pieces = H5MM_malloc(io_info.piece_count * sizeof(io_info.sel_pieces[0]))))
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, FAIL,
- "unable to allocate array of selected pieces")
+ "unable to allocate array of selected pieces");
}
/* loop with serial & single-dset write IO path */
@@ -780,7 +785,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Invoke correct "high level" I/O routine */
if ((*dset_info[i].io_ops.multi_write)(&io_info, &dset_info[i]) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data")
+ HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data");
/* Reset metadata tagging */
H5AC_tag(prev_tag, NULL);
@@ -793,7 +798,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
if (io_info.max_tconv_type_size > 0) {
/* Type conversion pathway */
if (H5D__scatgath_write_select(&io_info) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "type conversion selection write failed")
+ HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "type conversion selection write failed");
}
else {
/* Call selection I/O directly */
@@ -801,7 +806,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
if (H5F_shared_select_write(io_info.f_sh, H5FD_MEM_DRAW, (uint32_t)io_info.pieces_added,
io_info.mem_spaces, io_info.file_spaces, io_info.addrs,
io_info.element_sizes, io_info.wbufs) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "selection write failed")
+ HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "selection write failed");
}
}
@@ -812,7 +817,7 @@ H5D__write(size_t count, H5D_dset_io_info_t *dset_info)
/* Get the parallel I/O transfer mode */
if (H5CX_get_io_xfer_mode(&xfer_mode) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode");
/* Only report the collective I/O mode if we're actually performing collective I/O */
if (xfer_mode == H5FD_MPIO_COLLECTIVE) {
@@ -1021,14 +1026,14 @@ H5D__typeinfo_init(H5D_io_info_t *io_info, H5D_dset_io_info_t *dset_info, hid_t
/* Patch the top level file pointer for dt->shared->u.vlen.f if needed */
if (H5T_patch_vlen_file(dset->shared->type, H5F_VOL_OBJ(dset->oloc.file)) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch VL datatype file pointer")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTOPENOBJ, FAIL, "can't patch VL datatype file pointer");
/* Initialize type info safely */
memset(type_info, 0, sizeof(*type_info));
/* Get the memory & dataset datatypes */
if (NULL == (type_info->mem_type = (const H5T_t *)H5I_object_verify(mem_type_id, H5I_DATATYPE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype");
type_info->dset_type = dset->shared->type;
if (io_info->op_type == H5D_IO_OP_WRITE) {
@@ -1052,11 +1057,11 @@ H5D__typeinfo_init(H5D_io_info_t *io_info, H5D_dset_io_info_t *dset_info, hid_t
* turns off background preservation.
*/
if (NULL == (type_info->tpath = H5T_path_find(src_type, dst_type)))
- HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest datatype")
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "unable to convert between src and dest datatype");
/* Retrieve info from API context */
if (H5CX_get_data_transform(&data_transform) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get data transform info")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get data transform info");
/* Precompute some useful information */
type_info->src_type_size = H5T_get_size(src_type);
@@ -1072,7 +1077,7 @@ H5D__typeinfo_init(H5D_io_info_t *io_info, H5D_dset_io_info_t *dset_info, hid_t
/* Get info from API context */
if (H5CX_get_bkgr_buf_type(&bkgr_buf_type) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve background buffer type")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve background buffer type");
/* Check if the datatypes are compound subsets of one another */
type_info->cmpd_subset = H5T_path_compound_subset(type_info->tpath);
@@ -1168,7 +1173,7 @@ H5D__typeinfo_init_phase2(H5D_io_info_t *io_info)
/* Get max temp buffer size from API context */
if (H5CX_get_max_temp_buf(&max_temp_buf) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve max. temp. buf size")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve max. temp. buf size");
/* Check if the needed type conversion or background buffer size is too big */
if (io_info->tconv_buf_size > max_temp_buf) {
@@ -1234,15 +1239,15 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info)
/* Get the original state of parallel I/O transfer mode */
if (H5CX_get_io_xfer_mode(&xfer_mode) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode");
/* Get MPI communicator */
if (MPI_COMM_NULL == (io_info->comm = H5F_mpi_get_comm(dset0->oloc.file)))
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve MPI communicator")
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve MPI communicator");
/* Check if we can set direct MPI-IO read/write functions */
if ((opt = H5D__mpio_opt_possible(io_info)) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "invalid check for direct IO dataspace ")
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "invalid check for direct IO dataspace ");
/* Check if we can use the optimized parallel I/O routines */
if (opt == TRUE) {
@@ -1262,12 +1267,12 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info)
if (io_info->op_type == H5D_IO_OP_WRITE) {
hbool_t mpi_file_sync_required = FALSE;
if (H5F_shared_get_mpi_file_sync_required(io_info->f_sh, &mpi_file_sync_required) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI file_sync_required flag")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get MPI file_sync_required flag");
if (mpi_file_sync_required)
HGOTO_ERROR(
H5E_DATASET, H5E_NO_INDEPENDENT, FAIL,
- "Can't perform independent write when MPI_File_sync is required by ROMIO driver.")
+ "Can't perform independent write when MPI_File_sync is required by ROMIO driver.");
}
/* Check if there are any filters in the pipeline. If there are,
@@ -1289,7 +1294,7 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info)
/* Retrieve size of MPI communicator used for file */
if ((comm_size = H5F_shared_mpi_get_size(io_info->f_sh)) < 0)
- HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get MPI communicator size")
+ HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get MPI communicator size");
if (comm_size > 1) {
char local_no_coll_cause_string[512];
@@ -1298,7 +1303,7 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info)
if (H5D__mpio_get_no_coll_cause_strings(local_no_coll_cause_string, 512,
global_no_coll_cause_string, 512) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL,
- "can't get reasons for breaking collective I/O")
+ "can't get reasons for breaking collective I/O");
HGOTO_ERROR(H5E_IO, H5E_NO_INDEPENDENT, FAIL,
"Can't perform independent write with filters in pipeline.\n"
@@ -1316,7 +1321,7 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info)
if (xfer_mode == H5FD_MPIO_COLLECTIVE) {
/* Change the xfer_mode to independent for handling the I/O */
if (H5CX_set_io_xfer_mode(H5FD_MPIO_INDEPENDENT) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set MPI-I/O transfer mode")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set MPI-I/O transfer mode");
} /* end if */
} /* end else */
} /* end if */
@@ -1355,9 +1360,10 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
/* Get provided buffers from API context */
if (H5CX_get_tconv_buf(&tconv_buf) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve temp. conversion buffer pointer")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve temp. conversion buffer pointer");
if (H5CX_get_bkgr_buf(&bkgr_buf) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve background conversion buffer pointer")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL,
+ "can't retrieve background conversion buffer pointer");
/* Check if we're doing selection I/O */
if (io_info->use_select_io == H5D_SELECTION_IO_MODE_ON) {
@@ -1371,7 +1377,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
if (io_info->tconv_buf_size > 0) {
if (NULL == (io_info->tconv_buf = H5FL_BLK_MALLOC(type_conv, io_info->tconv_buf_size)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL,
- "memory allocation failed for type conversion")
+ "memory allocation failed for type conversion");
io_info->tconv_buf_allocated = TRUE;
}
@@ -1379,7 +1385,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
if (io_info->bkg_buf_size > 0) {
if (NULL == (io_info->bkg_buf = H5FL_BLK_MALLOC(type_conv, io_info->bkg_buf_size)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL,
- "memory allocation failed for type conversion")
+ "memory allocation failed for type conversion");
io_info->bkg_buf_allocated = TRUE;
}
}
@@ -1394,7 +1400,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
/* Get max buffer size from API context */
if (H5CX_get_max_temp_buf(&max_temp_buf) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve max. temp. buf size")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't retrieve max. temp. buf size");
/* Set up datatype conversion/background buffers */
target_size = max_temp_buf;
@@ -1414,7 +1420,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
target_size = io_info->max_tconv_type_size;
else
/* Don't get bigger than the application has requested */
- HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "temporary buffer max size is too small")
+ HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "temporary buffer max size is too small");
} /* end if */
/* Get a temporary buffer for type conversion unless the app has already
@@ -1425,7 +1431,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
/* Allocate temporary buffer */
if (NULL == (io_info->tconv_buf = H5FL_BLK_MALLOC(type_conv, target_size)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL,
- "memory allocation failed for type conversion")
+ "memory allocation failed for type conversion");
io_info->tconv_buf_allocated = TRUE;
} /* end if */
@@ -1446,7 +1452,7 @@ H5D__typeinfo_init_phase3(H5D_io_info_t *io_info)
* tconv element size is max(src, dst) and the bkg element size is dst */
if (NULL == (io_info->bkg_buf = H5FL_BLK_MALLOC(type_conv, target_size)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL,
- "memory allocation failed for background conversion")
+ "memory allocation failed for background conversion");
io_info->bkg_buf_allocated = TRUE;
}
}