summaryrefslogtreecommitdiffstats
path: root/src/H5S.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-08-02 17:56:37 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-08-02 17:56:37 (GMT)
commit34cbb564af98b82c9b9f392fa33787094be4c74f (patch)
treed86ac0112734470cec82b4b26eacf2d798f61a3d /src/H5S.c
parentaf7def1357e2e8fa43e6abe1adc768219c2df620 (diff)
downloadhdf5-34cbb564af98b82c9b9f392fa33787094be4c74f.zip
hdf5-34cbb564af98b82c9b9f392fa33787094be4c74f.tar.gz
hdf5-34cbb564af98b82c9b9f392fa33787094be4c74f.tar.bz2
[svn-r8989] Purpose:
Backport feature Description: Backport Kent's collective chunk I/O work to date into the release branch. Also, minor code cleanups, etc. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IRIX64 6.5 (modi4) h5committested
Diffstat (limited to 'src/H5S.c')
-rw-r--r--src/H5S.c50
1 files changed, 32 insertions, 18 deletions
diff --git a/src/H5S.c b/src/H5S.c
index 5c42787..3ad61f8 100644
--- a/src/H5S.c
+++ b/src/H5S.c
@@ -14,14 +14,18 @@
#define H5S_PACKAGE /*suppress error about including H5Spkg */
+/* Pablo information */
+/* (Put before include files to avoid problems with inline functions) */
+#define PABLO_MASK H5S_mask
+
#define _H5S_IN_H5S_C
-#include "H5private.h" /* Generic Functions */
-#include "H5Eprivate.h" /* Error handling */
-#include "H5Iprivate.h" /* ID Functions */
-#include "H5FLprivate.h" /* Free Lists */
-#include "H5MMprivate.h" /* Memory Management functions */
-#include "H5Oprivate.h" /* object headers */
-#include "H5Spkg.h" /* Dataspace functions */
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5FLprivate.h" /* Free lists */
+#include "H5Iprivate.h" /* IDs */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5Oprivate.h" /* Object headers */
+#include "H5Spkg.h" /* Dataspaces */
/* Local static function prototypes */
static H5S_t * H5S_create(H5S_class_t type);
@@ -30,7 +34,6 @@ static herr_t H5S_set_extent_simple (H5S_t *space, unsigned rank,
static htri_t H5S_is_simple(const H5S_t *sdim);
/* Interface initialization */
-#define PABLO_MASK H5S_mask
#define INTERFACE_INIT H5S_init_interface
static int interface_initialize_g = 0;
static herr_t H5S_init_interface(void);
@@ -1403,7 +1406,12 @@ done:
*-------------------------------------------------------------------------
*/
H5S_conv_t *
-H5S_find (const H5S_t *mem_space, const H5S_t *file_space, unsigned
+H5S_find (const H5F_t
+#ifndef H5_HAVE_PARALLEL
+UNUSED
+#endif/* H5_HAVE_PARALLEL*/
+*file,
+const H5S_t *mem_space, const H5S_t *file_space, unsigned
#ifndef H5_HAVE_PARALLEL
UNUSED
#endif /* H5_HAVE_PARALLEL */
@@ -1411,7 +1419,13 @@ flags, hbool_t
#ifndef H5_HAVE_PARALLEL
UNUSED
#endif /* H5_HAVE_PARALLEL */
-*use_par_opt_io)
+*use_par_opt_io,
+#ifndef H5_HAVE_PARALLEL
+UNUSED
+#endif
+const H5O_layout_t *layout
+
+)
{
H5S_conv_t *path=NULL; /* Space conversion path */
#ifdef H5_HAVE_PARALLEL
@@ -1441,15 +1455,15 @@ UNUSED
/*
* Check if we can set direct MPI-IO read/write functions
*/
- opt=H5S_mpio_opt_possible(mem_space,file_space,flags);
+ opt=H5S_mpio_opt_possible(file,mem_space,file_space,flags,layout);
if(opt==FAIL)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, NULL, "invalid check for contiguous dataspace ");
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, NULL, "invalid check for direct IO dataspace ");
/* Check if we can use the optimized parallel I/O routines */
if(opt==TRUE) {
/* Set the pointers to the MPI-specific routines */
- H5S_conv_g[i]->read = H5S_mpio_spaces_read;
- H5S_conv_g[i]->write = H5S_mpio_spaces_write;
+ H5S_conv_g[i]->read = H5D_mpio_spaces_read;
+ H5S_conv_g[i]->write = H5D_mpio_spaces_write;
/* Indicate that the I/O will be parallel */
*use_par_opt_io=TRUE;
@@ -1483,15 +1497,15 @@ UNUSED
/*
* Check if we can set direct MPI-IO read/write functions
*/
- opt=H5S_mpio_opt_possible(mem_space,file_space,flags);
+ opt=H5S_mpio_opt_possible(file,mem_space,file_space,flags,layout);
if(opt==FAIL)
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, NULL, "invalid check for contiguous dataspace ");
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, NULL, "invalid check for direct IO dataspace ");
/* Check if we can use the optimized parallel I/O routines */
if(opt==TRUE) {
/* Set the pointers to the MPI-specific routines */
- path->read = H5S_mpio_spaces_read;
- path->write = H5S_mpio_spaces_write;
+ path->read = H5D_mpio_spaces_read;
+ path->write = H5D_mpio_spaces_write;
/* Indicate that the I/O will be parallel */
*use_par_opt_io=TRUE;