X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1e50fa3f7c4b7b6bcb94dba4d4032f4d69260b9..6d12558bf98bb09f8fc8c45527d740bf999f789c:/include/smpi/smpi.h diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index eea00325d0..7caf4d5f57 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2007-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -40,11 +40,14 @@ SG_BEGIN_DECL() #define MPI_MAX_LIBRARY_VERSION_STRING 100 #define SMPI_RAND_SEED 5 #define MPI_ANY_SOURCE -555 -#define MPI_BOTTOM (void *)0 +#define MPI_BOTTOM (void *)-111 +#define MPI_FORTRAN_BOTTOM -111 #define MPI_PROC_NULL -666 #define MPI_ANY_TAG -444 #define MPI_UNDEFINED -333 #define MPI_IN_PLACE (void *)-222 +#define MPI_FORTRAN_IN_PLACE -222 + // errorcodes #define MPI_SUCCESS 0 #define MPI_ERR_COMM 1 @@ -164,6 +167,8 @@ typedef struct { #define MPI_STATUS_IGNORE NULL #define MPI_STATUSES_IGNORE NULL +#define MPI_FORTRAN_STATUS_IGNORE -1 +#define MPI_FORTRAN_STATUSES_IGNORE -1 #define MPI_DATATYPE_NULL NULL XBT_PUBLIC_DATA( MPI_Datatype ) MPI_CHAR; @@ -212,6 +217,7 @@ XBT_PUBLIC_DATA(MPI_Datatype) MPI_2DOUBLE; //for now we only send int values at max #define MPI_Count int #define MPI_COUNT MPI_INT + typedef void MPI_User_function(void *invec, void *inoutvec, int *len, MPI_Datatype * datatype); struct s_smpi_mpi_op; @@ -243,13 +249,14 @@ typedef struct s_smpi_mpi_communicator *MPI_Comm; #define MPI_COMM_NULL NULL XBT_PUBLIC_DATA( MPI_Comm ) MPI_COMM_WORLD; -#define MPI_UNIVERSE_SIZE smpi_comm_size(MPI_COMM_WORLD) +XBT_PUBLIC_DATA( int ) MPI_UNIVERSE_SIZE; #define MPI_COMM_SELF smpi_process_comm_self() struct s_smpi_mpi_request; typedef struct s_smpi_mpi_request *MPI_Request; -#define MPI_REQUEST_NULL NULL +#define MPI_REQUEST_NULL ((MPI_Request)NULL) +#define MPI_FORTRAN_REQUEST_NULL -1 MPI_CALL(XBT_PUBLIC(int), MPI_Init, (int *argc, char ***argv)); MPI_CALL(XBT_PUBLIC(int), MPI_Finalize, (void)); @@ -279,6 +286,9 @@ MPI_CALL(XBT_PUBLIC(int), MPI_Type_commit, (MPI_Datatype* datatype)); MPI_CALL(XBT_PUBLIC(int), MPI_Type_hindexed, (int count, int* blocklens, MPI_Aint* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); +MPI_CALL(XBT_PUBLIC(int), MPI_Type_create_hindexed, + (int count, int* blocklens, MPI_Aint* indices, + MPI_Datatype old_type, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC(int), MPI_Type_create_hindexed_block, (int count, int blocklength, MPI_Aint* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); @@ -291,6 +301,9 @@ MPI_CALL(XBT_PUBLIC(int), MPI_Type_create_hvector, MPI_CALL(XBT_PUBLIC(int), MPI_Type_indexed, (int count, int* blocklens, int* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); +MPI_CALL(XBT_PUBLIC(int), MPI_Type_create_indexed, + (int count, int* blocklens, int* indices, + MPI_Datatype old_type, MPI_Datatype* newtype)); MPI_CALL(XBT_PUBLIC(int), MPI_Type_create_indexed_block, (int count, int blocklength, int* indices, MPI_Datatype old_type, MPI_Datatype* newtype)); @@ -559,6 +572,7 @@ MPI_CALL(XBT_PUBLIC(int), MPI_Errhandler_get, (MPI_Comm comm, MPI_Errhandler* er MPI_CALL(XBT_PUBLIC(int), MPI_Error_string, (int errorcode, char* string, int* resultlen)); MPI_CALL(XBT_PUBLIC(int), MPI_Errhandler_set, (MPI_Comm comm, MPI_Errhandler errhandler)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_set_errhandler, (MPI_Comm comm, MPI_Errhandler errhandler)); +MPI_CALL(XBT_PUBLIC(int), MPI_Comm_get_errhandler, (MPI_Comm comm, MPI_Errhandler *errhandler)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_create_errhandler,( MPI_Comm_errhandler_fn *function, MPI_Errhandler *errhandler)); MPI_CALL(XBT_PUBLIC(int), MPI_Comm_call_errhandler,(MPI_Comm comm,int errorcode)); MPI_CALL(XBT_PUBLIC(int), MPI_Add_error_class,( int *errorclass));