diff options
author | Albert Cheng <acheng@hdfgroup.org> | 1998-02-06 03:00:35 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 1998-02-06 03:00:35 (GMT) |
commit | 238cccd5e8657fe9800eb6caad98b6c54b1c251d (patch) | |
tree | 2f4cfa92dc384cc5c7ff4b041a09e46936de1738 /src/H5Fprivate.h | |
parent | 858b8fbfaedd5800f2c716f381618a978b89d1a0 (diff) | |
download | hdf5-238cccd5e8657fe9800eb6caad98b6c54b1c251d.zip hdf5-238cccd5e8657fe9800eb6caad98b6c54b1c251d.tar.gz hdf5-238cccd5e8657fe9800eb6caad98b6c54b1c251d.tar.bz2 |
[svn-r224] Initial implementation of the upper levels of PHDF5. The
MPIO lower interface layer (H5Fmpio.c) has been commited by Kim already.
All PHDF5 codes are "bracket'ed" by #ifdef HAVE_PARALLEL macro.
Diffstat (limited to 'src/H5Fprivate.h')
-rw-r--r-- | src/H5Fprivate.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index 76ca1f6..3f71055 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -22,7 +22,7 @@ /* This is a near top-level header! Try not to include much! */ #include <H5private.h> -#ifdef PHDF5 +#ifdef HAVE_PARALLEL #ifndef MPI_SUCCESS #include <mpi.h> #include <mpio.h> @@ -231,6 +231,17 @@ typedef struct H5F_create_t { } H5F_create_t; /* + * File-access template. + */ +typedef struct H5F_access_t { + uintn access_mode; /* file access mode */ +#ifdef HAVE_PARALLEL + MPI_Comm comm; /* communicator for file access */ + MPI_Info info; /* optional info for MPI-IO */ +#endif /*HAVE_PARALLEL*/ +} H5F_access_t; + +/* * These things make a file unique. */ typedef struct H5F_search_t { @@ -304,7 +315,7 @@ typedef struct H5F_low_t { size_t alloc; /* Current size of MEM buffer */ } core; -#ifdef PHDF5 +#ifdef HAVE_PARALLEL /* MPI-IO */ struct { MPI_File f; /* MPI-IO file handle */ @@ -323,10 +334,8 @@ extern const H5F_low_class_t H5F_LOW_STDIO[]; /* Posix stdio */ extern const H5F_low_class_t H5F_LOW_CORE[]; /* In-core temp file */ extern const H5F_low_class_t H5F_LOW_FAM[]; /* File family */ extern const H5F_low_class_t H5F_LOW_SPLIT[]; /* Split meta/raw data */ -#ifdef PHDF5 +#ifdef HAVE_PARALLEL extern const H5F_low_class_t H5F_LOW_MPIO[]; /* MPI-IO */ -# undef H5F_LOW_DFLT -# define H5F_LOW_DFLT H5F_LOW_MPIO /* The default type */ #endif /* @@ -346,8 +355,8 @@ typedef struct H5F_file_t { haddr_t hdf5_eof; /* Relative addr of end of all hdf5 data*/ struct H5AC_t *cache; /* The object cache */ H5F_create_t create_parms; /* File-creation template */ -#ifdef LATER - file_access_temp_t file_access_parms; /* File-access template */ +#ifdef HAVE_PARALLEL + H5F_access_t access_parms; /* File-access template */ #endif struct H5G_entry_t *root_ent; /* Root symbol table entry */ } H5F_file_t; @@ -414,11 +423,12 @@ struct H5O_layout_t; /*forward decl for prototype arguments */ /* library variables */ extern const H5F_create_t H5F_create_dflt; +extern const H5F_access_t H5F_access_dflt; /* Private functions, not part of the publicly documented API */ void H5F_encode_length_unusual(const H5F_t *f, uint8 **p, uint8 *l); H5F_t *H5F_open(const H5F_low_class_t *type, const char *name, uintn flags, - const H5F_create_t *create_parms); + const H5F_create_t *create_parms, const H5F_access_t *access_parms); herr_t H5F_close(H5F_t *f); herr_t H5F_debug(H5F_t *f, const haddr_t *addr, FILE * stream, intn indent, intn fwidth); |