-
Notifications
You must be signed in to change notification settings - Fork 2
/
man-wrappers.cpp
84 lines (70 loc) · 2.14 KB
/
man-wrappers.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <assert.h>
#include <mpi.h>
#include <stdio.h>
#include "mpi-critical.h"
#include "tracking.h"
////////////////////
// FREE functions
////////////////////
/* ================== C Wrappers for MPI_Win_free ================== */
_EXTERN_C_ int PMPI_Win_free(MPI_Win *win);
_EXTERN_C_ int MPI_Win_free(MPI_Win *win) {
mpiTimer mt{false, __func__};
int _wrap_py_return_val = 0;
#ifdef HANDLE_WIN
MPI_Win myWin = wf.getHandle(*win);
*win = wf.freeHandle(*win);
MPI_Win *myWinP = &myWin;
#else
MPI_Win *myWinP = win;
#endif
_wrap_py_return_val = PMPI_Win_free(myWinP);
return _wrap_py_return_val;
}
/* ================== C Wrappers for MPI_Comm_free ================== */
_EXTERN_C_ int PMPI_Comm_free(MPI_Comm *comm);
_EXTERN_C_ int MPI_Comm_free(MPI_Comm *comm) {
mpiTimer mt{false, __func__};
int _wrap_py_return_val = 0;
#ifdef HANDLE_COMM
MPI_Comm myComm = cf.getHandle(*comm);
*comm = cf.freeHandle(*comm);
MPI_Comm *myCommP = &myComm;
#else
MPI_Comm *myCommP = comm;
#endif
_wrap_py_return_val = PMPI_Comm_free(myCommP);
return _wrap_py_return_val;
}
/* ================== C Wrappers for MPI_Comm_disconnect ================== */
_EXTERN_C_ int PMPI_Comm_disconnect(MPI_Comm *comm);
_EXTERN_C_ int MPI_Comm_disconnect(MPI_Comm *comm) {
mpiTimer mt{false, __func__};
int _wrap_py_return_val = 0;
#ifdef HANDLE_COMM
MPI_Comm myComm = cf.getHandle(*comm);
*comm = cf.freeHandle(*comm);
MPI_Comm *myCommP = &myComm;
#else
MPI_Comm *myCommP = comm;
#endif
_wrap_py_return_val = PMPI_Comm_disconnect(myCommP);
return _wrap_py_return_val;
}
#ifdef HAVE_SESSION
/* ================== C Wrappers for MPI_Session_finalize ================== */
_EXTERN_C_ int PMPI_Session_finalize(MPI_Session *session);
_EXTERN_C_ int MPI_Session_finalize(MPI_Session *session) {
mpiTimer mt{false, __func__};
int _wrap_py_return_val = 0;
#ifdef HANDLE_SESSION
MPI_Session mySession = sf.getHandle(*session);
*session = sf.freeHandle(*session);
MPI_Session *mySessionP = &mySession;
#else
MPI_Session *mySessionP = session;
#endif
_wrap_py_return_val = PMPI_Session_finalize(mySessionP);
return _wrap_py_return_val;
}
#endif