diff options
author | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-03-19 23:32:39 (GMT) |
---|---|---|
committer | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-03-19 23:32:39 (GMT) |
commit | 9f2c7fd3698c96e9c9462e62c430c4e6dc138a4e (patch) | |
tree | 248ecb0c1d62236cf9ee3631d2c259d570591d6e /src/H5FDfphdf5.h | |
parent | 02be089f0c99850da11b0e693235df90f6d08c16 (diff) | |
download | hdf5-9f2c7fd3698c96e9c9462e62c430c4e6dc138a4e.zip hdf5-9f2c7fd3698c96e9c9462e62c430c4e6dc138a4e.tar.gz hdf5-9f2c7fd3698c96e9c9462e62c430c4e6dc138a4e.tar.bz2 |
[svn-r6502] Purpose:
Update
Description:
More changes to the FPHDF5 file driver. Too many to mention here.
Some highlights:
- Addition of lock/unlock methods to the driver, though they
aren't implemented fully just yet.
- Extra query functions to determine various things about the
file. (If this is the captain process, etc)
- Fixes to make things work...
Platforms tested:
Linux
Misc. update:
Diffstat (limited to 'src/H5FDfphdf5.h')
-rw-r--r-- | src/H5FDfphdf5.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/H5FDfphdf5.h b/src/H5FDfphdf5.h index 733908a..20a5c83 100644 --- a/src/H5FDfphdf5.h +++ b/src/H5FDfphdf5.h @@ -16,6 +16,7 @@ #define H5FDFPHDF5_H__ #include "H5FDmpio.h" +#include "H5FDpublic.h" /* for the H5FD_t structure */ #ifdef H5_HAVE_PARALLEL # define H5FD_FPHDF5 (H5FD_fphdf5_init()) @@ -42,6 +43,38 @@ #define H5FD_FPHDF5_XFER_DUMPING_METADATA "H5FD_fphdf5_dumping_metadata" #define H5FD_FPHDF5_XFER_DUMPING_SIZE sizeof(unsigned) +/* + * For specifying that only the captain is allowed to allocate things at + * this time. + */ +#define H5FD_FPHDF5_CAPTN_ALLOC_ONLY "Only_Captain_Alloc" +#define H5FD_FPHDF5_CAPTN_ALLOC_SIZE sizeof(unsigned) + +/* + * The description of a file belonging to this driver. + * + * The FILE_ID field is an SAP defined value. When reading/writing to the + * SAP, this value should be sent. + * + * The EOF field is only used just after the file is opened in order for + * the library to determine whether the file is empty, truncated, or + * okay. The FPHDF5 driver doesn't bother to keep it updated since it's + * an expensive operation. + */ +typedef struct H5FD_fphdf5_t { + H5FD_t pub; /*Public stuff, must be first (ick!) */ + unsigned file_id; /*ID used by the SAP */ + MPI_File f; /*MPIO file handle */ + MPI_Comm comm; /*Communicator */ + MPI_Comm barrier_comm; /*Barrier communicator */ + MPI_Info info; /*File information */ + int mpi_rank; /*This process's rank */ + int mpi_size; /*Total number of processes */ + haddr_t eof; /*End-of-file marker */ + haddr_t eoa; /*End-of-address marker */ + haddr_t last_eoa; /*Last known end-of-address marker */ +} H5FD_fphdf5_t; + extern const H5FD_class_t H5FD_fphdf5_g; /* Function prototypes */ @@ -78,6 +111,8 @@ H5_DLL int H5FD_fphdf5_mpi_rank(H5FD_t *_file); H5_DLL int H5FD_fphdf5_mpi_size(H5FD_t *_file); H5_DLL unsigned H5FD_fphdf5_file_id(H5FD_t *_file); H5_DLL hbool_t H5FD_fphdf5_is_sap(H5FD_t *_file); +H5_DLL hbool_t H5FD_fphdf5_is_captain(H5FD_t *_file); +H5_DLL hbool_t H5FD_is_fphdf5_driver(H5FD_t *_file); H5_DLL herr_t H5FD_fphdf5_write_real(H5FD_t *_file, hid_t dxpl_id, MPI_Offset mpi_off, int size, |