00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef AD_NTFS_INCLUDE
00010 #define AD_NTFS_INCLUDE
00011
00012 #include <sys/types.h>
00013 #include <fcntl.h>
00014 #include "adio.h"
00015
00016 #ifdef HAVE_INT64
00017 #define DWORDLOW(x) ( (DWORD) ( x & (__int64) 0xFFFFFFFF ) )
00018 #define DWORDHIGH(x) ( (DWORD) ( (x >> 32) & (__int64) 0xFFFFFFFF ) )
00019 #define DWORDTOINT64(x,y) ( (__int64) ( ( (__int64 x) << 32 ) + (__int64) y ) )
00020 #else
00021 #define DWORDLOW(x) x
00022 #define DWORDHIGH(x) 0
00023 #define DWORDTOINT64(x,y) x
00024 #endif
00025
00026 int ADIOI_NTFS_aio(ADIO_File fd, void *buf, int len, ADIO_Offset offset,
00027 int wr, void *handle);
00028
00029 void ADIOI_NTFS_Open(ADIO_File fd, int *error_code);
00030 void ADIOI_NTFS_Close(ADIO_File fd, int *error_code);
00031 void ADIOI_NTFS_ReadContig(ADIO_File fd, void *buf, int count,
00032 MPI_Datatype datatype, int file_ptr_type,
00033 ADIO_Offset offset, ADIO_Status *status, int
00034 *error_code);
00035 void ADIOI_NTFS_WriteContig(ADIO_File fd, void *buf, int count,
00036 MPI_Datatype datatype, int file_ptr_type,
00037 ADIO_Offset offset, ADIO_Status *status, int
00038 *error_code);
00039 void ADIOI_NTFS_IwriteContig(ADIO_File fd, void *buf, int count,
00040 MPI_Datatype datatype, int file_ptr_type,
00041 ADIO_Offset offset, ADIO_Request *request, int
00042 *error_code);
00043 void ADIOI_NTFS_IreadContig(ADIO_File fd, void *buf, int count,
00044 MPI_Datatype datatype, int file_ptr_type,
00045 ADIO_Offset offset, ADIO_Request *request, int
00046 *error_code);
00047 int ADIOI_NTFS_ReadDone(ADIO_Request *request, ADIO_Status *status, int
00048 *error_code);
00049 int ADIOI_NTFS_WriteDone(ADIO_Request *request, ADIO_Status *status, int
00050 *error_code);
00051 void ADIOI_NTFS_ReadComplete(ADIO_Request *request, ADIO_Status *status, int
00052 *error_code);
00053 void ADIOI_NTFS_WriteComplete(ADIO_Request *request, ADIO_Status *status,
00054 int *error_code);
00055 void ADIOI_NTFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int
00056 *error_code);
00057 void ADIOI_NTFS_IwriteStrided(ADIO_File fd, void *buf, int count,
00058 MPI_Datatype datatype, int file_ptr_type,
00059 ADIO_Offset offset, ADIO_Request *request, int
00060 *error_code);
00061 void ADIOI_NTFS_Flush(ADIO_File fd, int *error_code);
00062 void ADIOI_NTFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code);
00063
00064 #define FORMAT_MESSAGE_MIN_SIZE 100
00065 #define ADIOI_NTFS_ERR_MSG_MAX FORMAT_MESSAGE_MIN_SIZE
00066 void ADIOI_NTFS_Strerror(int error, char *errMsg, int errMsgLen);
00067
00068 #endif