diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-02 17:56:37 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-02 17:56:37 (GMT) |
commit | 34cbb564af98b82c9b9f392fa33787094be4c74f (patch) | |
tree | d86ac0112734470cec82b4b26eacf2d798f61a3d /src/H5S.c | |
parent | af7def1357e2e8fa43e6abe1adc768219c2df620 (diff) | |
download | hdf5-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.c | 50 |
1 files changed, 32 insertions, 18 deletions
@@ -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; |