00001
00002
00003
00004
00005
00006
00007
00008 #include "mpioimpl.h"
00009 #include "adioi.h"
00010
00011 #ifdef HAVE_WEAK_SYMBOLS
00012
00013 #if defined(HAVE_PRAGMA_WEAK)
00014 #pragma weak MPI_File_get_byte_offset = PMPI_File_get_byte_offset
00015 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
00016 #pragma _HP_SECONDARY_DEF PMPI_File_get_byte_offset MPI_File_get_byte_offset
00017 #elif defined(HAVE_PRAGMA_CRI_DUP)
00018 #pragma _CRI duplicate MPI_File_get_byte_offset as PMPI_File_get_byte_offset
00019
00020 #endif
00021
00022
00023 #define MPIO_BUILD_PROFILING
00024 #include "mpioprof.h"
00025 #endif
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 int MPI_File_get_byte_offset(MPI_File mpi_fh,
00042 MPI_Offset offset,
00043 MPI_Offset *disp)
00044 {
00045 int error_code;
00046 ADIO_File fh;
00047 static char myname[] = "MPI_FILE_GET_BYTE_OFFSET";
00048
00049 fh = MPIO_File_resolve(mpi_fh);
00050
00051
00052 MPIO_CHECK_FILE_HANDLE(fh, myname, error_code);
00053
00054 if (offset < 0)
00055 {
00056 error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
00057 myname, __LINE__, MPI_ERR_ARG,
00058 "**iobadoffset", 0);
00059 error_code = MPIO_Err_return_file(fh, error_code);
00060 goto fn_exit;
00061 }
00062
00063 MPIO_CHECK_NOT_SEQUENTIAL_MODE(fh, myname, error_code);
00064
00065
00066 ADIOI_Get_byte_offset(fh, offset, disp);
00067
00068 fn_exit:
00069
00070 return MPI_SUCCESS;
00071 }