summaryrefslogtreecommitdiffstats
path: root/src/H5Ssimp.c
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>1998-06-07 04:38:16 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>1998-06-07 04:38:16 (GMT)
commitdadb964ba64517ce3ae2628e6155555fc5542e65 (patch)
tree7eab1ce899c9a358baf10d36aca93ceda9a1e318 /src/H5Ssimp.c
parent1e8ebeecfc67073a3019f9c2084a5977d2b8c62e (diff)
downloadhdf5-dadb964ba64517ce3ae2628e6155555fc5542e65.zip
hdf5-dadb964ba64517ce3ae2628e6155555fc5542e65.tar.gz
hdf5-dadb964ba64517ce3ae2628e6155555fc5542e65.tar.bz2
[svn-r411] Added data-transfer-mode to various function to specify which
mode to use for data transfer. Currently, INDEPENDENT transfer is the default mode. Collective is supported for files opened via the MPIO driver. Specific changes to individual files follow. H5D.c: Replaced previous kludge of passing xfer_mode via the file access_mode with xfer_mode function parameter all the way to the low level I/O drivers. H5Dprivate.h: The H5D_xfer_t.xfer_mode is now used in serial and parallel modes. Removed the "HAVE_PARALLEL" macro condition to support it. H5Dpublic.h: Added H5D_XFER_DFLT as a new value for H5D_transfer_t and removed the HAVE_PARALLEL condition macro to make the H5D_transfer_t definition available to both serial and parallel version. H5B.c: H5F.c: H5Farray.c: H5Fcore.c: H5Ffamily.c: H5Fistore.c: H5Flow.c: H5Fmpio.c: H5Fsec2.c: H5Fsplit.c: H5Fstdio.c: H5Gnode.c: H5HG.c: H5HL.c: H5O.c: H5Sprivate.h: H5Ssimp.c: debug.c: Added xfer_mode to the argument lists of the following routines to specify data transfer mode. Then updated calls to these routines with appropriate transfer mode. Whenever cases that collective mode is inappropriate (e.g. object header read-write, flush), H5D_XFER_DFLT is used. The H5D_XFER_DFLT mode is currently acting the same as the independent mode. H5F_block_read H5F_block_write H5F_arr_read H5F_arr_write H5F_core_read H5F_core_write H5F_fam_read H5F_fam_write H5F_mpio_read H5F_mpio_write H5F_low_write H5F_low_read H5F_sec2_read H5F_sec2_write H5F_split_read H5F_split_write H5F_stdio_read H5F_stdio_write H5S_simp_fgath H5S_simp_fscat H5S_simp_read H5S_simp_write H5Fprivate.h: H5P.c: Removed access_mode field from struct H5F_access_t type. The access-mode was the initial design to control independent or collective I/O mode. It is now supported by the data transfer mode.
Diffstat (limited to 'src/H5Ssimp.c')
-rw-r--r--src/H5Ssimp.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/H5Ssimp.c b/src/H5Ssimp.c
index f8b3e0d..64be705 100644
--- a/src/H5Ssimp.c
+++ b/src/H5Ssimp.c
@@ -119,6 +119,8 @@ H5S_simp_init (const struct H5O_layout_t __unused__ *layout,
* Wednesday, January 21, 1998
*
* Modifications:
+ * June 2, 1998 Albert Cheng
+ * Added xfer_mode argument
*
*-------------------------------------------------------------------------
*/
@@ -127,7 +129,8 @@ H5S_simp_fgath (H5F_t *f, const struct H5O_layout_t *layout,
const struct H5O_compress_t *comp, const struct H5O_efl_t *efl,
size_t elmt_size, const H5S_t *file_space,
const H5S_number_t __unused__ *numbering,
- size_t start, size_t nelmts, void *buf/*out*/)
+ size_t start, size_t nelmts,
+ const H5D_transfer_t xfer_mode, void *buf/*out*/)
{
hssize_t file_offset[H5O_LAYOUT_NDIMS]; /*offset of slab in file*/
hsize_t hsize[H5O_LAYOUT_NDIMS]; /*size of hyperslab */
@@ -185,7 +188,7 @@ H5S_simp_fgath (H5F_t *f, const struct H5O_layout_t *layout,
* Gather from file.
*/
if (H5F_arr_read (f, layout, comp, efl, hsize, hsize, zero, file_offset,
- buf/*out*/)<0) {
+ xfer_mode, buf/*out*/)<0) {
HRETURN_ERROR (H5E_DATASPACE, H5E_READERROR, 0, "read error");
}
@@ -403,6 +406,8 @@ H5S_simp_mgath (const void *buf, size_t elmt_size,
* Wednesday, January 21, 1998
*
* Modifications:
+ * June 2, 1998 Albert Cheng
+ * Added xfer_mode argument
*
*-------------------------------------------------------------------------
*/
@@ -411,7 +416,8 @@ H5S_simp_fscat (H5F_t *f, const struct H5O_layout_t *layout,
const struct H5O_compress_t *comp, const struct H5O_efl_t *efl,
size_t elmt_size, const H5S_t *file_space,
const H5S_number_t __unused__ *numbering,
- size_t start, size_t nelmts, const void *buf)
+ size_t start, size_t nelmts,
+ const H5D_transfer_t xfer_mode, const void *buf)
{
hssize_t file_offset[H5O_LAYOUT_NDIMS]; /*offset of hyperslab */
hsize_t hsize[H5O_LAYOUT_NDIMS]; /*size of hyperslab */
@@ -469,7 +475,7 @@ H5S_simp_fscat (H5F_t *f, const struct H5O_layout_t *layout,
* Scatter to file.
*/
if (H5F_arr_write (f, layout, comp, efl, hsize, hsize, zero,
- file_offset, buf)<0) {
+ file_offset, xfer_mode, buf)<0) {
HRETURN_ERROR (H5E_DATASPACE, H5E_WRITEERROR, FAIL, "write error");
}
@@ -494,6 +500,8 @@ H5S_simp_fscat (H5F_t *f, const struct H5O_layout_t *layout,
* Thursday, March 12, 1998
*
* Modifications:
+ * June 2, 1998 Albert Cheng
+ * Added xfer_mode argument
*
*-------------------------------------------------------------------------
*/
@@ -501,7 +509,8 @@ herr_t
H5S_simp_read (H5F_t *f, const struct H5O_layout_t *layout,
const struct H5O_compress_t *comp, const struct H5O_efl_t *efl,
size_t elmt_size, const H5S_t *file_space,
- const H5S_t *mem_space, void *buf/*out*/)
+ const H5S_t *mem_space, const H5D_transfer_t xfer_mode,
+ void *buf/*out*/)
{
hssize_t file_offset[H5O_LAYOUT_NDIMS];
hsize_t hslab_size[H5O_LAYOUT_NDIMS];
@@ -574,7 +583,7 @@ H5S_simp_read (H5F_t *f, const struct H5O_layout_t *layout,
/* Read the hyperslab */
if (H5F_arr_read (f, layout, comp, efl, hslab_size,
- mem_size, mem_offset, file_offset, buf)<0) {
+ mem_size, mem_offset, file_offset, xfer_mode, buf)<0) {
HRETURN_ERROR (H5E_IO, H5E_READERROR, FAIL, "unable to read dataset");
}
@@ -599,6 +608,8 @@ H5S_simp_read (H5F_t *f, const struct H5O_layout_t *layout,
* Thursday, March 12, 1998
*
* Modifications:
+ * June 2, 1998 Albert Cheng
+ * Added xfer_mode argument
*
*-------------------------------------------------------------------------
*/
@@ -606,7 +617,8 @@ herr_t
H5S_simp_write (H5F_t *f, const struct H5O_layout_t *layout,
const struct H5O_compress_t *comp, const struct H5O_efl_t *efl,
size_t elmt_size, const H5S_t *file_space,
- const H5S_t *mem_space, const void *buf)
+ const H5S_t *mem_space, const H5D_transfer_t xfer_mode,
+ const void *buf)
{
hssize_t file_offset[H5O_LAYOUT_NDIMS];
hsize_t hslab_size[H5O_LAYOUT_NDIMS];
@@ -679,7 +691,7 @@ H5S_simp_write (H5F_t *f, const struct H5O_layout_t *layout,
/* Write the hyperslab */
if (H5F_arr_write (f, layout, comp, efl, hslab_size,
- mem_size, mem_offset, file_offset, buf)<0) {
+ mem_size, mem_offset, file_offset, xfer_mode, buf)<0) {
HRETURN_ERROR (H5E_IO, H5E_WRITEERROR, FAIL,
"unable to write dataset");
}