📄 adio.h
字号:
int file_system; /* type of file system */ int access_mode; /* Access mode (sequential, append, etc.) */ ADIO_Offset disp; /* reqd. for MPI-IO */ MPI_Datatype etype; /* reqd. for MPI-IO */ MPI_Datatype filetype; /* reqd. for MPI-IO */ int etype_size; /* in bytes */ ADIOI_Hints *hints; /* structure containing fs-indep. info values */ MPI_Info info; /* The following support the split collective operations */ int split_coll_count; /* count of outstanding split coll. ops. */ MPI_Status split_status; /* status used for split collectives */ MPI_Datatype split_datatype; /* datatype used for split collectives */ /* The following support the shared file operations */ char *shared_fp_fname; /* name of file containing shared file pointer */ struct ADIOI_FileD *shared_fp_fd; /* file handle of file containing shared fp */ int async_count; /* count of outstanding nonblocking operations */ int perm; int atomicity; /* true=atomic, false=nonatomic */ int fortran_handle; /* handle for Fortran interface if needed */ MPI_Errhandler err_handler; void *fs_ptr; /* file-system specific information */} ADIOI_FileD;typedef struct ADIOI_FileD *ADIO_File;typedef MPI_Request ADIO_Request;/* fcntl structure */typedef struct { ADIO_Offset disp; MPI_Datatype etype; MPI_Datatype filetype; MPI_Info info; int atomicity; ADIO_Offset fsize; /* for get_fsize only */ ADIO_Offset diskspace; /* for file preallocation */} ADIO_Fcntl_t; /* should contain more stuff *//* access modes */#define ADIO_CREATE 1#define ADIO_RDONLY 2#define ADIO_WRONLY 4#define ADIO_RDWR 8#define ADIO_DELETE_ON_CLOSE 16#define ADIO_UNIQUE_OPEN 32#define ADIO_EXCL 64#define ADIO_APPEND 128#define ADIO_SEQUENTIAL 256/* file-pointer types */#define ADIO_EXPLICIT_OFFSET 100#define ADIO_INDIVIDUAL 101#define ADIO_SHARED 102#define ADIO_REQUEST_NULL ((ADIO_Request) 0)#define ADIO_FILE_NULL ((ADIO_File) 0)/* file systems */#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_SEEK_SET SEEK_SET#define ADIO_SEEK_CUR SEEK_CUR#define ADIO_SEEK_END SEEK_END#define ADIO_FCNTL_SET_ATOMICITY 180#define ADIO_FCNTL_SET_DISKSPACE 188#define ADIO_FCNTL_GET_FSIZE 200/* for default file permissions */#define ADIO_PERM_NULL -1#define ADIOI_FILE_COOKIE 2487376#define ADIOI_REQ_COOKIE 3493740/* ADIO function prototypes *//* all these may not be necessary, as many of them are macro replaced to function pointers that point to the appropriate functions for each different file system (in adioi.h), but anyway... */void ADIO_Init(int *argc, char ***argv, int *error_code);void ADIO_End(int *error_code);MPI_File ADIO_Open(MPI_Comm orig_comm, MPI_Comm comm, char *filename, int file_system, ADIOI_Fns *ops, int access_mode, ADIO_Offset disp, MPI_Datatype etype, MPI_Datatype filetype, MPI_Info info, int perm, int *error_code);void ADIO_ImmediateOpen(ADIO_File fd, int *error_code);void ADIO_Close(ADIO_File fd, int *error_code);void ADIO_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 ADIO_WriteContig(ADIO_File fd, void *buf, int count, MPI_Datatype datatype, int file_ptr_type, ADIO_Offset offset, int *bytes_written, int *error_code);void ADIO_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 ADIO_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 ADIO_ReadDone(ADIO_Request *request, ADIO_Status *status, int *error_code);int ADIO_WriteDone(ADIO_Request *request, ADIO_Status *status, int *error_code);int ADIO_ReadIcomplete(ADIO_Request *request, ADIO_Status *status, int *error_code); int ADIO_WriteIcomplete(ADIO_Request *request, ADIO_Status *status, int *error_code); void ADIO_ReadComplete(ADIO_Request *request, ADIO_Status *status, int *error_code); void ADIO_WriteComplete(ADIO_Request *request, ADIO_Status *status, int *error_code); void ADIO_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code); void ADIO_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 ADIO_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 ADIO_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 ADIO_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 ADIO_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 ADIO_IwriteStrided(ADIO_File fd, void *buf, int count, MPI_Datatype datatype, int file_ptr_type, ADIO_Offset offset, ADIO_Request *request, int *error_code);ADIO_Offset ADIO_SeekIndividual(ADIO_File fd, ADIO_Offset offset, int whence, int *error_code);void ADIO_Delete(char *filename, int *error_code);void ADIO_Flush(ADIO_File fd, int *error_code);void ADIO_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);void ADIO_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code);void ADIO_ResolveFileType(MPI_Comm comm, char *filename, int *fstype, ADIOI_Fns **ops, int *error_code);void ADIO_Get_shared_fp(ADIO_File fd, int size, ADIO_Offset *shared_fp, int *error_code);void ADIO_Set_shared_fp(ADIO_File fd, ADIO_Offset offset, int *error_code);void ADIO_Set_view(ADIO_File fd, ADIO_Offset disp, MPI_Datatype etype, MPI_Datatype filetype, MPI_Info info, int *error_code);/* functions to help deal with the array datatypes */int ADIO_Type_create_subarray(int ndims, int *array_of_sizes, int *array_of_subsizes, int *array_of_starts, int order, MPI_Datatype oldtype, MPI_Datatype *newtype);int ADIO_Type_create_darray(int size, int rank, int ndims, int *array_of_gsizes, int *array_of_distribs, int *array_of_dargs, int *array_of_psizes, int order, MPI_Datatype oldtype, MPI_Datatype *newtype);/* MPI_File management functions (in mpio_file.c) */MPI_File MPIO_File_create(int size);ADIO_File MPIO_File_resolve(MPI_File mpi_fh);void MPIO_File_free(MPI_File *mpi_fh);MPI_File MPIO_File_f2c(MPI_Fint fh);MPI_Fint MPIO_File_c2f(MPI_File fh);int MPIO_Err_create_code(int lastcode, int fatal, const char fcname[], int line, int error_class, const char generic_msg[], const char specific_msg[], ... );int MPIO_Err_return_file(MPI_File mpi_fh, int error_code);int MPIO_Err_return_comm(MPI_Comm mpi_comm, int error_code);/* request managment helper functions */void MPIO_Completed_request_create(MPI_File *fh, MPI_Offset nbytes, int * error_code, MPI_Request *request);#include "adioi.h"#include "adioi_fs_proto.h"#include "mpio_error.h"#include "mpipr.h"/* these two defines don't appear to be in any other header file */#define MPIR_ERR_FATAL 1#define MPIR_ERR_RECOVERABLE 0#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -