00001
00002
00003
00004
00005
00006
00007
00008 #include "mpioimpl.h"
00009
00010 #ifdef HAVE_WEAK_SYMBOLS
00011
00012 #if defined(HAVE_PRAGMA_WEAK)
00013 #pragma weak MPI_File_iwrite_at = PMPI_File_iwrite_at
00014 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
00015 #pragma _HP_SECONDARY_DEF PMPI_File_iwrite_at MPI_File_iwrite_at
00016 #elif defined(HAVE_PRAGMA_CRI_DUP)
00017 #pragma _CRI duplicate MPI_File_iwrite_at as PMPI_File_iwrite_at
00018
00019 #endif
00020
00021
00022 #define MPIO_BUILD_PROFILING
00023 #include "mpioprof.h"
00024 #endif
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifdef HAVE_MPI_GREQUEST
00042 #include "mpiu_greq.h"
00043 #endif
00044
00045 int MPI_File_iwrite_at(MPI_File mpi_fh, MPI_Offset offset, void *buf,
00046 int count, MPI_Datatype datatype,
00047 MPIO_Request *request)
00048 {
00049 int error_code;
00050 ADIO_File fh;
00051 static char myname[] = "MPI_FILE_IWRITE_AT";
00052
00053 #ifdef MPI_hpux
00054 int fl_xmpi;
00055
00056 HPMP_IO_START(fl_xmpi, BLKMPIFILEIWRITEAT, TRDTSYSTEM,
00057 mpi_fh, datatype, count);
00058 #endif
00059
00060
00061 fh = MPIO_File_resolve(mpi_fh);
00062
00063 error_code = MPIOI_File_iwrite(fh, offset, ADIO_EXPLICIT_OFFSET, buf,
00064 count, datatype, myname, request);
00065
00066
00067 if (error_code != MPI_SUCCESS)
00068 error_code = MPIO_Err_return_file(fh, error_code);
00069
00070
00071 #ifdef MPI_hpux
00072 HPMP_IO_END(fl_xmpi, mpi_fh, datatype, count)
00073 #endif
00074
00075 return error_code;
00076 }