#define MPI_TAG_LB -6
#define MPI_UNIVERSE_SIZE -7
#define MPI_LASTUSEDCODE -8
+#define MPI_KEYVAL_INVALID -9
#define MPI_MODE_NOSTORE 0x1
#define MPI_MODE_NOPUT 0x2
#define MPI_MODE_NOSUCCEED 0x8
#define MPI_MODE_NOCHECK 0x10
-#define MPI_KEYVAL_INVALID 0
#define MPI_NULL_COPY_FN NULL
#define MPI_NULL_DELETE_FN NULL
#define MPI_ERR_LASTCODE 74
}
int PMPI_Keyval_free(int* keyval) {
+ CHECK_NULL(1, MPI_ERR_ARG, keyval)
+ CHECK_MPI_NULL(1, MPI_KEYVAL_INVALID, MPI_ERR_KEYVAL, *keyval)
return simgrid::smpi::Keyval::keyval_free<simgrid::smpi::Comm>(keyval);
}
int PMPI_Attr_delete(MPI_Comm comm, int keyval) {
CHECK_COMM(1)
+ CHECK_MPI_NULL(2, MPI_KEYVAL_INVALID, MPI_ERR_KEYVAL, keyval)
if(keyval == MPI_TAG_UB||keyval == MPI_HOST||keyval == MPI_IO ||keyval == MPI_WTIME_IS_GLOBAL||keyval == MPI_APPNUM
||keyval == MPI_UNIVERSE_SIZE||keyval == MPI_LASTUSEDCODE)
return MPI_ERR_ARG;
CHECK_NULL(4, MPI_ERR_ARG, flag)
*flag = 0;
CHECK_COMM(1)
+ CHECK_MPI_NULL(2, MPI_KEYVAL_INVALID, MPI_ERR_KEYVAL, keyval)
switch (keyval) {
case MPI_HOST:
int PMPI_Attr_put(MPI_Comm comm, int keyval, void* attr_value) {
CHECK_COMM(1)
+ CHECK_MPI_NULL(2, MPI_KEYVAL_INVALID, MPI_ERR_KEYVAL, keyval)
if(keyval == MPI_TAG_UB||keyval == MPI_HOST||keyval == MPI_IO ||keyval == MPI_WTIME_IS_GLOBAL||keyval == MPI_APPNUM
||keyval == MPI_UNIVERSE_SIZE||keyval == MPI_LASTUSEDCODE)
return MPI_ERR_ARG;