[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2-237-gf3a3cfb
Service Account
noreply at mpich.org
Fri Mar 11 11:04:36 CST 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via f3a3cfb728d385e85b6fd007c289eaa110fcb7f5 (commit)
via 15d7b8d426fc41da686dfbbcdb35781260265271 (commit)
via 7d10fc9abfae37da87ba5cb1688e1897bafd2252 (commit)
via 13291375d72ee609c2aa9533a25e20c137d0f787 (commit)
via 8d033605286d48066fb3bf74e82ffe1505403d81 (commit)
from ffe22da48f81a07cc9b262dbab3928860051233d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/f3a3cfb728d385e85b6fd007c289eaa110fcb7f5
commit f3a3cfb728d385e85b6fd007c289eaa110fcb7f5
Author: Rob Latham <robl at mcs.anl.gov>
Date: Sun Jan 24 20:31:52 2016 -0600
delete unused function
only the now-deleted drivers ever used this
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/mpi/romio/adio/common/error.c b/src/mpi/romio/adio/common/error.c
index 20e211d..d90a190 100644
--- a/src/mpi/romio/adio/common/error.c
+++ b/src/mpi/romio/adio/common/error.c
@@ -8,33 +8,6 @@
#include "adio.h"
#include "adio_extern.h"
-/* NOTE: THIS FUNCTION IS DEPRECATED AND ONLY EXISTS HERE BECAUSE
- * SOME DEPRECATED ADIO IMPLEMENTATIONS STILL CALL IT (SFS, HFS, PIOFS).
- */
-int ADIOI_Error(ADIO_File fd, int error_code, char *string)
-{
- char buf[MPI_MAX_ERROR_STRING];
- int myrank, result_len;
- MPI_Errhandler err_handler;
-
- if (fd == ADIO_FILE_NULL) err_handler = ADIOI_DFLT_ERR_HANDLER;
- else err_handler = fd->err_handler;
-
- MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
- if (err_handler == MPI_ERRORS_ARE_FATAL) {
- MPI_Error_string(error_code, buf, &result_len);
- FPRINTF(stderr, "[%d] - %s : %s\n", myrank, string, buf);
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
- else if (err_handler != MPI_ERRORS_RETURN) {
- /* MPI_File_call_errorhandler(fd, error_code); */
-
- FPRINTF(stderr, "Only MPI_ERRORS_RETURN and MPI_ERRORS_ARE_FATAL are currently supported as error handlers for files\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
-
- return error_code;
-}
/* Check for special error codes for those MPI error
classes that relate to particular problems.
Returns an MPI error code corresponding to "my_errno", for function "myname"
diff --git a/src/mpi/romio/adio/include/adioi.h b/src/mpi/romio/adio/include/adioi.h
index 6bbdcb5..26edfb0 100644
--- a/src/mpi/romio/adio/include/adioi.h
+++ b/src/mpi/romio/adio/include/adioi.h
@@ -729,7 +729,6 @@ void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
void ADIOI_GEN_Close(ADIO_File fd, int *error_code);
void ADIOI_Shfp_fname(ADIO_File fd, int rank, int *error_code);
void ADIOI_GEN_Prealloc(ADIO_File fd, ADIO_Offset size, int *error_code);
-int ADIOI_Error(ADIO_File fd, int error_code, char *string);
int MPIR_Err_setmsg( int, int, const char *, const char *, const char *, ... );
int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void *extra_state);
int MPIR_Status_set_bytes(MPI_Status *status, MPI_Datatype datatype, MPI_Count nbytes);
http://git.mpich.org/mpich.git/commitdiff/15d7b8d426fc41da686dfbbcdb35781260265271
commit 15d7b8d426fc41da686dfbbcdb35781260265271
Author: Rob Latham <robl at mcs.anl.gov>
Date: Fri Jan 22 14:31:02 2016 -0600
expunge referneces to removed file systems
update docs and comments to reflect current state
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/mpi/romio/doc/users-guide.tex b/src/mpi/romio/doc/users-guide.tex
index b33d483..4698c0c 100644
--- a/src/mpi/romio/doc/users-guide.tex
+++ b/src/mpi/romio/doc/users-guide.tex
@@ -134,16 +134,19 @@ and {\tt MPI\_File\_c2f} (\S~4.12.4) are also implemented. C,
Fortran, and profiling interfaces are provided for all functions that
have been implemented.
-This version of ROMIO runs on at least the following machines: IBM SP; Intel
+ROMIO has run on at least the following machines: IBM SP; Intel
Paragon; HP Exemplar; SGI Origin2000; Cray T3E; NEC SX-4; other
symmetric multiprocessors from HP, SGI, DEC, Sun, and IBM; and networks of
-workstations (Sun, SGI, HP, IBM, DEC, Linux, and FreeBSD).
-Supported file systems are IBM PIOFS, Intel PFS, HP/Convex
-HFS, SGI XFS, NEC SFS, PVFS, NFS, NTFS, and any Unix file system (UFS).
+workstations (Sun, SGI, HP, IBM, DEC, Linux, and FreeBSD). Supported file
+systems have at one time included IBM PIOFS, Intel PFS, HP/Convex HFS, SGI XFS,
+NEC SFS, PVFS, NFS, NTFS, and any Unix file system (UFS). You may have to
+download an older ROMIO or MPICH release for out-of-date systems.
-This version of ROMIO is included in MPICH 1.2.4; an earlier version
-is included in at least the following MPI implementations: LAM, HP
-MPI, SGI MPI, and NEC MPI.
+
+This version of ROMIO is included in MPICH; an earlier version
+is included in at least the following MPI implementations: LAM, HP MPI, SGI
+MPI, and NEC MPI. Many HPC vendors base their MPI-IO implementation on
+ROMIO.
Note that proper I/O error codes and classes are returned and the status
variable is filled only when used with MPICH revision 1.2.1 or later.
@@ -362,7 +365,7 @@ applicable to all file system types:
aggregators.
\end{itemize}
-For PVFS, PIOFS, and PFS:
+For PVFS2:
\begin{itemize}
\item \texttt{striping\_factor} -- Controls the number of I/O devices to
stripe across. The default is file system dependent, but for PVFS it is
@@ -375,13 +378,6 @@ first be written to. This is a number in the range of 0 ...
striping\_factor - 1.
\end{itemize}
-\subsubsection{Hints for PFS}
-\label{sec:hints_pfs}
-\begin{itemize}
-\item \texttt{pfs\_svr\_buf} -- Turns on PFS server buffering. Valid
-values are \texttt{true} and \texttt{false}. Default is \texttt{false}.
-\end{itemize}
-
\subsubsection{Hints for XFS}
\label{sec:hints_xfs}
For XFS control is provided for the direct I/O optimization:
@@ -392,26 +388,7 @@ values are \texttt{true} and \texttt{false}. Default is \texttt{false}.
values are \texttt{true} and \texttt{false}. Default is \texttt{false}.
\end{itemize}
-\subsubsection{Hints for PVFS (v1)}
-\label{sec:hints_oldpvfs}
-
-For PVFS control is provided for the use of the listio interface. This
-interface to PVFS allows for a collection of noncontiguous regions to be
-requested (for reading or writing) with a single operation. This can result
-in substantially higher performance when accessing noncontiguous regions.
-Support for these operations in PVFS exists after version 1.5.4, but has not
-been heavily tested, so use of the interface is disabled in ROMIO by default
-at this time. The hints to control listio use are:
-\begin{itemize}
-\item \texttt{romio\_pvfs\_listio\_read} -- Controls use of listio for reads.
-Valid values are \texttt{enable}, \texttt{disable}, and \texttt{automatic}.
-Default is \texttt{disable}.
-\item \texttt{romio\_pvfs\_listio\_write} -- Controls use of listio for writes.
-Valid values are \texttt{enable}, \texttt{disable}, and \texttt{automatic}.
-Default is \texttt{disable}.
-\end{itemize}
-
-\subsubsection{Hints for PVFS (v2)}
+subsubsection{Hints for PVFS2 (a.k.a OrangeFS)}
\label{sec:hints_pvfs}
The PVFS v2 file system has many tuning parameters.
@@ -858,16 +835,13 @@ on failure.
\item This version works only on a homogeneous cluster of machines,
and only the ``native'' file data representation is supported.
-\item Shared file pointers are not supported on PVFS and IBM PIOFS
-file systems because they don't support {\tt fcntl} file locks,
+\item Shared file pointers are not supported on the PVFS2
+file system because it does not support {\tt fcntl} file locks,
and ROMIO uses that feature to implement shared file pointers.
\item On HP machines running HPUX and on NEC SX-4, you need to compile
Fortran programs with {\tt mpifort}.
-\item The file-open mode {\tt MPI\_MODE\_EXCL} does not work on Intel
-PFS file system, due to a bug in PFS.
-
\end{itemize}
diff --git a/src/mpi/romio/mpi-io/write.c b/src/mpi/romio/mpi-io/write.c
index eb9a77f..e307b45 100644
--- a/src/mpi/romio/mpi-io/write.c
+++ b/src/mpi/romio/mpi-io/write.c
@@ -147,7 +147,7 @@ int MPIOI_File_write(MPI_File fh,
/* if atomic mode requested, lock (exclusive) the region, because
there could be a concurrent noncontiguous request. Locking doesn't
- work on PIOFS and PVFS, and on NFS it is done in the
+ work on some parallel file systems, and on NFS it is done in the
ADIO_WriteContig.
*/
diff --git a/src/mpi/romio/test/file_info.c b/src/mpi/romio/test/file_info.c
index fba6189..8ddfe74 100644
--- a/src/mpi/romio/test/file_info.c
+++ b/src/mpi/romio/test/file_info.c
@@ -250,7 +250,7 @@ int main(int argc, char **argv)
/* The following three hints related to file striping are accepted only
- on Intel PFS and IBM PIOFS file systems and are ignored elsewhere.
+ on some parallel file systems and are ignored elsewhere.
They can be specified only at file-creation time; if specified later
they will be ignored. */
diff --git a/src/mpi/romio/test/large_array.c b/src/mpi/romio/test/large_array.c
index 617c895..96fcd70 100644
--- a/src/mpi/romio/test/large_array.c
+++ b/src/mpi/romio/test/large_array.c
@@ -12,7 +12,8 @@
file. Uses collective I/O. */
/* The file name is taken as a command-line argument. */
/* Run it only on a machine with sufficient memory and a file system
- on which ROMIO supports large files, i.e., PIOFS, XFS, SFS, and HFS */
+ on which ROMIO supports large files, i.e., any file system created after
+ 1999 */
/* This program will work only if the MPI implementation defines MPI_Aint
as a 64-bit integer. */
diff --git a/src/mpi/romio/test/large_file.c.in b/src/mpi/romio/test/large_file.c.in
index 3189e83..d4a2560 100644
--- a/src/mpi/romio/test/large_file.c.in
+++ b/src/mpi/romio/test/large_file.c.in
@@ -12,7 +12,7 @@
should be run on one process only*/
/* The file name is taken as a command-line argument. */
/* Can be used only on file systems on which ROMIO supports large files,
- i.e., PIOFS, XFS, SFS, and HFS. */
+ i.e., any file system created after 1999 */
#define SIZE 1048576*4 /* no. of long longs in each write/read */
#define NTIMES 128 /* no. of writes/reads */
http://git.mpich.org/mpich.git/commitdiff/7d10fc9abfae37da87ba5cb1688e1897bafd2252
commit 7d10fc9abfae37da87ba5cb1688e1897bafd2252
Author: Rob Latham <robl at mcs.anl.gov>
Date: Fri Jan 22 14:27:11 2016 -0600
nothing uses this file any longer
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/mpi/romio/adio/include/BaseIOErrMsgs.msg b/src/mpi/romio/adio/include/BaseIOErrMsgs.msg
deleted file mode 100644
index 0ca0526..0000000
--- a/src/mpi/romio/adio/include/BaseIOErrMsgs.msg
+++ /dev/null
@@ -1,51 +0,0 @@
-$set 12 MPI_ERR_ARG
-12 65 "Invalid offset argument"
-12 67 "Null datarep argument"
-12 69 "Invalid count argument"
-12 71 "Invalid size argument"
-12 73 "Invalid whence argument"
-12 75 "flag argument must be the same on all processes"
-12 77 "Invalid displacement argument"
-12 79 "Invalid etype argument"
-12 81 "Invalid filetype argument"
-12 83 "size argument must be the same on all processes"
-12 85 "offset points to a negative location in the file"
-12 87 "whence argument must be the same on all processes"
-12 89 "offset argument must be the same on all processes"
-$set 21 MPI_ERR_AMODE
-21 1 "Invalid amode"
-21 3 "Exactly one of MPI_MODE_RDONLY, MPI_MODE_WRONLY, or MPI_MODE_RDWR must be specified"
-21 5 "Cannot use MPI_MODE_CREATE or MPI_MODE_EXCL with MPI_MODE_RDONLY"
-21 7 "Cannot specify MPI_MODE_SEQUENTIAL with MPI_MODE_RDWR"
-$set 27 MPI_ERR_FILE
-27 1 "Invalid file handle"
-27 3 "Null file handle"
-27 5 "Corrupted file handle"
-$set 32 MPI_ERR_IO
-32 1 "I/O Error"
-32 2 "%s" 1
-32 3 "Only an integral number of etypes can be accessed"
-32 5 "Can't determine the file-system type. Check the filename/path you provided and try again. Otherwise, prefix the filename with a string to indicate the type of file system (piofs:, pfs:, nfs:, ufs:, hfs:, xfs:, sfs:, pvfs:, pvfs2:, ftp:, gsiftp:)"
-32 7 "ROMIO has not been configured to use the PFS file system"
-32 9 "ROMIO has not been configured to use the PIOFS file system"
-32 11 "ROMIO has not been configured to use the UFS file system"
-32 13 "ROMIO has not been configured to use the NFS file system"
-32 15 "ROMIO has not been configured to use the HFS file system"
-32 17 "ROMIO has not been configured to use the XFS file system"
-32 19 "ROMIO has not been configured to use the SFS file system"
-32 21 "ROMIO has not been configured to use the PVFS file system"
-32 23 "Only one active split collective I/O operation allowed per file handle"
-32 25 "No previous split collective begin"
-32 27 "There are outstanding nonblocking I/O operations on this file"
-32 29 "ROMIO tries to optimize this access by doing a read-modify-write, but is unable to read the file. Please give the file read permission and open it with MPI_MODE_RDWR."
-32 31 "To preallocate disk space, ROMIO needs to read the file and write it back, but is unable to read the file. Please give the file read permission and open it with MPI_MODE_RDWR."
-32 33 "Filetype must be constructed out of one or more etypes"
-$set 43 MPI_ERR_UNSUPPORTED_DATAREP
-43 1 "Unsupported data representation"
-43 3 "Only native data representation currently supported"
-$set 44 MPI_ERR_UNSUPPORTED_OPERATION
-44 1 "Unsupported operation"
-44 3 "Shared file pointer not supported on PIOFS and PVFS"
-44 5 "Cannot use this function when file is opened with amode MPI_MODE_SEQUENTIAL"
-44 7 "Cannot read from a file opened with amode MPI_MODE_WRONLY"
-44 9 "MPI_MODE_SEQUENTIAL not supported on PIOFS and PVFS"
http://git.mpich.org/mpich.git/commitdiff/13291375d72ee609c2aa9533a25e20c137d0f787
commit 13291375d72ee609c2aa9533a25e20c137d0f787
Author: Rob Latham <robl at mcs.anl.gov>
Date: Fri Mar 11 10:55:40 2016 -0600
update error messages for curent list of drivers
some of the error messages in the catalog got out of sync with the
drivers actually present.
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/mpi/romio/adio/include/adioi_errmsg.h b/src/mpi/romio/adio/include/adioi_errmsg.h
index baaee45..51a85b8 100644
--- a/src/mpi/romio/adio/include/adioi_errmsg.h
+++ b/src/mpi/romio/adio/include/adioi_errmsg.h
@@ -46,6 +46,7 @@ MPI_ERR_IO
MPIR_ERR_NO_UFS "ROMIO has not been configured to use the UFS file system"
MPIR_ERR_NO_NFS "ROMIO has not been configured to use the NFS file system"
MPIR_ERR_NO_XFS "ROMIO has not been configured to use the XFS file system"
+ MPIR_ERR_NO_PVFS2 "ROMIO has not been configured to use the PVFS2 file system"
MPIR_ERR_NO_PANFS "ROMIO has not been configured to use the PANFS file system"
MPIR_ERR_MULTIPLE_SPLIT_COLL "Only one active split collective I/O operation allowed per file handle"
MPIR_ERR_NO_SPLIT_COLL "No previous split collective begin"
@@ -56,6 +57,7 @@ MPI_ERR_IO
MPIR_ERR_FILETYPE "Filetype must be constructed out of one or more etypes"
MPIR_ERR_NO_TESTFS "ROMIO has not been configured to use the TESTFS file system"
MPIR_ERR_DEFERRED "independent IO attempted even though no_indep_rw hint given"
+ MPIR_ERR_NO_GPFS "ROMIO has not been configured to use the GPFS file system"
MPI_ERR_COMM
MPIR_ERR_COMM_NULL (null communicator. from MPICH)
diff --git a/src/mpi/romio/adio/include/mpio_error.h b/src/mpi/romio/adio/include/mpio_error.h
index f5c414d..15c5774 100644
--- a/src/mpi/romio/adio/include/mpio_error.h
+++ b/src/mpi/romio/adio/include/mpio_error.h
@@ -48,6 +48,7 @@
#define MPIR_ERR_NO_UFS 11
#define MPIR_ERR_NO_NFS 13
#define MPIR_ERR_NO_XFS 17
+#define MPIR_ERR_NO_PVFS2 21
#define MPIR_ERR_NO_PANFS 22
#define MPIR_ERR_MULTIPLE_SPLIT_COLL 23
#define MPIR_ERR_NO_SPLIT_COLL 25
@@ -57,6 +58,7 @@
#define MPIR_ERR_FILETYPE 33
#define MPIR_ERR_NO_TESTFS 36
#define MPIR_ERR_NO_LUSTRE 37
+#define MPIR_ERR_NO_GPFS 38
/* MPI_ERR_COMM */
#ifndef MPIR_ERR_COMM_NULL
http://git.mpich.org/mpich.git/commitdiff/8d033605286d48066fb3bf74e82ffe1505403d81
commit 8d033605286d48066fb3bf74e82ffe1505403d81
Author: Rob Latham <robl at mcs.anl.gov>
Date: Fri Mar 11 10:54:34 2016 -0600
delete unused/archaic file system drivers
Many of these drivers exist for historical purposes only: the machines
exist only in museums or virtual machines.
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/mpi/romio/adio/Makefile.mk b/src/mpi/romio/adio/Makefile.mk
index 505d518..10c3ec9 100644
--- a/src/mpi/romio/adio/Makefile.mk
+++ b/src/mpi/romio/adio/Makefile.mk
@@ -26,21 +26,14 @@ noinst_HEADERS += \
include $(top_srcdir)/adio/ad_gpfs/Makefile.mk
include $(top_srcdir)/adio/ad_gpfs/bg/Makefile.mk
include $(top_srcdir)/adio/ad_gpfs/pe/Makefile.mk
-include $(top_srcdir)/adio/ad_gridftp/Makefile.mk
-include $(top_srcdir)/adio/ad_hfs/Makefile.mk
include $(top_srcdir)/adio/ad_lustre/Makefile.mk
include $(top_srcdir)/adio/ad_nfs/Makefile.mk
## NTFS builds are handled entirely by the separate Windows build system
##include $(top_srcdir)/adio/ad_ntfs/Makefile.mk
include $(top_srcdir)/adio/ad_panfs/Makefile.mk
-include $(top_srcdir)/adio/ad_pfs/Makefile.mk
-include $(top_srcdir)/adio/ad_piofs/Makefile.mk
-include $(top_srcdir)/adio/ad_pvfs/Makefile.mk
include $(top_srcdir)/adio/ad_pvfs2/Makefile.mk
-include $(top_srcdir)/adio/ad_sfs/Makefile.mk
include $(top_srcdir)/adio/ad_testfs/Makefile.mk
include $(top_srcdir)/adio/ad_ufs/Makefile.mk
include $(top_srcdir)/adio/ad_xfs/Makefile.mk
-include $(top_srcdir)/adio/ad_zoidfs/Makefile.mk
include $(top_srcdir)/adio/common/Makefile.mk
diff --git a/src/mpi/romio/adio/ad_gridftp/Makefile.mk b/src/mpi/romio/adio/ad_gridftp/Makefile.mk
deleted file mode 100644
index 2cd83a2..0000000
--- a/src/mpi/romio/adio/ad_gridftp/Makefile.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_GRIDFTP
-
-noinst_HEADERS += adio/ad_gridftp/ad_gridftp.h
-
-romio_other_sources += \
- adio/ad_gridftp/ad_gridftp_close.c \
- adio/ad_gridftp/ad_gridftp_open.c \
- adio/ad_gridftp/ad_gridftp_read.c \
- adio/ad_gridftp/ad_gridftp_write.c \
- adio/ad_gridftp/ad_gridftp_fcntl.c \
- adio/ad_gridftp/ad_gridftp_flush.c \
- adio/ad_gridftp/ad_gridftp_resize.c \
- adio/ad_gridftp/ad_gridftp_hints.c \
- adio/ad_gridftp/ad_gridftp_delete.c \
- adio/ad_gridftp/ad_gridftp.c \
- adio/ad_gridftp/globus_routines.c \
- adio/ad_gridftp/ad_gridftp_features.c
-
-endif BUILD_AD_GRIDFTP
-
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp.c
deleted file mode 100644
index f3767dc..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_GRIDFTP_operations = {
- ADIOI_GRIDFTP_Open, /* Open */
- ADIOI_GRIDFTP_ReadContig, /* ReadContig */
- ADIOI_GRIDFTP_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_GRIDFTP_Fcntl, /* Fcntl */
- ADIOI_GRIDFTP_SetInfo, /* SetInfo */
- ADIOI_GRIDFTP_ReadStrided, /* ReadStrided */
- ADIOI_GRIDFTP_WriteStrided, /* WriteStrided */
- ADIOI_GRIDFTP_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_GRIDFTP_Flush, /* Flush */
- ADIOI_GRIDFTP_Resize, /* Resize */
- ADIOI_GRIDFTP_Delete, /* Delete */
- ADIOI_GRIDFTP_Feature, /* Features */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp.h b/src/mpi/romio/adio/ad_gridftp/ad_gridftp.h
deleted file mode 100644
index 0b94c78..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_GRIDFTP_INCLUDE
-#define AD_GRIDFTP_INCLUDE
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <fcntl.h>
-#include "adio.h"
-#include <globus_ftp_client.h>
-
-/* These live in globus_routines.c */
-extern int num_gridftp_handles;
-#ifndef ADIO_GRIDFTP_HANDLES_MAX
-#define ADIO_GRIDFTP_HANDLES_MAX 200
-#endif /* ! ADIO_GRIDFTP_HANDLES_MAX */
-extern globus_ftp_client_handle_t gridftp_fh[ADIO_GRIDFTP_HANDLES_MAX];
-extern globus_ftp_client_operationattr_t oattr[ADIO_GRIDFTP_HANDLES_MAX];
-
-
-/* TODO: weed out the now-unused prototypes */
-void ADIOI_GRIDFTP_Open(ADIO_File fd, int *error_code);
-void ADIOI_GRIDFTP_Close(ADIO_File fd, int *error_code);
-void ADIOI_GRIDFTP_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_IwriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_GRIDFTP_IreadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-int ADIOI_GRIDFTP_ReadDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-int ADIOI_GRIDFTP_WriteDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_ReadComplete(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_WriteComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code);
-void ADIOI_GRIDFTP_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
- int *error_code);
-void ADIOI_GRIDFTP_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code);
-void ADIOI_GRIDFTP_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_WriteStridedColl(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_ReadStridedColl(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_GRIDFTP_IreadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_GRIDFTP_IwriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_GRIDFTP_Flush(ADIO_File fd, int *error_code);
-void ADIOI_GRIDFTP_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
-void ADIOI_GRIDFTP_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
-void ADIOI_GRIDFTP_Get_shared_fp(ADIO_File fd, int size,
- ADIO_Offset *shared_fp,
- int *error_code);
-void ADIOI_GRIDFTP_Set_shared_fp(ADIO_File fd, ADIO_Offset offset,
- int *error_code);
-void ADIOI_GRIDFTP_Delete(char *filename, int *error_code);
-
-void globus_err_handler(const char *routine, const char *caller,
- globus_result_t result);
-
-#endif
-
-
-
-
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_close.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_close.c
deleted file mode 100644
index c1693d6..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_close.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-void ADIOI_GRIDFTP_Close(ADIO_File fd, int *error_code)
-{
- int err;
- static char myname[]="ADIOI_GRIDFTP_Close";
-
- globus_result_t result;
-
- MPI_Barrier(fd->comm);
-
- /* Destroy the ftp handle and opattr */
- result = globus_ftp_client_operationattr_destroy(&(oattr[fd->fd_sys]));
- if (result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_operationattr_destroy",
- myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s",globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- result=globus_ftp_client_handle_destroy(&(gridftp_fh[fd->fd_sys]));
- if (result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_handle_destroy",
- myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- fd->fd_sys = -1;
- fd->fp_ind=0;
- fd->fp_sys_posn=0;
- num_gridftp_handles--;
-
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_delete.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_delete.c
deleted file mode 100644
index 54eb714..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_delete.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-static globus_mutex_t lock;
-static globus_cond_t cond;
-static globus_bool_t delete_done, delete_success;
-static void delete_cb(void *myarg, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
-
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- else
- {
- delete_success=GLOBUS_TRUE;
- }
- delete_done=GLOBUS_TRUE;
-}
-
-void ADIOI_GRIDFTP_Delete(char *filename, int *error_code)
-{
- char myname[]="ADIOI_GRIDFTP_Delete";
- int myrank, nprocs;
- globus_ftp_client_handle_t handle;
- globus_result_t result;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
- MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
-
- globus_module_activate(GLOBUS_FTP_CLIENT_MODULE);
- result=globus_ftp_client_handle_init(&handle,GLOBUS_NULL);
-
- if (result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_handle_init",myname,result);
- *error_code= MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- delete_done=GLOBUS_FALSE;
- delete_success=GLOBUS_FALSE;
- result=globus_ftp_client_delete(&handle,filename,GLOBUS_NULL,delete_cb,GLOBUS_NULL);
- if (result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_delete",myname,result);
- *error_code= MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&lock);
- while ( delete_done!=GLOBUS_TRUE )
- globus_cond_wait(&cond,&lock);
- globus_mutex_unlock(&lock);
- result=globus_ftp_client_handle_destroy(&handle);
- if (result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_handle_destroy",myname,result);
- *error_code= MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- if ( delete_success!=GLOBUS_TRUE )
- {
- *error_code= MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- }
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_fcntl.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_fcntl.c
deleted file mode 100644
index dd9cb5e..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_fcntl.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-#include "adio_extern.h"
-
-globus_mutex_t fcntl_size_lock;
-globus_cond_t fcntl_size_cond;
-globus_bool_t fcntl_size_done;
-
-void fcntl_size_cb(void *myargs, globus_ftp_client_handle_t *handle,
- globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&fcntl_size_lock);
- fcntl_size_done=GLOBUS_TRUE;
- globus_cond_signal(&fcntl_size_cond);
- globus_mutex_unlock(&fcntl_size_lock);
-}
-
-void ADIOI_GRIDFTP_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
- int *error_code)
-{
- MPI_Datatype copy_etype, copy_filetype;
- int combiner, i, j, k, filetype_is_contig, err;
- ADIOI_Flatlist_node *flat_file;
- char myname[]="ADIOI_GRIDFTP_Fcntl";
-
- int myrank, nprocs;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- {
- globus_result_t result;
- globus_off_t fsize=0;
-
- globus_mutex_init(&fcntl_size_lock,GLOBUS_NULL);
- globus_cond_init(&fcntl_size_cond,GLOBUS_NULL);
- fcntl_size_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_size(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- &(fsize),
- fcntl_size_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_size",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&fcntl_size_lock);
- while ( fcntl_size_done!=GLOBUS_TRUE )
- globus_cond_wait(&fcntl_size_lock,&fcntl_size_cond);
- globus_mutex_unlock(&fcntl_size_lock);
- globus_mutex_destroy(&fcntl_size_lock);
- globus_cond_destroy(&fcntl_size_cond);
- fcntl_struct->fsize=fsize;
- }
- *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- default:
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_ARG,
- "**flag", "**flag %d", flag);
- }
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_features.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_features.c
deleted file mode 100644
index cbdc395..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_features.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-int ADIOI_GRIDFTP_Feature (ADIO_File fd, int flag)
-{
- switch(flag) {
- case ADIO_SCALABLE_OPEN:
- case ADIO_SHARED_FP:
- case ADIO_LOCKS:
- case ADIO_SEQUENTIAL:
- case ADIO_DATA_SIEVING_WRITES:
- default:
- return 0;
- }
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_flush.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_flush.c
deleted file mode 100644
index 795341e..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_flush.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-/* GridFTP doesn't give you a way to cache writes on the client side, so
- is essentially a no-op */
-/* if there is a mechanism where we can ask the server to flush data to disk we
- * should do it here. I'll leave that up to Troy */
-
-void ADIOI_GRIDFTP_Flush(ADIO_File fd, int *error_code)
-{
- return;
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_hints.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_hints.c
deleted file mode 100644
index c0b0a40..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_hints.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-/*
-
-Valid hints for ftp:// and gsiftp:// URLs (aside from the std. ones):
-
- ftp_control_mode extended|block|stream|compressed
- (default extended for gsiftp:// URLs and stream for ftp:// URLs)
-
- parallelism integer number of simultaneous threads connecting to
- ftp server (default 1)
-
- striped_ftp true|false or enable|disable; enables gsiftp striped data transfer
-
- tcp_buffer integer size of tcp stream buffers in bytes
-
- transfer_type ascii or binary (default binary)
-
-These *must* be specified at open time currently.
-*/
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-void ADIOI_GRIDFTP_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
-{
-
- if (!(fd->info))
- {
- if ( users_info==MPI_INFO_NULL )
- {
- /* This must be part of the open call. */
- MPI_Info_create(&(fd->info));
- }
- else
- {
- MPI_Info_dup(users_info,&(fd->info));
- }
- }
- else
- {
- int i,nkeys,valuelen,flag;
- char key[MPI_MAX_INFO_KEY], value[MPI_MAX_INFO_VAL];
-
- if ( users_info!=MPI_INFO_NULL )
- {
- MPI_Info_get_nkeys(users_info,&nkeys);
- for (i=0;i<nkeys;i++)
- {
- MPI_Info_get_nthkey(users_info,i,key);
- MPI_Info_get_valuelen(users_info,key,&valuelen,&flag);
- if (flag)
- {
- ADIOI_Info_get(users_info,key,valuelen,value,&flag);
- if (flag) ADIOI_Info_set(fd->info,key,value);
- }
- }
- }
- }
-
- /* let the generic ROMIO and MPI-I/O stuff happen... */
- ADIOI_GEN_SetInfo(fd, users_info, error_code);
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_open.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_open.c
deleted file mode 100644
index 45aab92..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_open.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-static globus_mutex_t lock;
-static globus_cond_t cond;
-
-static globus_bool_t file_exists,exists_done;
-static void exists_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- else
- {
- file_exists=GLOBUS_TRUE;
- }
- exists_done=GLOBUS_TRUE;
-}
-
-static globus_bool_t touch_ctl_done;
-static void touch_ctl_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&lock);
- touch_ctl_done=GLOBUS_TRUE;
- globus_cond_signal(&cond);
- globus_mutex_unlock(&lock);
-}
-
-static void touch_data_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- if (error)
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- globus_ftp_client_register_read(handle,buffer,length,touch_data_cb,myargs);
- return;
-}
-
-void ADIOI_GRIDFTP_Open(ADIO_File fd, int *error_code)
-{
- static char myname[]="ADIOI_GRIDFTP_Open";
- int myrank, nprocs, keyfound;
- char hintval[MPI_MAX_INFO_VAL+1];
- globus_ftp_client_handleattr_t hattr;
- globus_result_t result;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- /* activate Globus ftp client module -- can be called multiple times, so
- it's safest to call once per file/connection */
- globus_module_activate(GLOBUS_FTP_CLIENT_MODULE);
- fd->fd_sys = num_gridftp_handles;
- /* No shared file pointers for now */
- fd->shared_fp_fname = NULL;
- *error_code = MPI_SUCCESS;
-
- /* Access modes here mean something very different here than they
- would on a "real" filesystem... As a result, the amode and hint
- processing here is intermingled and a little weird because many
- of them have to do with the connection rather than the file itself.
- The thing that sucks about this is that read and write ops will
- have to check themselves if the file is being accessed rdonly, rdwr,
- or wronly.
- */
- result=globus_ftp_client_handleattr_init(&hattr);
- if ( result != GLOBUS_SUCCESS )
- {
-
-
- globus_err_handler("globus_ftp_client_handleattr_init",
- myname,result);
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- result = globus_ftp_client_operationattr_init(&(oattr[fd->fd_sys]));
- if ( result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_operationattr_init",
- myname,result);
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
-
- /* Always use connection caching unless told otherwise */
- result=globus_ftp_client_handleattr_set_cache_all(&hattr,GLOBUS_TRUE);
- if ( result !=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_handleattr_set_cache_all",myname,result);
-
- /* Assume that it's safe to cache a file if it's read-only */
- if ( (fd->access_mode&ADIO_RDONLY) &&
- (result=globus_ftp_client_handleattr_add_cached_url(&hattr,fd->filename))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_handleattr_add_cached_url",myname,result);
-
- /* Since we're (almost by definition) doing things that FTP S (stream)
- control mode can't handle, default to E (extended block) control mode
- for gsiftp:// URLs. ftp:// URLs use standard stream control mode
- by default. This behavior can be overridden by the ftp_control_mode
- hint. */
-
- /*
- if ( !strncmp(fd->filename,"gsiftp:",7) &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- else if ( !strncmp(fd->filename,"ftp:",4) &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_STREAM))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- */
-
- /* Set append mode if necessary */
- if ( (fd->access_mode&ADIO_APPEND) &&
- ((result=globus_ftp_client_operationattr_set_append(&(oattr[fd->fd_sys]),GLOBUS_TRUE))!=GLOBUS_SUCCESS) )
- globus_err_handler("globus_ftp_client_operationattr_set_append",myname,result);
-
- /* Other hint and amode processing that would affect hattr and/or
- oattr[] (eg. parallelism, striping, etc.) goes here */
- if ( fd->info!=MPI_INFO_NULL )
- {
- ADIOI_Info_get(fd->info,"ftp_control_mode",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- if ( ( !strcmp(hintval,"extended") || !strcmp(hintval,"extended_block") ) &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- else if ( !strcmp(hintval,"block") &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_BLOCK))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- else if ( !strcmp(hintval,"compressed") &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_COMPRESSED))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- else if ( !strcmp(hintval,"stream") &&
- (result=globus_ftp_client_operationattr_set_mode(&(oattr[fd->fd_sys]),GLOBUS_FTP_CONTROL_MODE_STREAM))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_mode",myname,result);
- }
-
- ADIOI_Info_get(fd->info,"parallelism",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- int nftpthreads;
-
- if ( sscanf(hintval,"%d",&nftpthreads)==1 )
- {
- globus_ftp_control_parallelism_t parallelism;
-
- parallelism.mode = GLOBUS_FTP_CONTROL_PARALLELISM_FIXED;
- parallelism.fixed.size = nftpthreads;
- if ( (result=globus_ftp_client_operationattr_set_parallelism(&(oattr[fd->fd_sys]),
- ¶llelism))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_parallelism",myname,result);
- }
- }
-
- ADIOI_Info_get(fd->info,"striped_ftp",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- /* if set to "true" or "enable", set up round-robin block layout */
- if ( !strncmp("true",hintval,4) || !strncmp("TRUE",hintval,4) ||
- !strncmp("enable",hintval,4) || !strncmp("ENABLE",hintval,4) )
- {
- ADIOI_Info_get(fd->info,"striping_factor",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- int striping_factor;
-
- if ( sscanf(hintval,"%d",&striping_factor)==1 )
- {
- globus_ftp_control_layout_t layout;
-
- layout.mode = GLOBUS_FTP_CONTROL_STRIPING_BLOCKED_ROUND_ROBIN;
- layout.round_robin.block_size = striping_factor;
- if ( (result=globus_ftp_client_operationattr_set_layout(&(oattr[fd->fd_sys]),
- &layout))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_layout",
- myname,result);
- }
- }
- }
- }
-
- ADIOI_Info_get(fd->info,"tcp_buffer",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- /* set tcp buffer size */
- int buffer_size;
- if ( sscanf(hintval,"%d",&buffer_size)==1 )
- {
- globus_ftp_control_tcpbuffer_t tcpbuf;
-
- tcpbuf.mode = GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED;
- tcpbuf.fixed.size = buffer_size;
- if ( (result=globus_ftp_client_operationattr_set_tcp_buffer(&(oattr[fd->fd_sys]),
- &tcpbuf))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_tcp_buffer",myname,result);
- }
- }
-
- ADIOI_Info_get(fd->info,"transfer_type",MPI_MAX_INFO_VAL,hintval,&keyfound);
- if ( keyfound )
- {
- globus_ftp_control_type_t filetype;
- /* set transfer type (i.e. ASCII or binary) */
- if ( !strcmp("ascii",hintval) || !strcmp("ASCII",hintval) )
- {
- filetype=GLOBUS_FTP_CONTROL_TYPE_ASCII;
- }
- else
- {
- filetype=GLOBUS_FTP_CONTROL_TYPE_IMAGE;
- }
- if ( (result=globus_ftp_client_operationattr_set_type(&(oattr[fd->fd_sys]),filetype))!=GLOBUS_SUCCESS )
- globus_err_handler("globus_ftp_client_operationattr_set_type",myname,result);
- }
- }
- else
- FPRINTF(stderr,"no MPI_Info object associated with %s\n",fd->filename);
-
- /* Create the ftp handle */
- result=globus_ftp_client_handle_init(&(gridftp_fh[fd->fd_sys]),&hattr);
- if ( result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_handle_init",myname,result);
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- /* Check for existence of the file */
- globus_mutex_init(&lock, GLOBUS_NULL);
- globus_cond_init(&cond, GLOBUS_NULL);
- file_exists=GLOBUS_FALSE;
- exists_done=GLOBUS_FALSE;
- if ( myrank==0 )
- {
- if ( (result=globus_ftp_client_exists(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- exists_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_exists",myname,result);
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- /* wait till the callback completes */
- globus_mutex_lock(&lock);
- while ( exists_done!=GLOBUS_TRUE )
- globus_cond_wait(&cond,&lock);
- globus_mutex_unlock(&lock);
- }
- MPI_Barrier(fd->comm);
- MPI_Bcast(&file_exists,1,MPI_INT,0,fd->comm);
-
- /* It turns out that this is handled by MPI_File_open() directly */
- if ( (file_exists!=GLOBUS_TRUE) && (fd->access_mode&ADIO_CREATE) &&
- !(fd->access_mode&ADIO_EXCL) && !(fd->access_mode&ADIO_RDONLY) )
- {
- if ( myrank==0 )
- {
- /* if the file doesn't exist, write a single NULL to it */
- globus_byte_t touchbuf=(globus_byte_t)'\0';
- touch_ctl_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_put(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- touch_ctl_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_put",myname,result);
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- result=globus_ftp_client_register_write(&(gridftp_fh[fd->fd_sys]),
- (globus_byte_t *)&touchbuf, 0,
- (globus_off_t)0, GLOBUS_TRUE,
- touch_data_cb, GLOBUS_NULL);
-
- if ( result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_write",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&lock);
- while ( touch_ctl_done!=GLOBUS_TRUE )
- globus_cond_wait(&cond,&lock);
- globus_mutex_unlock(&lock);
- }
- MPI_Barrier(fd->comm);
- }
- else if ( (fd->access_mode&ADIO_EXCL) && (file_exists==GLOBUS_TRUE) )
- {
- fd->fd_sys = -1;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", 0);
- return;
- }
- else if ( (fd->access_mode&ADIO_RDONLY) && (file_exists!=GLOBUS_TRUE) )
- {
- if ( myrank==0 )
- {
- FPRINTF(stderr,"WARNING: read-only file %s does not exist!\n",fd->filename);
- }
- }
- num_gridftp_handles++;
-}
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_read.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_read.c
deleted file mode 100644
index 55cd10b..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_read.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-#include "adio_extern.h"
-
-static globus_mutex_t readcontig_ctl_lock;
-static globus_cond_t readcontig_ctl_cond;
-static globus_bool_t readcontig_ctl_done;
-static void readcontig_ctl_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&readcontig_ctl_lock);
- if ( readcontig_ctl_done!=GLOBUS_TRUE )
- readcontig_ctl_done=GLOBUS_TRUE;
- globus_cond_signal(&readcontig_ctl_cond);
- globus_mutex_unlock(&readcontig_ctl_lock);
- return;
-}
-
-static void readcontig_data_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- globus_size_t *bytes_read;
-
- bytes_read=(globus_size_t *)myargs;
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- *bytes_read+=length;
- /* I don't understand why the data callback has to keep recalling register_read,
- but everything I've done and all the examples I've seen seem to require
- that behavior to work... */
- /*
- * Using buffer+length seems to work, but is probably not the correct
- * solution. A big read of 256kB chunks will have lines like this:
- readcontig_data_cb: buffer 0x404e0008 length 0 offset 31719424 eof 1
- readcontig_data_cb: buffer 0x404a0008 length 65536 offset 31981568 eof 0
- readcontig_data_cb: buffer 0x404b0008 length 65536 offset 32047104 eof 0
- readcontig_data_cb: buffer 0x404c0008 length 65536 offset 32112640 eof 0
- readcontig_data_cb: buffer 0x404d0008 length 65536 offset 32178176 eof 0
- */
- if ( !eof )
- globus_ftp_client_register_read(handle,
- buffer+length,
- length,
- readcontig_data_cb,
- (void *)(bytes_read));
- return;
-}
-
-static globus_mutex_t readdiscontig_ctl_lock;
-static globus_cond_t readdiscontig_ctl_cond;
-static globus_bool_t readdiscontig_ctl_done;
-static void readdiscontig_ctl_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&readdiscontig_ctl_lock);
- if ( readdiscontig_ctl_done!=GLOBUS_TRUE )
- readdiscontig_ctl_done=GLOBUS_TRUE;
- globus_cond_signal(&readdiscontig_ctl_cond);
- globus_mutex_unlock(&readdiscontig_ctl_lock);
- return;
-}
-
-static void readdiscontig_data_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- globus_size_t *bytes_read;
-
- bytes_read=(globus_size_t *)myargs;
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- *bytes_read+=length;
- /* I don't understand why the data callback has to keep recalling register_read,
- but everything I've done and all the examples I've seen seem to require
- that behavior to work... */
- if ( !eof )
- globus_ftp_client_register_read(handle,
- buffer,
- length,
- readdiscontig_data_cb,
- (void *)(bytes_read));
- return;
-}
-
-void ADIOI_GRIDFTP_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- static char myname[]="ADIOI_GRIDFTP_ReadContig";
- int myrank, nprocs;
- MPI_Count datatype_size;
- globus_size_t len,bytes_read=0;
- globus_off_t goff;
- globus_result_t result;
-
- if ( fd->access_mode&ADIO_WRONLY )
- {
- *error_code=MPIR_ERR_MODE_WRONLY;
- return;
- }
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
- MPI_Type_size_x(datatype, &datatype_size);
-
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- offset = fd->fp_ind;
- }
-
- /* Do the gridftp I/O transfer */
- goff = (globus_off_t)offset;
- len = ((globus_size_t)datatype_size)*((globus_size_t)count);
-
- globus_mutex_init(&readcontig_ctl_lock, GLOBUS_NULL);
- globus_cond_init(&readcontig_ctl_cond, GLOBUS_NULL);
- readcontig_ctl_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_get(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- goff,
- goff+(globus_off_t)len,
- readcontig_ctl_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_get",myname,result);
- *error_code=MPI_ERR_IO;
- ADIOI_Error(fd,*error_code,myname);
- return;
- }
- result=globus_ftp_client_register_read(&(gridftp_fh[fd->fd_sys]),
- (globus_byte_t *)buf, len, readcontig_data_cb,
- (void *)(&bytes_read));
- if ( result != GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_read",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
-
- /* The ctl callback won't start till the data callbacks complete, so it's
- safe to wait on just the ctl callback */
- globus_mutex_lock(&readcontig_ctl_lock);
- while ( readcontig_ctl_done!=GLOBUS_TRUE )
- globus_cond_wait(&readcontig_ctl_cond,&readcontig_ctl_lock);
- globus_mutex_unlock(&readcontig_ctl_lock);
-
- globus_mutex_destroy(&readcontig_ctl_lock);
- globus_cond_destroy(&readcontig_ctl_cond);
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bytes_read);
-#endif
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- fd->fp_ind += bytes_read;
- fd->fp_sys_posn = fd->fp_ind;
- }
- else {
- fd->fp_sys_posn = offset + bytes_read;
- }
-}
-
-void ADIOI_GRIDFTP_ReadDiscontig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- char myname[]="ADIOI_GRIDFTP_ReadDiscontig";
- int myrank,nprocs;
- /* size and extent of buffer in memory */
- MPI_Aint btype_size,btype_extent;
- /* size and extent of file record layout */
- MPI_Aint ftype_size,ftype_extent;
- /* size of file elemental type; seeks are done in units of this */
- MPI_Aint etype_size;
- MPI_Aint extent;
- ADIOI_Flatlist_node *flat_file;
- int i,buf_contig,boff,nblks;
- globus_off_t start,end,goff;
- globus_size_t bytes_read;
- globus_result_t result;
- globus_byte_t *tmp;
-
- if ( fd->access_mode&ADIO_WRONLY )
- {
- *error_code=MPIR_ERR_MODE_WRONLY;
- return;
- }
-
- *error_code=MPI_SUCCESS;
-
- MPI_Comm_rank(fd->comm,&myrank);
- MPI_Comm_size(fd->comm,&nprocs);
-
- etype_size=fd->etype_size;
- MPI_Type_size_x(fd->filetype,&ftype_size);
- MPI_Type_extent(fd->filetype,&ftype_extent);
- /* This is arguably unnecessary, as this routine assumes that the
- buffer in memory is contiguous */
- MPI_Type_size_x(datatype,&btype_size);
- MPI_Type_extent(datatype,&btype_extent);
- ADIOI_Datatype_iscontig(datatype,&buf_contig);
-
- if ( ( btype_extent!=btype_size ) || ( ! buf_contig ) )
- {
- FPRINTF(stderr,"[%d/%d] %s called with discontigous memory buffer\n",
- myrank,nprocs,myname);
- fflush(stderr);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", 0 );
- return;
- }
- /* from here we can assume btype_extent==btype_size */
-
- /* Flatten out fd->filetype so we know which blocks to skip */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- /* Figure out how big the area to read is */
- start=(globus_off_t)(offset*etype_size);
- goff=start;
- boff=0;
- extent=0;
- nblks=0;
- while ( boff < (count*btype_size) )
- {
- int blklen=0;
-
- for (i=0;i<flat_file->count;i++)
- {
- /* find the length of the next block */
- if ( (boff+flat_file->blocklens[i]) < (count*btype_size) )
- blklen=flat_file->blocklens[i];
- else
- blklen=(count*btype_size)-boff;
- /* increment buffer size to be used */
- boff+=blklen;
- /* compute extent -- the nblks*ftype_extent bit is
- there so we remember how many ftypes we've already
- been through */
- extent=MPL_MAX(extent,nblks*ftype_extent+flat_file->indices[i]+blklen);
- if ( boff>=(count*btype_size) )
- break;
- }
- nblks++;
- }
- if ( extent < count*btype_size )
- {
- FPRINTF(stderr,"[%d/%d] %s error in computing extent -- extent %d is smaller than total bytes requested %d!\n",
- myrank,nprocs,myname,extent,count*btype_size);
- fflush(stderr);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", 0);
- return;
- }
- end=start+(globus_off_t)extent;
- tmp=(globus_byte_t *)ADIOI_Malloc((size_t)extent*sizeof(globus_byte_t));
-
- /* start up the globus partial read */
- globus_mutex_init(&readdiscontig_ctl_lock, GLOBUS_NULL);
- globus_cond_init(&readdiscontig_ctl_cond, GLOBUS_NULL);
- readdiscontig_ctl_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_get(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- start,
- end,
- readdiscontig_ctl_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_get",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- /* Do all the actual I/Os */
- /* Since globus_ftp_client_register_read() is brain-dead and doesn't
- let you specify an offset, we have to slurp the entire extent into
- memory and then parse out the pieces we want... Sucks, doesn't it?
-
- This should probably be done in chunks (preferably of a size
- set using a file hint), but that'll have to come later.
- --TB */
- if ( (result=globus_ftp_client_register_read(&(gridftp_fh[fd->fd_sys]),
- tmp,
- (globus_size_t)extent,
- readdiscontig_data_cb,
- (void *)(&bytes_read)))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_read",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- /* The ctl callback won't start till the data callbacks complete, so it's
- safe to wait on just the ctl callback */
- globus_mutex_lock(&readdiscontig_ctl_lock);
- while ( readdiscontig_ctl_done!=GLOBUS_TRUE )
- globus_cond_wait(&readdiscontig_ctl_cond,&readdiscontig_ctl_lock);
- globus_mutex_unlock(&readdiscontig_ctl_lock);
-
- globus_mutex_destroy(&readdiscontig_ctl_lock);
- globus_cond_destroy(&readdiscontig_ctl_cond);
-
- boff=0;
- nblks=0;
- goff=0;
- while ( boff < (count*btype_size) )
- {
- int i,blklen;
-
- for (i=0;i<flat_file->count;i++)
- {
- if ( (boff+flat_file->blocklens[i]) < (count*btype_size) )
- blklen=flat_file->blocklens[i];
- else
- blklen=(count*btype_size)-boff;
- if ( blklen > 0 )
- {
- goff=nblks*ftype_extent+flat_file->indices[i];
- memcpy((globus_byte_t *)buf+boff,tmp+goff,(size_t)blklen);
- boff+=blklen;
- if ( boff>=(count*btype_size) )
- break;
- }
- }
- nblks++;
- }
- ADIOI_Free(tmp);
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bytes_read);
-#endif
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- fd->fp_ind += extent;
- fd->fp_sys_posn = fd->fp_ind;
- }
- else {
- fd->fp_sys_posn = offset + extent;
- }
-}
-
-void ADIOI_GRIDFTP_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- /*
- int myrank, nprocs;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-#ifdef PRINT_ERR_MSG
- FPRINTF(stdout, "[%d/%d] ADIOI_GRIDFTP_ReadStrided called on %s\n", myrank,
- nprocs, fd->filename);
- FPRINTF(stdout, "[%d/%d] calling ADIOI_GEN_ReadStrided\n", myrank,
- nprocs);
-#endif
-
- ADIOI_GEN_ReadStrided(fd, buf, count, datatype, file_ptr_type, offset,
- status, error_code);
-
- */
-
- char myname[]="ADIOI_GRIDFTP_ReadStrided";
- int myrank, nprocs;
- int i,j;
- int buf_contig,file_contig;
- MPI_Aint btype_size,bufsize;
- globus_off_t start,disp;
- globus_size_t bytes_read;
- globus_byte_t *intermediate;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- MPI_Type_size_x(datatype,&btype_size);
- bufsize=count*btype_size;
- ADIOI_Datatype_iscontig(fd->filetype,&file_contig);
- ADIOI_Datatype_iscontig(datatype,&buf_contig);
- if ( buf_contig && !file_contig )
- {
- /* Contiguous in memory, discontig in file */
- ADIOI_GRIDFTP_ReadDiscontig(fd, buf, count, datatype,
- file_ptr_type, offset, status, error_code);
- }
- else if ( !buf_contig && file_contig )
- {
- /* Discontiguous in mem, contig in file -- comparatively easy */
- int posn=0;
-
- /* read contiguous data into intermediate buffer */
- intermediate=(globus_byte_t *)ADIOI_Malloc((size_t)bufsize);
- ADIOI_GRIDFTP_ReadContig(fd, intermediate, bufsize, MPI_BYTE,
- file_ptr_type, offset, status, error_code);
-
- /* explode contents of intermediate buffer into main buffer */
- MPI_Unpack(intermediate,bufsize,&posn,buf,count,datatype,fd->comm);
-
- ADIOI_Free(intermediate);
- }
- else if ( !buf_contig && !file_contig )
- {
- /* Discontig in both mem and file -- the hardest case */
- int posn=0;
-
- /* Read discontiguous data into intermediate buffer */
- intermediate=(globus_byte_t *)ADIOI_Malloc((size_t)bufsize);
- ADIOI_GRIDFTP_ReadDiscontig(fd, intermediate, bufsize, MPI_BYTE,
- file_ptr_type, offset, status, error_code);
-
- /* explode contents of intermediate buffer into main buffer */
- posn=0;
- MPI_Unpack(intermediate,bufsize,&posn,buf,count,datatype,fd->comm);
-
- ADIOI_Free(intermediate);
- }
- else
- {
- /* Why did you bother calling ReadStrided?!?!?! */
- ADIOI_GRIDFTP_ReadContig(fd, buf, count, datatype,
- file_ptr_type, offset, status, error_code);
- }
-
-}
-
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_resize.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_resize.c
deleted file mode 100644
index 2f3b9ce..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_resize.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-
-static globus_mutex_t resize_lock;
-static globus_cond_t resize_cond;
-static globus_bool_t resize_done;
-static globus_bool_t resize_success;
-
-void resize_cb(void *myargs, globus_ftp_client_handle_t *handle,
- globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- globus_mutex_lock(&resize_lock);
- resize_success=GLOBUS_FALSE;
- globus_mutex_unlock(&resize_lock);
- }
- else
- {
- globus_mutex_lock(&resize_lock);
- resize_success=GLOBUS_TRUE;
- globus_mutex_unlock(&resize_lock);
- }
- globus_mutex_lock(&resize_lock);
- resize_done=GLOBUS_TRUE;
- globus_cond_signal(&resize_cond);
- globus_mutex_unlock(&resize_lock);
-}
-
-
-static void resize_wrdata_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- if (error)
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- if (!eof)
- globus_ftp_client_register_read(handle,
- buffer,
- length,
- resize_wrdata_cb,
- myargs);
- return;
-}
-
-
-void ADIOI_GRIDFTP_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
-{
- int myrank, nprocs;
- char myname[]="ADIOI_GRIDFTP_Resize";
- globus_off_t fsize;
- globus_result_t result;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- /* Sanity check */
- if ( fd->access_mode&ADIO_RDONLY )
- {
- FPRINTF(stderr,"%s: attempt to resize read-only file %s!\n",
- myname,fd->filename);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", 0);
- return;
- }
-
- /* This routine is supposed to do the moral equivalent of truncate(),
- but there's not an equivalent operation in the globus_ftp_client API. */
- globus_mutex_init(&resize_lock,GLOBUS_NULL);
- globus_cond_init(&resize_cond,GLOBUS_NULL);
- resize_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_size(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- &(fsize),
- resize_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_size",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&resize_lock);
- while ( resize_done!=GLOBUS_TRUE )
- globus_cond_wait(&resize_lock,&resize_cond);
- if ( fsize < (globus_off_t)size )
- {
- /* The file is smaller than the requested size, so
- do a zero-byte write to where the new EOF should be. */
- globus_byte_t touchbuf=(globus_byte_t)'\0';
- resize_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_put(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- (globus_off_t)size,
- (globus_off_t)size,
- resize_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_put",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- if ( (result=globus_ftp_client_register_write(&(gridftp_fh[fd->fd_sys]),
- (globus_byte_t *)&touchbuf,
- 0,
- (globus_off_t)0,
- GLOBUS_TRUE,
- resize_wrdata_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_write",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&resize_lock);
- while ( resize_done!=GLOBUS_TRUE )
- globus_cond_wait(&resize_cond,&resize_lock);
- globus_mutex_unlock(&resize_lock);
- }
- else if ( fsize > (globus_off_t)size )
- {
- /* The file is bigger than the requested size, so
- we'll abuse globus_ftp_client_third_party_partial_put()
- into truncating it for us. */
- char *urlold;
- size_t urllen;
-
- urllen=strlen(fd->filename);
- urlold=(char *)ADIOI_Malloc(urllen+5);
- MPL_snprintf(urlold,urllen+5,"%s.old",fd->filename);
- resize_done=GLOBUS_FALSE;
- resize_success=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_move(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- urlold,
- &(oattr[fd->fd_sys]),
- resize_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_move",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&resize_lock);
- while ( resize_done!=GLOBUS_TRUE )
- globus_cond_wait(&resize_cond,&resize_lock);
- globus_mutex_unlock(&resize_lock);
- if ( resize_success!=GLOBUS_TRUE )
- {
- *error_code = MPI_ERR_IO;
- return;
- }
- resize_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_third_party_transfer(&(gridftp_fh[fd->fd_sys]),
- urlold,
- &(oattr[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- 0,
- (globus_off_t)size,
- resize_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_third_party_transfer",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&resize_lock);
- while ( resize_done!=GLOBUS_TRUE )
- globus_cond_wait(&resize_cond,&resize_lock);
- globus_mutex_unlock(&resize_lock);
- if ( resize_success!=GLOBUS_TRUE )
- {
- *error_code = MPI_ERR_IO;
- ADIOI_Error(fd,*error_code,myname);
- return;
- }
- resize_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_delete(&(gridftp_fh[fd->fd_sys]),
- urlold,
- &(oattr[fd->fd_sys]),
- resize_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_delete",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname, __LINE__,
- MPI_ERR_IO, "**io", "**io %s",
- globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- globus_mutex_lock(&resize_lock);
- while ( resize_done!=GLOBUS_TRUE )
- globus_cond_wait(&resize_cond,&resize_lock);
- globus_mutex_unlock(&resize_lock);
- if ( resize_success!=GLOBUS_TRUE )
- {
- *error_code = MPI_ERR_IO;
- ADIOI_Error(fd,*error_code,myname);
- return;
- }
- ADIOI_Free(urlold);
- }
- globus_mutex_destroy(&resize_lock);
- globus_cond_destroy(&resize_cond);
-}
-
-
-
-
-
diff --git a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_write.c b/src/mpi/romio/adio/ad_gridftp/ad_gridftp_write.c
deleted file mode 100644
index 4466dde..0000000
--- a/src/mpi/romio/adio/ad_gridftp/ad_gridftp_write.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_gridftp.h"
-#include "adioi.h"
-#include "adio_extern.h"
-
-static globus_mutex_t writecontig_ctl_lock;
-static globus_cond_t writecontig_ctl_cond;
-static globus_bool_t writecontig_ctl_done;
-static void writecontig_ctl_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&writecontig_ctl_lock);
- if ( writecontig_ctl_done!=GLOBUS_TRUE )
- writecontig_ctl_done=GLOBUS_TRUE;
- globus_cond_signal(&writecontig_ctl_cond);
- globus_mutex_unlock(&writecontig_ctl_lock);
-#ifdef PRINT_ERR_MSG
- FPRINTF(stderr,"finished with contig write transaction\n");
-#endif /* PRINT_ERR_MSG */
- return;
-}
-
-static void writecontig_data_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- globus_size_t *bytes_written;
-
- bytes_written=(globus_size_t *)myargs;
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- *bytes_written+=length;
- /* I don't understand why the data callback has to keep recalling register_write,
- but everything I've done and all the examples I've seen seem to require
- that behavior to work... */
- if ( !eof )
- {
- globus_ftp_client_register_write(handle,
- buffer,
- length,
- offset,
- GLOBUS_TRUE,
- writecontig_data_cb,
- (void *)(bytes_written));
- }
-#ifdef PRINT_ERR_MSG
- FPRINTF(stderr,"wrote %Ld bytes...",(long long)length);
-#endif /* PRINT_ERR_MSG */
- return;
-}
-
-
-static globus_mutex_t writediscontig_ctl_lock;
-static globus_cond_t writediscontig_ctl_cond;
-static globus_bool_t writediscontig_ctl_done;
-static void writediscontig_ctl_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error)
-{
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- globus_mutex_lock(&writediscontig_ctl_lock);
- if ( writediscontig_ctl_done!=GLOBUS_TRUE )
- writediscontig_ctl_done=GLOBUS_TRUE;
- globus_cond_signal(&writediscontig_ctl_cond);
- globus_mutex_unlock(&writediscontig_ctl_lock);
- return;
-}
-
-static void writediscontig_data_cb(void *myargs, globus_ftp_client_handle_t *handle, globus_object_t *error,
- globus_byte_t *buffer, globus_size_t length, globus_off_t offset,
- globus_bool_t eof)
-{
- globus_size_t *bytes_written;
-
- bytes_written=(globus_size_t *)myargs;
- if (error)
- {
- FPRINTF(stderr, "%s\n", globus_object_printable_to_string(error));
- }
- *bytes_written+=length;
- /* I don't understand why the data callback has to keep recalling register_read,
- but everything I've done and all the examples I've seen seem to require
- that behavior to work... */
- if ( !eof )
- globus_ftp_client_register_write(handle,
- buffer,
- length,
- offset,
- eof,
- writediscontig_data_cb,
- (void *)(bytes_written));
- FPRINTF(stderr,"wrote %Ld bytes...",(long long)length);
- return;
-}
-
-
-void ADIOI_GRIDFTP_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- char myname[]="ADIOI_GRIDFTP_WriteContig";
- int myrank, nprocs;
- MPI_Count datatype_size;
- globus_size_t len,bytes_written=0;
- globus_off_t goff;
- globus_result_t result;
-
- if ( fd->access_mode&ADIO_RDONLY )
- {
- *error_code=MPI_ERR_AMODE;
- return;
- }
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
- MPI_Type_size_x(datatype, &datatype_size);
-
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- offset = fd->fp_ind;
- }
-
- /* Do the gridftp I/O transfer */
- goff = (globus_off_t)offset;
- len = ((globus_size_t)datatype_size)*((globus_size_t)count);
-
- globus_mutex_init(&writecontig_ctl_lock, GLOBUS_NULL);
- globus_cond_init(&writecontig_ctl_cond, GLOBUS_NULL);
- writecontig_ctl_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_put(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- goff,
- goff+(globus_off_t)len,
- writecontig_ctl_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_put",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- if ( (result=globus_ftp_client_register_write(&(gridftp_fh[fd->fd_sys]),
- (globus_byte_t *)buf,
- len,
- goff,
- GLOBUS_TRUE,
- writecontig_data_cb,
- (void *)(&bytes_written)))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_write",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
-
- /* The ctl callback won't start till the data callbacks complete, so it's
- safe to wait on just the ctl callback */
- globus_mutex_lock(&writecontig_ctl_lock);
- while ( writecontig_ctl_done!=GLOBUS_TRUE )
- globus_cond_wait(&writecontig_ctl_cond,&writecontig_ctl_lock);
- globus_mutex_unlock(&writecontig_ctl_lock);
-
- globus_mutex_destroy(&writecontig_ctl_lock);
- globus_cond_destroy(&writecontig_ctl_cond);
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bytes_written);
-#endif
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- offset = fd->fp_ind;
- fd->fp_ind += bytes_written;
- fd->fp_sys_posn = fd->fp_ind;
- }
- else {
- fd->fp_sys_posn = offset + bytes_written;
- }
-}
-
-
-void ADIOI_GRIDFTP_WriteDiscontig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- char myname[]="ADIOI_GRIDFTP_WriteDiscontig";
- int myrank,nprocs;
- MPI_Aint btype_size,btype_extent;
- MPI_Aint ftype_size,ftype_extent;
- MPI_Aint etype_size;
- MPI_Aint extent;
- ADIOI_Flatlist_node *flat_file;
- int buf_contig,boff,i,nblks;
- globus_off_t start,end,goff;
- globus_size_t bytes_written;
- globus_result_t result;
-
- MPI_Comm_rank(fd->comm,&myrank);
- MPI_Comm_size(fd->comm,&nprocs);
- etype_size=fd->etype_size;
- MPI_Type_size_x(fd->filetype,&ftype_size);
- MPI_Type_extent(fd->filetype,&ftype_extent);
- /* This is arguably unnecessary, as this routine assumes that the
- buffer in memory is contiguous */
- MPI_Type_size_x(datatype,&btype_size);
- MPI_Type_extent(datatype,&btype_extent);
- ADIOI_Datatype_iscontig(datatype,&buf_contig);
-
- if ( ( btype_extent!=btype_size ) || ( ! buf_contig ) )
- {
- FPRINTF(stderr,"[%d/%d] %s called with discontigous memory buffer\n",
- myrank,nprocs,myname);
- fflush(stderr);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- /* from here we can assume btype_extent==btype_size */
-
- /* Flatten out fd->filetype so we know which blocks to skip */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- /* Figure out how big the area to write is */
- /* ASSUMPTION: ftype_size is an integer multiple of btype_size or vice versa. */
- start=(globus_off_t)(offset*etype_size);
- goff=start;
- boff=0;
- extent=0;
- nblks=0;
- while ( boff < (count*btype_size) )
- {
- int blklen;
-
- for (i=0;i<flat_file->count;i++)
- {
- if ( (boff+flat_file->blocklens[i]) < (count*btype_size) )
- blklen=flat_file->blocklens[i];
- else
- blklen=(count*btype_size)-boff;
- boff+=blklen;
- extent=MPL_MAX(extent,nblks*ftype_extent+flat_file->indices[i]+blklen);
- if ( boff>=(count*btype_size) )
- break;
- }
- nblks++;
- }
- if ( extent < count*btype_size )
- {
- FPRINTF(stderr,"[%d/%d] %s error in computing extent -- extent %d is smaller than total bytes requested %d!\n",
- myrank,nprocs,myname,extent,count*btype_size);
- fflush(stderr);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
- end=start+(globus_off_t)extent;
- FPRINTF(stderr,"[%d/%d] %s writing %d bytes into extent of %d bytes starting at offset %Ld\n",
- myrank,nprocs,myname,count*btype_size,extent,(long long)start);
- fflush(stderr);
-
- /* start up the globus partial write */
- globus_mutex_init(&writediscontig_ctl_lock, GLOBUS_NULL);
- globus_cond_init(&writediscontig_ctl_cond, GLOBUS_NULL);
- writediscontig_ctl_done=GLOBUS_FALSE;
- if ( (result=globus_ftp_client_partial_put(&(gridftp_fh[fd->fd_sys]),
- fd->filename,
- &(oattr[fd->fd_sys]),
- GLOBUS_NULL,
- start,
- end,
- writediscontig_ctl_cb,
- GLOBUS_NULL))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_partial_get",myname,result);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", globus_object_printable_to_string(globus_error_get(result)));
- return;
- }
-
- /* Do all the actual I/Os */
- boff=0;
- nblks=0;
- while ( boff < (count*btype_size) )
- {
- int i,blklen;
-
- for (i=0;i<flat_file->count;i++)
- {
- if ( (boff+flat_file->blocklens[i]) < (count*btype_size) )
- blklen=flat_file->blocklens[i];
- else
- blklen=(count*btype_size)-boff;
- if ( blklen > 0 )
- {
- goff=start+nblks*ftype_extent+((globus_off_t)flat_file->indices[i]);
- /*
- FPRINTF(stderr,"[%d/%d] %s writing %d bytes from boff=%d at goff=%Ld\n",myrank,nprocs,myname,blklen,boff,goff);
- */
- if ( (result=globus_ftp_client_register_write(&(gridftp_fh[fd->fd_sys]),
- ((globus_byte_t *)buf)+boff,
- (globus_size_t)blklen,
- goff,
- GLOBUS_TRUE,
- writediscontig_data_cb,
- (void *)(&bytes_written)))!=GLOBUS_SUCCESS )
- {
- globus_err_handler("globus_ftp_client_register_write",myname,result);
- *error_code=MPI_ERR_IO;
- ADIOI_Error(fd,*error_code,myname);
- return;
- }
- boff+=blklen;
- if ( boff>=(count*btype_size) )
- break;
- }
- }
- nblks++;
- }
-
-
- /* The ctl callback won't start till the data callbacks complete, so it's
- safe to wait on just the ctl callback */
- globus_mutex_lock(&writediscontig_ctl_lock);
- while ( writediscontig_ctl_done!=GLOBUS_TRUE )
- globus_cond_wait(&writediscontig_ctl_cond,&writediscontig_ctl_lock);
- globus_mutex_unlock(&writediscontig_ctl_lock);
- globus_mutex_destroy(&writediscontig_ctl_lock);
- globus_cond_destroy(&writediscontig_ctl_cond);
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bytes_written);
-#endif
- if (file_ptr_type != ADIO_EXPLICIT_OFFSET)
- {
- fd->fp_ind += extent;
- fd->fp_sys_posn = fd->fp_ind;
- }
- else {
- fd->fp_sys_posn = offset + extent;
- }
-}
-
-
-#define GRIDFTP_USE_GENERIC_STRIDED
-void ADIOI_GRIDFTP_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
-#ifdef GRIDFTP_USE_GENERIC_STRIDED
- int myrank, nprocs;
-
- if ( fd->access_mode&ADIO_RDONLY )
- {
- *error_code=MPI_ERR_AMODE;
- return;
- }
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- ADIOI_GEN_WriteStrided(fd, buf, count, datatype, file_ptr_type, offset,
- status, error_code);
- return;
-#else
- char myname[]="ADIOI_GRIDFTP_WriteStrided";
- int myrank, nprocs;
- int buf_contig,file_contig;
- MPI_Aint btype_size,bufsize;
- globus_byte_t *intermediate;
-
- *error_code = MPI_SUCCESS;
-
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
-
- MPI_Type_size_x(datatype,&btype_size);
- bufsize=count*btype_size;
- ADIOI_Datatype_iscontig(fd->filetype,&file_contig);
- ADIOI_Datatype_iscontig(datatype,&buf_contig);
- if ( buf_contig && !file_contig )
- {
- /* Contiguous in memory, discontig in file */
- FPRINTF(stderr,"[%d/%d] %s called w/ contig mem, discontig file\n",
- myrank,nprocs,myname);
- fflush(stderr);
-
- ADIOI_GRIDFTP_WriteDiscontig(fd, buf, count, datatype,
- file_ptr_type, offset, status, error_code);
- }
- else if ( !buf_contig && file_contig )
- {
- /* Discontiguous in mem, contig in file -- comparatively easy */
- int posn=0;
-
- FPRINTF(stderr,"[%d/%d] %s called w/ discontig mem, contig file\n",
- myrank,nprocs,myname);
- fflush(stderr);
-
-
- /* squeeze contents of main buffer into intermediate buffer*/
- intermediate=(globus_byte_t *)ADIOI_Malloc((size_t)bufsize);
- MPI_Pack(buf,count,datatype,intermediate,bufsize,&posn,fd->comm);
-
- /* write contiguous data from intermediate buffer */
- ADIOI_GRIDFTP_WriteContig(fd, intermediate, bufsize, MPI_BYTE,
- file_ptr_type, offset, status, error_code);
-
- ADIOI_Free(intermediate);
- }
- else if ( !buf_contig && !file_contig )
- {
- /* Discontig in both mem and file -- the hardest case */
- int posn=0;
-
- FPRINTF(stderr,"[%d/%d] %s called w/ discontig mem, discontig file\n",
- myrank,nprocs,myname);
- fflush(stderr);
-
- /* squeeze contents of main buffer into intermediate buffer*/
- intermediate=(globus_byte_t *)ADIOI_Malloc((size_t)bufsize);
- MPI_Pack(buf,count,datatype,intermediate,bufsize,&posn,fd->comm);
-
- /* write contiguous data from intermediate buffer */
- ADIOI_GRIDFTP_WriteDiscontig(fd, intermediate, bufsize, MPI_BYTE,
- file_ptr_type, offset, status, error_code);
-
- ADIOI_Free(intermediate);
- }
- else
- {
- /* Why did you bother calling WriteStrided?!?!?! */
- FPRINTF(stderr,"[%d/%d] Why the heck did you call %s with contiguous buffer *and* file types?\n",
- myrank,nprocs,myname);
- ADIOI_GRIDFTP_WriteContig(fd, buf, count, datatype,
- file_ptr_type, offset, status, error_code);
- }
-#endif /* ! GRIDFTP_USE_GENERIC_STRIDED */
-}
-
diff --git a/src/mpi/romio/adio/ad_gridftp/globus_routines.c b/src/mpi/romio/adio/ad_gridftp/globus_routines.c
deleted file mode 100644
index 1cca367..0000000
--- a/src/mpi/romio/adio/ad_gridftp/globus_routines.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago, Ohio Supercomputer Center.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <fcntl.h>
-#include "adio.h"
-#include <globus_ftp_client.h>
-
-/* Here are the canonical definitions of the extern's referenced by
- ad_gridftp.h */
-int num_gridftp_handles=0;
-#ifndef ADIO_GRIDFTP_HANDLES_MAX
-#define ADIO_GRIDFTP_HANDLES_MAX 200
-#endif /* ! ADIO_GRIDFTP_HANDLES_MAX */
-/* having to keep not one but two big global tables sucks... */
-globus_ftp_client_handle_t gridftp_fh[ADIO_GRIDFTP_HANDLES_MAX];
-globus_ftp_client_operationattr_t oattr[ADIO_GRIDFTP_HANDLES_MAX];
-
-void globus_err_handler(const char *routine, const char *caller,
- globus_result_t result)
-{
- int myrank,nprocs;
- globus_object_t *err;
-
- MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
- MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
- err = globus_error_get(result);
- FPRINTF(stderr, "[%d/%d] %s error \"%s\", called from %s\n",
- myrank,nprocs,routine,globus_object_printable_to_string(err),caller);
-}
diff --git a/src/mpi/romio/adio/ad_hfs/Makefile.mk b/src/mpi/romio/adio/ad_hfs/Makefile.mk
deleted file mode 100644
index 318b507..0000000
--- a/src/mpi/romio/adio/ad_hfs/Makefile.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_HFS
-
-noinst_HEADERS += adio/ad_hfs/ad_hfs.h
-
-romio_other_sources += \
- adio/ad_hfs/ad_hfs_read.c \
- adio/ad_hfs/ad_hfs_open.c \
- adio/ad_hfs/ad_hfs_write.c \
- adio/ad_hfs/ad_hfs_fcntl.c \
- adio/ad_hfs/ad_hfs_resize.c \
- adio/ad_hfs/ad_hfs.c
-
-endif BUILD_AD_HFS
-
diff --git a/src/mpi/romio/adio/ad_hfs/README b/src/mpi/romio/adio/ad_hfs/README
deleted file mode 100644
index 933677b..0000000
--- a/src/mpi/romio/adio/ad_hfs/README
+++ /dev/null
@@ -1 +0,0 @@
-This code is no longer supported.
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs.c b/src/mpi/romio/adio/ad_hfs/ad_hfs.c
deleted file mode 100644
index 5b34354..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_HFS_operations = {
- ADIOI_HFS_Open, /* Open */
- ADIOI_HFS_ReadContig, /* ReadContig */
- ADIOI_HFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_HFS_Fcntl, /* Fcntl */
- ADIOI_GEN_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_GEN_WriteStrided, /* WriteStrided */
- ADIOI_GEN_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_GEN_Flush, /* Flush */
- ADIOI_HFS_Resize, /* Resize */
- ADIOI_GEN_Delete, /* Delete */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs.h b/src/mpi/romio/adio/ad_hfs/ad_hfs.h
deleted file mode 100644
index 2950aa5..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_HFS_INCLUDE
-#define AD_HFS_INCLUDE
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include "adio.h"
-#ifdef SPPUX
-# include <sys/cnx_types.h>
-# include <sys/puio.h>
-# include <cnx_unistd.h>
-#endif
-
-void ADIOI_HFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_HFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_HFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_HFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_HFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs_fcntl.c b/src/mpi/romio/adio/ad_hfs/ad_hfs_fcntl.c
deleted file mode 100644
index 460c736..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs_fcntl.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-#include "adio_extern.h"
-
-#ifndef HAVE_LSEEK64
-#define lseek64 lseek
-#endif
-void ADIOI_HFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code)
-{
- int i, ntimes, err;
- ADIO_Offset curr_fsize, alloc_size, size, len, done;
- ADIO_Status status;
- char *buf;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_HFS_FCNTL";
-#endif
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- fcntl_struct->fsize = lseek64(fd->fd_sys, 0, SEEK_END);
-#ifdef HPUX
- if (fd->fp_sys_posn != -1)
- lseek64(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
-/* not required in SPPUX since there we use pread/pwrite */
-#endif
- if (fcntl_struct->fsize == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- /* will be called by one process only */
-
-#ifdef HPUX
- err = prealloc64(fd->fd_sys, fcntl_struct->diskspace);
- /* prealloc64 works only if file is of zero length */
- if (err && (errno != ENOTEMPTY)) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- return;
- }
- if (err && (errno == ENOTEMPTY)) {
-#endif
-
-#ifdef SPPUX
- /* SPPUX has no prealloc64. therefore, use prealloc
- if size < (2GB - 1), otherwise use long method. */
- if (fcntl_struct->diskspace <= 2147483647) {
- err = prealloc(fd->fd_sys, (off_t) fcntl_struct->diskspace);
- if (err && (errno != ENOTEMPTY)) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- return;
- }
- }
-
- if ((fcntl_struct->diskspace > 2147483647) ||
- (err && (errno == ENOTEMPTY))) {
-#endif
- ADIOI_GEN_Prealloc(fd,fcntl_struct->diskspace, error_code);
- }
- ADIOI_Free(buf);
-#ifdef HPUX
- if (fd->fp_sys_posn != -1)
- lseek64(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
- /* not required in SPPUX since there we use pread/pwrite */
-#endif
- }
- *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1;
- *error_code = MPI_SUCCESS;
- break;
-
- default:
- FPRINTF(stderr, "Unknown flag passed to ADIOI_HFS_Fcntl\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
-}
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs_open.c b/src/mpi/romio/adio/ad_hfs/ad_hfs_open.c
deleted file mode 100644
index 46ee284..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs_open.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-
-#ifndef HAVE_LSEEK64
-#define lseek64 lseek
-#endif
-
-void ADIOI_HFS_Open(ADIO_File fd, int *error_code)
-{
- int perm, old_mask, amode;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_HFS_OPEN";
-#endif
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = 0;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- fd->fd_sys = open64(fd->filename, amode, perm);
- fd->fd_direct = -1;
-
- if ((fd->fd_sys != -1) && (fd->access_mode & ADIO_APPEND)) {
- fd->fp_ind = lseek64(fd->fd_sys, 0, SEEK_END);
-#ifdef HPUX
- fd->fp_sys_posn = fd->fp_ind;
-#endif
- }
-
-#ifdef SPPUX
- fd->fp_sys_posn = -1; /* set it to null bec. we use pread, pwrite*/
-#endif
-
- if (fd->fd_sys == -1 ) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(ADIO_FILE_NULL, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs_read.c b/src/mpi/romio/adio/ad_hfs/ad_hfs_read.c
deleted file mode 100644
index eac03ab..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs_read.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-
-#ifndef HAVE_LSEEK64
-#define lseek64 lseek
-#endif
-
-void ADIOI_HFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_HFS_READCONTIG";
-#endif
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
-#ifdef SPPUX
- fd->fp_sys_posn = -1; /* set it to null, since we are using pread */
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET)
- err = pread64(fd->fd_sys, buf, len, offset);
- else { /* read from curr. location of ind. file pointer */
- err = pread64(fd->fd_sys, buf, len, fd->fp_ind);
- fd->fp_ind += err;
- }
-#endif
-
-#ifdef HPUX
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset)
- lseek64(fd->fd_sys, offset, SEEK_SET);
- err = read(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* read from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind)
- lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
- err = read(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-#endif
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1 ) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = (err == -1) ? MPI_ERR_UNKNOWN : MPI_SUCCESS;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs_resize.c b/src/mpi/romio/adio/ad_hfs/ad_hfs_resize.c
deleted file mode 100644
index de24ad6..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs_resize.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-
-void ADIOI_HFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
-{
- int err;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_HFS_RESIZE";
-#endif
-
- err = ftruncate64(fd->fd_sys, size);
- if (err == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_hfs/ad_hfs_write.c b/src/mpi/romio/adio/ad_hfs/ad_hfs_write.c
deleted file mode 100644
index 4bffa82..0000000
--- a/src/mpi/romio/adio/ad_hfs/ad_hfs_write.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_hfs.h"
-
-#ifndef HAVE_LSEEK64
-#define lseek64 lseek
-#endif
-
-void ADIOI_HFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_HFS_WRITECONTIG";
-#endif
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
-#ifdef SPPUX
- fd->fp_sys_posn = -1; /* set it to null, since we are using pwrite */
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET)
- err = pwrite64(fd->fd_sys, buf, len, offset);
- else { /* write from curr. location of ind. file pointer */
- err = pwrite64(fd->fd_sys, buf, len, fd->fp_ind);
- fd->fp_ind += err;
- }
-#endif
-
-#ifdef HPUX
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset)
- lseek64(fd->fd_sys, offset, SEEK_SET);
- err = write(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* write from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind)
- lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
- err = write(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-#endif
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_SUCCESS;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs.c
deleted file mode 100644
index 9788274..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_NTFS_operations = {
- ADIOI_NTFS_Open, /* Open */
- ADIOI_FAILSAFE_OpenColl, /* OpenColl */
- ADIOI_NTFS_ReadContig, /* ReadContig */
- ADIOI_NTFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_NTFS_Fcntl, /* Fcntl */
- ADIOI_GEN_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_GEN_WriteStrided, /* WriteStrided */
- ADIOI_NTFS_Close, /* Close */
- ADIOI_NTFS_IreadContig, /* IreadContig */
- ADIOI_NTFS_IwriteContig, /* IwriteContig */
- ADIOI_NTFS_ReadDone, /* ReadDone */
- ADIOI_NTFS_WriteDone, /* WriteDone */
- ADIOI_NTFS_ReadComplete, /* ReadComplete */
- ADIOI_NTFS_WriteComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_NTFS_Flush, /* Flush */
- ADIOI_NTFS_Resize, /* Resize */
- ADIOI_GEN_Delete, /* Delete */
- ADIOI_NTFS_Feature, /* Features */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs.h b/src/mpi/romio/adio/ad_ntfs/ad_ntfs.h
deleted file mode 100644
index aed6168..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_NTFS_INCLUDE
-#define AD_NTFS_INCLUDE
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include "adio.h"
-
-#ifdef HAVE_INT64
-#define DWORDLOW(x) ( (DWORD) ( x & (__int64) 0xFFFFFFFF ) )
-#define DWORDHIGH(x) ( (DWORD) ( (x >> 32) & (__int64) 0xFFFFFFFF ) )
-#define DWORDTOINT64(x,y) ( (__int64) ( ( (__int64 x) << 32 ) + (__int64) y ) )
-#else
-#define DWORDLOW(x) x
-#define DWORDHIGH(x) 0
-#define DWORDTOINT64(x,y) x
-#endif
-
-int ADIOI_NTFS_aio(ADIO_File fd, void *buf, int len, ADIO_Offset offset,
- int wr, void *handle);
-
-void ADIOI_NTFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_NTFS_Close(ADIO_File fd, int *error_code);
-void ADIOI_NTFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_NTFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_NTFS_IwriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_NTFS_IreadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-int ADIOI_NTFS_ReadDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-int ADIOI_NTFS_WriteDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_NTFS_ReadComplete(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_NTFS_WriteComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code);
-void ADIOI_NTFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_NTFS_IwriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_NTFS_Flush(ADIO_File fd, int *error_code);
-void ADIOI_NTFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
-
-#define FORMAT_MESSAGE_MIN_SIZE 100
-#define ADIOI_NTFS_ERR_MSG_MAX FORMAT_MESSAGE_MIN_SIZE
-void ADIOI_NTFS_Strerror(int error, char *errMsg, int errMsgLen);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_close.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_close.c
deleted file mode 100644
index 95022dc..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_close.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_Close(ADIO_File fd, int *error_code)
-{
- int err;
- static char myname[] = "ADIOI_NTFS_Close";
-
- err = CloseHandle(fd->fd_sys);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_done.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_done.c
deleted file mode 100644
index 9f4967b..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_done.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-int ADIOI_NTFS_ReadDone(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- return 0;
-}
-
-
-int ADIOI_NTFS_WriteDone(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- return 0;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_fcntl.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_fcntl.c
deleted file mode 100644
index 4c7d66c..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_fcntl.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-#include "adio_extern.h"
-
-void ADIOI_NTFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code)
-{
- DWORD err;
- LONG dwTemp;
- static char myname[] = "ADIOI_NTFS_FCNTL";
-
- switch(flag)
- {
- case ADIO_FCNTL_GET_FSIZE:
- fcntl_struct->fsize = SetFilePointer(fd->fd_sys, 0, 0, FILE_END);
- if (fd->fp_sys_posn != -1)
- {
- dwTemp = DWORDHIGH(fd->fp_sys_posn);
- if (SetFilePointer(fd->fd_sys, DWORDLOW(fd->fp_sys_posn), &dwTemp, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != NO_ERROR)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- return;
- }
- }
- }
- /* --BEGIN ERROR HANDLING-- */
- if (fcntl_struct->fsize == INVALID_SET_FILE_POINTER)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- dwTemp = GetLastError();
- ADIOI_NTFS_Strerror(dwTemp, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1;
- *error_code = MPI_SUCCESS;
- /*
- fd->atomicity = 0;
- *error_code = MPI_ERR_UNSUPPORTED_OPERATION;
- */
- break;
-
- default:
- /* --BEGIN ERROR HANDLING-- */
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_ARG,
- "**flag", "**flag %d", flag);
- return;
- /* --END ERROR HANDLING-- */
- }
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_feature.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_feature.c
deleted file mode 100644
index 335b5ae..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_feature.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-#include "adio.h"
-
-int ADIOI_NTFS_Feature(ADIO_File fd, int flag)
-{
- switch(flag) {
- /* supported features */
- case ADIO_LOCKS:
- case ADIO_SHARED_FP:
- case ADIO_ATOMIC_MODE:
- case ADIO_DATA_SIEVING_WRITES:
- return 1;
- break;
- /* unsupported features */
- case ADIO_SCALABLE_OPEN:
- case ADIO_UNLINK_AFTER_CLOSE:
- default:
- return 0;
- break;
- }
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_flush.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_flush.c
deleted file mode 100644
index 7656d60..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_flush.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_Flush(ADIO_File fd, int *error_code)
-{
- int err;
- static char myname[] = "ADIOI_NTFS_Flush";
-
- err = (fd->access_mode & ADIO_RDONLY) ? TRUE :
- FlushFileBuffers(fd->fd_sys);
-
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iread.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iread.c
deleted file mode 100644
index 845401a..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iread.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_IreadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int *error_code)
-{
- MPI_Count len, typesize;
- int err;
- static char myname[] = "ADIOI_NTFS_IreadContig";
-
- MPI_Type_size_x(datatype, &typesize);
- len = count * typesize;
-
- if (file_ptr_type == ADIO_INDIVIDUAL)
- {
- offset = fd->fp_ind;
- }
- err = ADIOI_NTFS_aio(fd, buf, len, offset, 0, request);
- if (file_ptr_type == ADIO_INDIVIDUAL)
- {
- fd->fp_ind += len;
- }
-
- /* --BEGIN ERROR HANDLING-- */
- if (err != MPI_SUCCESS)
- {
- *error_code = MPIO_Err_create_code(err, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iwrite.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iwrite.c
deleted file mode 100644
index 40a567e..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_iwrite.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-#include "../../mpi-io/mpioimpl.h"
-#include "../../mpi-io/mpioprof.h"
-#include "mpiu_greq.h"
-
-static MPIX_Grequest_class ADIOI_NTFS_greq_class = 0;
-
-/* Fills the input buffer, errMsg, with the error message
- corresponding to error code, error */
-void ADIOI_NTFS_Strerror(int error, char *errMsg, int errMsgLen)
-{
- LPTSTR str;
- int num_bytes;
- num_bytes = FormatMessage(
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_ALLOCATE_BUFFER,
- NULL,
- error,
- 0,
- &str,
- FORMAT_MESSAGE_MIN_SIZE,
- 0);
- if (num_bytes == 0)
- {
- strncpy(errMsg, "\0", errMsgLen);
- }
- else
- {
- strncpy(errMsg, str, errMsgLen);
- LocalFree(str);
- }
-}
-
-/* poll for completion of a single outstanding AIO request */
-int ADIOI_NTFS_aio_poll_fn(void *extra_state, MPI_Status *status)
-{
- ADIOI_AIO_Request *aio_req;
- int mpi_errno = MPI_SUCCESS;
-
- /* FIXME: Validate the args -- has it already been done by the
- caller ? */
-
- aio_req = (ADIOI_AIO_Request *)extra_state;
-
- /* XXX: test for AIO completion here */
- if(!GetOverlappedResult( aio_req->fd, aio_req->lpOvl,
- &(aio_req->nbytes), FALSE)){
- if(GetLastError() == ERROR_IO_INCOMPLETE){
- /* IO in progress */
- /* TODO: need to diddle with status somehow */
- }else{
- /* Error occured */
- /* TODO: unsure how to handle this */
- }
- }else{
- mpi_errno = MPI_Grequest_complete(aio_req->req);
- if (mpi_errno != MPI_SUCCESS) {
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- "ADIOI_NTFS_aio_poll_fn", __LINE__,
- MPI_ERR_IO, "**mpi_grequest_complete",
- 0);
- }
- }
- return mpi_errno;
-}
-
-
-/* Wait for completion of one of the outstanding AIO requests */
-int ADIOI_NTFS_aio_wait_fn(int count, void **array_of_states,
- double timeout, MPI_Status *status)
-{
- int i, mpi_errno = MPI_SUCCESS;
- ADIOI_AIO_Request **aio_reqlist;
- LPHANDLE lpHandles;
- DWORD retObject=0;
-
- /* FIXME: Validate the args -- has it already been done by the
- caller ? */
- aio_reqlist = (ADIOI_AIO_Request **)array_of_states;
- lpHandles = (LPHANDLE) ADIOI_Calloc(count, sizeof(HANDLE));
- if (lpHandles == NULL)
- {
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- "ADIOI_NTFS_aio_wait_fn", __LINE__, MPI_ERR_IO,
- "**nomem", "**nomem %s", "Event handles");
- return mpi_errno;
- }
- /* XXX: set-up arrays of outstanding requests */
- for(i=0; i<count; i++){
- lpHandles[i] = (aio_reqlist[i])->lpOvl->hEvent;
- }
-
- /* XXX: wait for one request to complete */
- /* FIXME: Is the timeout in seconds ? */
- timeout = (timeout <= 0) ? INFINITE : (timeout * 1000);
-
- if((retObject = WaitForMultipleObjects(count, lpHandles,
- FALSE, timeout)) != WAIT_FAILED){
- retObject = retObject - WAIT_OBJECT_0;
- if(GetOverlappedResult( aio_reqlist[retObject]->fd,
- aio_reqlist[retObject]->lpOvl, &(aio_reqlist[retObject]->nbytes),
- FALSE)){
- /* XXX: mark completed requests as 'done'*/
- mpi_errno = MPI_Grequest_complete(aio_reqlist[retObject]->req);
- if (mpi_errno != MPI_SUCCESS) {
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- "ADIOI_NTFS_aio_wait_fn", __LINE__,
- MPI_ERR_IO, "**mpi_grequest_complete",
- 0);
- }
- }else{
- if(GetLastError() == ERROR_IO_INCOMPLETE){
- /* IO in progress */
- /* TODO: need to diddle with status somehow */
- }else{
- /* Error occured */
- /* TODO: not sure how to handle this */
- }
- }
- }else{
- /* TODO: How to handle error while waiting ? */
- }
- ADIOI_Free(lpHandles);
- return mpi_errno;
-}
-
-int ADIOI_NTFS_aio_query_fn(void *extra_state, MPI_Status *status)
-{
- ADIOI_AIO_Request *aio_req;
-
- aio_req = (ADIOI_AIO_Request *)extra_state;
-
-
- MPI_Status_set_elements(status, MPI_BYTE, aio_req->nbytes);
-
- /* can never cancel so always true */
- MPI_Status_set_cancelled(status, 0);
-
- /* choose not to return a value for this */
- status->MPI_SOURCE = MPI_UNDEFINED;
- /* tag has no meaning for this generalized request */
- status->MPI_TAG = MPI_UNDEFINED;
- /* this generalized request never fails */
- return MPI_SUCCESS;
-}
-
-
-int ADIOI_NTFS_aio_free_fn(void *extra_state)
-{
- ADIOI_AIO_Request *aio_req;
- /* FIXME: Validate the args -- has it already been done by the
- caller ? */
- aio_req = (ADIOI_AIO_Request*)extra_state;
- CloseHandle(aio_req->lpOvl->hEvent);
- ADIOI_Free(aio_req->lpOvl);
- ADIOI_Free(aio_req);
- return MPI_SUCCESS;
-}
-
-void ADIOI_NTFS_IwriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request,
- int *error_code)
-{
- MPI_Count len, typesize;
- int err;
- static char myname[] = "ADIOI_NTFS_IwriteContig";
-
- MPI_Type_size_x(datatype, &typesize);
- len = count * typesize;
-
- if (file_ptr_type == ADIO_INDIVIDUAL)
- {
- offset = fd->fp_ind;
- }
- err = ADIOI_NTFS_aio(fd, buf, len, offset, 1, request);
- if (file_ptr_type == ADIO_INDIVIDUAL)
- {
- fd->fp_ind += len;
- }
-
- /* --BEGIN ERROR HANDLING-- */
- if (err != MPI_SUCCESS)
- {
- *error_code = MPIO_Err_create_code(err, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-}
-
-
-/* This function is for implementation convenience. It is not user-visible.
- * If wr==1 write, wr==0 read.
- *
- * Returns MPI_SUCCESS on success, mpi_errno on failure.
- */
-int ADIOI_NTFS_aio(ADIO_File fd, void *buf, int len, ADIO_Offset offset,
- int wr, MPI_Request *request)
-{
- static char myname[] = "ADIOI_NTFS_aio";
-
- ADIOI_AIO_Request *aio_req;
- static DWORD dwNumWritten, dwNumRead;
- BOOL ret_val = FALSE;
- FDTYPE fd_sys;
- int mpi_errno = MPI_SUCCESS;
- DWORD err;
-
- fd_sys = fd->fd_sys;
-
- aio_req = (ADIOI_AIO_Request *)ADIOI_Calloc(sizeof(ADIOI_AIO_Request), 1);
- if (aio_req == NULL)
- {
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**nomem", "**nomem %s", "AIO_REQ");
- return mpi_errno;
- }
- aio_req->lpOvl = (LPOVERLAPPED ) ADIOI_Calloc(sizeof(OVERLAPPED), 1);
- if (aio_req->lpOvl == NULL)
- {
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**nomem", "**nomem %s", "OVERLAPPED");
- ADIOI_Free(aio_req);
- return mpi_errno;
- }
- aio_req->lpOvl->hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- if (aio_req->lpOvl->hEvent == NULL)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- ADIOI_Free(aio_req->lpOvl);
- ADIOI_Free(aio_req);
- return mpi_errno;
- }
- aio_req->lpOvl->Offset = DWORDLOW(offset);
- aio_req->lpOvl->OffsetHigh = DWORDHIGH(offset);
- aio_req->fd = fd_sys;
-
- /* XXX: initiate async I/O */
- if (wr)
- {
- ret_val = WriteFile(fd_sys, buf, len, &dwNumWritten, aio_req->lpOvl);
- }
- else
- {
- ret_val = ReadFile(fd_sys, buf, len, &dwNumRead, aio_req->lpOvl);
- }
-
- /* --BEGIN ERROR HANDLING-- */
- if (ret_val == FALSE)
- {
- mpi_errno = GetLastError();
- if (mpi_errno != ERROR_IO_PENDING)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(mpi_errno, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- mpi_errno = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return mpi_errno;
- }
- mpi_errno = MPI_SUCCESS;
- }
- /* --END ERROR HANDLING-- */
-
- /* XXX: set up generalized request class and request */
- if (ADIOI_NTFS_greq_class == 0) {
- mpi_errno = MPIX_Grequest_class_create(ADIOI_NTFS_aio_query_fn,
- ADIOI_NTFS_aio_free_fn, MPIU_Greq_cancel_fn,
- ADIOI_NTFS_aio_poll_fn, ADIOI_NTFS_aio_wait_fn,
- &ADIOI_NTFS_greq_class);
- if(mpi_errno != MPI_SUCCESS){
- /* FIXME: Pass appropriate error code to user */
- }
- }
- mpi_errno = MPIX_Grequest_class_allocate(ADIOI_NTFS_greq_class, aio_req, request);
- if(mpi_errno != MPI_SUCCESS){
- /* FIXME: Pass appropriate error code to user */
- }
- memcpy(&(aio_req->req), request, sizeof(MPI_Request));
- return mpi_errno;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_open.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_open.c
deleted file mode 100644
index 3a49418..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_open.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_Open(ADIO_File fd, int *error_code)
-{
- int err;
- int cmode, amode, attrib;
- static char myname[] = "ADIOI_NTFS_Open";
-
- amode = 0;
- cmode = OPEN_EXISTING;
-#ifdef USE_WIN_THREADED_IO
- attrib = FILE_FLAG_OVERLAPPED;
-#else
- attrib = FILE_ATTRIBUTE_NORMAL;
-#endif
-
- if (fd->access_mode & ADIO_CREATE)
- {
- cmode = OPEN_ALWAYS;
- }
- if (fd->access_mode & ADIO_EXCL)
- {
- cmode = CREATE_NEW;
- }
-
- if (fd->access_mode & ADIO_RDONLY)
- {
- amode = GENERIC_READ;
- }
- if (fd->access_mode & ADIO_WRONLY)
- {
- amode = GENERIC_WRITE;
- }
- if (fd->access_mode & ADIO_RDWR)
- {
- amode = GENERIC_READ | GENERIC_WRITE;
- }
-
- if (fd->access_mode & ADIO_DELETE_ON_CLOSE)
- {
- attrib = attrib | FILE_FLAG_DELETE_ON_CLOSE;
- }
- if (fd->access_mode & ADIO_SEQUENTIAL)
- {
- attrib = attrib | FILE_FLAG_SEQUENTIAL_SCAN;
- }
- else
- {
- attrib = attrib | FILE_FLAG_RANDOM_ACCESS;
- }
-
- fd->fd_sys = CreateFile(fd->filename,
- amode,
- FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
- NULL,
- cmode,
- attrib,
- NULL);
- fd->fd_direct = -1;
-
- if ((fd->fd_sys != INVALID_HANDLE_VALUE) && (fd->access_mode & ADIO_APPEND))
- {
- fd->fp_ind = fd->fp_sys_posn = SetFilePointer(fd->fd_sys, 0, NULL, FILE_END);
- if (fd->fp_ind == INVALID_SET_FILE_POINTER)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != NO_ERROR)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- return;
- }
- }
- }
-
- /* --BEGIN ERROR HANDLING-- */
- if (fd->fd_sys == INVALID_HANDLE_VALUE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_read.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_read.c
deleted file mode 100644
index 7c55c1b..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_read.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- LONG dwTemp;
- DWORD dwNumRead = 0;
- int err=-1;
- MPI_Count datatype_size, len;
- static char myname[] = "ADIOI_NTFS_ReadContig";
- OVERLAPPED *pOvl;
-
- /* If file pointer is of type ADIO_INDIVIDUAL ignore the offset
- and use the current location of file pointer */
- if(file_ptr_type == ADIO_INDIVIDUAL){
- offset = fd->fp_ind;
- }
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- pOvl = (OVERLAPPED *) ADIOI_Calloc(sizeof(OVERLAPPED), 1);
- if (pOvl == NULL)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**nomem", "**nomem %s", "OVERLAPPED");
- return;
- }
- pOvl->hEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
- if (pOvl->hEvent == NULL)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- ADIOI_Free(pOvl);
- return;
- }
- pOvl->Offset = DWORDLOW(offset);
- pOvl->OffsetHigh = DWORDHIGH(offset);
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET)
- {
- if (fd->fp_sys_posn != offset)
- {
- dwTemp = DWORDHIGH(offset);
- if (SetFilePointer(fd->fd_sys, DWORDLOW(offset), &dwTemp, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != NO_ERROR)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- }
- /*
- {
- ADIO_Fcntl_t fcntl_struct;
- int error_code;
- ADIO_Fcntl(fd, ADIO_FCNTL_GET_FSIZE, &fcntl_struct, &error_code);
- printf("File size b: %d\n", fcntl_struct.fsize);
- }
- printf("ReadFile(%d bytes)\n", len);fflush(stdout);
- */
- err = ReadFile(fd->fd_sys, buf, len, &dwNumRead, pOvl);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- switch (err)
- {
- case ERROR_IO_PENDING:
- break;
- case ERROR_HANDLE_EOF:
- /*printf("EOF error\n");fflush(stdout);*/
- SetEvent(pOvl->hEvent);
- break;
- default:
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- err = GetOverlappedResult(fd->fd_sys, pOvl, &dwNumRead, TRUE);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != ERROR_HANDLE_EOF) /* Ignore EOF errors */
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- if (!CloseHandle(pOvl->hEvent))
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- ADIOI_Free(pOvl);
-
- fd->fp_sys_posn = offset + (ADIO_Offset)dwNumRead;
- /* individual file pointer not updated */
- }
- else
- {
- /* read from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind)
- {
- dwTemp = DWORDHIGH(fd->fp_ind);
- if (SetFilePointer(fd->fd_sys, DWORDLOW(fd->fp_ind), &dwTemp, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != NO_ERROR)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- }
- /*
- {
- ADIO_Fcntl_t fcntl_struct;
- int error_code;
- ADIO_Fcntl(fd, ADIO_FCNTL_GET_FSIZE, &fcntl_struct, &error_code);
- printf("File size c: %d\n", fcntl_struct.fsize);
- }
- printf("ReadFile(%d bytes)\n", len);fflush(stdout);
- */
- err = ReadFile(fd->fd_sys, buf, len, &dwNumRead, pOvl);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- switch (err)
- {
- case ERROR_IO_PENDING:
- break;
- case ERROR_HANDLE_EOF:
- /*printf("EOF error\n");fflush(stdout);*/
- SetEvent(pOvl->hEvent);
- break;
- default:
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- err = GetOverlappedResult(fd->fd_sys, pOvl, &dwNumRead, TRUE);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- if (err != ERROR_HANDLE_EOF) /* Ignore EOF errors */
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- if (!CloseHandle(pOvl->hEvent))
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- ADIOI_Free(pOvl);
- return;
- }
- ADIOI_Free(pOvl);
-
- fd->fp_ind = fd->fp_ind + (ADIO_Offset)dwNumRead;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != FALSE)
- {
- MPIR_Status_set_bytes(status, datatype, dwNumRead);
- }
-#endif
-
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_resize.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_resize.c
deleted file mode 100644
index 0fbeaaf..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_resize.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
-{
- LONG dwTemp;
- DWORD err;
- BOOL result;
- static char myname[] = "ADIOI_NTFS_Resize";
-
- dwTemp = DWORDHIGH(size);
- err = SetFilePointer(fd->fd_sys, DWORDLOW(size), &dwTemp, FILE_BEGIN);
- /* --BEGIN ERROR HANDLING-- */
- if (err == INVALID_SET_FILE_POINTER)
- {
- err = GetLastError();
- if (err != NO_ERROR)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- }
- /*printf("setting file length to %d\n", size);fflush(stdout);*/
- /* --END ERROR HANDLING-- */
- result = SetEndOfFile(fd->fd_sys);
- /* --BEGIN ERROR HANDLING-- */
- if (result == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_wait.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_wait.c
deleted file mode 100644
index 80dfa4d..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_wait.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_ReadComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- return;
-}
-
-
-void ADIOI_NTFS_WriteComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- return;
-}
diff --git a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_write.c b/src/mpi/romio/adio/ad_ntfs/ad_ntfs_write.c
deleted file mode 100644
index 389e866..0000000
--- a/src/mpi/romio/adio/ad_ntfs/ad_ntfs_write.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_ntfs.h"
-
-void ADIOI_NTFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- static char myname[] = "ADIOI_NTFS_WriteContig";
- LONG dwTemp;
- DWORD dwNumWritten = 0;
- MPI_Count err=-1, datatype_size, len;
- OVERLAPPED *pOvl;
-
- /* If file pointer type in ADIO_INDIVIDUAL then offset should be
- ignored and the current location of file pointer should be used */
- if(file_ptr_type == ADIO_INDIVIDUAL){
- offset = fd->fp_ind;
- }
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- pOvl = (OVERLAPPED *) ADIOI_Calloc(sizeof(OVERLAPPED), 1);
- if (pOvl == NULL)
- {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**nomem", "**nomem %s", "OVERLAPPED");
- return;
- }
- pOvl->hEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
- if (pOvl->hEvent == NULL)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- ADIOI_Free(pOvl);
- return;
- }
- pOvl->Offset = DWORDLOW(offset);
- pOvl->OffsetHigh = DWORDHIGH(offset);
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET)
- {
- if (fd->fp_sys_posn != offset)
- {
- dwTemp = DWORDHIGH(offset);
- if (SetFilePointer(fd->fd_sys, DWORDLOW(offset), &dwTemp, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
- {
- err = GetLastError();
- if (err != NO_ERROR)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- }
- /*printf("WriteFile(%d bytes)\n", len);fflush(stdout);*/
- err = WriteFile(fd->fd_sys, buf, len, &dwNumWritten, pOvl);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- err = GetLastError();
- if (err != ERROR_IO_PENDING)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- err = GetOverlappedResult(fd->fd_sys, pOvl, &dwNumWritten, TRUE);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- /* --END ERROR HANDLING-- */
- if (!CloseHandle(pOvl->hEvent))
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- ADIOI_Free(pOvl);
-
- fd->fp_sys_posn = offset + dwNumWritten;
- /* individual file pointer not updated */
- }
- else
- {
- /* write from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind)
- {
- dwTemp = DWORDHIGH(fd->fp_ind);
- if (SetFilePointer(fd->fd_sys, DWORDLOW(fd->fp_ind), &dwTemp, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
- {
- err = GetLastError();
- if (err != NO_ERROR)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- }
- /*printf("WriteFile(%d bytes)\n", len);fflush(stdout);*/
- err = WriteFile(fd->fd_sys, buf, len, &dwNumWritten, pOvl);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- err = GetLastError();
- if (err != ERROR_IO_PENDING)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- }
- /* --END ERROR HANDLING-- */
- err = GetOverlappedResult(fd->fd_sys, pOvl, &dwNumWritten, TRUE);
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", errMsg);
- CloseHandle(pOvl->hEvent);
- ADIOI_Free(pOvl);
- return;
- }
- /* --END ERROR HANDLING-- */
- if (!CloseHandle(pOvl->hEvent))
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io", "**io %s", errMsg);
- ADIOI_Free(pOvl);
- return;
- }
- ADIOI_Free(pOvl);
-
- fd->fp_ind = fd->fp_ind + dwNumWritten;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != FALSE)
- {
- MPIR_Status_set_bytes(status, datatype, dwNumWritten);
- }
-#endif
-
- /* --BEGIN ERROR HANDLING-- */
- if (err == FALSE)
- {
- char errMsg[ADIOI_NTFS_ERR_MSG_MAX];
- err = GetLastError();
- ADIOI_NTFS_Strerror(err, errMsg, ADIOI_NTFS_ERR_MSG_MAX);
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", errMsg);
- return;
- }
- /* --END ERROR HANDLING-- */
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/Makefile.mk b/src/mpi/romio/adio/ad_pfs/Makefile.mk
deleted file mode 100644
index 3521c07..0000000
--- a/src/mpi/romio/adio/ad_pfs/Makefile.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_PFS
-
-noinst_HEADERS += adio/ad_pfs/ad_pfs.h
-
-romio_other_sources += \
- adio/ad_pfs/ad_pfs_read.c \
- adio/ad_pfs/ad_pfs_open.c \
- adio/ad_pfs/ad_pfs_write.c \
- adio/ad_pfs/ad_pfs_done.c \
- adio/ad_pfs/ad_pfs_fcntl.c \
- adio/ad_pfs/ad_pfs_iread.c \
- adio/ad_pfs/ad_pfs_iwrite.c \
- adio/ad_pfs/ad_pfs_wait.c \
- adio/ad_pfs/ad_pfs_flush.c \
- adio/ad_pfs/ad_pfs_hints.c \
- adio/ad_pfs/ad_pfs.c
-
-endif BUILD_AD_PFS
-
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs.c b/src/mpi/romio/adio/ad_pfs/ad_pfs.c
deleted file mode 100644
index cc480b0..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_PFS_operations = {
- ADIOI_PFS_Open, /* Open */
- ADIOI_PFS_ReadContig, /* ReadContig */
- ADIOI_PFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_PFS_Fcntl, /* Fcntl */
- ADIOI_PFS_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_GEN_WriteStrided, /* WriteStrided */
- ADIOI_GEN_Close, /* Close */
- ADIOI_PFS_IreadContig, /* IreadContig */
- ADIOI_PFS_IwriteContig, /* IwriteContig */
- ADIOI_PFS_ReadDone, /* ReadDone */
- ADIOI_PFS_WriteDone, /* WriteDone */
- ADIOI_PFS_ReadComplete, /* ReadComplete */
- ADIOI_PFS_WriteComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_PFS_Flush, /* Flush */
- ADIOI_GEN_Resize, /* Resize */
- ADIOI_GEN_Delete, /* Delete */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs.h b/src/mpi/romio/adio/ad_pfs/ad_pfs.h
deleted file mode 100644
index fbe055c..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-/* contains definitions, declarations, and macros specific to the
- implementation of ADIO on PFS */
-
-#ifndef AD_PFS_INCLUDE
-#define AD_PFS_INCLUDE
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <nx.h>
-#include <sys/uio.h>
-#include "adio.h"
-
-#ifdef tflops
-#define lseek eseek
-#define _gopen(n,m,i,p) open(n,m,p)
-#endif
-
-/* PFS file-pointer modes (removed most of them because they are unused) */
-#ifndef M_ASYNC
-#define M_UNIX 0
-#define M_ASYNC 5
-#endif
-
-void ADIOI_PFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_PFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PFS_IwriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-void ADIOI_PFS_IreadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int
- *error_code);
-int ADIOI_PFS_ReadDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-int ADIOI_PFS_WriteDone(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_PFS_ReadComplete(ADIO_Request *request, ADIO_Status *status, int
- *error_code);
-void ADIOI_PFS_WriteComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code);
-void ADIOI_PFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_PFS_Flush(ADIO_File fd, int *error_code);
-void ADIOI_PFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_done.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_done.c
deleted file mode 100644
index 60e2d7d..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_done.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-int ADIOI_PFS_ReadDone(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- int done=0;
- static char myname[] = "ADIOI_PFS_READDONE";
-
- if (*request == ADIO_REQUEST_NULL) {
- *error_code = MPI_SUCCESS;
- return 1;
- }
-
- if ((*request)->queued)
- done = _iodone(*((long *) (*request)->handle));
- else done = 1; /* ADIOI_Complete_Async completed this request,
- but request object was not freed. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- if ((done >= 0) && ((*request)->nbytes != -1))
- MPIR_Status_set_bytes(status, (*request)->datatype, (*request)->nbytes);
-#endif
-
- if (done >= 0) {
- /* if request is still queued in the system, it is also there
- on ADIOI_Async_list. Delete it from there. */
- if ((*request)->queued) ADIOI_Del_req_from_list(request);
-
- (*request)->fd->async_count--;
- if ((*request)->handle) ADIOI_Free((*request)->handle);
- ADIOI_Free_request((ADIOI_Req_node *) (*request));
- *request = ADIO_REQUEST_NULL;
- }
-
- if (done == -1 && errno != 0) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- return done;
-}
-
-
-int ADIOI_PFS_WriteDone(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- return ADIOI_PFS_ReadDone(request, status, error_code);
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_fcntl.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_fcntl.c
deleted file mode 100644
index 4a2c0fd..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_fcntl.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-#include "adio_extern.h"
-
-void ADIOI_PFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
- int *error_code)
-{
- int i, err;
- int iomod, np_total, np_comm;
- static char myname[] = "ADIOI_PFS_FCNTL";
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- if (!(fd->atomicity)) {
- /* in M_ASYNC mode, all processes are not aware of changes
- in file size (although the manual says otherwise). Therefore,
- temporarily change to M_UNIX and then change
- back to M_ASYNC.*/
- MPI_Comm_size(MPI_COMM_WORLD, &np_total);
- MPI_Comm_size(fd->comm, &np_comm);
- if (np_total == np_comm) {
- err = _setiomode(fd->fd_sys, M_UNIX);
- err = _setiomode(fd->fd_sys, M_ASYNC);
- }
- /* else it is M_UNIX anyway, so no problem */
- }
- fcntl_struct->fsize = lseek(fd->fd_sys, 0, SEEK_END);
- if (fd->fp_sys_posn != -1)
- lseek(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
- *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- err = _lsize(fd->fd_sys, fcntl_struct->diskspace, SEEK_SET);
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- MPI_Comm_size(MPI_COMM_WORLD, &np_total);
- MPI_Comm_size(fd->comm, &np_comm);
- if (np_total == np_comm) {
- iomod = (fcntl_struct->atomicity == 0) ? M_ASYNC : M_UNIX;
- err = _setiomode(fd->fd_sys, iomod);
- }
- /* else can't do anything because setiomode is global. but
- the file will have been opened with M_UNIX anyway, because
- gopen is also global. */
-
- fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1;
- if (err == -1) {
- /* --BEGIN ERROR HANDLING-- */
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- /* --END ERROR HANDLING-- */
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- default:
- /* --BEGIN ERROR HANDLING-- */
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPI_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_ARG,
- "**flag", "**flag %d", flag);
- return;
- /* --END ERROR HANDLING-- */
- }
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_flush.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_flush.c
deleted file mode 100644
index 98dedc0..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_flush.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_Flush(ADIO_File fd, int *error_code)
-{
- int err, np_total, np_comm;
- static char myname[] = "ADIOI_PFS_FLUSH";
-
-/* fsync is not actually needed in PFS, because it uses something
- called fast-path I/O. However, it doesn't do any harm either. */
- err = fsync(fd->fd_sys);
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-
-/* MPI-IO requires that after an fsync all processes must see the same
- file size. In PFS M_ASYNC mode, this doesn't automatically happen.
- Therefore, if M_ASYNC mode, temporarily change it to M_UNIX mode
- and then switch back to M_ASYNC. That updates the file size! */
-
- MPI_Comm_size(MPI_COMM_WORLD, &np_total);
- MPI_Comm_size(fd->comm, &np_comm);
- if ((np_total == np_comm) && (!(fd->atomicity))) {
- err = _setiomode(fd->fd_sys, M_UNIX);
- err = _setiomode(fd->fd_sys, M_ASYNC);
- }
- /* else it is M_UNIX anyway. don't do anything. */
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_hints.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_hints.c
deleted file mode 100644
index 407a0eb..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_hints.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
-{
- char *value, *value_in_fd;
- int flag, tmp_val, str_factor=-1, str_unit=-1, start_iodev=-1;
- struct sattr attr;
- int err, myrank, fd_sys, perm, amode, old_mask;
-
- if ( (fd->info) == MPI_INFO_NULL) {
- /* This must be part of the open call. can set striping parameters
- if necessary. */
- MPI_Info_create(&(fd->info));
-
- /* has user specified striping or server buffering parameters
- and do they have the same value on all processes? */
- if (users_info != MPI_INFO_NULL) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- ADIOI_Info_get(users_info, "striping_factor", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_factor=atoi(value);
- tmp_val = str_factor;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- /* --BEGIN ERROR HANDLING-- */
- if (tmp_val != str_factor) {
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "striping_factor",
- error_code);
- return;
- }
- /* --END ERROR HANDLING-- */
- }
-
- ADIOI_Info_get(users_info, "striping_unit", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_unit=atoi(value);
- tmp_val = str_unit;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- /* --BEGIN ERROR HANDLING-- */
- if (tmp_val != str_unit) {
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "striping_unit",
- error_code);
- return;
- }
- /* --END ERROR HANDLING-- */
- }
-
- ADIOI_Info_get(users_info, "start_iodevice", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- start_iodev=atoi(value);
- tmp_val = start_iodev;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- /* --BEGIN ERROR HANDLING-- */
- if (tmp_val != start_iodev) {
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "start_iodevice",
- error_code);
- return;
- }
- /* --END ERROR HANDLING-- */
- }
-
- /* if user has specified striping info, process 0 tries to set it */
- if ((str_factor > 0) || (str_unit > 0) || (start_iodev >= 0)) {
- MPI_Comm_rank(fd->comm, &myrank);
- if (!myrank) {
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = 0;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- fd_sys = open(fd->filename, amode, perm);
- err = fcntl(fd_sys, F_GETSATTR, &attr);
-
- if (!err) {
- if (str_unit > 0) attr.s_sunitsize = str_unit;
- if ((start_iodev >= 0) &&
- (start_iodev < attr.s_sfactor))
- attr.s_start_sdir = start_iodev;
- if ((str_factor > 0) && (str_factor < attr.s_sfactor))
- attr.s_sfactor = str_factor;
-
- err = fcntl(fd_sys, F_SETSATTR, &attr);
- }
-
- close(fd_sys);
- }
-
- MPI_Barrier(fd->comm);
- }
-
- /* Has user asked for pfs server buffering to be turned on?
- If so, mark it as true in fd->info and turn it on in
- ADIOI_PFS_Open after the file is opened */
-
- ADIOI_Info_get(users_info, "pfs_svr_buf", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (!strcmp(value, "true")))
- ADIOI_Info_set(fd->info, "pfs_svr_buf", "true");
- else ADIOI_Info_set(fd->info, "pfs_svr_buf", "false");
-
- ADIOI_Free(value);
- }
- else ADIOI_Info_set(fd->info, "pfs_svr_buf", "false");
-
- /* set the values for collective I/O and data sieving parameters */
- ADIOI_GEN_SetInfo(fd, users_info, error_code);
- }
-
- else {
- /* The file has been opened previously and fd->fd_sys is a valid
- file descriptor. cannot set striping parameters now. */
-
- /* set the values for collective I/O and data sieving parameters */
- ADIOI_GEN_SetInfo(fd, users_info, error_code);
-
- /* has user specified value for pfs_svr_buf? */
- if (users_info != MPI_INFO_NULL) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- ADIOI_Info_get(users_info, "pfs_svr_buf", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (!strcmp(value, "true") || !strcmp(value, "false"))) {
- value_in_fd = (char *)
- ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
- ADIOI_Info_get(fd->info, "pfs_svr_buf", MPI_MAX_INFO_VAL,
- value_in_fd, &flag);
- if (strcmp(value, value_in_fd)) {
- if (!strcmp(value, "true")) {
- err = fcntl(fd->fd_sys, F_PFS_SVR_BUF, TRUE);
- if (!err)
- ADIOI_Info_set(fd->info, "pfs_svr_buf", "true");
- }
- else {
- err = fcntl(fd->fd_sys, F_PFS_SVR_BUF, FALSE);
- if (!err)
- ADIOI_Info_set(fd->info, "pfs_svr_buf", "false");
- }
- }
- ADIOI_Free(value_in_fd);
- }
- ADIOI_Free(value);
- }
-
- }
-
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_iread.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_iread.c
deleted file mode 100644
index 78b3c59..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_iread.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_IreadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request,
- int *error_code)
-{
- long *id_sys;
- int err=-1;
- MPI_Count len, typesize;
- ADIO_Offset off;
- static char myname[] = "ADIOI_PFS_IREADCONTIG";
-
- *request = ADIOI_Malloc_request();
- (*request)->optype = ADIOI_READ;
- (*request)->fd = fd;
- (*request)->datatype = datatype;
-
- MPI_Type_size_x(datatype, &typesize);
- len = count * typesize;
-
- id_sys = (long *) ADIOI_Malloc(sizeof(long));
- (*request)->handle = (void *) id_sys;
-
- off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind : offset;
-
- lseek(fd->fd_sys, off, SEEK_SET);
- *id_sys = _iread(fd->fd_sys, buf, len);
-
- if ((*id_sys == -1) && (errno == EQNOMID)) {
- /* the man pages say EMREQUEST, but in reality errno is set to EQNOMID! */
-
- /* exceeded the max. no. of outstanding requests. */
-
- /* complete all previous async. requests */
- /*ADIOI_Complete_async(error_code); */
- if (*error_code != MPI_SUCCESS) return;
-
- /* try again */
- *id_sys = _iread(fd->fd_sys, buf, len);
-
- if ((*id_sys == -1) && (errno == EQNOMID)) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- return;
- }
- }
- else if (*id_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- return;
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind += len;
-
- (*request)->queued = 1;
- (*request)->nbytes = len;
- ADIOI_Add_req_to_list(request);
- fd->async_count++;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
- if (*id_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_iwrite.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_iwrite.c
deleted file mode 100644
index 5dda2fb..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_iwrite.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_IwriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Request *request, int *error_code)
-{
- long *id_sys;
- ADIO_Offset off;
- int err;
- MPI_Count len, typesize;
- static char myname[] = "ADIOI_PFS_IWRITECONTIG";
-
- *request = ADIOI_Malloc_request();
- (*request)->optype = ADIOI_WRITE;
- (*request)->fd = fd;
- (*request)->datatype = datatype;
-
- MPI_Type_size_x(datatype, &typesize);
- len = count * typesize;
-
- id_sys = (long *) ADIOI_Malloc(sizeof(long));
- (*request)->handle = (void *) id_sys;
-
- off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind : offset;
-
- lseek(fd->fd_sys, off, SEEK_SET);
- *id_sys = _iwrite(fd->fd_sys, buf, len);
-
- if ((*id_sys == -1) && (errno == EQNOMID)) {
- /* the man pages say EMREQUEST, but in reality errno is set to EQNOMID! */
-
- /* exceeded the max. no. of outstanding requests. */
-
- /* complete all previous async. requests */
- ADIOI_Complete_async(error_code);
- if (error_code != MPI_SUCCESS) return;
-
- /* try again */
- *id_sys = _iwrite(fd->fd_sys, buf, len);
-
- if ((*id_sys == -1) && (errno == EQNOMID)) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- return;
- }
- }
- else if (*id_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- return;
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind += len;
-
- (*request)->queued = 1;
- (*request)->nbytes = len;
- ADIOI_Add_req_to_list(request);
- fd->async_count++;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
- if (*id_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_open.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_open.c
deleted file mode 100644
index eccf672..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_open.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_Open(ADIO_File fd, int *error_code)
-{
- int perm, amode, old_mask, np_comm, np_total, err, flag;
- char *value;
- struct sattr attr;
- static char myname[] = "ADIOI_PFS_OPEN";
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = 0;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- MPI_Comm_size(MPI_COMM_WORLD, &np_total);
- MPI_Comm_size(fd->comm, &np_comm);
-
- if (np_total == np_comm)
- fd->fd_sys = _gopen(fd->filename, amode, M_ASYNC, perm);
- else fd->fd_sys = open(fd->filename, amode, perm);
- fd->fd_direct = -1;
-
- if (fd->fd_sys != -1) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- /* if user has asked for pfs server buffering to be turned on,
- it will be set to true in fd->info in the earlier call
- to ADIOI_PFS_SetInfo. Turn it on now, since we now have a
- valid file descriptor. */
-
- ADIOI_Info_get(fd->info, "pfs_svr_buf", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (!strcmp(value, "true"))) {
- err = fcntl(fd->fd_sys, F_PFS_SVR_BUF, TRUE);
- if (err) ADIOI_Info_set(fd->info, "pfs_svr_buf", "false");
- }
-
- /* get file striping information and set it in info */
- err = fcntl(fd->fd_sys, F_GETSATTR, &attr);
-
- if (!err) {
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", attr.s_sunitsize);
- ADIOI_Info_set(fd->info, "striping_unit", value);
-
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", attr.s_sfactor);
- ADIOI_Info_set(fd->info, "striping_factor", value);
-
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", attr.s_start_sdir);
- ADIOI_Info_set(fd->info, "start_iodevice", value);
- }
- ADIOI_Free(value);
-
- if (fd->access_mode & ADIO_APPEND)
- fd->fp_ind = fd->fp_sys_posn = lseek(fd->fd_sys, 0, SEEK_END);
- }
-
- if (fd->fd_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_read.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_read.c
deleted file mode 100644
index bd3b7e7..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_read.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
- static char myname[] = "ADIOI_PFS_READCONTIG";
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
- lseek(fd->fd_sys, offset, SEEK_SET);
- }
- err = _cread(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* read from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
- lseek(fd->fd_sys, fd->fp_ind, SEEK_SET);
- }
- err = _cread(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_wait.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_wait.c
deleted file mode 100644
index e141595..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_wait.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_ReadComplete(ADIO_Request *request, ADIO_Status *status,
- int *error_code)
-{
- int err=0;
- static char myname[] = "ADIOI_PFS_READCOMPLETE";
-
- if (*request == ADIO_REQUEST_NULL) {
- *error_code = MPI_SUCCESS;
- return;
- }
-
- if ((*request)->queued) {
- err = _iowait(*((long *) (*request)->handle));
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- } /* if ((*request)->queued) ... */
- else *error_code = MPI_SUCCESS;
-#ifdef HAVE_STATUS_SET_BYTES
- if ((*request)->nbytes != -1)
- MPIR_Status_set_bytes(status, (*request)->datatype, (*request)->nbytes);
-#endif
-
- if ((*request)->queued != -1) {
-
- /* queued = -1 is an internal hack used when the request must
- be completed, but the request object should not be
- freed. This is used in ADIOI_Complete_async, because the user
- will call MPI_Wait later, which would require status to
- be filled. Ugly but works. queued = -1 should be used only
- in ADIOI_Complete_async.
- This should not affect the user in any way. */
-
- /* if request is still queued in the system, it is also there
- on ADIOI_Async_list. Delete it from there. */
- if ((*request)->queued) ADIOI_Del_req_from_list(request);
-
- (*request)->fd->async_count--;
- if ((*request)->handle) ADIOI_Free((*request)->handle);
- ADIOI_Free_request((ADIOI_Req_node *) (*request));
- *request = ADIO_REQUEST_NULL;
- }
-}
-
-
-void ADIOI_PFS_WriteComplete(ADIO_Request *request, ADIO_Status *status, int *error_code)
-{
- ADIOI_PFS_ReadComplete(request, status, error_code);
-}
diff --git a/src/mpi/romio/adio/ad_pfs/ad_pfs_write.c b/src/mpi/romio/adio/ad_pfs/ad_pfs_write.c
deleted file mode 100644
index c64e976..0000000
--- a/src/mpi/romio/adio/ad_pfs/ad_pfs_write.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pfs.h"
-
-void ADIOI_PFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
- static char myname[] = "ADIOI_PFS_WRITECONTIG";
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
- lseek(fd->fd_sys, offset, SEEK_SET);
- }
- err = _cwrite(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* write from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
- lseek(fd->fd_sys, fd->fp_ind, SEEK_SET);
- }
- err = _cwrite(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_piofs/Makefile.mk b/src/mpi/romio/adio/ad_piofs/Makefile.mk
deleted file mode 100644
index 4bcbd61..0000000
--- a/src/mpi/romio/adio/ad_piofs/Makefile.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_PIOFS
-
-noinst_HEADERS += adio/ad_piofs/ad_piofs.h
-
-romio_other_sources += \
- adio/ad_piofs/ad_piofs_read.c \
- adio/ad_piofs/ad_piofs_open.c \
- adio/ad_piofs/ad_piofs_write.c \
- adio/ad_piofs/ad_piofs_fcntl.c \
- adio/ad_piofs/ad_piofs_hints.c \
- adio/ad_piofs/ad_piofs.c
-
-endif BUILD_AD_PIOFS
-
diff --git a/src/mpi/romio/adio/ad_piofs/README b/src/mpi/romio/adio/ad_piofs/README
deleted file mode 100644
index 933677b..0000000
--- a/src/mpi/romio/adio/ad_piofs/README
+++ /dev/null
@@ -1 +0,0 @@
-This code is no longer supported.
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs.c b/src/mpi/romio/adio/ad_piofs/ad_piofs.c
deleted file mode 100644
index 726bbf1..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_PIOFS_operations = {
- ADIOI_PIOFS_Open, /* Open */
- ADIOI_PIOFS_ReadContig, /* ReadContig */
- ADIOI_PIOFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_PIOFS_Fcntl, /* Fcntl */
- ADIOI_PIOFS_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_PIOFS_WriteStrided, /* WriteStrided */
- ADIOI_GEN_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_GEN_Flush, /* Flush */
- ADIOI_GEN_Resize, /* Resize */
- ADIOI_GEN_Delete, /* Delete */
- ADIOI_PIOFS_Feature,
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs.h b/src/mpi/romio/adio/ad_piofs/ad_piofs.h
deleted file mode 100644
index e9b74c9..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-/* contains definitions, declarations, and macros specific to the
- implementation of ADIO on PIOFS */
-
-#ifndef AD_PIOFS_INCLUDE
-#define AD_PIOFS_INCLUDE
-
-#include <unistd.h>
-#include <sys/uio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <piofs/piofs_ioctl.h>
-#include "adio.h"
-
-void ADIOI_PIOFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_PIOFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PIOFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PIOFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_PIOFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PIOFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
-
-void ADIOI_PIOFS_Feature(ADIO_File fd, int flag);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_fcntl.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_fcntl.c
deleted file mode 100644
index 7d4a37c..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_fcntl.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-#include "adio_extern.h"
-
-void ADIOI_PIOFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code)
-{
- MPI_Datatype copy_etype, copy_filetype;
- int i, ntimes, err;
- ADIO_Offset curr_fsize, alloc_size, size, len, done;
- ADIO_Status status;
- char *buf;
- piofs_change_view_t *piofs_change_view;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_PIOFS_FCNTL";
-#endif
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- fcntl_struct->fsize = llseek(fd->fd_sys, 0, SEEK_END);
- if (fd->fp_sys_posn != -1)
- llseek(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
- if (fcntl_struct->fsize == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- piofs_change_view = (piofs_change_view_t *)
- ADIOI_Malloc(sizeof(piofs_change_view_t));
- piofs_change_view->Vbs = piofs_change_view->Vn =
- piofs_change_view->Hbs = piofs_change_view->Hn = 1;
- piofs_change_view->subfile = 0;
- piofs_change_view->flags = (fcntl_struct->atomicity == 0)
- ? (ACTIVE | NORMAL) : (ACTIVE | CAUTIOUS);
- err = piofsioctl(fd->fd_sys, PIOFS_CHANGE_VIEW, piofs_change_view);
- ADIOI_Free(piofs_change_view);
- fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1;
- if (err == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- default:
- FPRINTF(stderr, "Unknown flag passed to ADIOI_PIOFS_Fcntl\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
-}
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_features.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_features.c
deleted file mode 100644
index f3b0df6..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_features.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-int ADIOI_PIOFS_Features(int flag)
-{
- switch(flag) {
- case ADIO_LOCKS:
- case ADIO_SHARED_FP:
- case ADIO_ATOMIC_MODE:
- case ADIO_DATA_SIEVING_WRITES:
- case ADIO_SCALABLE_OPEN:
- default:
- return 0;
- break;
- }
-}
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_hints.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_hints.c
deleted file mode 100644
index b21785e..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_hints.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-
-void ADIOI_PIOFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
-{
- piofs_create_t piofs_create;
- piofs_statfs_t piofs_statfs;
- char *value, *path, *slash;
- int flag, tmp_val, str_factor=-1, str_unit=-1, start_iodev=-1;
- int err, myrank, perm, old_mask, nioservers;
-
- if ((fd->info) == MPI_INFO_NULL) {
- /* This must be part of the open call. can set striping parameters
- if necessary. */
- MPI_Info_create(&(fd->info));
-
- /* has user specified striping parameters
- and do they have the same value on all processes? */
- if (users_info != MPI_INFO_NULL) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- ADIOI_Info_get(users_info, "striping_factor", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_factor=atoi(value);
- tmp_val = str_factor;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != str_factor) {
- FPRINTF(stderr, "ADIOI_PIOFS_SetInfo: the value for key \"striping_factor\" must be the same on all processes\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
- }
-
- ADIOI_Info_get(users_info, "striping_unit", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_unit=atoi(value);
- tmp_val = str_unit;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != str_unit) {
- FPRINTF(stderr, "ADIOI_PIOFS_SetInfo: the value for key \"striping_unit\" must be the same on all processes\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
- }
-
- ADIOI_Info_get(users_info, "start_iodevice", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- start_iodev=atoi(value);
- tmp_val = start_iodev;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != start_iodev) {
- FPRINTF(stderr, "ADIOI_PIOFS_SetInfo: the value for key \"start_iodevice\" must be the same on all processes\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
- }
-
- ADIOI_Free(value);
-
- /* if user has specified striping info, process 0 tries to set it */
- if ((str_factor > 0) || (str_unit > 0) || (start_iodev >= 0)) {
- MPI_Comm_rank(fd->comm, &myrank);
- if (!myrank) {
- int len;
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- /* to find out the number of I/O servers, I need
- the path to the directory containing the file */
-
- path = ADIOI_Strdup(fd->filename);
- len = strlen(path) + 1;
- slash = strrchr(path, '/');
- if (!slash) ADIOI_Strncpy(path, ".", len);
- else {
- if (slash == path) *(path + 1) = '\0';
- else *slash = '\0';
- }
- ADIOI_Strncpy(piofs_statfs.name, path, len);
- err = piofsioctl(0, PIOFS_STATFS, &piofs_statfs);
- nioservers = (err) ? -1 : piofs_statfs.f_nodes;
-
- ADIOI_Free(path);
-
- str_factor = MPL_MIN(nioservers, str_factor);
- if (start_iodev >= nioservers) start_iodev = -1;
-
- ADIOI_Strncpy(piofs_create.name, fd->filename, len);
- piofs_create.bsu = (str_unit > 0) ? str_unit : -1;
- piofs_create.cells = (str_factor > 0) ? str_factor : -1;
- piofs_create.permissions = perm;
- piofs_create.base_node = (start_iodev >= 0) ?
- start_iodev : -1;
- piofs_create.flags = 0;
-
- err = piofsioctl(0, PIOFS_CREATE, &piofs_create);
- }
- MPI_Barrier(fd->comm);
- }
- }
- }
-
- /* set the values for collective I/O and data sieving parameters */
- ADIOI_GEN_SetInfo(fd, users_info, error_code);
-
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_open.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_open.c
deleted file mode 100644
index 4b60daa..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_open.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-
-void ADIOI_PIOFS_Open(ADIO_File fd, int *error_code)
-{
- int amode, perm, old_mask, err;
- piofs_fstat_t piofs_fstat;
- char *value;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_PIOFS_OPEN";
-#endif
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = 0;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- fd->fd_sys = open(fd->filename, amode, perm);
- fd->fd_direct = -1;
-
- llseek(fd->fd_sys, 0, SEEK_SET);
-/* required to initiate use of 64-bit offset */
-
- if (fd->fd_sys != -1) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- /* get file striping information and set it in info */
- err = piofsioctl(fd->fd_sys, PIOFS_FSTAT, &piofs_fstat);
-
- if (!err) {
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", piofs_fstat.st_bsu);
- ADIOI_Info_set(fd->info, "striping_unit", value);
-
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", piofs_fstat.st_cells);
- ADIOI_Info_set(fd->info, "striping_factor", value);
-
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", piofs_fstat.st_base_node);
- ADIOI_Info_set(fd->info, "start_iodevice", value);
- }
- ADIOI_Free(value);
-
- if (fd->access_mode & ADIO_APPEND)
- fd->fp_ind = fd->fp_sys_posn = llseek(fd->fd_sys, 0, SEEK_END);
- }
-
- if (fd->fd_sys == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(ADIO_FILE_NULL, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_read.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_read.c
deleted file mode 100644
index 2785486..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_read.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-
-void ADIOI_PIOFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_PIOFS_READCONTIG";
-#endif
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
- llseek(fd->fd_sys, offset, SEEK_SET);
- }
- err = read(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* read from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
- llseek(fd->fd_sys, fd->fp_ind, SEEK_SET);
- }
- err = read(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_piofs/ad_piofs_write.c b/src/mpi/romio/adio/ad_piofs/ad_piofs_write.c
deleted file mode 100644
index ffa5a87..0000000
--- a/src/mpi/romio/adio/ad_piofs/ad_piofs_write.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_piofs.h"
-#include "adio_extern.h"
-
-void ADIOI_PIOFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_PIOFS_WRITECONTIG";
-#endif
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
- llseek(fd->fd_sys, offset, SEEK_SET);
- }
- err = write(fd->fd_sys, buf, len);
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* write from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
- llseek(fd->fd_sys, fd->fp_ind, SEEK_SET);
- }
- err = write(fd->fd_sys, buf, len);
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
-
-
-
-void ADIOI_PIOFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
-/* Since PIOFS does not support file locking, can't do buffered writes
- as on Unix */
-
-/* offset is in units of etype relative to the filetype. */
-
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- struct iovec *iov;
- int i, j, k, err=-1, bwr_size, fwr_size=0, st_index=0;
- int num, size, sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent, indx;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset off, disp;
- int flag, new_bwr_size, new_fwr_size, err_flag=0;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_PIOFS_WRITESTRIDED";
-#endif
-
- if (fd->atomicity) {
- FPRINTF(stderr, "ROMIO cannot guarantee atomicity of noncontiguous accesses in atomic mode, as PIOFS doesn't support file locking. Use nonatomic mode and its associated semantics.\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
-
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- if (!buftype_is_contig && filetype_is_contig) {
-
-/* noncontiguous in memory, contiguous in file. use writev */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
-/* There is a limit of 16 on the number of iovecs for readv/writev! */
-
- iov = (struct iovec *) ADIOI_Malloc(16*sizeof(struct iovec));
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- off = fd->disp + etype_size * offset;
- llseek(fd->fd_sys, off, SEEK_SET);
- }
- else off = llseek(fd->fd_sys, fd->fp_ind, SEEK_SET);
-
- k = 0;
- for (j=0; j<count; j++)
- for (i=0; i<flat_buf->count; i++) {
- iov[k].iov_base = ((char *) buf) + j*buftype_extent +
- flat_buf->indices[i];
- iov[k].iov_len = flat_buf->blocklens[i];
- /*FPRINTF(stderr, "%d %d\n", iov[k].iov_base, iov[k].iov_len);*/
-
- off += flat_buf->blocklens[i];
- k = (k+1)%16;
-
- if (!k) {
- err = writev(fd->fd_sys, iov, 16);
- if (err == -1) err_flag = 1;
- }
- }
-
- if (k) {
- err = writev(fd->fd_sys, iov, k);
- if (err == -1) err_flag = 1;
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
-
- ADIOI_Free(iov);
- if (err_flag) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- } /* if (!buftype_is_contig && filetype_is_contig) ... */
-
- else { /* noncontiguous in file */
-
-/* split up into several contiguous writes */
-
-/* find starting location in the file */
-
-/* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent + flat_file->blocklens[i]
- >= offset) {
- st_index = i;
- fwr_size = disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent
- + flat_file->blocklens[i] - offset;
- flag = 1;
- break;
- }
- }
- }
- }
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- fwr_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + (ADIO_Offset) n_filetypes*filetype_extent + abs_off_in_filetype;
- }
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- i = 0;
- j = st_index;
- off = offset;
- fwr_size = MPL_MIN(fwr_size, bufsize);
- while (i < bufsize) {
- if (fwr_size) {
- /* TYPE_UB and TYPE_LB can result in
- fwr_size = 0. save system call in such cases */
- llseek(fd->fd_sys, off, SEEK_SET);
- err = write(fd->fd_sys, ((char *) buf) + i, fwr_size);
- if (err == -1) err_flag = 1;
- }
- i += fwr_size;
-
- if (off + fwr_size < disp + flat_file->indices[j] +
- flat_file->blocklens[j] + (ADIO_Offset) n_filetypes*filetype_extent)
- off += fwr_size;
- /* did not reach end of contiguous block in filetype.
- no more I/O needed. off is incremented by fwr_size. */
- else {
- if (j < (flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- off = disp + flat_file->indices[j] +
- (ADIO_Offset) n_filetypes*filetype_extent;
- fwr_size = MPL_MIN(flat_file->blocklens[j], bufsize-i);
- }
- }
- }
- else {
-/* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- k = num = buf_count = 0;
- indx = flat_buf->indices[0];
- j = st_index;
- off = offset;
- bwr_size = flat_buf->blocklens[0];
-
- while (num < bufsize) {
- size = MPL_MIN(fwr_size, bwr_size);
- if (size) {
- llseek(fd->fd_sys, off, SEEK_SET);
- err = write(fd->fd_sys, ((char *) buf) + indx, size);
- if (err == -1) err_flag = 1;
- }
-
- new_fwr_size = fwr_size;
- new_bwr_size = bwr_size;
-
- if (size == fwr_size) {
-/* reached end of contiguous block in file */
- if (j < (flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
-
- off = disp + flat_file->indices[j] +
- (ADIO_Offset) n_filetypes*filetype_extent;
-
- new_fwr_size = flat_file->blocklens[j];
- if (size != bwr_size) {
- indx += size;
- new_bwr_size -= size;
- }
- }
-
- if (size == bwr_size) {
-/* reached end of contiguous block in memory */
-
- k = (k + 1)%flat_buf->count;
- buf_count++;
- indx = buftype_extent*(buf_count/flat_buf->count) +
- flat_buf->indices[k];
- new_bwr_size = flat_buf->blocklens[k];
- if (size != fwr_size) {
- off += size;
- new_fwr_size -= size;
- }
- }
- num += size;
- fwr_size = new_fwr_size;
- bwr_size = new_bwr_size;
- }
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
- if (err_flag) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- }
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/Makefile.mk b/src/mpi/romio/adio/ad_pvfs/Makefile.mk
deleted file mode 100644
index 50e7bd0..0000000
--- a/src/mpi/romio/adio/ad_pvfs/Makefile.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_PVFS
-
-noinst_HEADERS += adio/ad_pvfs/ad_pvfs.h
-
-romio_other_sources += \
- adio/ad_pvfs/ad_pvfs_close.c \
- adio/ad_pvfs/ad_pvfs_read.c \
- adio/ad_pvfs/ad_pvfs_open.c \
- adio/ad_pvfs/ad_pvfs_write.c \
- adio/ad_pvfs/ad_pvfs_fcntl.c \
- adio/ad_pvfs/ad_pvfs_flush.c \
- adio/ad_pvfs/ad_pvfs_resize.c \
- adio/ad_pvfs/ad_pvfs_hints.c \
- adio/ad_pvfs/ad_pvfs_delete.c \
- adio/ad_pvfs/ad_pvfs.c
-
-endif BUILD_AD_PVFS
-
-
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs.c
deleted file mode 100644
index 27a3df8..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_PVFS_operations = {
- ADIOI_PVFS_Open, /* Open */
- ADIOI_PVFS_ReadContig, /* ReadContig */
- ADIOI_PVFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_PVFS_Fcntl, /* Fcntl */
- ADIOI_PVFS_SetInfo, /* SetInfo */
- ADIOI_PVFS_ReadStrided, /* ReadStrided */
- ADIOI_PVFS_WriteStrided, /* WriteStrided */
- ADIOI_PVFS_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_PVFS_Flush, /* Flush */
- ADIOI_PVFS_Resize, /* Resize */
- ADIOI_PVFS_Delete, /* Delete */
- ADIOI_PVFS_Feature, /* Features */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs.h b/src/mpi/romio/adio/ad_pvfs/ad_pvfs.h
deleted file mode 100644
index 88e1a9f..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_PVFS_INCLUDE
-#define AD_PVFS_INCLUDE
-
-#ifndef ROMIOCONF_H_INCLUDED
-#include "romioconf.h"
-#define ROMIOCONF_H_INCLUDED
-#endif
-#ifdef ROMIO_PVFS_NEEDS_INT64_DEFINITION
-typedef long long int int64_t;
-#endif
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <fcntl.h>
-#ifdef HAVE_PVFS_H
-#include <pvfs.h>
-#endif
-#include "adio.h"
-
-void ADIOI_PVFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_PVFS_Close(ADIO_File fd, int *error_code);
-void ADIOI_PVFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PVFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PVFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_PVFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PVFS_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_PVFS_Flush(ADIO_File fd, int *error_code);
-void ADIOI_PVFS_Delete(char *filename, int *error_code);
-void ADIOI_PVFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
-void ADIOI_PVFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
-
-
-#endif
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_close.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_close.c
deleted file mode 100644
index c2da2e3..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_close.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-void ADIOI_PVFS_Close(ADIO_File fd, int *error_code)
-{
- int err;
- static char myname[] = "ADIOI_PVFS_CLOSE";
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_close_a, 0, NULL );
-#endif
- err = pvfs_close(fd->fd_sys);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_close_b, 0, NULL );
-#endif
- fd->fd_sys = -1;
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_delete.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_delete.c
deleted file mode 100644
index 0e322ad..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_delete.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-#include "adio.h"
-
-void ADIOI_PVFS_Delete(char *filename, int *error_code)
-{
- int err;
- static char myname[] = "ADIOI_PVFS_DELETE";
-
- err = pvfs_unlink(filename);
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_fcntl.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_fcntl.c
deleted file mode 100644
index eeff250..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_fcntl.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-#include "adio_extern.h"
-
-void ADIOI_PVFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
- int *error_code)
-{
- static char myname[] = "ADIOI_PVFS_FCNTL";
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- fcntl_struct->fsize = pvfs_lseek64(fd->fd_sys, 0, SEEK_END);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- if (fd->fp_sys_posn != -1) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
- if (fcntl_struct->fsize == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- fd->atomicity = 0;
- /* --BEGIN ERROR HANDLING-- */
- if (fcntl_struct->atomicity != 0) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_UNSUPPORTED_OPERATION,
- "PVFS does not support atomic mode",
- 0);
- return;
- }
- /* --END ERROR HANDLING-- */
- break;
-
- default:
- /* --BEGIN ERROR HANDLING-- */
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_ARG,
- "**flag", "**flag %d", flag);
- return;
- /* --END ERROR HANDLING-- */
- }
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_flush.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_flush.c
deleted file mode 100644
index 340f0cb..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_flush.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-void ADIOI_PVFS_Flush(ADIO_File fd, int *error_code)
-{
- int err, rank, dummy=0, dummy_in=0;
- static char myname[] = "ADIOI_PVFS_FLUSH";
-
- /* a collective routine: because we do not cache data in PVFS1, one process
- * can initiate the fsync operation and broadcast the result to the others.
- * One catch: MPI_File_sync has special meaning with respect to file system
- * consistency. Ensure no clients have outstanding write operations.
- */
-
- MPI_Comm_rank(fd->comm, &rank);
- MPI_Reduce(&dummy_in, &dummy, 1, MPI_INT, MPI_SUM,
- fd->hints->ranklist[0], fd->comm);
- if (rank == fd->hints->ranklist[0]) {
- err = pvfs_fsync(fd->fd_sys);
- }
- MPI_Bcast(&err, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_hints.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_hints.c
deleted file mode 100644
index fdc06ed..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_hints.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-void ADIOI_PVFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
-{
- char *value;
- int flag, tmp_val, str_factor=-1, str_unit=-1, start_iodev=-1;
- static char myname[] = "ADIOI_PVFS_SETINFO";
-
- if ((fd->info) == MPI_INFO_NULL) {
- /* This must be part of the open call. can set striping parameters
- if necessary. */
- MPI_Info_create(&(fd->info));
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_read", "disable");
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_write", "disable");
- fd->hints->fs_hints.pvfs.listio_read = ADIOI_HINT_DISABLE;
- fd->hints->fs_hints.pvfs.listio_write = ADIOI_HINT_DISABLE;
-
- /* has user specified any pvfs-specific hints (striping params, listio)
- and do they have the same value on all processes? */
- if (users_info != MPI_INFO_NULL) {
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- ADIOI_Info_get(users_info, "striping_factor", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_factor=atoi(value);
- tmp_val = str_factor;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != str_factor) {
- /* --BEGIN ERROR HANDLING-- */
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "striping_factor",
- error_code);
- return;
- /* --END ERROR HANDLING-- */
- }
- else ADIOI_Info_set(fd->info, "striping_factor", value);
- }
-
- ADIOI_Info_get(users_info, "striping_unit", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- str_unit=atoi(value);
- tmp_val = str_unit;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != str_unit) {
- /* --BEGIN ERROR HANDLING-- */
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "striping_unit",
- error_code);
- return;
- /* --END ERROR HANDLING-- */
- }
- else ADIOI_Info_set(fd->info, "striping_unit", value);
- }
-
- ADIOI_Info_get(users_info, "start_iodevice", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- start_iodev=atoi(value);
- tmp_val = start_iodev;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != start_iodev) {
- /* --BEGIN ERROR HANDLING-- */
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "start_iodevice",
- error_code);
- return;
- /* --END ERROR HANDLING-- */
- }
- else ADIOI_Info_set(fd->info, "start_iodevice", value);
- }
-
- ADIOI_Info_get(users_info, "romio_pvfs_listio_read",
- MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- if ( !strcmp(value, "enable") || !strcmp(value, "ENABLE"))
- {
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_read", value);
- fd->hints->fs_hints.pvfs.listio_read = ADIOI_HINT_ENABLE;
- } else if ( !strcmp(value, "disable") || !strcmp(value, "DISABLE"))
- {
- ADIOI_Info_set(fd->info , "romio_pvfs_listio_read", value);
- fd->hints->fs_hints.pvfs.listio_read = ADIOI_HINT_DISABLE;
- }
- else if ( !strcmp(value, "automatic") || !strcmp(value, "AUTOMATIC"))
- {
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_read", value);
- fd->hints->fs_hints.pvfs.listio_read = ADIOI_HINT_AUTO;
- }
- tmp_val = fd->hints->fs_hints.pvfs.listio_read;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != fd->hints->fs_hints.pvfs.listio_read) {
- /* --BEGIN ERROR HANDLING-- */
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "romio_pvfs_listio_read",
- error_code);
- return;
- /* --END ERROR HANDLING-- */
- }
- }
- ADIOI_Info_get(users_info, "romio_pvfs_listio_write", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag) {
- if ( !strcmp(value, "enable") || !strcmp(value, "ENABLE"))
- {
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_write", value);
- fd->hints->fs_hints.pvfs.listio_write = ADIOI_HINT_ENABLE;
- } else if ( !strcmp(value, "disable") || !strcmp(value, "DISABLE"))
- {
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_write", value);
- fd->hints->fs_hints.pvfs.listio_write = ADIOI_HINT_DISABLE;
- }
- else if ( !strcmp(value, "automatic") || !strcmp(value, "AUTOMATIC"))
- {
- ADIOI_Info_set(fd->info, "romio_pvfs_listio_write", value);
- fd->hints->fs_hints.pvfs.listio_write = ADIOI_HINT_AUTO;
- }
- tmp_val = fd->hints->fs_hints.pvfs.listio_write;
- MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
- if (tmp_val != fd->hints->fs_hints.pvfs.listio_write) {
- /* --BEGIN ERROR HANDLING-- */
- MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
- "romio_pvfs_listio_write",
- error_code);
- return;
- /* --END ERROR HANDLING-- */
- }
- }
- ADIOI_Free(value);
- }
- }
-
- /* set the values for collective I/O and data sieving parameters */
- ADIOI_GEN_SetInfo(fd, users_info, error_code);
-
- *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_open.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_open.c
deleted file mode 100644
index 6773a27..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_open.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-void ADIOI_PVFS_Open(ADIO_File fd, int *error_code)
-{
- int perm, amode, old_mask, flag;
- char *value;
- /* some really old versions of pvfs may not have a release nr */
- /* we changed the structure of pvfs_filestat in pvfs-1.5.7 */
- struct pvfs_filestat pstat = {-1,-1,-1};
- static char myname[] = "ADIOI_PVFS_OPEN";
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = O_META;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
-
- ADIOI_Info_get(fd->info, "striping_factor", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (atoi(value) > 0)) pstat.pcount = atoi(value);
-
- ADIOI_Info_get(fd->info, "striping_unit", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (atoi(value) > 0)) pstat.ssize = atoi(value);
-
- ADIOI_Info_get(fd->info, "start_iodevice", MPI_MAX_INFO_VAL,
- value, &flag);
- if (flag && (atoi(value) >= 0)) pstat.base = atoi(value);
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_open_a, 0, NULL );
-#endif
- fd->fd_sys = pvfs_open64(fd->filename, amode, perm, &pstat, NULL);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_open_b, 0, NULL );
-#endif
- fd->fd_direct = -1;
-
- if ((fd->fd_sys != -1) && (fd->access_mode & ADIO_APPEND)) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- fd->fp_ind = fd->fp_sys_posn = pvfs_lseek64(fd->fd_sys, 0, SEEK_END);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- }
-
- if (fd->fd_sys != -1) {
- pvfs_ioctl(fd->fd_sys, GETMETA, &pstat);
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", pstat.pcount);
- ADIOI_Info_set(fd->info, "striping_factor", value);
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", pstat.ssize);
- ADIOI_Info_set(fd->info, "striping_unit", value);
- MPL_snprintf(value, MPI_MAX_INFO_VAL+1, "%d", pstat.base);
- ADIOI_Info_set(fd->info, "start_iodevice", value);
- }
-
- ADIOI_Free(value);
-
- if (fd->fd_sys == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_read.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_read.c
deleted file mode 100644
index 87b4394..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_read.c
+++ /dev/null
@@ -1,781 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "adio.h"
-#include "adio_extern.h"
-#include "ad_pvfs.h"
-
-#ifdef HAVE_PVFS_LISTIO
-void ADIOI_PVFS_ReadStridedListIO(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-#endif
-
-void ADIOI_PVFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
- static char myname[] = "ADIOI_PVFS_READCONTIG";
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, offset, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- err = pvfs_read(fd->fd_sys, buf, len);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- if (err>0)
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* read from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- err = pvfs_read(fd->fd_sys, buf, len);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- if (err > 0)
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
-
-
-void ADIOI_PVFS_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
-#ifdef HAVE_PVFS_LISTIO
- if ( fd->hints->fs_hints.pvfs.listio_read == ADIOI_HINT_ENABLE) {
- ADIOI_PVFS_ReadStridedListIO(fd, buf, count, datatype, file_ptr_type,
- offset, status, error_code);
- return;
- }
-#endif
-/* If hint set to DISABLE or AUTOMATIC, don't use listio */
- ADIOI_GEN_ReadStrided(fd, buf, count, datatype, file_ptr_type,
- offset, status, error_code);
-}
-
-#ifdef HAVE_PVFS_LISTIO
-void ADIOI_PVFS_ReadStridedListIO(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
-/* offset is in units of etype relative to the filetype. */
-
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- int i, j, k, l, brd_size, frd_size=0, st_index=0;
- int sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset userbuf_off;
- ADIO_Offset off, disp, start_off;
- int flag, st_frd_size, st_n_filetypes;
- int new_brd_size, new_frd_size;
-
- int mem_list_count, file_list_count;
- char **mem_offsets;
- int64_t *file_offsets;
- int *mem_lengths;
- int32_t *file_lengths;
- int total_blks_to_read;
-
- int max_mem_list, max_file_list;
-
- int b_blks_read;
- int f_data_read;
- int size_read=0, n_read_lists, extra_blks;
-
- int end_brd_size, end_frd_size;
- int start_k, start_j, new_file_read, new_buffer_read;
- int start_mem_offset;
-
-#define MAX_ARRAY_SIZE 1024
-
-#ifndef PRINT_ERR_MESG
- static char myname[] = "ADIOI_PVFS_ReadStrided";
-#endif
-
- *error_code = MPI_SUCCESS; /* changed below if error */
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- if (!buftype_is_contig && filetype_is_contig) {
-
-/* noncontiguous in memory, contiguous in file. */
- int64_t file_offsets;
- int32_t file_lengths;
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind :
- fd->disp + etype_size * offset;
-
- file_list_count = 1;
- file_offsets = off;
- file_lengths = 0;
- total_blks_to_read = count*flat_buf->count;
- b_blks_read = 0;
-
- /* allocate arrays according to max usage */
- if (total_blks_to_read > MAX_ARRAY_SIZE)
- mem_list_count = MAX_ARRAY_SIZE;
- else mem_list_count = total_blks_to_read;
- mem_offsets = (char**)ADIOI_Malloc(mem_list_count*sizeof(char*));
- mem_lengths = (int*)ADIOI_Malloc(mem_list_count*sizeof(int));
-
- j = 0;
- /* step through each block in memory, filling memory arrays */
- while (b_blks_read < total_blks_to_read) {
- for (i=0; i<flat_buf->count; i++) {
- mem_offsets[b_blks_read % MAX_ARRAY_SIZE] =
- (char*)((char *)buf + j*buftype_extent + flat_buf->indices[i]);
- mem_lengths[b_blks_read % MAX_ARRAY_SIZE] =
- flat_buf->blocklens[i];
- file_lengths += flat_buf->blocklens[i];
- b_blks_read++;
- if (!(b_blks_read % MAX_ARRAY_SIZE) ||
- (b_blks_read == total_blks_to_read)) {
-
- /* in the case of the last read list call,
- adjust mem_list_count */
- if (b_blks_read == total_blks_to_read) {
- mem_list_count = total_blks_to_read % MAX_ARRAY_SIZE;
- /* in case last read list call fills max arrays */
- if (!mem_list_count) mem_list_count = MAX_ARRAY_SIZE;
- }
-
- pvfs_read_list(fd->fd_sys ,mem_list_count, mem_offsets,
- mem_lengths, file_list_count,
- &file_offsets, &file_lengths);
-
- /* in the case of the last read list call, leave here */
- if (b_blks_read == total_blks_to_read) break;
-
- file_offsets += file_lengths;
- file_lengths = 0;
- }
- } /* for (i=0; i<flat_buf->count; i++) */
- j++;
- } /* while (b_blks_read < total_blks_to_read) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
- /* This isa temporary way of filling in status. The right way is to
- keep tracke of how much data was actually read adn placed in buf
- by ADIOI_BUFFERED_READ. */
-#endif
-
- return;
- } /* if (!buftype_is_contig && filetype_is_contig) */
-
- /* know file is noncontiguous from above */
- /* noncontiguous in file */
-
- /* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- disp = fd->disp;
-
- /* for each case - ADIO_Individual pointer or explicit, find the file
- offset in bytes (offset), n_filetypes (how many filetypes into
- file to start), frd_size (remaining amount of data in present
- file block), and st_index (start point in terms of blocks in
- starting filetype) */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent +
- flat_file->blocklens[i] >= offset) {
- st_index = i;
- frd_size = (int) (disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent
- + flat_file->blocklens[i] - offset);
- flag = 1;
- break;
- }
- }
- } /* while (!flag) */
- } /* if (file_ptr_type == ADIO_INDIVIDUAL) */
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- frd_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + (ADIO_Offset) n_filetypes*filetype_extent +
- abs_off_in_filetype;
- } /* else [file_ptr_type != ADIO_INDIVIDUAL] */
-
- start_off = offset;
- st_frd_size = frd_size;
- st_n_filetypes = n_filetypes;
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- int mem_lengths;
- char *mem_offsets;
-
- i = 0;
- j = st_index;
- n_filetypes = st_n_filetypes;
-
- mem_list_count = 1;
-
- /* determine how many blocks in file to read */
- f_data_read = MPL_MIN(st_frd_size, bufsize);
- total_blks_to_read = 1;
- j++;
- while (f_data_read < bufsize) {
- f_data_read += flat_file->blocklens[j];
- total_blks_to_read++;
- if (j<(flat_file->count-1)) j++;
- else j = 0;
- }
-
- j = st_index;
- n_filetypes = st_n_filetypes;
- n_read_lists = total_blks_to_read/MAX_ARRAY_SIZE;
- extra_blks = total_blks_to_read%MAX_ARRAY_SIZE;
-
- mem_offsets = buf;
- mem_lengths = 0;
-
- /* if at least one full readlist, allocate file arrays
- at max array size and don't free until very end */
- if (n_read_lists) {
- file_offsets = (int64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int64_t));
- file_lengths = (int32_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int32_t));
- }
- /* if there's no full readlist allocate file arrays according
- to needed size (extra_blks) */
- else {
- file_offsets = (int64_t*)ADIOI_Malloc(extra_blks*
- sizeof(int64_t));
- file_lengths = (int32_t*)ADIOI_Malloc(extra_blks*
- sizeof(int32_t));
- }
-
- /* for file arrays that are of MAX_ARRAY_SIZE, build arrays */
- for (i=0; i<n_read_lists; i++) {
- file_list_count = MAX_ARRAY_SIZE;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_frd_size;
- mem_lengths = st_frd_size;
- }
- for (k=0; k<MAX_ARRAY_SIZE; k++) {
- if (i || k) {
- file_offsets[k] = disp + n_filetypes*filetype_extent
- + flat_file->indices[j];
- file_lengths[k] = flat_file->blocklens[j];
- mem_lengths += file_lengths[k];
- }
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<MAX_ARRAY_SIZE; k++) */
- pvfs_read_list(fd->fd_sys, mem_list_count,
- &mem_offsets, &mem_lengths,
- file_list_count, file_offsets,
- file_lengths);
- mem_offsets += mem_lengths;
- mem_lengths = 0;
- } /* for (i=0; i<n_read_lists; i++) */
-
- /* for file arrays smaller than MAX_ARRAY_SIZE (last read_list call) */
- if (extra_blks) {
- file_list_count = extra_blks;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_frd_size;
- }
- for (k=0; k<extra_blks; k++) {
- if(i || k) {
- file_offsets[k] = disp + n_filetypes*filetype_extent +
- flat_file->indices[j];
- if (k == (extra_blks - 1)) {
- file_lengths[k] = bufsize - (int32_t) mem_lengths
- - (int32_t) mem_offsets + (int32_t) buf;
- }
- else file_lengths[k] = flat_file->blocklens[j];
- } /* if(i || k) */
- mem_lengths += file_lengths[k];
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<extra_blks; k++) */
- pvfs_read_list(fd->fd_sys, mem_list_count, &mem_offsets,
- &mem_lengths, file_list_count, file_offsets,
- file_lengths);
- }
- }
- else {
-/* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- size_read = 0;
- n_filetypes = st_n_filetypes;
- frd_size = st_frd_size;
- brd_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
- max_mem_list = 0;
- max_file_list = 0;
-
- /* run through and file max_file_list and max_mem_list so that you
- can allocate the file and memory arrays less than MAX_ARRAY_SIZE
- if possible */
-
- while (size_read < bufsize) {
- k = start_k;
- new_buffer_read = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k] +
- size_read) > bufsize) {
- end_brd_size = new_buffer_read +
- flat_buf->blocklens[k] - (bufsize - size_read);
- new_buffer_read = bufsize - size_read;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- else new_buffer_read = brd_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
- j = start_j;
- new_file_read = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_read < new_buffer_read)) {
- if(file_list_count) {
- if((new_file_read + flat_file->blocklens[j]) >
- new_buffer_read) {
- end_frd_size = new_buffer_read - new_file_read;
- new_file_read = new_buffer_read;
- j--;
- }
- else {
- new_file_read += flat_file->blocklens[j];
- end_frd_size = flat_file->blocklens[j];
- }
- }
- else {
- if (frd_size > new_buffer_read) {
- new_file_read = new_buffer_read;
- frd_size = new_file_read;
- }
- else new_file_read = frd_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_read < new_buffer_read) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_read = 0;
- mem_list_count = 0;
- while (new_buffer_read < new_file_read) {
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k]) >
- new_file_read) {
- end_brd_size = new_file_read - new_buffer_read;
- new_buffer_read = new_file_read;
- k--;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_read = brd_size;
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_read < new_file_read) */
- } /* if ((new_file_read < new_buffer_read) && (file_list_count
- == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
-
- /* fakes filling the readlist arrays of lengths found above */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- if(i) {
- if (i == (mem_list_count - 1)) {
- if (flat_buf->blocklens[k] == end_brd_size)
- brd_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- brd_size = flat_buf->blocklens[k] - end_brd_size;
- k--;
- buf_count--;
- }
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- if (i) {
- if (i == (file_list_count - 1)) {
- if (flat_file->blocklens[j] == end_frd_size)
- frd_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- frd_size = flat_file->blocklens[j] - end_frd_size;
- j--;
- }
- }
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
- size_read += new_buffer_read;
- start_k = k;
- start_j = j;
- if (max_mem_list < mem_list_count)
- max_mem_list = mem_list_count;
- if (max_file_list < file_list_count)
- max_file_list = file_list_count;
- } /* while (size_read < bufsize) */
-
- mem_offsets = (char **)ADIOI_Malloc(max_mem_list*sizeof(char *));
- mem_lengths = (int *)ADIOI_Malloc(max_mem_list*sizeof(int));
- file_offsets = (int64_t *)ADIOI_Malloc(max_file_list*sizeof(int64_t));
- file_lengths = (int32_t *)ADIOI_Malloc(max_file_list*sizeof(int32_t));
-
- size_read = 0;
- n_filetypes = st_n_filetypes;
- frd_size = st_frd_size;
- brd_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
-
- /* this section calculates mem_list_count and file_list_count
- and also finds the possibly odd sized last array elements
- in new_frd_size and new_brd_size */
-
- while (size_read < bufsize) {
- k = start_k;
- new_buffer_read = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k] +
- size_read) > bufsize) {
- end_brd_size = new_buffer_read +
- flat_buf->blocklens[k] - (bufsize - size_read);
- new_buffer_read = bufsize - size_read;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- else new_buffer_read = brd_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
- j = start_j;
- new_file_read = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_read < new_buffer_read)) {
- if(file_list_count) {
- if((new_file_read + flat_file->blocklens[j]) >
- new_buffer_read) {
- end_frd_size = new_buffer_read - new_file_read;
- new_file_read = new_buffer_read;
- j--;
- }
- else {
- new_file_read += flat_file->blocklens[j];
- end_frd_size = flat_file->blocklens[j];
- }
- }
- else {
- if (frd_size > new_buffer_read) {
- new_file_read = new_buffer_read;
- frd_size = new_file_read;
- }
- else new_file_read = frd_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_read < new_buffer_read) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_read = 0;
- mem_list_count = 0;
- while (new_buffer_read < new_file_read) {
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k]) >
- new_file_read) {
- end_brd_size = new_file_read - new_buffer_read;
- new_buffer_read = new_file_read;
- k--;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_read = brd_size;
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_read < new_file_read) */
- } /* if ((new_file_read < new_buffer_read) && (file_list_count
- == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
-
- /* fills the allocated readlist arrays */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- mem_offsets[i] = (char*)((char *)buf + buftype_extent*
- (buf_count/flat_buf->count) +
- (int)flat_buf->indices[k]);
- if(!i) {
- mem_lengths[0] = brd_size;
- mem_offsets[0] += flat_buf->blocklens[k] - brd_size;
- }
- else {
- if (i == (mem_list_count - 1)) {
- mem_lengths[i] = end_brd_size;
- if (flat_buf->blocklens[k] == end_brd_size)
- brd_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- brd_size = flat_buf->blocklens[k] - end_brd_size;
- k--;
- buf_count--;
- }
- }
- else {
- mem_lengths[i] = flat_buf->blocklens[k];
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- file_offsets[i] = disp + flat_file->indices[j] + n_filetypes *
- filetype_extent;
- if (!i) {
- file_lengths[0] = frd_size;
- file_offsets[0] += flat_file->blocklens[j] - frd_size;
- }
- else {
- if (i == (file_list_count - 1)) {
- file_lengths[i] = end_frd_size;
- if (flat_file->blocklens[j] == end_frd_size)
- frd_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- frd_size = flat_file->blocklens[j] - end_frd_size;
- j--;
- }
- }
- else file_lengths[i] = flat_file->blocklens[j];
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
-
- /*
- printf("about to call read_list in noncontig/noncontig\n");
- printf("offsets and lengths in terms of integers\n");
- printf("\nmem_list_count = %d\n", mem_list_count);
- for (i=0; i<mem_list_count; i++) {
- printf("mem_offsets[%2d] = %2d ", i, (int)(mem_offsets[i] - (int)buf)/4);
- printf("mem_lengths[%2d] = %2d\n", i, mem_lengths[i]/4);
- }
- printf("\nfile_list_count = %d\n", file_list_count);
- for (i=0; i<file_list_count; i++) {
- printf("file_offsets[%2d] = %2d ", i, (int)file_offsets[i]/4);
- printf("file_lengths[%2d] = %2d\n", i, file_lengths[i]/4);
- }
- printf("\n\n");
- */
- pvfs_read_list(fd->fd_sys,mem_list_count, mem_offsets,
- mem_lengths, file_list_count, file_offsets,
- file_lengths);
- size_read += new_buffer_read;
- start_k = k;
- start_j = j;
- } /* while (size_read < bufsize) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
- }
- ADIOI_Free(file_offsets);
- ADIOI_Free(file_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
- /* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually read and placed in buf
- by ADIOI_BUFFERED_READ. */
-#endif
-
-}
-#endif /* HAVE_PVFS_LISTIO */
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_resize.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_resize.c
deleted file mode 100644
index b4b9553..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_resize.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-
-void ADIOI_PVFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
-{
- int err;
- int rank;
- static char myname[] = "ADIOI_PVFS_RESIZE";
-
- /* because MPI_File_set_size is a collective operation, and PVFS1 clients
- * do not cache metadata locally, one client can resize and broadcast the
- * result to the others */
- MPI_Comm_rank(fd->comm, &rank);
- if (rank == fd->hints->ranklist[0]) {
- err = pvfs_ftruncate64(fd->fd_sys, size);
- }
- MPI_Bcast(&err, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_write.c b/src/mpi/romio/adio/ad_pvfs/ad_pvfs_write.c
deleted file mode 100644
index a1e4d18..0000000
--- a/src/mpi/romio/adio/ad_pvfs/ad_pvfs_write.c
+++ /dev/null
@@ -1,1162 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_pvfs.h"
-#include "adio_extern.h"
-
-#ifdef HAVE_PVFS_LISTIO
-void ADIOI_PVFS_WriteStridedListIO(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-#endif
-
-void ADIOI_PVFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- MPI_Count err=-1, datatype_size, len;
- static char myname[] = "ADIOI_PVFS_WRITECONTIG";
-
- MPI_Type_size_x(datatype, &datatype_size);
- len = datatype_size * count;
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- if (fd->fp_sys_posn != offset) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, offset, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys, buf, len);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err > 0)
- fd->fp_sys_posn = offset + err;
- /* individual file pointer not updated */
- }
- else { /* write from curr. location of ind. file pointer */
- if (fd->fp_sys_posn != fd->fp_ind) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys, buf, len);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err > 0)
- fd->fp_ind += err;
- fd->fp_sys_posn = fd->fp_ind;
- }
-
-#ifdef HAVE_STATUS_SET_BYTES
- if (err != -1) MPIR_Status_set_bytes(status, datatype, err);
-#endif
-
- if (err == -1) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-}
-
-
-
-void ADIOI_PVFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
-/* Since PVFS does not support file locking, can't do buffered writes
- as on Unix */
-
-/* offset is in units of etype relative to the filetype. */
-
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- int i, j, k, err=-1, bwr_size, fwr_size=0, st_index=0;
- int num, size, sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent, indx;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset off, disp;
- int flag, new_bwr_size, new_fwr_size, err_flag=0;
- static char myname[] = "ADIOI_PVFS_WRITESTRIDED";
-
-#ifdef HAVE_PVFS_LISTIO
- if ( fd->hints->fs_hints.pvfs.listio_write == ADIOI_HINT_ENABLE ) {
- ADIOI_PVFS_WriteStridedListIO(fd, buf, count, datatype,
- file_ptr_type, offset, status, error_code);
- return;
- }
-#endif
- /* if hint set to DISABLE or AUTOMATIC, don't use listio */
-
- /* --BEGIN ERROR HANDLING-- */
- if (fd->atomicity) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_INTERN,
- "Atomic mode set in PVFS I/O function", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
-
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- if (!buftype_is_contig && filetype_is_contig) {
- char *combine_buf, *combine_buf_ptr;
- ADIO_Offset combine_buf_remain;
-/* noncontiguous in memory, contiguous in file. use writev */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- /* allocate our "combine buffer" to pack data into before writing */
- combine_buf = (char *) ADIOI_Malloc(fd->hints->ind_wr_buffer_size);
- combine_buf_ptr = combine_buf;
- combine_buf_remain = fd->hints->ind_wr_buffer_size;
-
- /* seek to the right spot in the file */
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- off = fd->disp + etype_size * offset;
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, off, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
- else {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- off = pvfs_lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-
- /* loop through all the flattened pieces. combine into buffer until
- * no more will fit, then write.
- *
- * special case of a given piece being bigger than the combine buffer
- * is also handled.
- */
- for (j=0; j<count; j++) {
- for (i=0; i<flat_buf->count; i++) {
- if (flat_buf->blocklens[i] > combine_buf_remain && combine_buf != combine_buf_ptr) {
- /* there is data in the buffer; write out the buffer so far */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys,
- combine_buf,
- fd->hints->ind_wr_buffer_size - combine_buf_remain);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err == -1) err_flag = 1;
-
- /* reset our buffer info */
- combine_buf_ptr = combine_buf;
- combine_buf_remain = fd->hints->ind_wr_buffer_size;
- }
-
- /* TODO: heuristic for when to not bother to use combine buffer? */
- if (flat_buf->blocklens[i] >= combine_buf_remain) {
- /* special case: blocklen is as big as or bigger than the combine buf;
- * write directly
- */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys,
- ((char *) buf) + j*buftype_extent + flat_buf->indices[i],
- flat_buf->blocklens[i]);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err == -1) err_flag = 1;
- off += flat_buf->blocklens[i]; /* keep up with the final file offset too */
- }
- else {
- /* copy more data into combine buffer */
- memcpy(combine_buf_ptr,
- ((char *) buf) + j*buftype_extent + flat_buf->indices[i],
- flat_buf->blocklens[i]);
- combine_buf_ptr += flat_buf->blocklens[i];
- combine_buf_remain -= flat_buf->blocklens[i];
- off += flat_buf->blocklens[i]; /* keep up with the final file offset too */
- }
- }
- }
-
- if (combine_buf_ptr != combine_buf) {
- /* data left in buffer to write */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys,
- combine_buf,
- fd->hints->ind_wr_buffer_size - combine_buf_remain);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err == -1) err_flag = 1;
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
-
- ADIOI_Free(combine_buf);
-
- if (err_flag) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- } /* if (!buftype_is_contig && filetype_is_contig) ... */
-
- else { /* noncontiguous in file */
-
-/* split up into several contiguous writes */
-
-/* find starting location in the file */
-
-/* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
- disp = fd->disp;
-
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent + flat_file->blocklens[i]
- >= offset) {
- st_index = i;
- fwr_size = disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent
- + flat_file->blocklens[i] - offset;
- flag = 1;
- break;
- }
- }
- }
- }
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- fwr_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + (ADIO_Offset) n_filetypes*filetype_extent + abs_off_in_filetype;
- }
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- i = 0;
- j = st_index;
- off = offset;
- fwr_size = MPL_MIN(fwr_size, bufsize);
- while (i < bufsize) {
- if (fwr_size) {
- /* TYPE_UB and TYPE_LB can result in
- fwr_size = 0. save system call in such cases */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, off, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys, ((char *) buf) + i, fwr_size);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err == -1) err_flag = 1;
- }
- i += fwr_size;
-
- if (off + fwr_size < disp + flat_file->indices[j] +
- flat_file->blocklens[j] + (ADIO_Offset) n_filetypes*filetype_extent)
- off += fwr_size;
- /* did not reach end of contiguous block in filetype.
- no more I/O needed. off is incremented by fwr_size. */
- else {
- if (j < (flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- off = disp + flat_file->indices[j] +
- (ADIO_Offset) n_filetypes*filetype_extent;
- fwr_size = MPL_MIN(flat_file->blocklens[j], bufsize-i);
- }
- }
- }
- else {
-/* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- k = num = buf_count = 0;
- indx = flat_buf->indices[0];
- j = st_index;
- off = offset;
- bwr_size = flat_buf->blocklens[0];
-
- while (num < bufsize) {
- size = MPL_MIN(fwr_size, bwr_size);
- if (size) {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, off, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- err = pvfs_write(fd->fd_sys, ((char *) buf) + indx, size);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- if (err == -1) err_flag = 1;
- }
-
- new_fwr_size = fwr_size;
- new_bwr_size = bwr_size;
-
- if (size == fwr_size) {
-/* reached end of contiguous block in file */
- if (j < (flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
-
- off = disp + flat_file->indices[j] +
- (ADIO_Offset) n_filetypes*filetype_extent;
-
- new_fwr_size = flat_file->blocklens[j];
- if (size != bwr_size) {
- indx += size;
- new_bwr_size -= size;
- }
- }
-
- if (size == bwr_size) {
-/* reached end of contiguous block in memory */
-
- k = (k + 1)%flat_buf->count;
- buf_count++;
- indx = buftype_extent*(buf_count/flat_buf->count) +
- flat_buf->indices[k];
- new_bwr_size = flat_buf->blocklens[k];
- if (size != fwr_size) {
- off += size;
- new_fwr_size -= size;
- }
- }
- num += size;
- fwr_size = new_fwr_size;
- bwr_size = new_bwr_size;
- }
- }
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
- if (err_flag) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
- }
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
-}
-
-#ifdef HAVE_PVFS_LISTIO
-void ADIOI_PVFS_WriteStridedListIO(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
-/* Since PVFS does not support file locking, can't do buffered writes
- as on Unix */
-
-/* offset is in units of etype relative to the filetype. */
-
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- int i, j, k, err=-1, bwr_size, fwr_size=0, st_index=0;
- int size, sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset userbuf_off;
- ADIO_Offset off, disp, start_off;
- int flag, st_fwr_size, st_n_filetypes;
- int new_bwr_size, new_fwr_size, err_flag=0;
-
- int mem_list_count, file_list_count;
- char ** mem_offsets;
- int64_t *file_offsets;
- int *mem_lengths;
- int32_t *file_lengths;
- int total_blks_to_write;
-
- int max_mem_list, max_file_list;
-
- int b_blks_wrote;
- int f_data_wrote;
- int size_wrote=0, n_write_lists, extra_blks;
-
- int end_bwr_size, end_fwr_size;
- int start_k, start_j, new_file_write, new_buffer_write;
- int start_mem_offset;
-#define MAX_ARRAY_SIZE 1024
- static char myname[] = "ADIOI_PVFS_WRITESTRIDED";
-
-/* PFS file pointer modes are not relevant here, because PFS does
- not support strided accesses. */
-
- /* --BEGIN ERROR HANDLING-- */
- if (fd->atomicity) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_INTERN,
- "Atomic mode set in PVFS I/O function", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
-
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- if (!buftype_is_contig && filetype_is_contig) {
-
-/* noncontiguous in memory, contiguous in file. */
- int64_t file_offsets;
- int32_t file_lengths;
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- off = fd->disp + etype_size * offset;
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- pvfs_lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
- else {
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL );
-#endif
- off = pvfs_lseek64(fd->fd_sys, fd->fp_ind, SEEK_SET);
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL );
-#endif
- }
-
- file_list_count = 1;
- file_offsets = off;
- file_lengths = 0;
- total_blks_to_write = count*flat_buf->count;
- b_blks_wrote = 0;
-
- /* allocate arrays according to max usage */
- if (total_blks_to_write > MAX_ARRAY_SIZE)
- mem_list_count = MAX_ARRAY_SIZE;
- else mem_list_count = total_blks_to_write;
- mem_offsets = (char**)ADIOI_Malloc(mem_list_count*sizeof(char*));
- mem_lengths = (int*)ADIOI_Malloc(mem_list_count*sizeof(int));
-
- j = 0;
- /* step through each block in memory, filling memory arrays */
- while (b_blks_wrote < total_blks_to_write) {
- for (i=0; i<flat_buf->count; i++) {
- mem_offsets[b_blks_wrote % MAX_ARRAY_SIZE] =
- ((char*)buf + j*buftype_extent + flat_buf->indices[i]);
- mem_lengths[b_blks_wrote % MAX_ARRAY_SIZE] =
- flat_buf->blocklens[i];
- file_lengths += flat_buf->blocklens[i];
- b_blks_wrote++;
- if (!(b_blks_wrote % MAX_ARRAY_SIZE) ||
- (b_blks_wrote == total_blks_to_write)) {
-
- /* in the case of the last read list call,
- adjust mem_list_count */
- if (b_blks_wrote == total_blks_to_write) {
- mem_list_count = total_blks_to_write % MAX_ARRAY_SIZE;
- /* in case last read list call fills max arrays */
- if (!mem_list_count) mem_list_count = MAX_ARRAY_SIZE;
- }
-
- pvfs_write_list(fd->fd_sys ,mem_list_count, mem_offsets,
- mem_lengths, file_list_count,
- &file_offsets, &file_lengths);
-
- /* in the case of the last read list call, leave here */
- if (b_blks_wrote == total_blks_to_write) break;
-
- file_offsets += file_lengths;
- file_lengths = 0;
- }
- } /* for (i=0; i<flat_buf->count; i++) */
- j++;
- } /* while (b_blks_wrote < total_blks_to_write) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
-
- if (err_flag) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE, myname,
- __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-
- fd->fp_sys_posn = -1; /* clear this. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
- return;
- } /* if (!buftype_is_contig && filetype_is_contig) */
-
- /* already know that file is noncontiguous from above */
- /* noncontiguous in file */
-
-/* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- disp = fd->disp;
-
- /* for each case - ADIO_Individual pointer or explicit, find offset
- (file offset in bytes), n_filetypes (how many filetypes into file
- to start), fwr_size (remaining amount of data in present file
- block), and st_index (start point in terms of blocks in starting
- filetype) */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent +
- flat_file->blocklens[i] >= offset) {
- st_index = i;
- fwr_size = disp + flat_file->indices[i] +
- (ADIO_Offset) n_filetypes*filetype_extent
- + flat_file->blocklens[i] - offset;
- flag = 1;
- break;
- }
- }
- } /* while (!flag) */
- } /* if (file_ptr_type == ADIO_INDIVIDUAL) */
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- fwr_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + (ADIO_Offset) n_filetypes*filetype_extent +
- abs_off_in_filetype;
- } /* else [file_ptr_type != ADIO_INDIVIDUAL] */
-
- start_off = offset;
- st_fwr_size = fwr_size;
- st_n_filetypes = n_filetypes;
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- int mem_lengths;
- char *mem_offsets;
-
- i = 0;
- j = st_index;
- off = offset;
- n_filetypes = st_n_filetypes;
-
- mem_list_count = 1;
-
- /* determine how many blocks in file to read */
- f_data_wrote = MPL_MIN(st_fwr_size, bufsize);
- total_blks_to_write = 1;
- j++;
- while (f_data_wrote < bufsize) {
- f_data_wrote += flat_file->blocklens[j];
- total_blks_to_write++;
- if (j<(flat_file->count-1)) j++;
- else j = 0;
- }
-
- j = st_index;
- n_filetypes = st_n_filetypes;
- n_write_lists = total_blks_to_write/MAX_ARRAY_SIZE;
- extra_blks = total_blks_to_write%MAX_ARRAY_SIZE;
-
- mem_offsets = buf;
- mem_lengths = 0;
-
- /* if at least one full readlist, allocate file arrays
- at max array size and don't free until very end */
- if (n_write_lists) {
- file_offsets = (int64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int64_t));
- file_lengths = (int32_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int32_t));
- }
- /* if there's no full readlist allocate file arrays according
- to needed size (extra_blks) */
- else {
- file_offsets = (int64_t*)ADIOI_Malloc(extra_blks*
- sizeof(int64_t));
- file_lengths = (int32_t*)ADIOI_Malloc(extra_blks*
- sizeof(int32_t));
- }
-
- /* for file arrays that are of MAX_ARRAY_SIZE, build arrays */
- for (i=0; i<n_write_lists; i++) {
- file_list_count = MAX_ARRAY_SIZE;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_fwr_size;
- mem_lengths = st_fwr_size;
- }
- for (k=0; k<MAX_ARRAY_SIZE; k++) {
- if (i || k) {
- file_offsets[k] = disp + n_filetypes*filetype_extent
- + flat_file->indices[j];
- file_lengths[k] = flat_file->blocklens[j];
- mem_lengths += file_lengths[k];
- }
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<MAX_ARRAY_SIZE; k++) */
- pvfs_write_list(fd->fd_sys, mem_list_count,
- &mem_offsets, &mem_lengths,
- file_list_count, file_offsets,
- file_lengths);
- mem_offsets += mem_lengths;
- mem_lengths = 0;
- } /* for (i=0; i<n_write_lists; i++) */
-
- /* for file arrays smaller than MAX_ARRAY_SIZE (last read_list call) */
- if (extra_blks) {
- file_list_count = extra_blks;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_fwr_size;
- }
- for (k=0; k<extra_blks; k++) {
- if(i || k) {
- file_offsets[k] = disp + n_filetypes*filetype_extent +
- flat_file->indices[j];
- if (k == (extra_blks - 1)) {
- file_lengths[k] = bufsize - (int32_t) mem_lengths
- - (int32_t) mem_offsets + (int32_t) buf;
- }
- else file_lengths[k] = flat_file->blocklens[j];
- } /* if(i || k) */
- mem_lengths += file_lengths[k];
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<extra_blks; k++) */
- pvfs_write_list(fd->fd_sys, mem_list_count, &mem_offsets,
- &mem_lengths, file_list_count, file_offsets,
- file_lengths);
- }
- }
- else {
- /* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- size_wrote = 0;
- n_filetypes = st_n_filetypes;
- fwr_size = st_fwr_size;
- bwr_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
- max_mem_list = 0;
- max_file_list = 0;
-
- /* run through and file max_file_list and max_mem_list so that you
- can allocate the file and memory arrays less than MAX_ARRAY_SIZE
- if possible */
-
- while (size_wrote < bufsize) {
- k = start_k;
- new_buffer_write = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k] +
- size_wrote) > bufsize) {
- end_bwr_size = new_buffer_write +
- flat_buf->blocklens[k] - (bufsize - size_wrote);
- new_buffer_write = bufsize - size_wrote;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- else new_buffer_write = bwr_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
- j = start_j;
- new_file_write = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_write < new_buffer_write)) {
- if(file_list_count) {
- if((new_file_write + flat_file->blocklens[j]) >
- new_buffer_write) {
- end_fwr_size = new_buffer_write - new_file_write;
- new_file_write = new_buffer_write;
- j--;
- }
- else {
- new_file_write += flat_file->blocklens[j];
- end_fwr_size = flat_file->blocklens[j];
- }
- }
- else {
- if (fwr_size > new_buffer_write) {
- new_file_write = new_buffer_write;
- fwr_size = new_file_write;
- }
- else new_file_write = fwr_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_write = 0;
- mem_list_count = 0;
- while (new_buffer_write < new_file_write) {
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k]) >
- new_file_write) {
- end_bwr_size = new_file_write -
- new_buffer_write;
- new_buffer_write = new_file_write;
- k--;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_write = bwr_size;
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_write < new_file_write) */
- } /* if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
-
- /* fakes filling the writelist arrays of lengths found above */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- if(i) {
- if (i == (mem_list_count - 1)) {
- if (flat_buf->blocklens[k] == end_bwr_size)
- bwr_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- bwr_size = flat_buf->blocklens[k] - end_bwr_size;
- k--;
- buf_count--;
- }
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- if (i) {
- if (i == (file_list_count - 1)) {
- if (flat_file->blocklens[j] == end_fwr_size)
- fwr_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- fwr_size = flat_file->blocklens[j] - end_fwr_size;
- j--;
- }
- }
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
- size_wrote += new_buffer_write;
- start_k = k;
- start_j = j;
- if (max_mem_list < mem_list_count)
- max_mem_list = mem_list_count;
- if (max_file_list < file_list_count)
- max_file_list = file_list_count;
- } /* while (size_wrote < bufsize) */
-
- mem_offsets = (char **)ADIOI_Malloc(max_mem_list*sizeof(char *));
- mem_lengths = (int *)ADIOI_Malloc(max_mem_list*sizeof(int));
- file_offsets = (int64_t *)ADIOI_Malloc(max_file_list*sizeof(int64_t));
- file_lengths = (int32_t *)ADIOI_Malloc(max_file_list*sizeof(int32_t));
-
- size_wrote = 0;
- n_filetypes = st_n_filetypes;
- fwr_size = st_fwr_size;
- bwr_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
-
- /* this section calculates mem_list_count and file_list_count
- and also finds the possibly odd sized last array elements
- in new_fwr_size and new_bwr_size */
-
- while (size_wrote < bufsize) {
- k = start_k;
- new_buffer_write = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k] +
- size_wrote) > bufsize) {
- end_bwr_size = new_buffer_write +
- flat_buf->blocklens[k] - (bufsize - size_wrote);
- new_buffer_write = bufsize - size_wrote;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- else new_buffer_write = bwr_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
- j = start_j;
- new_file_write = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_write < new_buffer_write)) {
- if(file_list_count) {
- if((new_file_write + flat_file->blocklens[j]) >
- new_buffer_write) {
- end_fwr_size = new_buffer_write - new_file_write;
- new_file_write = new_buffer_write;
- j--;
- }
- else {
- new_file_write += flat_file->blocklens[j];
- end_fwr_size = flat_file->blocklens[j];
- }
- }
- else {
- if (fwr_size > new_buffer_write) {
- new_file_write = new_buffer_write;
- fwr_size = new_file_write;
- }
- else new_file_write = fwr_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_write = 0;
- mem_list_count = 0;
- while (new_buffer_write < new_file_write) {
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k]) >
- new_file_write) {
- end_bwr_size = new_file_write -
- new_buffer_write;
- new_buffer_write = new_file_write;
- k--;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_write = bwr_size;
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_write < new_file_write) */
- } /* if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
-
- /* fills the allocated readlist arrays */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- mem_offsets[i] = ((char*)buf + buftype_extent*
- (buf_count/flat_buf->count) +
- (int)flat_buf->indices[k]);
-
- if(!i) {
- mem_lengths[0] = bwr_size;
- mem_offsets[0] += flat_buf->blocklens[k] - bwr_size;
- }
- else {
- if (i == (mem_list_count - 1)) {
- mem_lengths[i] = end_bwr_size;
- if (flat_buf->blocklens[k] == end_bwr_size)
- bwr_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- bwr_size = flat_buf->blocklens[k] - end_bwr_size;
- k--;
- buf_count--;
- }
- }
- else {
- mem_lengths[i] = flat_buf->blocklens[k];
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- file_offsets[i] = disp + flat_file->indices[j] + n_filetypes *
- filetype_extent;
- if (!i) {
- file_lengths[0] = fwr_size;
- file_offsets[0] += flat_file->blocklens[j] - fwr_size;
- }
- else {
- if (i == (file_list_count - 1)) {
- file_lengths[i] = end_fwr_size;
- if (flat_file->blocklens[j] == end_fwr_size)
- fwr_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- fwr_size = flat_file->blocklens[j] - end_fwr_size;
- j--;
- }
- }
- else file_lengths[i] = flat_file->blocklens[j];
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
- pvfs_write_list(fd->fd_sys,mem_list_count, mem_offsets,
- mem_lengths, file_list_count, file_offsets,
- file_lengths);
- size_wrote += new_buffer_write;
- start_k = k;
- start_j = j;
- } /* while (size_wrote < bufsize) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
- }
- ADIOI_Free(file_offsets);
- ADIOI_Free(file_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off;
- if (err_flag) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**io",
- "**io %s", strerror(errno));
- }
- else *error_code = MPI_SUCCESS;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
-}
-#endif /* HAVE_PVFS_LISTIO */
diff --git a/src/mpi/romio/adio/ad_sfs/Makefile.mk b/src/mpi/romio/adio/ad_sfs/Makefile.mk
deleted file mode 100644
index 2db1ac2..0000000
--- a/src/mpi/romio/adio/ad_sfs/Makefile.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_SFS
-
-noinst_HEADERS += adio/ad_sfs/ad_sfs.h
-
-romio_other_sources += \
- adio/ad_sfs/ad_sfs_open.c \
- adio/ad_sfs/ad_sfs_fcntl.c \
- adio/ad_sfs/ad_sfs_flush.c \
- adio/ad_sfs/ad_sfs.c
-
-endif BUILD_AD_SFS
-
diff --git a/src/mpi/romio/adio/ad_sfs/README b/src/mpi/romio/adio/ad_sfs/README
deleted file mode 100644
index 933677b..0000000
--- a/src/mpi/romio/adio/ad_sfs/README
+++ /dev/null
@@ -1 +0,0 @@
-This code is no longer supported.
diff --git a/src/mpi/romio/adio/ad_sfs/ad_sfs.c b/src/mpi/romio/adio/ad_sfs/ad_sfs.c
deleted file mode 100644
index c4c1609..0000000
--- a/src/mpi/romio/adio/ad_sfs/ad_sfs.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2001 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_sfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_SFS_operations = {
- ADIOI_SFS_Open, /* Open */
- ADIOI_GEN_ReadContig, /* ReadContig */
- ADIOI_GEN_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_SFS_Fcntl, /* Fcntl */
- ADIOI_GEN_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_GEN_WriteStrided, /* WriteStrided */
- ADIOI_GEN_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_SFS_Flush, /* Flush */
- ADIOI_GEN_Resize, /* Resize */
- ADIOI_GEN_Delete, /* Delete */
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
diff --git a/src/mpi/romio/adio/ad_sfs/ad_sfs.h b/src/mpi/romio/adio/ad_sfs/ad_sfs.h
deleted file mode 100644
index 9f029f0..0000000
--- a/src/mpi/romio/adio/ad_sfs/ad_sfs.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_SFS_INCLUDE
-#define AD_SFS_INCLUDE
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include "adio.h"
-
-void ADIOI_SFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_SFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_SFS_Flush(ADIO_File fd, int *error_code);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_sfs/ad_sfs_fcntl.c b/src/mpi/romio/adio/ad_sfs/ad_sfs_fcntl.c
deleted file mode 100644
index 533e26a..0000000
--- a/src/mpi/romio/adio/ad_sfs/ad_sfs_fcntl.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_sfs.h"
-#include "adio_extern.h"
-
-void ADIOI_SFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code)
-{
- int i, ntimes, len;
- ADIO_Offset curr_fsize, alloc_size, size, done;
- ADIO_Status status;
- char *buf;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_SFS_FCNTL";
-#endif
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- /* On SFS, I find that a write from one process, which changes
- the file size, does not automatically make the new file size
- visible to other processes. Therefore, a sync-barrier-sync is
- needed. (Other processes are able to read the data written
- though; only file size is returned incorrectly.) */
-
- fsync(fd->fd_sys);
- MPI_Barrier(fd->comm);
- fsync(fd->fd_sys);
-
- fcntl_struct->fsize = llseek(fd->fd_sys, 0, SEEK_END);
- if (fd->fp_sys_posn != -1)
- llseek(fd->fd_sys, fd->fp_sys_posn, SEEK_SET);
- if (fcntl_struct->fsize == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(fd, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
- break;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- case ADIO_FCNTL_SET_ATOMICITY:
- fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1;
- *error_code = MPI_SUCCESS;
- break;
-
- default:
- FPRINTF(stderr, "Unknown flag passed to ADIOI_SFS_Fcntl\n");
- MPI_Abort(MPI_COMM_WORLD, 1);
- }
-}
diff --git a/src/mpi/romio/adio/ad_sfs/ad_sfs_flush.c b/src/mpi/romio/adio/ad_sfs/ad_sfs_flush.c
deleted file mode 100644
index 8fc7e35..0000000
--- a/src/mpi/romio/adio/ad_sfs/ad_sfs_flush.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_sfs.h"
-
-void ADIOI_SFS_Flush(ADIO_File fd, int *error_code)
-{
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_SFS_FLUSH";
-#endif
-
- /* there is no fsync on SX-4 */
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_UNSUPPORTED_OPERATION, 1,
- myname, (char *) 0, (char *) 0);
- ADIOI_Error(fd, *error_code, myname);
-#endif
-}
diff --git a/src/mpi/romio/adio/ad_sfs/ad_sfs_open.c b/src/mpi/romio/adio/ad_sfs/ad_sfs_open.c
deleted file mode 100644
index ebeefdc..0000000
--- a/src/mpi/romio/adio/ad_sfs/ad_sfs_open.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_sfs.h"
-
-void ADIOI_SFS_Open(ADIO_File fd, int *error_code)
-{
- int perm, old_mask, amode;
-#ifndef PRINT_ERR_MSG
- static char myname[] = "ADIOI_SFS_OPEN";
-#endif
-
- if (fd->perm == ADIO_PERM_NULL) {
- old_mask = umask(022);
- umask(old_mask);
- perm = old_mask ^ 0666;
- }
- else perm = fd->perm;
-
- amode = 0;
- if (fd->access_mode & ADIO_CREATE)
- amode = amode | O_CREAT;
- if (fd->access_mode & ADIO_RDONLY)
- amode = amode | O_RDONLY;
- if (fd->access_mode & ADIO_WRONLY)
- amode = amode | O_WRONLY;
- if (fd->access_mode & ADIO_RDWR)
- amode = amode | O_RDWR;
- if (fd->access_mode & ADIO_EXCL)
- amode = amode | O_EXCL;
-
- fd->fd_sys = open(fd->filename, amode, perm);
- fd->fd_direct = -1;
-
- if ((fd->fd_sys != -1) && (fd->access_mode & ADIO_APPEND)) {
- fd->fp_ind = llseek(fd->fd_sys, 0, SEEK_END);
- fd->fp_sys_posn = fd->fp_ind;
- }
-
- if (fd->fd_sys == -1) {
-#ifdef MPICH
- *error_code = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io",
- "**io %s", strerror(errno));
-#elif defined(PRINT_ERR_MSG)
- *error_code = MPI_ERR_UNKNOWN;
-#else /* MPICH-1 */
- *error_code = MPIR_Err_setmsg(MPI_ERR_IO, MPIR_ADIO_ERROR,
- myname, "I/O Error", "%s", strerror(errno));
- ADIOI_Error(ADIO_FILE_NULL, *error_code, myname);
-#endif
- }
- else *error_code = MPI_SUCCESS;
-}
diff --git a/src/mpi/romio/adio/ad_zoidfs/Makefile.mk b/src/mpi/romio/adio/ad_zoidfs/Makefile.mk
deleted file mode 100644
index a26e59c..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/Makefile.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-## -*- Mode: Makefile; -*-
-## vim: set ft=automake :
-##
-## (C) 2011 by Argonne National Laboratory.
-## See COPYRIGHT in top-level directory.
-##
-
-if BUILD_AD_ZOIDFS
-
-noinst_HEADERS += adio/ad_zoidfs/ad_zoidfs.h adio/ad_zoidfs/ad_zoidfs_common.h
-
-romio_other_sources += \
- adio/ad_zoidfs/ad_zoidfs.c \
- adio/ad_zoidfs/ad_zoidfs_close.c \
- adio/ad_zoidfs/ad_zoidfs_common.c \
- adio/ad_zoidfs/ad_zoidfs_delete.c \
- adio/ad_zoidfs/ad_zoidfs_fcntl.c \
- adio/ad_zoidfs/ad_zoidfs_flush.c \
- adio/ad_zoidfs/ad_zoidfs_io.c \
- adio/ad_zoidfs/ad_zoidfs_open.c \
- adio/ad_zoidfs/ad_zoidfs_resize.c \
- adio/ad_zoidfs/ad_zoidfs_features.c \
- adio/ad_zoidfs/ad_zoidfs_read_list.c \
- adio/ad_zoidfs/ad_zoidfs_write_list.c
-
-endif BUILD_AD_ZOIDFS
-
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.c
deleted file mode 100644
index 3c9131a..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-
-/* adioi.h has the ADIOI_Fns_struct define */
-#include "adioi.h"
-
-struct ADIOI_Fns_struct ADIO_ZOIDFS_operations = {
- ADIOI_ZOIDFS_Open, /* Open */
- ADIOI_SCALEABLE_OpenColl, /* OpenColl */
- ADIOI_ZOIDFS_ReadContig, /* ReadContig */
- ADIOI_ZOIDFS_WriteContig, /* WriteContig */
- ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
- ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
- ADIOI_GEN_SeekIndividual, /* SeekIndividual */
- ADIOI_ZOIDFS_Fcntl, /* Fcntl */
- ADIOI_GEN_SetInfo, /* SetInfo */
- ADIOI_GEN_ReadStrided, /* ReadStrided */
- ADIOI_ZOIDFS_WriteStrided, /* WriteStrided */
- ADIOI_ZOIDFS_Close, /* Close */
- ADIOI_FAKE_IreadContig, /* IreadContig */
- ADIOI_FAKE_IwriteContig, /* IwriteContig */
- ADIOI_FAKE_IODone, /* ReadDone */
- ADIOI_FAKE_IODone, /* WriteDone */
- ADIOI_FAKE_IOComplete, /* ReadComplete */
- ADIOI_FAKE_IOComplete, /* WriteComplete */
- ADIOI_FAKE_IreadStrided, /* IreadStrided */
- ADIOI_FAKE_IwriteStrided, /* IwriteStrided */
- ADIOI_ZOIDFS_Flush, /* Flush */
- ADIOI_ZOIDFS_Resize, /* Resize */
- ADIOI_ZOIDFS_Delete, /* Delete */
- ADIOI_ZOIDFS_Feature,
- ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
- ADIOI_GEN_IwriteStridedColl /* IwriteStridedColl */
-};
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.h b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.h
deleted file mode 100644
index d4999b6..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef AD_ZOIDFS_INCLUDE
-#define AD_ZOIDFS_INCLUDE
-
-#include "adio.h"
-#ifdef HAVE_ZOIDFS_H
-#include "zoidfs.h"
-#endif
-
-
-typedef zoidfs_handle_t ADIOI_ZOIDFS_object;
-
-void ADIOI_ZOIDFS_Open(ADIO_File fd, int *error_code);
-void ADIOI_ZOIDFS_Close(ADIO_File fd, int *error_code);
-void ADIOI_ZOIDFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_ZOIDFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_ZOIDFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
- *error_code);
-void ADIOI_ZOIDFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_ZOIDFS_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code);
-void ADIOI_ZOIDFS_Flush(ADIO_File fd, int *error_code);
-void ADIOI_ZOIDFS_Delete(char *filename, int *error_code);
-void ADIOI_ZOIDFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
-void ADIOI_ZOIDFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);
-int ADIOI_ZOIDFS_Feature(ADIO_File fd, int flag);
-#endif
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_close.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_close.c
deleted file mode 100644
index 0126783..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_close.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-
-void ADIOI_ZOIDFS_Close(ADIO_File fd, int *error_code)
-{
- ADIOI_Free(fd->fs_ptr);
- fd->fs_ptr = NULL;
-
- /* At some point or another it was decided that ROMIO would not
- * explicitly flush (other than any local cache) on close, because
- * there is no way to *avoid* that overhead if you implement it here
- * and don't actually want it.
- */
-
- *error_code = MPI_SUCCESS;
-}
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.c
deleted file mode 100644
index 018d439..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * Copyright (C) 2003 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "ad_zoidfs_common.h"
-#include <unistd.h>
-#include <sys/types.h>
-
-/* keyval hack to both tell us if we've already initialized zoidfs and also
- * close it down when mpi exits */
-int ADIOI_ZOIDFS_Initialized = MPI_KEYVAL_INVALID;
-
-void ADIOI_ZOIDFS_End(int *error_code)
-{
- int ret;
- static char myname[] = "ADIOI_ZOIDFS_END";
-
- ret = zoidfs_finalize();
-
- /* --BEGIN ERROR HANDLING-- */
- if (ret != 0 ) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_finalize", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- *error_code = MPI_SUCCESS;
-}
-
-int ADIOI_ZOIDFS_End_call(MPI_Comm comm, int keyval,
- void *attribute_val, void *extra_state)
-{
- int error_code;
- ADIOI_ZOIDFS_End(&error_code);
- MPI_Keyval_free(&keyval);
- return error_code;
-}
-
-void ADIOI_ZOIDFS_Init(int rank, int *error_code )
-{
- int ret;
- static char myname[] = "ADIOI_ZOIDFS_INIT";
-
- /* do nothing if we've already fired up the zoidfs interface */
- if (ADIOI_ZOIDFS_Initialized != MPI_KEYVAL_INVALID) {
- *error_code = MPI_SUCCESS;
- return;
- }
-
- ret = zoidfs_init();
- if (ret < 0 ) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_init",
- 0);
- return;
- }
-
- MPI_Keyval_create(MPI_NULL_COPY_FN, ADIOI_ZOIDFS_End_call,
- &ADIOI_ZOIDFS_Initialized, (void *)0);
- /* just like romio does, we make a dummy attribute so we
- * get cleaned up */
- MPI_Attr_put(MPI_COMM_SELF, ADIOI_ZOIDFS_Initialized, (void *)0);
-}
-
-void ADIOI_ZOIDFS_makeattribs(zoidfs_sattr_t * attribs)
-{
- memset(attribs, 0, sizeof(zoidfs_sattr_t));
-
- attribs->mask = ZOIDFS_ATTR_MODE;
- attribs->mode = 0644;
-}
-
-int ADIOI_ZOIDFS_error_convert(int error)
-{
- switch (error)
- {
- case ZFSERR_PERM: /* ??? */
- case ZFSERR_ACCES:
- return MPI_ERR_ACCESS;
- case ZFSERR_NOENT:
- case ZFSERR_NXIO: /* ??? */
- case ZFSERR_NODEV: /* ??? */
- return MPI_ERR_NO_SUCH_FILE;
- case ZFSERR_IO:
- return MPI_ERR_IO;
- case ZFSERR_EXIST:
- return MPI_ERR_FILE_EXISTS;
- case ZFSERR_NOTDIR: /* ??? */
- case ZFSERR_ISDIR: /* ??? */
- case ZFSERR_NAMETOOLONG:
- return MPI_ERR_BAD_FILE;
- case ZFSERR_INVAL:
- case ZFSERR_STALE:
- return MPI_ERR_FILE;
- case ZFSERR_FBIG: /* ??? */
- case ZFSERR_NOSPC:
- return MPI_ERR_NO_SPACE;
- case ZFSERR_ROFS:
- return MPI_ERR_READ_ONLY;
- case ZFSERR_NOTIMPL:
- return MPI_ERR_UNSUPPORTED_OPERATION;
- case ZFSERR_DQUOT:
- return MPI_ERR_QUOTA;
- /* case ZFSERR_NOTEMPTY: */
- /* case ZFSERR_WFLUSH: */
- /* case ZFSERR_OTHER: */
- case ZFSERR_NOMEM:
- return MPI_ERR_INTERN;
- default:
- return MPI_UNDEFINED;
- }
-}
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.h b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.h
deleted file mode 100644
index ba985b4..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*-
- * vim: ts=8 sts=4 sw=4 noexpandtab
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#ifndef _AD_ZOIDFS_COMMON_H
-#define _AD_ZOIDFS_COMMON_H
-#include "ad_zoidfs.h"
-
-/* The ESTALE problem:
- * The IO forwarding protocol can respond to any call with ESTALE, which means
- * the handle upon which that call operates has expired from the metadata
- * cache. We thus wrap any zoidfs routine (expr) in this macro.
- *
- * ROMIO stores the filename in the ADIOI_File structrue (fd), so we can always
- * re-lookup in response to ESTALE */
-
-#define NO_STALE(ret, fd, handle_p, expr) \
- do { \
- (ret) = (expr); \
- while ((ret) == ZFSERR_STALE) { \
- /* lookup again */ \
- (ret) = zoidfs_lookup(NULL, NULL, (fd)->filename, \
- (zoidfs_handle_t*)((fd)->fs_ptr), ZOIDFS_NO_OP_HINT); \
- if ((ret) == ZFS_OK) { \
- *((ADIOI_ZOIDFS_object*)handle_p) \
- = *((ADIOI_ZOIDFS_object*)((fd)->fs_ptr)); \
- /* re-execute the expr with new handle */ \
- (ret) = (expr); \
- } \
- } \
- } while (0)
-
-void ADIOI_ZOIDFS_Init(int rank, int *error_code );
-void ADIOI_ZOIDFS_makeattribs(zoidfs_sattr_t * attribs);
-void ADIOI_ZOIDFS_End(int *error_code);
-int ADIOI_ZOIDFS_End_call(MPI_Comm comm, int keyval,
- void *attribute_val, void *extra_state);
-int ADIOI_ZOIDFS_error_convert(int error);
-
-#endif
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_delete.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_delete.c
deleted file mode 100644
index 8719314..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_delete.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 2003 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "adio.h"
-
-#include "ad_zoidfs_common.h"
-
-void ADIOI_ZOIDFS_Delete(char *filename, int *error_code)
-{
- int ret;
- static char myname[] = "ADIOI_ZOIDFS_DELETE";
-
- ADIOI_ZOIDFS_Init(0, error_code);
- /* --BEGIN ERROR HANDLING-- */
- if (*error_code != MPI_SUCCESS)
- {
- /* ADIOI_ZOIDFS_INIT handles creating error codes itself */
- return;
- }
- /* --END ERROR HANDLING-- */
-
- ret = zoidfs_remove(NULL, NULL, filename, NULL, ZOIDFS_NO_OP_HINT);
- /* --BEGIN ERROR HANDLING-- */
- if (ret != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_remove", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- *error_code = MPI_SUCCESS;
- return;
-}
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c
deleted file mode 100644
index 22c2671..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "adio_extern.h"
-#include "ad_zoidfs_common.h"
-
-void ADIOI_ZOIDFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct,
- int *error_code)
-{
- int ret;
- zoidfs_attr_t attr;
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
- static char myname[] = "ADIOI_ZOIDFS_FCNTL";
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object*)fd->fs_ptr;
-
- switch(flag) {
- case ADIO_FCNTL_GET_FSIZE:
- attr.mask = ZOIDFS_ATTR_SIZE;
- NO_STALE(ret, fd, zoidfs_obj_ptr,
- zoidfs_getattr(zoidfs_obj_ptr, &attr, ZOIDFS_NO_OP_HINT));
- if ( !(attr.mask & ZOIDFS_ATTR_SIZE) || (ret != ZFS_OK ) ) {
- /* --BEGIN ERROR HANDLING-- */
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_getattr", 0);
- /* --END ERROR HANDLING-- */
- }
- else {
- *error_code = MPI_SUCCESS;
- }
- fcntl_struct->fsize = attr.size;
- return;
-
- case ADIO_FCNTL_SET_DISKSPACE:
- ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code);
- break;
-
- /* --BEGIN ERROR HANDLING-- */
- case ADIO_FCNTL_SET_ATOMICITY:
- default:
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_ARG,
- "**flag", "**flag %d", flag);
- /* --END ERROR HANDLING-- */
- }
-}
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_features.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_features.c
deleted file mode 100644
index a3f5c14..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_features.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-#include "adio.h"
-#include "ad_zoidfs.h"
-
-int ADIOI_ZOIDFS_Feature(ADIO_File fd, int flag)
-{
- switch(flag) {
- case ADIO_SCALABLE_OPEN:
- return 1;
- case ADIO_SHARED_FP:
- case ADIO_LOCKS:
- case ADIO_SEQUENTIAL:
- case ADIO_DATA_SIEVING_WRITES:
- default:
- return 0;
- }
-}
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_flush.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_flush.c
deleted file mode 100644
index 8ec0b8d..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_flush.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "ad_zoidfs_common.h"
-
-/* we want to be a bit clever here: at scale, if every client sends a
- * flush request, it will stress the file system with redundant
- * commit requests. Instead, one process should wait for
- * everyone to catch up, do the sync, then broadcast the result.
- */
-
-void ADIOI_ZOIDFS_Flush(ADIO_File fd, int *error_code)
-{
- int ret, rank, dummy=0, dummy_in=0;
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
- static char myname[] = "ADIOI_ZOIDFS_FLUSH";
-
- *error_code = MPI_SUCCESS;
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object*)fd->fs_ptr;
-
- MPI_Comm_rank(fd->comm, &rank);
-
- /* collective call to ensure no outstanding write requests. reduce is
- * slightly less expensvie than barrier */
- MPI_Reduce(&dummy_in, &dummy, 1, MPI_INT, MPI_SUM,
- fd->hints->ranklist[0], fd->comm);
-
- if (rank == fd->hints->ranklist[0]) {
- ret = zoidfs_commit(zoidfs_obj_ptr, ZOIDFS_NO_OP_HINT);
- }
- MPI_Bcast(&ret, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
-
- /* --BEGIN ERROR HANDLING-- */
- if (ret != 0) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_commit", 0);
- }
- /* --END ERROR HANDLING-- */
-}
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_io.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_io.c
deleted file mode 100644
index 337c92f..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_io.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*-
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "adio.h"
-#include "adio_extern.h"
-#include "ad_zoidfs.h"
-
-#include "ad_zoidfs_common.h"
-
-#define ZOIDFS_READ 0
-#define ZOIDFS_WRITE 1
-
-static void ZOIDFS_IOContig(ADIO_File fd, void * buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int flag, int *error_code)
-{
- int ret;
- MPI_Count datatype_size;
- uint64_t file_len;
- size_t mem_len;
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
- uint64_t file_offset = offset;
- static char myname[] = "ADIOI_ZOIDFS_IOCONTIG";
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object*)fd->fs_ptr;
-
- MPI_Type_size_x(datatype, &datatype_size);
- file_len = mem_len = datatype_size * count;
-
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- file_offset = fd->fp_ind;
- }
-
- if (flag == ZOIDFS_READ) {
- NO_STALE(ret, fd, zoidfs_obj_ptr,
- zoidfs_read(zoidfs_obj_ptr,
- 1, &buf, &mem_len,
- 1, &file_offset, &file_len, ZOIDFS_NO_OP_HINT));
- } else {
- NO_STALE(ret, fd, zoidfs_obj_ptr,
- zoidfs_write(zoidfs_obj_ptr,
- 1, (const void **)&buf, &mem_len,
- 1, &file_offset, &file_len, ZOIDFS_NO_OP_HINT));
- }
- /* --BEGIN ERROR HANDLING-- */
- if (ret != ZFS_OK ) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in ZOIDFS I/O", 0);
- goto fn_exit;
- }
- /* --END ERROR HANDLING-- */
-
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- fd->fp_ind += file_len;
- }
- fd->fp_sys_posn = file_offset + file_len;
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, file_len);
-#endif
-
- *error_code = MPI_SUCCESS;
-
-fn_exit:
- return;
-}
-
-void ADIOI_ZOIDFS_ReadContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- ZOIDFS_IOContig(fd, buf, count, datatype, file_ptr_type,
- offset, status, ZOIDFS_READ, error_code);
-}
-
-void ADIOI_ZOIDFS_WriteContig(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- ZOIDFS_IOContig(fd, buf, count, datatype, file_ptr_type,
- offset, status, ZOIDFS_WRITE, error_code);
-}
-
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_open.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_open.c
deleted file mode 100644
index 55fb950..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_open.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*-
- * vim: ts=8 sts=4 sw=4 noexpandtab
- *
- * Copyright (C) 2007 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "ad_zoidfs_common.h"
-
-/* open_status is helpful for bcasting values around */
-struct open_status_s {
- int error;
- zoidfs_handle_t handle;
-};
-typedef struct open_status_s open_status;
-
-static void fake_an_open(char *fname, int access_mode,
- int nr_datafiles, MPI_Offset strip_size,
- ADIOI_ZOIDFS_object *zoidfs_ptr,
- open_status *o_status)
-{
- int ret, created;
- zoidfs_sattr_t attribs;
- zoidfs_handle_t handle;
-
- ADIOI_ZOIDFS_makeattribs(&attribs);
-
- /* zoidfs_create succeeds even if a file already exists, so we can do
- * our job with fewer calls than in other cases. However, we need to
- * be careful with ADIO_EXCL.
- */
- if (access_mode & ADIO_CREATE) {
- ret = zoidfs_create(NULL, NULL,
- fname, &attribs, &handle, &created, ZOIDFS_NO_OP_HINT);
- if ((ret == ZFS_OK) && !created && (access_mode & ADIO_EXCL)) {
- /* lookup should not succeed if opened with EXCL */
- o_status->error = ZFSERR_EXIST;
- return;
- }
- }
- else {
- ret = zoidfs_lookup(NULL, NULL, fname, &handle, ZOIDFS_NO_OP_HINT);
- }
-
- o_status->error = ret;
- o_status->handle = handle;
- return;
-}
-
-
-/* ADIOI_ZOIDFS_Open:
- * one process opens (or creates) the file, then broadcasts the result to the
- * remaining processors.
- *
- * ADIO_Open used to perform an optimization when MPI_MODE_CREATE (and before
- * that, MPI_MODE_EXCL) was set. Because ZoidFS handles file lookup and
- * creation more scalably than traditional file systems, ADIO_Open now skips any
- * special handling when CREATE is set. */
-void ADIOI_ZOIDFS_Open(ADIO_File fd, int *error_code)
-{
- int rank;
- static char myname[] = "ADIOI_ZOIDFS_OPEN";
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
-
- /* since one process is doing the open, that means one process is also
- * doing the error checking. define a struct for both the object reference
- * and the error code to broadcast to all the processors */
-
- open_status o_status;
- MPI_Datatype open_status_type;
- MPI_Datatype types[2] = {MPI_INT, MPI_BYTE};
- int lens[2] = {1, sizeof(ADIOI_ZOIDFS_object)};
- MPI_Aint offsets[2];
-
- memset(&o_status, 0, sizeof(o_status));
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object *)
- ADIOI_Malloc(sizeof(ADIOI_ZOIDFS_object));
- /* --BEGIN ERROR HANDLING-- */
- if (zoidfs_obj_ptr == NULL) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_UNKNOWN,
- "Error allocating memory", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- MPI_Comm_rank(fd->comm, &rank);
-
- ADIOI_ZOIDFS_Init(rank, error_code);
- if (*error_code != MPI_SUCCESS)
- {
- /* ADIOI_ZOIDFS_INIT handles creating error codes on its own */
- ADIOI_Free(zoidfs_obj_ptr);
- return;
- }
-
- /* one process resolves name and will later bcast to others */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_open_a, 0, NULL );
-#endif
- if (rank == fd->hints->ranklist[0] && fd->fs_ptr == NULL) {
- fake_an_open(fd->filename, fd->access_mode,
- fd->hints->striping_factor,
- fd->hints->striping_unit,
- zoidfs_obj_ptr, &o_status);
- /* store credentials and object reference in fd */
- *zoidfs_obj_ptr = o_status.handle;
- fd->fs_ptr = zoidfs_obj_ptr;
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_open_b, 0, NULL );
-#endif
-
- /* broadcast status and (possibly valid) object reference */
- MPI_Address(&o_status.error, &offsets[0]);
- MPI_Address(&o_status.handle, &offsets[1]);
-
- MPI_Type_struct(2, lens, offsets, types, &open_status_type);
- MPI_Type_commit(&open_status_type);
-
- /* Assertion: if we hit this Bcast, then all processes collectively
- * called this open.
- *
- * That's because deferred open never happens with this fs.
- */
- MPI_Bcast(MPI_BOTTOM, 1, open_status_type, fd->hints->ranklist[0],
- fd->comm);
- MPI_Type_free(&open_status_type);
-
- /* --BEGIN ERROR HANDLING-- */
- if (o_status.error != ZFS_OK)
- {
- ADIOI_Free(zoidfs_obj_ptr);
- fd->fs_ptr = NULL;
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(o_status.error),
- "Unknown error", 0);
- /* TODO: FIX STRING */
- return;
- }
- /* --END ERROR HANDLING-- */
-
- *zoidfs_obj_ptr = o_status.handle;
- fd->fs_ptr = zoidfs_obj_ptr;
-
- *error_code = MPI_SUCCESS;
- return;
-}
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c
deleted file mode 100644
index 26407df..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c
+++ /dev/null
@@ -1,821 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*-
- * vim: ts=8 sts=4 sw=4 noexpandtab
- *
- * Copyright (C) 2008 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "adio.h"
-#include "adio_extern.h"
-#include "ad_zoidfs.h"
-
-#include "ad_zoidfs_common.h"
-
-/* Copied from ADIOI_PVFS2_OldReadStrided. It would be good to have fewer
- * copies of this code... */
-void ADIOI_ZOIDFS_ReadStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status, int
- *error_code)
-{
- /* offset is in units of etype relative to the filetype. */
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- int i, j, k, brd_size, frd_size=0, st_index=0;
- int sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset off, disp, start_off, initial_off;
- int flag, st_frd_size, st_n_filetypes;
-
- size_t mem_list_count, file_list_count;
- void ** mem_offsets;
- uint64_t *file_offsets;
- size_t *mem_lengths;
- uint64_t *file_lengths;
- int total_blks_to_read;
-
- int max_mem_list, max_file_list;
-
- int b_blks_read;
- int f_data_read;
- int size_read=0, n_read_lists, extra_blks;
-
- int end_brd_size, end_frd_size;
- int start_k, start_j, new_file_read, new_buffer_read;
- int start_mem_offset;
- ADIOI_ZOIDFS_object * zoidfs_obj_ptr;
- int err_flag=0;
- MPI_Offset total_bytes_read = 0;
- static char myname[] = "ADIOI_ZOIDFS_ReadStrided";
-
- /* note: I don't know what zoidfs will do if you pass it a super-long list,
- * so let's keep with the PVFS limit for now */
-#define MAX_ARRAY_SIZE 64
-
- *error_code = MPI_SUCCESS; /* changed below if error */
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
-
- /* the HDF5 tests showed a bug in this list processing code (see many many
- * lines down below). We added a workaround, but common HDF5 file types
- * are actually contiguous and do not need the expensive workarond */
- if (!filetype_is_contig) {
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
- if (flat_file->count == 1 && !buftype_is_contig)
- filetype_is_contig = 1;
- }
-
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object *)fd->fs_ptr;
-
- if (!buftype_is_contig && filetype_is_contig) {
-
-/* noncontiguous in memory, contiguous in file. */
- uint64_t file_offsets;
- uint64_t file_lengths;
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind :
- fd->disp + etype_size * offset;
-
- file_list_count = 1;
- file_offsets = off;
- file_lengths = 0;
- total_blks_to_read = count*flat_buf->count;
- b_blks_read = 0;
-
- /* allocate arrays according to max usage */
- if (total_blks_to_read > MAX_ARRAY_SIZE)
- mem_list_count = MAX_ARRAY_SIZE;
- else mem_list_count = total_blks_to_read;
- mem_offsets = (void*)ADIOI_Malloc(mem_list_count*sizeof(void*));
- mem_lengths = (size_t*)ADIOI_Malloc(mem_list_count*sizeof(size_t));
-
- /* TODO: CHECK RESULTS OF MEMORY ALLOCATION */
-
- j = 0;
- /* step through each block in memory, filling memory arrays */
- while (b_blks_read < total_blks_to_read) {
- for (i=0; i<flat_buf->count; i++) {
- mem_offsets[b_blks_read % MAX_ARRAY_SIZE] =
- buf + j*buftype_extent + flat_buf->indices[i];
- mem_lengths[b_blks_read % MAX_ARRAY_SIZE] =
- flat_buf->blocklens[i];
- file_lengths += flat_buf->blocklens[i];
- b_blks_read++;
- if (!(b_blks_read % MAX_ARRAY_SIZE) ||
- (b_blks_read == total_blks_to_read)) {
-
- /* in the case of the last read list call,
- adjust mem_list_count */
- if (b_blks_read == total_blks_to_read) {
- mem_list_count = total_blks_to_read % MAX_ARRAY_SIZE;
- /* in case last read list call fills max arrays */
- if (!mem_list_count) mem_list_count = MAX_ARRAY_SIZE;
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_read(zoidfs_obj_ptr,
- mem_list_count,
- mem_offsets, mem_lengths,
- 1, &file_offsets, &file_lengths, ZOIDFS_NO_OP_HINT));
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_read", 0);
- goto error_state;
- }
- total_bytes_read += file_lengths;
- /* --END ERROR HANDLING-- */
-
- /* in the case of error or the last read list call,
- * leave here */
- if (err_flag || b_blks_read == total_blks_to_read) break;
-
- file_offsets += file_lengths;
- file_lengths = 0;
- }
- } /* for (i=0; i<flat_buf->count; i++) */
- j++;
- } /* while (b_blks_read < total_blks_to_read) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL)
- fd->fp_ind += total_bytes_read;
-
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
- /* This isa temporary way of filling in status. The right way is to
- keep tracke of how much data was actually read adn placed in buf
- by ADIOI_BUFFERED_READ. */
-#endif
-
- return;
- } /* if (!buftype_is_contig && filetype_is_contig) */
-
- /* know file is noncontiguous from above */
- /* noncontiguous in file */
-
- /* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- disp = fd->disp;
- initial_off = offset;
-
-
- /* for each case - ADIO_Individual pointer or explicit, find the file
- offset in bytes (offset), n_filetypes (how many filetypes into
- file to start), frd_size (remaining amount of data in present
- file block), and st_index (start point in terms of blocks in
- starting filetype) */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- ((ADIO_Offset) n_filetypes)*filetype_extent +
- flat_file->blocklens[i] >= offset) {
- st_index = i;
- frd_size = disp + flat_file->indices[i] +
- ((ADIO_Offset) n_filetypes)*filetype_extent
- + flat_file->blocklens[i] - offset;
- flag = 1;
- break;
- }
- }
- } /* while (!flag) */
- } /* if (file_ptr_type == ADIO_INDIVIDUAL) */
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- frd_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + ((ADIO_Offset) n_filetypes)*filetype_extent +
- abs_off_in_filetype;
- } /* else [file_ptr_type != ADIO_INDIVIDUAL] */
-
- start_off = offset;
- st_frd_size = frd_size;
- st_n_filetypes = n_filetypes;
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- /* only one memory off-len pair, so no array here */
- size_t mem_lengths;
- size_t mem_offsets;
-
- i = 0;
- j = st_index;
- n_filetypes = st_n_filetypes;
-
- mem_list_count = 1;
-
- /* determine how many blocks in file to read */
- f_data_read = MPL_MIN(st_frd_size, bufsize);
- total_blks_to_read = 1;
- if (j < (flat_file->count-1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- while (f_data_read < bufsize) {
- f_data_read += flat_file->blocklens[j];
- total_blks_to_read++;
- if (j<(flat_file->count-1)) j++;
- else j = 0;
- }
-
- j = st_index;
- n_filetypes = st_n_filetypes;
- n_read_lists = total_blks_to_read/MAX_ARRAY_SIZE;
- extra_blks = total_blks_to_read%MAX_ARRAY_SIZE;
-
- mem_offsets = (size_t)buf;
- mem_lengths = 0;
-
- /* if at least one full readlist, allocate file arrays
- at max array size and don't free until very end */
- if (n_read_lists) {
- file_offsets = (int64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int64_t));
- file_lengths = (uint64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(uint64_t));
- }
- /* if there's no full readlist allocate file arrays according
- to needed size (extra_blks) */
- else {
- file_offsets = (int64_t*)ADIOI_Malloc(extra_blks*
- sizeof(int64_t));
- file_lengths = (uint64_t*)ADIOI_Malloc(extra_blks*
- sizeof(uint64_t));
- }
-
- /* for file arrays that are of MAX_ARRAY_SIZE, build arrays */
- for (i=0; i<n_read_lists; i++) {
- file_list_count = MAX_ARRAY_SIZE;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_frd_size;
- mem_lengths = st_frd_size;
- }
- for (k=0; k<MAX_ARRAY_SIZE; k++) {
- if (i || k) {
- file_offsets[k] = disp +
- ((ADIO_Offset)n_filetypes)*filetype_extent
- + flat_file->indices[j];
- file_lengths[k] = flat_file->blocklens[j];
- mem_lengths += file_lengths[k];
- }
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<MAX_ARRAY_SIZE; k++) */
- /* --END ERROR HANDLING-- */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_read(zoidfs_obj_ptr,
- 1, buf, &mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_read", 0);
- goto error_state;
- }
- /* --END ERROR HANDING-- */
- total_bytes_read += mem_lengths;
-
- mem_offsets += mem_lengths;
- mem_lengths = 0;
- } /* for (i=0; i<n_read_lists; i++) */
-
- /* for file arrays smaller than MAX_ARRAY_SIZE (last read_list call) */
- if (extra_blks) {
- file_list_count = extra_blks;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = MPL_MIN(st_frd_size, bufsize);
- }
- for (k=0; k<extra_blks; k++) {
- if(i || k) {
- file_offsets[k] = disp +
- ((ADIO_Offset)n_filetypes)*filetype_extent +
- flat_file->indices[j];
- if (k == (extra_blks - 1)) {
- file_lengths[k] = bufsize - mem_lengths
- - mem_offsets + (size_t)buf;
- }
- else file_lengths[k] = flat_file->blocklens[j];
- } /* if(i || k) */
- mem_lengths += file_lengths[k];
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<extra_blks; k++) */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_read(zoidfs_obj_ptr, 1,
- (void **)&mem_offsets,
- &mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != 0) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_read", 0);
- goto error_state;
- }
- /* --END ERROR HANDLING-- */
- total_bytes_read += mem_lengths;
- }
- }
- else {
-/* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- size_read = 0;
- n_filetypes = st_n_filetypes;
- frd_size = st_frd_size;
- brd_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
- max_mem_list = 0;
- max_file_list = 0;
-
- /* run through and file max_file_list and max_mem_list so that you
- can allocate the file and memory arrays less than MAX_ARRAY_SIZE
- if possible */
-
- while (size_read < bufsize) {
- k = start_k;
- new_buffer_read = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k] +
- size_read) > bufsize) {
- end_brd_size = new_buffer_read +
- flat_buf->blocklens[k] - (bufsize - size_read);
- new_buffer_read = bufsize - size_read;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- else new_buffer_read = brd_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
- j = start_j;
- new_file_read = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_read < new_buffer_read)) {
- if(file_list_count) {
- if((new_file_read + flat_file->blocklens[j]) >
- new_buffer_read) {
- end_frd_size = new_buffer_read - new_file_read;
- new_file_read = new_buffer_read;
- j--;
- }
- else {
- new_file_read += flat_file->blocklens[j];
- end_frd_size = flat_file->blocklens[j];
- }
- }
- else {
- if (frd_size > new_buffer_read) {
- new_file_read = new_buffer_read;
- frd_size = new_file_read;
- }
- else new_file_read = frd_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_read < new_buffer_read) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_read = 0;
- mem_list_count = 0;
- while (new_buffer_read < new_file_read) {
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k]) >
- new_file_read) {
- end_brd_size = new_file_read - new_buffer_read;
- new_buffer_read = new_file_read;
- k--;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_read = brd_size;
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_read < new_file_read) */
- } /* if ((new_file_read < new_buffer_read) && (file_list_count
- == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
-
- /* fakes filling the readlist arrays of lengths found above */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- if(i) {
- if (i == (mem_list_count - 1)) {
- if (flat_buf->blocklens[k] == end_brd_size)
- brd_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- brd_size = flat_buf->blocklens[k] - end_brd_size;
- k--;
- buf_count--;
- }
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- if (i) {
- if (i == (file_list_count - 1)) {
- if (flat_file->blocklens[j] == end_frd_size)
- frd_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- frd_size = flat_file->blocklens[j] - end_frd_size;
- j--;
- }
- }
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
- size_read += new_buffer_read;
- start_k = k;
- start_j = j;
- if (max_mem_list < mem_list_count)
- max_mem_list = mem_list_count;
- if (max_file_list < file_list_count)
- max_file_list = file_list_count;
- } /* while (size_read < bufsize) */
-
- /* one last check before we actually carry out the operation:
- * this code has hard-to-fix bugs when a noncontiguous file type has
- * such large pieces that the sum of the lengths of the memory type is
- * not larger than one of those pieces (and vice versa for large memory
- * types and many pices of file types. In these cases, give up and
- * fall back to naive reads and writes. The testphdf5 test created a
- * type with two very large memory regions and 600 very small file
- * regions. The same test also created a type with one very large file
- * region and many (700) very small memory regions. both cases caused
- * problems for this code */
-
- if ( ( (file_list_count == 1) &&
- (new_file_read < flat_file->blocklens[0] ) ) ||
- ((mem_list_count == 1) &&
- (new_buffer_read < flat_buf->blocklens[0]) ) ||
- ((file_list_count == MAX_ARRAY_SIZE) &&
- (new_file_read < flat_buf->blocklens[0]) ) ||
- ( (mem_list_count == MAX_ARRAY_SIZE) &&
- (new_buffer_read < flat_file->blocklens[0])) )
- {
-
- ADIOI_GEN_ReadStrided_naive(fd, buf, count, datatype,
- file_ptr_type, initial_off, status, error_code);
- return;
- }
-
- mem_offsets = (void *)ADIOI_Malloc(max_mem_list*sizeof(void *));
- mem_lengths = (size_t*)ADIOI_Malloc(max_mem_list*sizeof(size_t));
- file_offsets = (uint64_t *)ADIOI_Malloc(max_file_list*sizeof(uint64_t));
- file_lengths = (uint64_t *)ADIOI_Malloc(max_file_list*sizeof(uint64_t));
-
- size_read = 0;
- n_filetypes = st_n_filetypes;
- frd_size = st_frd_size;
- brd_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
-
- /* this section calculates mem_list_count and file_list_count
- and also finds the possibly odd sized last array elements
- in new_frd_size and new_brd_size */
-
- while (size_read < bufsize) {
- k = start_k;
- new_buffer_read = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data read and data to be
- read in the next immediate read list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k] +
- size_read) > bufsize) {
- end_brd_size = new_buffer_read +
- flat_buf->blocklens[k] - (bufsize - size_read);
- new_buffer_read = bufsize - size_read;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- else new_buffer_read = brd_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
- j = start_j;
- new_file_read = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_read < new_buffer_read)) {
- if(file_list_count) {
- if((new_file_read + flat_file->blocklens[j]) >
- new_buffer_read) {
- end_frd_size = new_buffer_read - new_file_read;
- new_file_read = new_buffer_read;
- j--;
- }
- else {
- new_file_read += flat_file->blocklens[j];
- end_frd_size = flat_file->blocklens[j];
- }
- }
- else {
- if (frd_size > new_buffer_read) {
- new_file_read = new_buffer_read;
- frd_size = new_file_read;
- }
- else new_file_read = frd_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_read < new_buffer_read) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_read = 0;
- mem_list_count = 0;
- while (new_buffer_read < new_file_read) {
- if(mem_list_count) {
- if((new_buffer_read + flat_buf->blocklens[k]) >
- new_file_read) {
- end_brd_size = new_file_read - new_buffer_read;
- new_buffer_read = new_file_read;
- k--;
- }
- else {
- new_buffer_read += flat_buf->blocklens[k];
- end_brd_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_read = brd_size;
- if (brd_size > (bufsize - size_read)) {
- new_buffer_read = bufsize - size_read;
- brd_size = new_buffer_read;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_read < new_file_read) */
- } /* if ((new_file_read < new_buffer_read) && (file_list_count
- == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_read < bufsize-size_read)) */
-
- /* fills the allocated readlist arrays */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- mem_offsets[i] = buf +
- buftype_extent* (buf_count/flat_buf->count) +
- flat_buf->indices[k];
- if(!i) {
- mem_lengths[0] = brd_size;
- mem_offsets[0] += flat_buf->blocklens[k] - brd_size;
- }
- else {
- if (i == (mem_list_count - 1)) {
- mem_lengths[i] = end_brd_size;
- if (flat_buf->blocklens[k] == end_brd_size)
- brd_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- brd_size = flat_buf->blocklens[k] - end_brd_size;
- k--;
- buf_count--;
- }
- }
- else {
- mem_lengths[i] = flat_buf->blocklens[k];
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- file_offsets[i] = disp + flat_file->indices[j] +
- ((ADIO_Offset)n_filetypes) * filetype_extent;
- if (!i) {
- file_lengths[0] = frd_size;
- file_offsets[0] += flat_file->blocklens[j] - frd_size;
- }
- else {
- if (i == (file_list_count - 1)) {
- file_lengths[i] = end_frd_size;
- if (flat_file->blocklens[j] == end_frd_size)
- frd_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- frd_size = flat_file->blocklens[j] - end_frd_size;
- j--;
- }
- }
- else file_lengths[i] = flat_file->blocklens[j];
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_read(zoidfs_obj_ptr,
- mem_list_count, mem_offsets, mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_read_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_read", 0);
- }
- /* --END ERROR HANDLING-- */
- size_read += new_buffer_read;
- total_bytes_read += new_buffer_read; /* XXX: is this right? */
- start_k = k;
- start_j = j;
- } /* while (size_read < bufsize) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
- }
- /* Other ADIO routines will convert absolute bytes into counts of datatypes */
- /* when incrementing fp_ind, need to also take into account the file type:
- * consider an N-element 1-d subarray with a lb and ub: ( |---xxxxx-----|
- * if we wrote N elements, offset needs to point at beginning of type, not
- * at empty region at offset N+1)
- *
- * As we discussed on mpich-discuss in may/june 2009, the code below might
- * look wierd, but by putting fp_ind at the last byte written, the next
- * time we run through the strided code we'll update the fp_ind to the
- * right location. */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- fd->fp_ind = file_offsets[file_list_count-1]+
- file_lengths[file_list_count-1];
- }
-
- ADIOI_Free(file_offsets);
- ADIOI_Free(file_lengths);
-
- if (err_flag == 0) *error_code = MPI_SUCCESS;
-
-error_state:
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
- /* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually read and placed in buf
- by ADIOI_BUFFERED_READ. */
-#endif
-
-}
-
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_resize.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_resize.c
deleted file mode 100644
index 60d2fca..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_resize.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- *
- * Copyright (C) 1997 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "ad_zoidfs.h"
-#include "ad_zoidfs_common.h"
-
-/* as with flush, implement the resize operation in a scalable
- * manner. one process does the work, then broadcasts the result to everyone
- * else. fortunately, this operation is defined to be collective */
-void ADIOI_ZOIDFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code)
-{
- int ret, rank;
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
- static char myname[] = "ADIOI_ZOIDFS_RESIZE";
-
- *error_code = MPI_SUCCESS;
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object *)fd->fs_ptr;
-
- MPI_Comm_rank(fd->comm, &rank);
-
-
- /* MPI-IO semantics treat conflicting MPI_File_set_size requests the
- * same as conflicting write requests. Thus, a resize from one
- * process does not have to be visible to the other processes until a
- * syncronization point is reached */
-
- if (rank == fd->hints->ranklist[0]) {
- NO_STALE(ret, fd, zoidfs_obj_ptr,
- zoidfs_resize(zoidfs_obj_ptr, size, ZOIDFS_NO_OP_HINT));
- MPI_Bcast(&ret, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
- } else {
- MPI_Bcast(&ret, 1, MPI_INT, fd->hints->ranklist[0], fd->comm);
- }
- /* --BEGIN ERROR HANDLING-- */
- if (ret != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(ret),
- "Error in zoidfs_resize", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-}
-
-/*
- * vim: ts=8 sts=4 sw=4 noexpandtab
- */
diff --git a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_write_list.c b/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_write_list.c
deleted file mode 100644
index 6c41f2a..0000000
--- a/src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_write_list.c
+++ /dev/null
@@ -1,852 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*-
- * vim: ts=8 sts=4 sw=4 noexpandtab
- *
- * Copyright (C) 2008 University of Chicago.
- * See COPYRIGHT notice in top-level directory.
- */
-
-#include "adio.h"
-#include "adio_extern.h"
-#include "ad_zoidfs.h"
-
-#include "ad_zoidfs_common.h"
-
-/* Copied from ADIOI_PVFS2_OldWriteStrided. It would be good to have fewer
- * copies of this code... */
-void ADIOI_ZOIDFS_WriteStrided(ADIO_File fd, void *buf, int count,
- MPI_Datatype datatype, int file_ptr_type,
- ADIO_Offset offset, ADIO_Status *status,
- int *error_code)
-{
- /* as with all the other WriteStrided functions, offset is in units of
- * etype relative to the filetype */
-
- /* Since zoidfs does not support file locking, can't do buffered writes
- as on Unix */
-
- ADIOI_Flatlist_node *flat_buf, *flat_file;
- int i, j, k, bwr_size, fwr_size=0, st_index=0;
- int sum, n_etypes_in_filetype, size_in_filetype;
- MPI_Count bufsize;
- int n_filetypes, etype_in_filetype;
- ADIO_Offset abs_off_in_filetype=0;
- MPI_Count filetype_size, etype_size, buftype_size;
- MPI_Aint filetype_extent, buftype_extent;
- int buf_count, buftype_is_contig, filetype_is_contig;
- ADIO_Offset off, disp, start_off, initial_off;
- int flag, st_fwr_size, st_n_filetypes;
- int err_flag=0;
-
- size_t mem_list_count, file_list_count;
- const void ** mem_offsets;
- uint64_t *file_offsets;
- size_t *mem_lengths;
- uint64_t *file_lengths;
- int total_blks_to_write;
-
- int max_mem_list, max_file_list;
-
- int b_blks_wrote;
- int f_data_wrote;
- int size_wrote=0, n_write_lists, extra_blks;
-
- int end_bwr_size, end_fwr_size;
- int start_k, start_j, new_file_write, new_buffer_write;
- int start_mem_offset;
- ADIOI_ZOIDFS_object *zoidfs_obj_ptr;
- MPI_Offset total_bytes_written=0;
- static char myname[] = "ADIOI_ZOIDFS_WRITESTRIDED";
-
- /* note: I don't know what zoidfs will do if you pass it a super-long list,
- * so let's keep with the PVFS limit for now */
-#define MAX_ARRAY_SIZE 64
-
- /* --BEGIN ERROR HANDLING-- */
- if (fd->atomicity) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- MPI_ERR_ARG,
- "Atomic noncontiguous writes are not supported by ZOIDFS", 0);
- return;
- }
- /* --END ERROR HANDLING-- */
-
- ADIOI_Datatype_iscontig(datatype, &buftype_is_contig);
- ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig);
-
- /* the HDF5 tests showed a bug in this list processing code (see many many
- * lines down below). We added a workaround, but common HDF5 file types
- * are actually contiguous and do not need the expensive workarond */
- if (!filetype_is_contig) {
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
- if (flat_file->count == 1 && !buftype_is_contig)
- filetype_is_contig = 1;
- }
-
- MPI_Type_size_x(fd->filetype, &filetype_size);
- if ( ! filetype_size ) {
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, 0);
-#endif
- *error_code = MPI_SUCCESS;
- return;
- }
-
- MPI_Type_extent(fd->filetype, &filetype_extent);
- MPI_Type_size_x(datatype, &buftype_size);
- MPI_Type_extent(datatype, &buftype_extent);
- etype_size = fd->etype_size;
-
- bufsize = buftype_size * count;
-
- zoidfs_obj_ptr = (ADIOI_ZOIDFS_object*)fd->fs_ptr;
-
- if (!buftype_is_contig && filetype_is_contig) {
-
-/* noncontiguous in memory, contiguous in file. */
- uint64_t file_offsets;
- uint64_t file_lengths;
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- if (file_ptr_type == ADIO_EXPLICIT_OFFSET) {
- off = fd->disp + etype_size * offset;
- }
- else off = fd->fp_ind;
-
- file_list_count = 1;
- file_offsets = off;
- file_lengths = 0;
- total_blks_to_write = count*flat_buf->count;
- b_blks_wrote = 0;
-
- /* allocate arrays according to max usage */
- if (total_blks_to_write > MAX_ARRAY_SIZE)
- mem_list_count = MAX_ARRAY_SIZE;
- else mem_list_count = total_blks_to_write;
- mem_offsets = (void*)ADIOI_Malloc(mem_list_count*sizeof(void*));
- mem_lengths = (size_t*)ADIOI_Malloc(mem_list_count*sizeof(size_t));
-
- j = 0;
- /* step through each block in memory, filling memory arrays */
- while (b_blks_wrote < total_blks_to_write) {
- for (i=0; i<flat_buf->count; i++) {
- mem_offsets[b_blks_wrote % MAX_ARRAY_SIZE] =
- buf +
- j*buftype_extent +
- flat_buf->indices[i];
- mem_lengths[b_blks_wrote % MAX_ARRAY_SIZE] =
- flat_buf->blocklens[i];
- file_lengths += flat_buf->blocklens[i];
- b_blks_wrote++;
- if (!(b_blks_wrote % MAX_ARRAY_SIZE) ||
- (b_blks_wrote == total_blks_to_write)) {
-
- /* in the case of the last write list call,
- adjust mem_list_count */
- if (b_blks_wrote == total_blks_to_write) {
- mem_list_count = total_blks_to_write % MAX_ARRAY_SIZE;
- /* in case last write list call fills max arrays */
- if (!mem_list_count) mem_list_count = MAX_ARRAY_SIZE;
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_write(zoidfs_obj_ptr,
- mem_list_count,
- mem_offsets, mem_lengths,
- 1, &file_offsets, &file_lengths, ZOIDFS_NO_OP_HINT));
-
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_write", 0);
- break;
- }
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- total_bytes_written += file_lengths;
-
- /* in the case of error or the last write list call,
- * leave here */
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_write", 0);
- break;
- }
- /* --END ERROR HANDLING-- */
- if (b_blks_wrote == total_blks_to_write) break;
-
- file_offsets += file_lengths;
- file_lengths = 0;
- }
- } /* for (i=0; i<flat_buf->count; i++) */
- j++;
- } /* while (b_blks_wrote < total_blks_to_write) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
-
- if (file_ptr_type == ADIO_INDIVIDUAL)
- fd->fp_ind += total_bytes_written;
-
- if (!err_flag) *error_code = MPI_SUCCESS;
-
- fd->fp_sys_posn = -1; /* clear this. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
- return;
- } /* if (!buftype_is_contig && filetype_is_contig) */
-
- /* already know that file is noncontiguous from above */
- /* noncontiguous in file */
-
-/* filetype already flattened in ADIO_Open */
- flat_file = ADIOI_Flatten_and_find(fd->filetype);
-
- disp = fd->disp;
- initial_off = offset;
-
- /* for each case - ADIO_Individual pointer or explicit, find offset
- (file offset in bytes), n_filetypes (how many filetypes into file
- to start), fwr_size (remaining amount of data in present file
- block), and st_index (start point in terms of blocks in starting
- filetype) */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- offset = fd->fp_ind; /* in bytes */
- n_filetypes = -1;
- flag = 0;
- while (!flag) {
- n_filetypes++;
- for (i=0; i<flat_file->count; i++) {
- if (disp + flat_file->indices[i] +
- ((ADIO_Offset) n_filetypes)*filetype_extent +
- flat_file->blocklens[i] >= offset) {
- st_index = i;
- fwr_size = disp + flat_file->indices[i] +
- ((ADIO_Offset) n_filetypes)*filetype_extent
- + flat_file->blocklens[i] - offset;
- flag = 1;
- break;
- }
- }
- } /* while (!flag) */
- } /* if (file_ptr_type == ADIO_INDIVIDUAL) */
- else {
- n_etypes_in_filetype = filetype_size/etype_size;
- n_filetypes = (int) (offset / n_etypes_in_filetype);
- etype_in_filetype = (int) (offset % n_etypes_in_filetype);
- size_in_filetype = etype_in_filetype * etype_size;
-
- sum = 0;
- for (i=0; i<flat_file->count; i++) {
- sum += flat_file->blocklens[i];
- if (sum > size_in_filetype) {
- st_index = i;
- fwr_size = sum - size_in_filetype;
- abs_off_in_filetype = flat_file->indices[i] +
- size_in_filetype - (sum - flat_file->blocklens[i]);
- break;
- }
- }
-
- /* abs. offset in bytes in the file */
- offset = disp + ((ADIO_Offset) n_filetypes)*filetype_extent +
- abs_off_in_filetype;
- } /* else [file_ptr_type != ADIO_INDIVIDUAL] */
-
- start_off = offset;
- st_fwr_size = fwr_size;
- st_n_filetypes = n_filetypes;
-
- if (buftype_is_contig && !filetype_is_contig) {
-
-/* contiguous in memory, noncontiguous in file. should be the most
- common case. */
-
- /* only one memory off-len pair, so no array */
- size_t mem_lengths;
- size_t mem_offsets;
-
- i = 0;
- j = st_index;
- off = offset;
- n_filetypes = st_n_filetypes;
-
- mem_list_count = 1;
-
- /* determine how many blocks in file to write */
- f_data_wrote = MPL_MIN(st_fwr_size, bufsize);
- total_blks_to_write = 1;
- if (j < (flat_file->count -1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- while (f_data_wrote < bufsize) {
- f_data_wrote += flat_file->blocklens[j];
- total_blks_to_write++;
- if (j<(flat_file->count-1)) j++;
- else j = 0;
- }
-
- j = st_index;
- n_filetypes = st_n_filetypes;
- n_write_lists = total_blks_to_write/MAX_ARRAY_SIZE;
- extra_blks = total_blks_to_write%MAX_ARRAY_SIZE;
-
- mem_offsets = (size_t)buf;
- mem_lengths = 0;
-
- /* if at least one full writelist, allocate file arrays
- at max array size and don't free until very end */
- if (n_write_lists) {
- file_offsets = (int64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(int64_t));
- file_lengths = (uint64_t*)ADIOI_Malloc(MAX_ARRAY_SIZE*
- sizeof(uint64_t));
- }
- /* if there's no full writelist allocate file arrays according
- to needed size (extra_blks) */
- else {
- file_offsets = (int64_t*)ADIOI_Malloc(extra_blks*
- sizeof(int64_t));
- file_lengths = (uint64_t*)ADIOI_Malloc(extra_blks*
- sizeof(uint64_t));
- }
-
- /* for file arrays that are of MAX_ARRAY_SIZE, build arrays */
- for (i=0; i<n_write_lists; i++) {
- file_list_count = MAX_ARRAY_SIZE;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = st_fwr_size;
- mem_lengths = st_fwr_size;
- }
- for (k=0; k<MAX_ARRAY_SIZE; k++) {
- if (i || k) {
- file_offsets[k] = disp +
- ((ADIO_Offset)n_filetypes)*filetype_extent
- + flat_file->indices[j];
- file_lengths[k] = flat_file->blocklens[j];
- mem_lengths += file_lengths[k];
- }
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<MAX_ARRAY_SIZE; k++) */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_write(zoidfs_obj_ptr,
- 1, buf, &mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_write", 0);
- goto error_state;
- }
- /* --END ERROR HANDLING-- */
- total_bytes_written += mem_lengths;
-
- mem_offsets += mem_lengths;
- mem_lengths = 0;
-
- } /* for (i=0; i<n_write_lists; i++) */
-
- /* for file arrays smaller than MAX_ARRAY_SIZE (last write_list call) */
- if (extra_blks) {
- file_list_count = extra_blks;
- if(!i) {
- file_offsets[0] = offset;
- file_lengths[0] = MPL_MIN(st_fwr_size, bufsize);
- }
- for (k=0; k<extra_blks; k++) {
- if(i || k) {
- file_offsets[k] = disp +
- ((ADIO_Offset)n_filetypes)*filetype_extent +
- flat_file->indices[j];
- /* XXX: double-check these casts */
- if (k == (extra_blks - 1)) {
- file_lengths[k] = bufsize
- - mem_lengths - mem_offsets + (size_t)buf;
- }
- else file_lengths[k] = flat_file->blocklens[j];
- } /* if(i || k) */
- mem_lengths += file_lengths[k];
- if (j<(flat_file->count - 1)) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (k=0; k<extra_blks; k++) */
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_write(zoidfs_obj_ptr, 1,
- (const void **)&mem_offsets,
- &mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != 0) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_write", 0);
- goto error_state;
- }
- /* --END ERROR HANDLING-- */
- total_bytes_written += mem_lengths;
- }
- }
- else {
- /* noncontiguous in memory as well as in file */
-
- flat_buf = ADIOI_Flatten_and_find(datatype);
-
- size_wrote = 0;
- n_filetypes = st_n_filetypes;
- fwr_size = st_fwr_size;
- bwr_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
- max_mem_list = 0;
- max_file_list = 0;
-
- /* run through and file max_file_list and max_mem_list so that you
- can allocate the file and memory arrays less than MAX_ARRAY_SIZE
- if possible */
-
- while (size_wrote < bufsize) {
- k = start_k;
- new_buffer_write = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data written and data to be
- written in the next immediate write list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k] +
- size_wrote) > bufsize) {
- end_bwr_size = new_buffer_write +
- flat_buf->blocklens[k] - (bufsize - size_wrote);
- new_buffer_write = bufsize - size_wrote;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- else new_buffer_write = bwr_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
- j = start_j;
- new_file_write = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_write < new_buffer_write)) {
- if(file_list_count) {
- if((new_file_write + flat_file->blocklens[j]) >
- new_buffer_write) {
- end_fwr_size = new_buffer_write - new_file_write;
- new_file_write = new_buffer_write;
- j--;
- }
- else {
- new_file_write += flat_file->blocklens[j];
- end_fwr_size = flat_file->blocklens[j];
- }
- }
- else {
- if (fwr_size > new_buffer_write) {
- new_file_write = new_buffer_write;
- fwr_size = new_file_write;
- }
- else new_file_write = fwr_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_write = 0;
- mem_list_count = 0;
- while (new_buffer_write < new_file_write) {
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k]) >
- new_file_write) {
- end_bwr_size = new_file_write -
- new_buffer_write;
- new_buffer_write = new_file_write;
- k--;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_write = bwr_size;
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_write < new_file_write) */
- } /* if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
-
- /* fakes filling the writelist arrays of lengths found above */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- if(i) {
- if (i == (mem_list_count - 1)) {
- if (flat_buf->blocklens[k] == end_bwr_size)
- bwr_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- bwr_size = flat_buf->blocklens[k] - end_bwr_size;
- k--;
- buf_count--;
- }
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- if (i) {
- if (i == (file_list_count - 1)) {
- if (flat_file->blocklens[j] == end_fwr_size)
- fwr_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- fwr_size = flat_file->blocklens[j] - end_fwr_size;
- j--;
- }
- }
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
- size_wrote += new_buffer_write;
- start_k = k;
- start_j = j;
- if (max_mem_list < mem_list_count)
- max_mem_list = mem_list_count;
- if (max_file_list < file_list_count)
- max_file_list = file_list_count;
- } /* while (size_wrote < bufsize) */
-
- /* one last check before we actually carry out the operation:
- * this code has hard-to-fix bugs when a noncontiguous file type has
- * such large pieces that the sum of the lengths of the memory type is
- * not larger than one of those pieces (and vice versa for large memory
- * types and many pices of file types. In these cases, give up and
- * fall back to naive reads and writes. The testphdf5 test created a
- * type with two very large memory regions and 600 very small file
- * regions. The same test also created a type with one very large file
- * region and many (700) very small memory regions. both cases caused
- * problems for this code */
-
- if ( ( (file_list_count == 1) &&
- (new_file_write < flat_file->blocklens[0] ) ) ||
- ((mem_list_count == 1) &&
- (new_buffer_write < flat_buf->blocklens[0]) ) ||
- ((file_list_count == MAX_ARRAY_SIZE) &&
- (new_file_write < flat_buf->blocklens[0]) ) ||
- ( (mem_list_count == MAX_ARRAY_SIZE) &&
- (new_buffer_write < flat_file->blocklens[0])) )
- {
- ADIOI_GEN_WriteStrided_naive(fd, buf, count, datatype,
- file_ptr_type, initial_off, status, error_code);
- return;
- }
-
-
- mem_offsets = (void *)ADIOI_Malloc(max_mem_list*sizeof(void *));
- mem_lengths = (size_t*)ADIOI_Malloc(max_mem_list*sizeof(size_t));
- file_offsets = (uint64_t *)ADIOI_Malloc(max_file_list*sizeof(uint64_t));
- file_lengths = (uint64_t*)ADIOI_Malloc(max_file_list*sizeof(uint64_t));
-
- size_wrote = 0;
- n_filetypes = st_n_filetypes;
- fwr_size = st_fwr_size;
- bwr_size = flat_buf->blocklens[0];
- buf_count = 0;
- start_mem_offset = 0;
- start_k = k = 0;
- start_j = st_index;
-
- /* this section calculates mem_list_count and file_list_count
- and also finds the possibly odd sized last array elements
- in new_fwr_size and new_bwr_size */
-
- while (size_wrote < bufsize) {
- k = start_k;
- new_buffer_write = 0;
- mem_list_count = 0;
- while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) {
- /* find mem_list_count and file_list_count such that both are
- less than MAX_ARRAY_SIZE, the sum of their lengths are
- equal, and the sum of all the data written and data to be
- written in the next immediate write list is less than
- bufsize */
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k] +
- size_wrote) > bufsize) {
- end_bwr_size = new_buffer_write +
- flat_buf->blocklens[k] - (bufsize - size_wrote);
- new_buffer_write = bufsize - size_wrote;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- else new_buffer_write = bwr_size;
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
- j = start_j;
- new_file_write = 0;
- file_list_count = 0;
- while ((file_list_count < MAX_ARRAY_SIZE) &&
- (new_file_write < new_buffer_write)) {
- if(file_list_count) {
- if((new_file_write + flat_file->blocklens[j]) >
- new_buffer_write) {
- end_fwr_size = new_buffer_write - new_file_write;
- new_file_write = new_buffer_write;
- j--;
- }
- else {
- new_file_write += flat_file->blocklens[j];
- end_fwr_size = flat_file->blocklens[j];
- }
- }
- else {
- if (fwr_size > new_buffer_write) {
- new_file_write = new_buffer_write;
- fwr_size = new_file_write;
- }
- else new_file_write = fwr_size;
- }
- file_list_count++;
- if (j < (flat_file->count - 1)) j++;
- else j = 0;
-
- k = start_k;
- if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) {
- new_buffer_write = 0;
- mem_list_count = 0;
- while (new_buffer_write < new_file_write) {
- if(mem_list_count) {
- if((new_buffer_write + flat_buf->blocklens[k]) >
- new_file_write) {
- end_bwr_size = new_file_write -
- new_buffer_write;
- new_buffer_write = new_file_write;
- k--;
- }
- else {
- new_buffer_write += flat_buf->blocklens[k];
- end_bwr_size = flat_buf->blocklens[k];
- }
- }
- else {
- new_buffer_write = bwr_size;
- if (bwr_size > (bufsize - size_wrote)) {
- new_buffer_write = bufsize - size_wrote;
- bwr_size = new_buffer_write;
- }
- }
- mem_list_count++;
- k = (k + 1)%flat_buf->count;
- } /* while (new_buffer_write < new_file_write) */
- } /* if ((new_file_write < new_buffer_write) &&
- (file_list_count == MAX_ARRAY_SIZE)) */
- } /* while ((mem_list_count < MAX_ARRAY_SIZE) &&
- (new_buffer_write < bufsize-size_wrote)) */
-
- /* fills the allocated writelist arrays */
- k = start_k;
- j = start_j;
- for (i=0; i<mem_list_count; i++) {
- mem_offsets[i] = buf +
- buftype_extent* (buf_count/flat_buf->count) +
- flat_buf->indices[k];
-
- if(!i) {
- mem_lengths[0] = bwr_size;
- mem_offsets[0] += flat_buf->blocklens[k] - bwr_size;
- }
- else {
- if (i == (mem_list_count - 1)) {
- mem_lengths[i] = end_bwr_size;
- if (flat_buf->blocklens[k] == end_bwr_size)
- bwr_size = flat_buf->blocklens[(k+1)%
- flat_buf->count];
- else {
- bwr_size = flat_buf->blocklens[k] - end_bwr_size;
- k--;
- buf_count--;
- }
- }
- else {
- mem_lengths[i] = flat_buf->blocklens[k];
- }
- }
- buf_count++;
- k = (k + 1)%flat_buf->count;
- } /* for (i=0; i<mem_list_count; i++) */
- for (i=0; i<file_list_count; i++) {
- file_offsets[i] = disp + flat_file->indices[j] +
- ((ADIO_Offset)n_filetypes) * filetype_extent;
- if (!i) {
- file_lengths[0] = fwr_size;
- file_offsets[0] += flat_file->blocklens[j] - fwr_size;
- }
- else {
- if (i == (file_list_count - 1)) {
- file_lengths[i] = end_fwr_size;
- if (flat_file->blocklens[j] == end_fwr_size)
- fwr_size = flat_file->blocklens[(j+1)%
- flat_file->count];
- else {
- fwr_size = flat_file->blocklens[j] - end_fwr_size;
- j--;
- }
- }
- else file_lengths[i] = flat_file->blocklens[j];
- }
- if (j < flat_file->count - 1) j++;
- else {
- j = 0;
- n_filetypes++;
- }
- } /* for (i=0; i<file_list_count; i++) */
-
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_a, 0, NULL );
-#endif
- NO_STALE(err_flag, fd, zoidfs_obj_ptr,
- zoidfs_write(zoidfs_obj_ptr,
- mem_list_count, mem_offsets, mem_lengths,
- file_list_count,
- file_offsets, file_lengths, ZOIDFS_NO_OP_HINT));
- /* --BEGIN ERROR HANDLING-- */
- if (err_flag != ZFS_OK) {
- *error_code = MPIO_Err_create_code(MPI_SUCCESS,
- MPIR_ERR_RECOVERABLE,
- myname, __LINE__,
- ADIOI_ZOIDFS_error_convert(err_flag),
- "Error in zoidfs_write", 0);
- goto error_state;
- }
- /* --END ERROR HANDLING-- */
-#ifdef ADIOI_MPE_LOGGING
- MPE_Log_event( ADIOI_MPE_write_b, 0, NULL );
-#endif
- size_wrote += new_buffer_write;
- total_bytes_written += new_buffer_write; /* XXX: is this right? */
- start_k = k;
- start_j = j;
- } /* while (size_wrote < bufsize) */
- ADIOI_Free(mem_offsets);
- ADIOI_Free(mem_lengths);
- }
- /* when incrementing fp_ind, need to also take into account the file type:
- * consider an N-element 1-d subarray with a lb and ub: ( |---xxxxx-----|
- * if we wrote N elements, offset needs to point at beginning of type, not
- * at empty region at offset N+1).
- *
- * As we discussed on mpich-discuss in may/june 2009, the code below might
- * look wierd, but by putting fp_ind at the last byte written, the next
- * time we run through the strided code we'll update the fp_ind to the
- * right location. */
- if (file_ptr_type == ADIO_INDIVIDUAL) {
- fd->fp_ind = file_offsets[file_list_count-1]+
- file_lengths[file_list_count-1];
- }
- ADIOI_Free(file_offsets);
- ADIOI_Free(file_lengths);
-
- *error_code = MPI_SUCCESS;
-
-error_state:
- fd->fp_sys_posn = -1; /* set it to null. */
-
-#ifdef HAVE_STATUS_SET_BYTES
- MPIR_Status_set_bytes(status, datatype, bufsize);
-/* This is a temporary way of filling in status. The right way is to
- keep track of how much data was actually written by ADIOI_BUFFERED_WRITE. */
-#endif
-
-}
diff --git a/src/mpi/romio/adio/common/ad_fstype.c b/src/mpi/romio/adio/common/ad_fstype.c
index a5f4708..51893c0 100644
--- a/src/mpi/romio/adio/common/ad_fstype.c
+++ b/src/mpi/romio/adio/common/ad_fstype.c
@@ -519,13 +519,7 @@ static void ADIO_FileSysType_prefix(const char *filename, int *fstype, int *erro
static char myname[] = "ADIO_RESOLVEFILETYPE_PREFIX";
*error_code = MPI_SUCCESS;
- if (!strncmp(filename, "pfs:", 4) || !strncmp(filename, "PFS:", 4)) {
- *fstype = ADIO_PFS;
- }
- else if (!strncmp(filename, "piofs:", 6) || !strncmp(filename, "PIOFS:", 6)) {
- *fstype = ADIO_PIOFS;
- }
- else if (!strncmp(filename, "ufs:", 4) || !strncmp(filename, "UFS:", 4)) {
+ if (!strncmp(filename, "ufs:", 4) || !strncmp(filename, "UFS:", 4)) {
*fstype = ADIO_UFS;
}
else if (!strncmp(filename, "nfs:", 4) || !strncmp(filename, "NFS:", 4)) {
@@ -534,35 +528,17 @@ static void ADIO_FileSysType_prefix(const char *filename, int *fstype, int *erro
else if (!strncmp(filename, "panfs:", 6) || !strncmp(filename, "PANFS:", 6)) {
*fstype = ADIO_PANFS;
}
- else if (!strncmp(filename, "hfs:", 4) || !strncmp(filename, "HFS:", 4)) {
- *fstype = ADIO_HFS;
- }
else if (!strncmp(filename, "xfs:", 4) || !strncmp(filename, "XFS:", 4)) {
*fstype = ADIO_XFS;
}
- else if (!strncmp(filename, "sfs:", 4) || !strncmp(filename, "SFS:", 4)) {
- *fstype = ADIO_SFS;
- }
- else if (!strncmp(filename, "pvfs:", 5) || !strncmp(filename, "PVFS:", 5)) {
- *fstype = ADIO_PVFS;
- }
else if (!strncmp(filename, "pvfs2:", 6)||!strncmp(filename, "PVFS2:", 6)) {
*fstype = ADIO_PVFS2;
- }
- else if (!strncmp(filename, "zoidfs:", 7)||
- !strncmp(filename, "ZOIDFS:", 7)) {
- *fstype = ADIO_ZOIDFS;
}
else if (!strncmp(filename, "testfs:", 7)
|| !strncmp(filename, "TESTFS:", 7))
{
*fstype = ADIO_TESTFS;
}
- else if (!strncmp(filename, "ftp:", 4)
- || !strncmp(filename, "gsiftp:", 7))
- {
- *fstype = ADIO_GRIDFTP;
- }
else if (!strncmp(filename, "lustre:", 7)
|| !strncmp(filename, "LUSTRE:", 7))
{
@@ -572,16 +548,12 @@ static void ADIO_FileSysType_prefix(const char *filename, int *fstype, int *erro
*fstype = ADIO_GPFS;
}
else {
-#ifdef ROMIO_NTFS
- *fstype = ADIO_NTFS;
-#else
*fstype = 0;
/* --BEGIN ERROR HANDLING-- */
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
myname, __LINE__, MPI_ERR_NO_SUCH_FILE,
"**filename", "**filename %s", filename);
/* --END ERROR HANDLING-- */
-#endif
}
}
@@ -703,26 +675,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
}
/* verify that we support this file system type and set ops pointer */
- if (file_system == ADIO_PFS) {
-#ifndef ROMIO_PFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_PFS_operations;
-#endif
- }
- if (file_system == ADIO_PIOFS) {
-#ifndef ROMIO_PIOFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_PIOFS_operations;
-#endif
- }
if (file_system == ADIO_UFS) {
#ifndef ROMIO_UFS
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
@@ -753,16 +705,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
*ops = &ADIO_PANFS_operations;
#endif
}
- if (file_system == ADIO_HFS) {
-#ifndef ROMIO_HFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_HFS_operations;
-#endif
- }
if (file_system == ADIO_XFS) {
#ifndef ROMIO_XFS
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
@@ -773,26 +715,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
*ops = &ADIO_XFS_operations;
#endif
}
- if (file_system == ADIO_SFS) {
-#ifndef ROMIO_SFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_SFS_operations;
-#endif
- }
- if (file_system == ADIO_PVFS) {
-#ifndef ROMIO_PVFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_PVFS_operations;
-#endif
- }
if (file_system == ADIO_PVFS2) {
#ifndef ROMIO_PVFS2
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
@@ -803,16 +725,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
*ops = &ADIO_PVFS2_operations;
#endif
}
- if (file_system == ADIO_NTFS) {
-#ifndef ROMIO_NTFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_NTFS_operations;
-#endif
- }
if (file_system == ADIO_TESTFS) {
#ifndef ROMIO_TESTFS
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
@@ -835,16 +747,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
#endif
}
- if (file_system == ADIO_GRIDFTP) {
-#ifndef ROMIO_GRIDFTP
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_GRIDFTP_operations;
-#endif
- }
if (file_system == ADIO_LUSTRE) {
#ifndef ROMIO_LUSTRE
*error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**iofstypeunsupported", 0);
@@ -853,16 +755,6 @@ void ADIO_ResolveFileType(MPI_Comm comm, const char *filename, int *fstype,
*ops = &ADIO_LUSTRE_operations;
#endif
}
- if (file_system == ADIO_ZOIDFS) {
-#ifndef ROMIO_ZOIDFS
- *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
- myname, __LINE__, MPI_ERR_IO,
- "**iofstypeunsupported", 0);
- return;
-#else
- *ops = &ADIO_ZOIDFS_operations;
-#endif
- }
*error_code = MPI_SUCCESS;
*fstype = file_system;
return;
diff --git a/src/mpi/romio/adio/common/ad_read_str_naive.c b/src/mpi/romio/adio/common/ad_read_str_naive.c
index 62a32c5..7be46ba 100644
--- a/src/mpi/romio/adio/common/ad_read_str_naive.c
+++ b/src/mpi/romio/adio/common/ad_read_str_naive.c
@@ -356,8 +356,7 @@ void ADIOI_GEN_ReadStrided_naive(ADIO_File fd, void *buf, int count,
}
/* unlock the file region if we locked it */
- if ((fd->atomicity) && (fd->file_system != ADIO_PIOFS) &&
- (fd->file_system != ADIO_PVFS) && (fd->file_system != ADIO_PVFS2))
+ if ((fd->atomicity) && ADIO_Feature(fd, ADIO_LOCKS))
{
ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1);
}
diff --git a/src/mpi/romio/adio/common/lock.c b/src/mpi/romio/adio/common/lock.c
index ba9524c..6c15428 100644
--- a/src/mpi/romio/adio/common/lock.c
+++ b/src/mpi/romio/adio/common/lock.c
@@ -179,7 +179,7 @@ int ADIOI_Set_lock(FDTYPE fd, int cmd, int type, ADIO_Offset offset, int whence,
}
#endif
-#if (defined(ROMIO_HFS) || defined(ROMIO_XFS))
+#if defined(ROMIO_XFS)
int ADIOI_Set_lock64(FDTYPE fd, int cmd, int type, ADIO_Offset offset,
int whence,
ADIO_Offset len)
diff --git a/src/mpi/romio/adio/include/adio.h b/src/mpi/romio/adio/include/adio.h
index e508452..34e1914 100644
--- a/src/mpi/romio/adio/include/adio.h
+++ b/src/mpi/romio/adio/include/adio.h
@@ -275,25 +275,16 @@ typedef struct {
#define ADIO_REQUEST_NULL ((ADIO_Request) 0)
#define ADIO_FILE_NULL ((ADIO_File) 0)
-/* file systems */
+/* file systems:
+ * the numbering is slightly strange because we have deleted file
+ * systems over time */
#define ADIO_NFS 150
-#define ADIO_PIOFS 151 /* IBM */
#define ADIO_UFS 152 /* Unix file system */
-#define ADIO_PFS 153 /* Intel */
#define ADIO_XFS 154 /* SGI */
-#define ADIO_HFS 155 /* HP/Convex */
-#define ADIO_SFS 156 /* NEC */
-#define ADIO_PVFS 157 /* PVFS for Linux Clusters from Clemson Univ. */
-#define ADIO_NTFS 158 /* NTFS for Windows NT */
#define ADIO_TESTFS 159 /* fake file system for testing */
#define ADIO_PVFS2 160 /* PVFS2: 2nd generation PVFS */
#define ADIO_PANFS 161 /* Panasas FS */
-#define ADIO_GRIDFTP 162 /* Globus GridFTP */
#define ADIO_LUSTRE 163 /* Lustre */
-/* #define ADIO_BGL 164 */ /* IBM BGL */
-/* #define ADIO_BGLOCKLESS 165 */ /* IBM BGL (lock-free) */
-#define ADIO_ZOIDFS 167 /* ZoidFS: the I/O forwarding fs */
-/* #define ADIO_BG 168 */
#define ADIO_GPFS 168
#define ADIO_SEEK_SET SEEK_SET
diff --git a/src/mpi/romio/adio/include/adioi.h b/src/mpi/romio/adio/include/adioi.h
index d6cfd66..6bbdcb5 100644
--- a/src/mpi/romio/adio/include/adioi.h
+++ b/src/mpi/romio/adio/include/adioi.h
@@ -147,12 +147,6 @@ typedef struct ADIOI_AIO_req_str {
PVFS_Request file_req;
PVFS_Request mem_req;
#endif
-#ifdef ROMIO_NTFS
- /* Ptr to Overlapped struct */
- LPOVERLAPPED lpOvl;
- /* Ptr to file handle */
- HANDLE fd;
-#endif
} ADIOI_AIO_Request;
struct ADIOI_Fns_struct {
@@ -863,7 +857,7 @@ int MPIOI_File_iread_all(MPI_File fh,
/* Unix-style file locking */
-#if (defined(ROMIO_HFS) || defined(ROMIO_XFS))
+#if defined(ROMIO_XFS)
# define ADIOI_WRITE_LOCK(fd, offset, whence, len) \
do {if (((fd)->file_system == ADIO_XFS) || ((fd)->file_system == ADIO_HFS)) \
@@ -880,18 +874,6 @@ int MPIOI_File_iread_all(MPI_File fh,
ADIOI_Set_lock64((fd)->fd_sys, F_SETLK64, F_UNLCK, offset, whence, len); \
else ADIOI_Set_lock((fd)->fd_sys, F_SETLK, F_UNLCK, offset, whence, len); }while (0)
-#elif (defined(ROMIO_NTFS))
-
-#define ADIOI_LOCK_CMD 0
-#define ADIOI_UNLOCK_CMD 1
-
-# define ADIOI_WRITE_LOCK(fd, offset, whence, len) \
- ADIOI_Set_lock((fd)->fd_sys, ADIOI_LOCK_CMD, LOCKFILE_EXCLUSIVE_LOCK, offset, whence, len)
-# define ADIOI_READ_LOCK(fd, offset, whence, len) \
- ADIOI_Set_lock((fd)->fd_sys, ADIOI_LOCK_CMD, 0, offset, whence, len)
-# define ADIOI_UNLOCK(fd, offset, whence, len) \
- ADIOI_Set_lock((fd)->fd_sys, ADIOI_UNLOCK_CMD, LOCKFILE_FAIL_IMMEDIATELY, offset, whence, len)
-
#else
#ifdef ADIOI_MPE_LOGGING
diff --git a/src/mpi/romio/adio/include/adioi_errmsg.h b/src/mpi/romio/adio/include/adioi_errmsg.h
index b1cdb45..baaee45 100644
--- a/src/mpi/romio/adio/include/adioi_errmsg.h
+++ b/src/mpi/romio/adio/include/adioi_errmsg.h
@@ -32,10 +32,10 @@ MPI_ERR_TYPE
MPIR_ERR_TYPE_NULL (null datatype. from MPICH)
MPI_ERR_UNSUPPORTED_OPERATION
- MPIR_ERR_NO_SHARED_FP "Shared file pointer not supported on PIOFS and PVFS"
+ MPIR_ERR_NO_SHARED_FP "Shared file pointer not supported on this fs"
MPIR_ERR_AMODE_SEQ "Cannot use this function when file is opened with amode MPI_MODE_SEQUENTIAL"
MPIR_ERR_MODE_WRONLY "Cannot read from a file opened with amode MPI_MODE_WRONLY"
- MPIR_ERR_NO_MODE_SEQ "MPI_MODE_SEQUENTIAL not supported on PIOFS and PVFS"
+ MPIR_ERR_NO_MODE_SEQ "MPI_MODE_SEQUENTIAL not supported on this fs"
MPI_ERR_REQUEST
MPIR_ERR_REQUEST_NULL (null request. from MPICH)
@@ -43,14 +43,9 @@ MPI_ERR_REQUEST
MPI_ERR_IO
MPIR_ERR_ETYPE_FRACTIONAL "Only an integral number of etypes can be accessed"
MPIR_ERR_NO_FSTYPE "Can't determine the file-system type. Check the filename/path you provided and try again. Otherwise, prefix the filename with a string to indicate the type of file sytem (piofs:, pfs:, nfs:, ufs:, hfs:, xfs:, sfs:, pvfs:, panfs: ftp: gsiftp:)"
- MPIR_ERR_NO_PFS "ROMIO has not been configured to use the PFS file system"
- MPIR_ERR_NO_PIOFS "ROMIO has not been configured to use the PIOFS file system"
MPIR_ERR_NO_UFS "ROMIO has not been configured to use the UFS file system"
MPIR_ERR_NO_NFS "ROMIO has not been configured to use the NFS file system"
- MPIR_ERR_NO_HFS "ROMIO has not been configured to use the HFS file system"
MPIR_ERR_NO_XFS "ROMIO has not been configured to use the XFS file system"
- MPIR_ERR_NO_SFS "ROMIO has not been configured to use the SFS file system"
- MPIR_ERR_NO_PVFS "ROMIO has not been configured to use the PVFS file system"
MPIR_ERR_NO_PANFS "ROMIO has not been configured to use the PANFS file system"
MPIR_ERR_MULTIPLE_SPLIT_COLL "Only one active split collective I/O operation allowed per file handle"
MPIR_ERR_NO_SPLIT_COLL "No previous split collective begin"
@@ -61,7 +56,6 @@ MPI_ERR_IO
MPIR_ERR_FILETYPE "Filetype must be constructed out of one or more etypes"
MPIR_ERR_NO_TESTFS "ROMIO has not been configured to use the TESTFS file system"
MPIR_ERR_DEFERRED "independent IO attempted even though no_indep_rw hint given"
- MPIR_ERR_NO_BGL "ROMIO has not been configured to use the BGL file system"
MPI_ERR_COMM
MPIR_ERR_COMM_NULL (null communicator. from MPICH)
diff --git a/src/mpi/romio/adio/include/adioi_fs_proto.h b/src/mpi/romio/adio/include/adioi_fs_proto.h
index e3af917..d1d50bf 100644
--- a/src/mpi/romio/adio/include/adioi_fs_proto.h
+++ b/src/mpi/romio/adio/include/adioi_fs_proto.h
@@ -19,51 +19,21 @@ extern struct ADIOI_Fns_struct ADIO_PANFS_operations;
/* prototypes are in adio/ad_panfs/ad_panfs.h */
#endif
-#ifdef ROMIO_PFS
-extern struct ADIOI_Fns_struct ADIO_PFS_operations;
-/* prototypes are in adio/ad_pfs/ad_pfs.h */
-#endif
-
-#ifdef ROMIO_PIOFS
-extern struct ADIOI_Fns_struct ADIO_PIOFS_operations;
-/* prototypes are in adio/ad_piofs/ad_piofs.h */
-#endif
-
#ifdef ROMIO_UFS
extern struct ADIOI_Fns_struct ADIO_UFS_operations;
/* prototypes are in adio/ad_ufs/ad_ufs.h */
#endif
-#ifdef ROMIO_HFS
-extern struct ADIOI_Fns_struct ADIO_HFS_operations;
-/* prototypes are in adio/ad_hfs/ad_hfs.h */
-#endif
-
#ifdef ROMIO_XFS
extern struct ADIOI_Fns_struct ADIO_XFS_operations;
/* prototypes are in adio/ad_xfs/ad_xfs.h */
#endif
-#ifdef ROMIO_SFS
-extern struct ADIOI_Fns_struct ADIO_SFS_operations;
-/* prototypes are in adio/ad_sfs/ad_sfs.h */
-#endif
-
#ifdef ROMIO_LUSTRE
extern struct ADIOI_Fns_struct ADIO_LUSTRE_operations;
/* prototypes are in adio/ad_lustre/ad_lustre.h */
#endif
-#ifdef ROMIO_NTFS
-extern struct ADIOI_Fns_struct ADIO_NTFS_operations;
-/* prototypes are in adio/ad_ntfs/ad_ntfs.h */
-#endif
-
-#ifdef ROMIO_PVFS
-extern struct ADIOI_Fns_struct ADIO_PVFS_operations;
-/* prototypes are in adio/ad_pvfs/ad_pvfs.h */
-#endif
-
#ifdef ROMIO_PVFS2
extern struct ADIOI_Fns_struct ADIO_PVFS2_operations;
/* prototypes are in adio/ad_pvfs2/ad_pvfs2.h */
@@ -79,14 +49,4 @@ extern struct ADIOI_Fns_struct ADIO_GPFS_operations;
/* prototypes are in adio/ad_gpfs/ad_gpfs.h */
#endif
-#ifdef ROMIO_GRIDFTP
-/* prototypes are in adio/ad_gridftp/ad_gridftp.h */
-extern struct ADIOI_Fns_struct ADIO_GRIDFTP_operations;
-#endif
-
-#ifdef ROMIO_ZOIDFS
-/* prototypes are in adio/ad_zoidfs/ad_zoidfs.h */
-extern struct ADIOI_Fns_struct ADIO_ZOIDFS_operations;
-#endif
-
#endif
diff --git a/src/mpi/romio/adio/include/mpio_error.h b/src/mpi/romio/adio/include/mpio_error.h
index f9d22b1..f5c414d 100644
--- a/src/mpi/romio/adio/include/mpio_error.h
+++ b/src/mpi/romio/adio/include/mpio_error.h
@@ -45,14 +45,9 @@
#define MPIR_ADIO_ERROR 1 /* used for strerror(errno) */
#define MPIR_ERR_ETYPE_FRACTIONAL 3
#define MPIR_ERR_NO_FSTYPE 5
-#define MPIR_ERR_NO_PFS 7
-#define MPIR_ERR_NO_PIOFS 9
#define MPIR_ERR_NO_UFS 11
#define MPIR_ERR_NO_NFS 13
-#define MPIR_ERR_NO_HFS 15
#define MPIR_ERR_NO_XFS 17
-#define MPIR_ERR_NO_SFS 19
-#define MPIR_ERR_NO_PVFS 21
#define MPIR_ERR_NO_PANFS 22
#define MPIR_ERR_MULTIPLE_SPLIT_COLL 23
#define MPIR_ERR_NO_SPLIT_COLL 25
@@ -60,10 +55,8 @@
#define MPIR_READ_PERM 29
#define MPIR_PREALLOC_PERM 31
#define MPIR_ERR_FILETYPE 33
-#define MPIR_ERR_NO_NTFS 35
#define MPIR_ERR_NO_TESTFS 36
#define MPIR_ERR_NO_LUSTRE 37
-#define MPIR_ERR_NO_BGL 38
/* MPI_ERR_COMM */
#ifndef MPIR_ERR_COMM_NULL
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index 17cb376..250391d 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -177,7 +177,7 @@ dnl An m4 macro for use with m4_foreach_w and friends. You should modify this
dnl list if you want to add a known file system. The list is just whitespace
dnl separated, so you can use newlines and tabs as well.
m4_define([known_filesystems_m4_w],
- [nfs ufs pfs pvfs pvfs2 testfs xfs panfs gridftp lustre gpfs zoidfs hfs piofs sfs])dnl
+ [nfs ufs pvfs2 testfs xfs panfs lustre gpfs])dnl
dnl
dnl An m4 macro for use with m4_foreach and friends. Expands to a quoted list of
dnl quoted elements. A bit easier to use without unintended expansion than the
@@ -862,16 +862,6 @@ fi
# echo "with_file_system is :"$with_file_system": file_system_args is :"$file_system_args": FILE_SYSTEM is :"$FILE_SYSTEM":"
-if test -n "$file_system_hfs"; then
- AC_DEFINE(ROMIO_HFS,1,[Define for ROMIO with HFS])
-fi
-if test -n "$file_system_sfs"; then
- AC_DEFINE(ROMIO_SFS,1,[Define for ROMIO with SFS])
-fi
-
-if test -n "$file_system_pfs"; then
- AC_DEFINE(ROMIO_PFS,1,[Define for ROMIO with PFS])
-fi
if test -n "$file_system_testfs"; then
AC_DEFINE(ROMIO_TESTFS,1,[Define for ROMIO with TESTFS])
@@ -926,56 +916,6 @@ int main(int argc, char **argv) {
fi
#
-# Verify presence of pvfs.h, issue with int64
-#
-if test -n "$file_system_pvfs"; then
- CPPFLAGS="$CPPFLAGS $CFLAGS"
- AC_CHECK_HEADERS(pvfs.h,
- AC_DEFINE(ROMIO_PVFS,1,[Define for ROMIO with PVFS]),
- AC_MSG_ERROR([PVFS support requested but cannot find pvfs.h header file])
- )
- # Check for missing int64_t (intel version 8 compiler and -no-gcc
- # selected)
- AC_MSG_CHECKING([that pvfs.h can be compiled])
- AC_TRY_COMPILE([
-#include <pvfs.h>
- ],[
- ],pvfs_header_ok=yes,pvfs_header_ok=no
- )
- AC_MSG_RESULT($pvfs_header_ok)
- if test "$pvfs_header_ok" = no -a "$ac_cv_sizeof_long_long" = 8 ; then
- AC_MSG_CHECKING([if pvfs.h can be compiled if we define int64_t])
- # Try again, but with int64_t
- AC_TRY_COMPILE([
- typedef long long int int64_t;
-#include <pvfs.h>
- ],[
- ],
- pvfs_header_ok="yes with int64 definition"
- )
- AC_MSG_RESULT($pvfs_header_ok)
- fi
- if test "$pvfs_header_ok" = "yes with int64 definition" ; then
- AC_DEFINE(ROMIO_PVFS_NEEDS_INT64_DEFINITION,1,[Define if int64_t must be defined for PVFS])
- fi
- if test "$pvfs_header_ok" != "no" ; then
- AC_DEFINE(ROMIO_PVFS,1,[Define for ROMIO with PVFS])
- AC_DEFINE(HAVE_PVFS_SUPER_MAGIC, 1, [Define if PVFS_SUPER_MAGIC defined.])
- else
- AC_MSG_WARN(missing or broken pvfs.h header file; disabling ROMIO PVFS support)
- fi
-fi
-
-
-
-if test -n "$file_system_zoidfs"; then
- AC_CHECK_HEADERS(zoidfs.h,
- AC_DEFINE(ROMIO_ZOIDFS,1,[Define for ROMIO with ZoidFD]),
- AC_MSG_ERROR([ZoidFS support requested but cannot find zoidfs.h header file])
- )
-fi
-
-#
# Verify presence of pvfs2.h
#
if test -n "$file_system_pvfs2"; then
@@ -1005,10 +945,6 @@ if test -n "$file_system_pvfs2"; then
fi
-if test -n "$file_system_gridftp"; then
- AC_DEFINE(ROMIO_GRIDFTP, 1, [Define for ROMIO with gridftp])
-fi
-
AS_IF([test -n "$file_system_gpfs"],
[SYSDEP_INC=-I${prefix}/include], [SYSDEP_INC=])
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/Makefile.mk | 7 -
src/mpi/romio/adio/ad_gridftp/Makefile.mk | 27 -
src/mpi/romio/adio/ad_gridftp/ad_gridftp.c | 39 -
src/mpi/romio/adio/ad_gridftp/ad_gridftp.h | 96 --
src/mpi/romio/adio/ad_gridftp/ad_gridftp_close.c | 50 -
src/mpi/romio/adio/ad_gridftp/ad_gridftp_delete.c | 95 --
src/mpi/romio/adio/ad_gridftp/ad_gridftp_fcntl.c | 91 --
.../romio/adio/ad_gridftp/ad_gridftp_features.c | 18 -
src/mpi/romio/adio/ad_gridftp/ad_gridftp_flush.c | 19 -
src/mpi/romio/adio/ad_gridftp/ad_gridftp_hints.c | 68 --
src/mpi/romio/adio/ad_gridftp/ad_gridftp_open.c | 343 ------
src/mpi/romio/adio/ad_gridftp/ad_gridftp_read.c | 465 --------
src/mpi/romio/adio/ad_gridftp/ad_gridftp_resize.c | 241 ----
src/mpi/romio/adio/ad_gridftp/ad_gridftp_write.c | 470 --------
src/mpi/romio/adio/ad_gridftp/globus_routines.c | 36 -
src/mpi/romio/adio/ad_hfs/Makefile.mk | 21 -
src/mpi/romio/adio/ad_hfs/README | 1 -
src/mpi/romio/adio/ad_hfs/ad_hfs.c | 38 -
src/mpi/romio/adio/ad_hfs/ad_hfs.h | 34 -
src/mpi/romio/adio/ad_hfs/ad_hfs_fcntl.c | 113 --
src/mpi/romio/adio/ad_hfs/ad_hfs_open.c | 67 --
src/mpi/romio/adio/ad_hfs/ad_hfs_read.c | 71 --
src/mpi/romio/adio/ad_hfs/ad_hfs_resize.c | 31 -
src/mpi/romio/adio/ad_hfs/ad_hfs_write.c | 70 --
src/mpi/romio/adio/ad_ntfs/ad_ntfs.c | 40 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs.h | 68 --
src/mpi/romio/adio/ad_ntfs/ad_ntfs_close.c | 30 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_done.c | 20 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_fcntl.c | 76 --
src/mpi/romio/adio/ad_ntfs/ad_ntfs_feature.c | 26 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_flush.c | 32 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_iread.c | 42 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_iwrite.c | 303 -----
src/mpi/romio/adio/ad_ntfs/ad_ntfs_open.c | 101 --
src/mpi/romio/adio/ad_ntfs/ad_ntfs_read.c | 259 -----
src/mpi/romio/adio/ad_ntfs/ad_ntfs_resize.c | 51 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_wait.c | 20 -
src/mpi/romio/adio/ad_ntfs/ad_ntfs_write.c | 222 ----
src/mpi/romio/adio/ad_pfs/Makefile.mk | 26 -
src/mpi/romio/adio/ad_pfs/ad_pfs.c | 38 -
src/mpi/romio/adio/ad_pfs/ad_pfs.h | 62 -
src/mpi/romio/adio/ad_pfs/ad_pfs_done.c | 57 -
src/mpi/romio/adio/ad_pfs/ad_pfs_fcntl.c | 81 --
src/mpi/romio/adio/ad_pfs/ad_pfs_flush.c | 38 -
src/mpi/romio/adio/ad_pfs/ad_pfs_hints.c | 174 ---
src/mpi/romio/adio/ad_pfs/ad_pfs_iread.c | 81 --
src/mpi/romio/adio/ad_pfs/ad_pfs_iwrite.c | 80 --
src/mpi/romio/adio/ad_pfs/ad_pfs_open.c | 85 --
src/mpi/romio/adio/ad_pfs/ad_pfs_read.c | 48 -
src/mpi/romio/adio/ad_pfs/ad_pfs_wait.c | 62 -
src/mpi/romio/adio/ad_pfs/ad_pfs_write.c | 49 -
src/mpi/romio/adio/ad_piofs/Makefile.mk | 21 -
src/mpi/romio/adio/ad_piofs/README | 1 -
src/mpi/romio/adio/ad_piofs/ad_piofs.c | 39 -
src/mpi/romio/adio/ad_piofs/ad_piofs.h | 40 -
src/mpi/romio/adio/ad_piofs/ad_piofs_fcntl.c | 77 --
src/mpi/romio/adio/ad_piofs/ad_piofs_features.c | 19 -
src/mpi/romio/adio/ad_piofs/ad_piofs_hints.c | 118 --
src/mpi/romio/adio/ad_piofs/ad_piofs_open.c | 79 --
src/mpi/romio/adio/ad_piofs/ad_piofs_read.c | 56 -
src/mpi/romio/adio/ad_piofs/ad_piofs_write.c | 337 ------
src/mpi/romio/adio/ad_pvfs/Makefile.mk | 26 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs.c | 39 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs.h | 54 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs_close.c | 31 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs_delete.c | 24 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs_fcntl.c | 72 --
src/mpi/romio/adio/ad_pvfs/ad_pvfs_flush.c | 36 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs_hints.c | 146 ---
src/mpi/romio/adio/ad_pvfs/ad_pvfs_open.c | 90 --
src/mpi/romio/adio/ad_pvfs/ad_pvfs_read.c | 781 -------------
src/mpi/romio/adio/ad_pvfs/ad_pvfs_resize.c | 32 -
src/mpi/romio/adio/ad_pvfs/ad_pvfs_write.c | 1162 --------------------
src/mpi/romio/adio/ad_sfs/Makefile.mk | 19 -
src/mpi/romio/adio/ad_sfs/README | 1 -
src/mpi/romio/adio/ad_sfs/ad_sfs.c | 38 -
src/mpi/romio/adio/ad_sfs/ad_sfs.h | 21 -
src/mpi/romio/adio/ad_sfs/ad_sfs_fcntl.c | 64 --
src/mpi/romio/adio/ad_sfs/ad_sfs_flush.c | 27 -
src/mpi/romio/adio/ad_sfs/ad_sfs_open.c | 57 -
src/mpi/romio/adio/ad_zoidfs/Makefile.mk | 27 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.c | 44 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.h | 44 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_close.c | 25 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.c | 126 ---
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.h | 43 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_delete.c | 45 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c | 60 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_features.c | 22 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_flush.c | 52 -
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_io.c | 96 --
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_open.c | 153 ---
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c | 821 --------------
src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_resize.c | 53 -
.../romio/adio/ad_zoidfs/ad_zoidfs_write_list.c | 852 --------------
src/mpi/romio/adio/common/ad_fstype.c | 110 +--
src/mpi/romio/adio/common/ad_read_str_naive.c | 3 +-
src/mpi/romio/adio/common/error.c | 27 -
src/mpi/romio/adio/common/lock.c | 2 +-
src/mpi/romio/adio/include/BaseIOErrMsgs.msg | 51 -
src/mpi/romio/adio/include/adio.h | 15 +-
src/mpi/romio/adio/include/adioi.h | 21 +-
src/mpi/romio/adio/include/adioi_errmsg.h | 12 +-
src/mpi/romio/adio/include/adioi_fs_proto.h | 40 -
src/mpi/romio/adio/include/mpio_error.h | 9 +-
src/mpi/romio/configure.ac | 66 +--
src/mpi/romio/doc/users-guide.tex | 54 +-
src/mpi/romio/mpi-io/write.c | 2 +-
src/mpi/romio/test/file_info.c | 2 +-
src/mpi/romio/test/large_array.c | 3 +-
src/mpi/romio/test/large_file.c.in | 2 +-
111 files changed, 33 insertions(+), 11038 deletions(-)
delete mode 100644 src/mpi/romio/adio/ad_gridftp/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp.h
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_close.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_delete.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_features.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_flush.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_hints.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_open.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_read.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_resize.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/ad_gridftp_write.c
delete mode 100644 src/mpi/romio/adio/ad_gridftp/globus_routines.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_hfs/README
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs.h
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs_read.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs_resize.c
delete mode 100644 src/mpi/romio/adio/ad_hfs/ad_hfs_write.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs.h
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_close.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_done.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_feature.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_flush.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_iread.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_iwrite.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_read.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_resize.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_wait.c
delete mode 100644 src/mpi/romio/adio/ad_ntfs/ad_ntfs_write.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs.h
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_done.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_flush.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_hints.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_iread.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_iwrite.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_read.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_wait.c
delete mode 100644 src/mpi/romio/adio/ad_pfs/ad_pfs_write.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_piofs/README
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs.h
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_features.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_hints.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_open.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_read.c
delete mode 100644 src/mpi/romio/adio/ad_piofs/ad_piofs_write.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs.h
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_close.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_delete.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_flush.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_hints.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_read.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_resize.c
delete mode 100644 src/mpi/romio/adio/ad_pvfs/ad_pvfs_write.c
delete mode 100644 src/mpi/romio/adio/ad_sfs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_sfs/README
delete mode 100644 src/mpi/romio/adio/ad_sfs/ad_sfs.c
delete mode 100644 src/mpi/romio/adio/ad_sfs/ad_sfs.h
delete mode 100644 src/mpi/romio/adio/ad_sfs/ad_sfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_sfs/ad_sfs_flush.c
delete mode 100644 src/mpi/romio/adio/ad_sfs/ad_sfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/Makefile.mk
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs.h
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_close.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_common.h
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_delete.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_features.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_flush.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_io.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_open.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_resize.c
delete mode 100644 src/mpi/romio/adio/ad_zoidfs/ad_zoidfs_write_list.c
delete mode 100644 src/mpi/romio/adio/include/BaseIOErrMsgs.msg
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list