summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5AC.c45
-rw-r--r--src/H5Dcontig.c20
-rw-r--r--src/H5Dio.c29
-rw-r--r--src/H5Distore.c16
-rw-r--r--src/H5Dseq.c26
-rw-r--r--src/H5FDprivate.h18
-rw-r--r--src/H5Fcontig.c20
-rw-r--r--src/H5Fistore.c16
-rw-r--r--src/H5Fseq.c26
-rw-r--r--src/H5Smpio.c31
10 files changed, 102 insertions, 145 deletions
diff --git a/src/H5AC.c b/src/H5AC.c
index 2d6662b..f7a41cd 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -45,19 +45,12 @@
#include "H5Dprivate.h" /* Dataset functions */
#include "H5Eprivate.h" /* Error handling */
#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
#include "H5FLprivate.h" /* Free Lists */
#include "H5Iprivate.h" /* IDs */
#include "H5MMprivate.h" /* Memory management */
#include "H5Pprivate.h" /* Property lists */
-/*
- * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are
- * places where we check for the parallel I/O transfer mode.
- */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
/* Interface initialization */
static int interface_initialize_g = 0;
#define INTERFACE_INIT H5AC_init_interface
@@ -535,8 +528,8 @@ H5AC_find(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
info = cache->slot + idx;
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_dest_func_t dest;
/* Get local pointer to file's dirty cache information */
@@ -613,8 +606,8 @@ H5AC_find(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
HGOTO_ERROR(H5E_CACHE, H5E_CANTLOAD, NULL, "unable to load object")
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5P_genplist_t *dxpl; /* Dataset transfer property list */
H5FD_mpio_xfer_t xfer_mode; /* I/O transfer mode property value */
@@ -795,8 +788,8 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, unsi
if (NULL==(map=H5FL_ARR_MALLOC(unsigned,cache->nslots)))
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
@@ -922,8 +915,8 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, unsi
u = H5AC_HASH(f, addr);
info = cache->slot + u;
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
@@ -1071,8 +1064,8 @@ H5AC_set(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, void *
#endif
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
@@ -1244,8 +1237,8 @@ H5AC_rename(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t old_addr,
}
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **new_dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
@@ -1342,8 +1335,8 @@ H5AC_rename(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t old_addr,
(*new_info)->addr = new_addr;
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **old_dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
@@ -1454,8 +1447,8 @@ H5AC_protect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
#endif /* H5AC_DEBUG */
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **dinfo;
/* Get pointer to new 'held' information */
@@ -1676,8 +1669,8 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
/* Don't restore deleted objects to the cache */
if(!deleted) {
#ifdef H5_HAVE_PARALLEL
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, do special parallel I/O actions */
- if(IS_H5FD_MPIO(f) || IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) {
+ /* If MPI based VFD is used, do special parallel I/O actions */
+ if(IS_H5FD_MPI(f)) {
H5AC_info_t **dinfo;
#ifdef H5AC_DEBUG
H5AC_subid_t type_id;
diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c
index 5427875..64a4377 100644
--- a/src/H5Dcontig.c
+++ b/src/H5Dcontig.c
@@ -31,23 +31,17 @@
#include "H5private.h" /* Generic Functions */
#include "H5Dprivate.h" /* Dataset functions */
#include "H5Eprivate.h" /* Error handling */
-#include "H5Fpkg.h"
-#include "H5FDprivate.h" /*file driver */
-#include "H5FLprivate.h" /*Free Lists */
-#include "H5MFprivate.h" /*file memory management */
+#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5FLprivate.h" /* Free Lists */
+#include "H5MFprivate.h" /* File memory management */
#include "H5Oprivate.h" /* Object headers */
#include "H5Pprivate.h" /* Property lists */
#include "H5Sprivate.h" /* Dataspace functions */
#include "H5Vprivate.h" /* Vector and array functions */
-/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
/* Private prototypes */
-static herr_t
-H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr,
+static herr_t H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr,
const size_t size, hid_t dxpl_id, const void *buf);
/* Interface initialization */
@@ -158,7 +152,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout,
assert(elmt_size>0);
#ifdef H5_HAVE_PARALLEL
- /* Retrieve up MPI parameters */
+ /* Retrieve MPI parameters */
if(IS_H5FD_MPIO(f)) {
/* Get the MPI communicator */
if (MPI_COMM_NULL == (mpi_comm=H5FD_mpio_communicator(f->shared->lf)))
@@ -256,7 +250,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout,
#ifdef H5_HAVE_PARALLEL
/* Check if this file is accessed with an MPI-capable file driver */
if(using_mpi) {
- /* Round-robin write the chunks out from only one process */
+ /* Write the chunks out from only one process */
if(H5_PAR_META_WRITE==mpi_rank) {
if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset");
diff --git a/src/H5Dio.c b/src/H5Dio.c
index 33ea366..8179b4c 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -21,6 +21,7 @@
#include "H5private.h" /* Generic Functions */
#include "H5Dpkg.h" /* Dataset functions */
#include "H5Eprivate.h" /* Error handling */
+#include "H5FDprivate.h" /* File drivers */
#include "H5FLprivate.h" /* Free Lists */
#include "H5Iprivate.h" /* IDs */
#include "H5MMprivate.h" /* Memory management */
@@ -30,15 +31,6 @@
/*#define H5D_DEBUG*/
-/*
- * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are
- * file and places where we check for things that aren't handled by these
- * drivers.
- */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
#ifdef H5_HAVE_PARALLEL
/* Remove this if H5R_DATASET_REGION is no longer used in this file */
# include "H5Rpublic.h"
@@ -566,9 +558,8 @@ H5D_read(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
doing_mpio++;
xfer_mode=(H5FD_mpio_xfer_t)H5P_peek_unsigned(dx_plist, H5D_XFER_IO_XFER_MODE_NAME);
} /* end if */
- /* Collective access is not permissible without the MPIO or MPIPOSIX driver */
- if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE &&
- !(IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)))
+ /* Collective access is not permissible without a MPI based VFD */
+ if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && !IS_H5FD_MPI(dataset->ent.file))
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPIO & MPIPOSIX drivers only");
/* Set the "parallel I/O possible" flag, for H5S_find() */
@@ -765,16 +756,15 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
assert(mem_type);
assert(buf);
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, no VL datatype support yet. */
+ /* If MPI based VFD is used, no VL datatype support yet. */
/* This is because they use the global heap in the file and we don't */
/* support parallel access of that yet */
- if ( (IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) &&
- H5T_get_class(mem_type)==H5T_VLEN)
+ if (IS_H5FD_MPI(dataset->ent.file) && H5T_get_class(mem_type)==H5T_VLEN)
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "Parallel IO does not support writing VL datatypes yet");
- /* If MPIO, MPIPOSIX, or FPHDF5 is used, no dataset region reference datatype support yet. */
+ /* If MPI based VFD is used, no VL datatype support yet. */
/* This is because they use the global heap in the file and we don't */
/* support parallel access of that yet */
- if ((IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) &&
+ if (IS_H5FD_MPI(dataset->ent.file) &&
H5T_get_class(mem_type)==H5T_REFERENCE &&
H5T_get_ref_type(mem_type)==H5R_DATASET_REGION)
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "Parallel IO does not support writing region reference datatypes yet");
@@ -806,9 +796,8 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
xfer_mode=(H5FD_mpio_xfer_t)H5P_peek_unsigned(dx_plist, H5D_XFER_IO_XFER_MODE_NAME);
} /* end if */
- /* Collective access is not permissible without the MPIO or MPIPOSIX driver */
- if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE &&
- !(IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)))
+ /* Collective access is not permissible without a MPI based VFD */
+ if (doing_mpio && xfer_mode==H5FD_MPIO_COLLECTIVE && !IS_H5FD_MPI(dataset->ent.file))
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPIO driver only");
/* If dataset is compact, collective access is only allowed when file space
diff --git a/src/H5Distore.c b/src/H5Distore.c
index 06e5d70..d5c2855 100644
--- a/src/H5Distore.c
+++ b/src/H5Distore.c
@@ -52,6 +52,7 @@
#include "H5Dprivate.h" /* Datasets */
#include "H5Eprivate.h" /* Error handling */
#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
#include "H5FLprivate.h" /* Free Lists */
#include "H5Iprivate.h" /* IDs */
#include "H5MFprivate.h" /* File space management */
@@ -61,11 +62,6 @@
#include "H5Sprivate.h" /* Dataspaces */
#include "H5Vprivate.h" /* Vector and array functions */
-/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
/*
* Feature: If this constant is defined then every cache preemption and load
* causes a character to be printed on the standard error stream:
@@ -1897,15 +1893,13 @@ HDfprintf(stderr,"%s: mem_offset_arr[%Zu]=%Hu\n",FUNC,*mem_curr_seq,mem_offset_a
* for the chunk has been defined, then don't load the chunk into the
* cache, just write the data to it directly.
*
- * If MPIO, MPIPOSIX, or FPHDF5 is used, must bypass the
+ * If MPI based VFD is used, must bypass the
* chunk-cache scheme because other MPI processes could be
* writing to other elements in the same chunk. Do a direct
* write-through of only the elements requested.
*/
- if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 &&
- chunk_addr!=HADDR_UNDEF)
- || ((IS_H5FD_MPIO(f) ||IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) &&
- (H5F_ACC_RDWR & f->shared->flags))) {
+ if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && chunk_addr!=HADDR_UNDEF)
+ || (IS_H5FD_MPI(f) && (H5F_ACC_RDWR & f->shared->flags))) {
#ifdef H5_HAVE_PARALLEL
/* Additional sanity check when operating in parallel */
if (chunk_addr==HADDR_UNDEF || pline.nfilters>0)
@@ -2345,7 +2339,7 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout,
#ifdef H5_HAVE_PARALLEL
/* Check if this file is accessed with an MPI-capable file driver */
if(using_mpi) {
- /* Round-robin write the chunks out from only one process */
+ /* Write the chunks out from only one process */
if(H5_PAR_META_WRITE==mpi_rank) {
if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0)
HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file");
diff --git a/src/H5Dseq.c b/src/H5Dseq.c
index a007ebb..9ac6c17 100644
--- a/src/H5Dseq.c
+++ b/src/H5Dseq.c
@@ -29,21 +29,17 @@
/* (Put before include files to avoid problems with inline functions) */
#define PABLO_MASK H5Fseq_mask
-#include "H5private.h"
-#include "H5Dprivate.h"
-#include "H5Eprivate.h"
-#include "H5Fpkg.h"
-#include "H5FDprivate.h" /*file driver */
-#include "H5Iprivate.h"
-#include "H5MFprivate.h"
-#include "H5MMprivate.h" /*memory management */
-#include "H5Oprivate.h"
-#include "H5Pprivate.h"
-#include "H5Vprivate.h"
-
-/* MPIO & MPIPOSIX driver functions are needed for some special checks */
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
+#include "H5private.h" /* Generic Functions */
+#include "H5Dprivate.h" /* Datasets */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5Iprivate.h" /* IDs */
+#include "H5MFprivate.h" /* File space management */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5Oprivate.h" /* Object headers */
+#include "H5Pprivate.h" /* Property lists */
+#include "H5Vprivate.h" /* Vector and array functions */
/* Interface initialization */
#define INTERFACE_INIT NULL
diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h
index 7993e91..22d445c 100644
--- a/src/H5FDprivate.h
+++ b/src/H5FDprivate.h
@@ -19,10 +19,28 @@
#ifndef _H5FDprivate_H
#define _H5FDprivate_H
+/* Include package's public header */
#include "H5FDpublic.h"
+/* Private headers needed by this file */
+
+/*
+ * The MPIO, MPIPOSIX, & FPHDF5 drivers are needed because there are
+ * places where we check for things that aren't handled by these drivers.
+ */
+#include "H5FDfphdf5.h"
+#include "H5FDmpio.h"
+#include "H5FDmpiposix.h"
+
+/* Macros */
+
#define H5FD_has_cmp(id) (NULL!=H5FD_get_class(id)->cmp)
+/* Single macro to check for all file drivers that use MPI */
+#define IS_H5FD_MPI(file) \
+ (IS_H5FD_MPIO(file) || IS_H5FD_MPIPOSIX(file) || IS_H5FD_FPHDF5(file))
+
+/* Prototypes */
H5_DLL int H5FD_term_interface(void);
H5_DLL H5FD_class_t *H5FD_get_class(hid_t id);
H5_DLL hsize_t H5FD_sb_size(H5FD_t *file);
diff --git a/src/H5Fcontig.c b/src/H5Fcontig.c
index 5427875..64a4377 100644
--- a/src/H5Fcontig.c
+++ b/src/H5Fcontig.c
@@ -31,23 +31,17 @@
#include "H5private.h" /* Generic Functions */
#include "H5Dprivate.h" /* Dataset functions */
#include "H5Eprivate.h" /* Error handling */
-#include "H5Fpkg.h"
-#include "H5FDprivate.h" /*file driver */
-#include "H5FLprivate.h" /*Free Lists */
-#include "H5MFprivate.h" /*file memory management */
+#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5FLprivate.h" /* Free Lists */
+#include "H5MFprivate.h" /* File memory management */
#include "H5Oprivate.h" /* Object headers */
#include "H5Pprivate.h" /* Property lists */
#include "H5Sprivate.h" /* Dataspace functions */
#include "H5Vprivate.h" /* Vector and array functions */
-/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
/* Private prototypes */
-static herr_t
-H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr,
+static herr_t H5F_contig_write(H5F_t *f, hsize_t max_data, haddr_t addr,
const size_t size, hid_t dxpl_id, const void *buf);
/* Interface initialization */
@@ -158,7 +152,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout,
assert(elmt_size>0);
#ifdef H5_HAVE_PARALLEL
- /* Retrieve up MPI parameters */
+ /* Retrieve MPI parameters */
if(IS_H5FD_MPIO(f)) {
/* Get the MPI communicator */
if (MPI_COMM_NULL == (mpi_comm=H5FD_mpio_communicator(f->shared->lf)))
@@ -256,7 +250,7 @@ H5F_contig_fill(H5F_t *f, hid_t dxpl_id, struct H5O_layout_t *layout,
#ifdef H5_HAVE_PARALLEL
/* Check if this file is accessed with an MPI-capable file driver */
if(using_mpi) {
- /* Round-robin write the chunks out from only one process */
+ /* Write the chunks out from only one process */
if(H5_PAR_META_WRITE==mpi_rank) {
if (H5F_contig_write(f, (hsize_t)size, addr, size, dxpl_id, buf)<0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to write fill value to dataset");
diff --git a/src/H5Fistore.c b/src/H5Fistore.c
index 06e5d70..d5c2855 100644
--- a/src/H5Fistore.c
+++ b/src/H5Fistore.c
@@ -52,6 +52,7 @@
#include "H5Dprivate.h" /* Datasets */
#include "H5Eprivate.h" /* Error handling */
#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
#include "H5FLprivate.h" /* Free Lists */
#include "H5Iprivate.h" /* IDs */
#include "H5MFprivate.h" /* File space management */
@@ -61,11 +62,6 @@
#include "H5Sprivate.h" /* Dataspaces */
#include "H5Vprivate.h" /* Vector and array functions */
-/* MPIO, MPIPOSIX, & FPHDF5 drivers needed for special checks */
-#include "H5FDfphdf5.h"
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
-
/*
* Feature: If this constant is defined then every cache preemption and load
* causes a character to be printed on the standard error stream:
@@ -1897,15 +1893,13 @@ HDfprintf(stderr,"%s: mem_offset_arr[%Zu]=%Hu\n",FUNC,*mem_curr_seq,mem_offset_a
* for the chunk has been defined, then don't load the chunk into the
* cache, just write the data to it directly.
*
- * If MPIO, MPIPOSIX, or FPHDF5 is used, must bypass the
+ * If MPI based VFD is used, must bypass the
* chunk-cache scheme because other MPI processes could be
* writing to other elements in the same chunk. Do a direct
* write-through of only the elements requested.
*/
- if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 &&
- chunk_addr!=HADDR_UNDEF)
- || ((IS_H5FD_MPIO(f) ||IS_H5FD_MPIPOSIX(f) || IS_H5FD_FPHDF5(f)) &&
- (H5F_ACC_RDWR & f->shared->flags))) {
+ if ((chunk_size>f->shared->rdcc_nbytes && pline.nfilters==0 && chunk_addr!=HADDR_UNDEF)
+ || (IS_H5FD_MPI(f) && (H5F_ACC_RDWR & f->shared->flags))) {
#ifdef H5_HAVE_PARALLEL
/* Additional sanity check when operating in parallel */
if (chunk_addr==HADDR_UNDEF || pline.nfilters>0)
@@ -2345,7 +2339,7 @@ H5F_istore_allocate(H5F_t *f, hid_t dxpl_id, const H5O_layout_t *layout,
#ifdef H5_HAVE_PARALLEL
/* Check if this file is accessed with an MPI-capable file driver */
if(using_mpi) {
- /* Round-robin write the chunks out from only one process */
+ /* Write the chunks out from only one process */
if(H5_PAR_META_WRITE==mpi_rank) {
if (H5F_block_write(f, H5FD_MEM_DRAW, udata.addr, udata.key.nbytes, dxpl_id, chunk)<0)
HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write raw data to file");
diff --git a/src/H5Fseq.c b/src/H5Fseq.c
index a007ebb..9ac6c17 100644
--- a/src/H5Fseq.c
+++ b/src/H5Fseq.c
@@ -29,21 +29,17 @@
/* (Put before include files to avoid problems with inline functions) */
#define PABLO_MASK H5Fseq_mask
-#include "H5private.h"
-#include "H5Dprivate.h"
-#include "H5Eprivate.h"
-#include "H5Fpkg.h"
-#include "H5FDprivate.h" /*file driver */
-#include "H5Iprivate.h"
-#include "H5MFprivate.h"
-#include "H5MMprivate.h" /*memory management */
-#include "H5Oprivate.h"
-#include "H5Pprivate.h"
-#include "H5Vprivate.h"
-
-/* MPIO & MPIPOSIX driver functions are needed for some special checks */
-#include "H5FDmpio.h"
-#include "H5FDmpiposix.h"
+#include "H5private.h" /* Generic Functions */
+#include "H5Dprivate.h" /* Datasets */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5Iprivate.h" /* IDs */
+#include "H5MFprivate.h" /* File space management */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5Oprivate.h" /* Object headers */
+#include "H5Pprivate.h" /* Property lists */
+#include "H5Vprivate.h" /* Vector and array functions */
/* Interface initialization */
#define INTERFACE_INIT NULL
diff --git a/src/H5Smpio.c b/src/H5Smpio.c
index 224f15a..01dba0a 100644
--- a/src/H5Smpio.c
+++ b/src/H5Smpio.c
@@ -24,27 +24,16 @@
#define H5F_PACKAGE /*suppress error about including H5Fpkg */
#define H5S_PACKAGE /*suppress error about including H5Spkg */
-#include "H5private.h" /* Internal types, etc. */
-#include "H5Eprivate.h" /* Error reporting */
-#include "H5Fpkg.h" /* Ugly, but necessary for the MPIO I/O accesses */
-#include "H5FDmpio.h" /* MPIO file driver */
-#include "H5FDprivate.h" /* Necessary for the H5FD_write & H5FD_read prototypes.. */
-#include "H5Iprivate.h" /* Object IDs */
-#include "H5Pprivate.h" /* Property Lists */
-#include "H5Spkg.h" /* Dataspaces */
-
-#ifndef H5_HAVE_PARALLEL
-/*
- * The H5S_mpio_xxxx functions are for parallel I/O only and are
- * valid only when H5_HAVE_PARALLEL is #defined. This empty #ifndef
- * body is used to allow this source file be included in the serial
- * distribution.
- * Some compilers/linkers may complain about "empty" object file.
- * If that happens, uncomment the following statement to pacify
- * them.
- */
-/* const hbool_t H5S_mpio_avail = FALSE; */
-#else /* H5_HAVE_PARALLEL */
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5Fpkg.h" /* Files */
+#include "H5FDprivate.h" /* File drivers */
+#include "H5Iprivate.h" /* IDs */
+#include "H5Pprivate.h" /* Property lists */
+#include "H5Spkg.h" /* Dataspaces */
+
+#ifdef H5_HAVE_PARALLEL
+
/* Interface initialization */
#define PABLO_MASK H5Sall_mask
#define INTERFACE_INIT NULL