This source file includes following definitions.
- MPIO_Request_c2f
- MPIO_Request_c2f
1
2
3
4
5
6
7
8 #include "mpioimpl.h"
9
10 #ifdef HAVE_WEAK_SYMBOLS
11
12 #if defined(HAVE_PRAGMA_WEAK)
13 #pragma weak MPIO_Request_c2f = PMPIO_Request_c2f
14 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
15 #pragma _HP_SECONDARY_DEF PMPIO_Request_c2f MPIO_Request_c2f
16 #elif defined(HAVE_PRAGMA_CRI_DUP)
17 #pragma _CRI duplicate MPIO_Request_c2f as PMPIO_Request_c2f
18
19 #endif
20
21
22 #define MPIO_BUILD_PROFILING
23 #include "mpioprof.h"
24 #endif
25 #include "adio_extern.h"
26
27
28
29
30
31
32
33
34
35
36
37 #ifdef HAVE_MPI_GREQUEST
38 MPI_Fint MPIO_Request_c2f(MPIO_Request request)
39 {
40 return ((MPI_Fint)request);
41 }
42 #else
43
44 MPI_Fint MPIO_Request_c2f(MPIO_Request request)
45 {
46 #ifndef INT_LT_POINTER
47 return (MPI_Fint) request;
48 #else
49 int i;
50 MPID_THREADPRIV_DECL;
51
52
53
54 if ((request <= (MPIO_Request) 0) || (request->cookie != ADIOI_REQ_COOKIE))
55 {
56 return (MPI_Fint) 0;
57 }
58
59 ROMIO_THREAD_CS_ENTER();
60 if (!ADIOI_Reqtable) {
61 ADIOI_Reqtable_max = 1024;
62 ADIOI_Reqtable = (MPIO_Request *)
63 ADIOI_Malloc(ADIOI_Reqtable_max*sizeof(MPIO_Request));
64 ADIOI_Reqtable_ptr = 0;
65
66 for (i=0; i<ADIOI_Reqtable_max; i++) ADIOI_Reqtable[i] = MPIO_REQUEST_NULL;
67 }
68 if (ADIOI_Reqtable_ptr == ADIOI_Reqtable_max-1) {
69 ADIOI_Reqtable = (MPIO_Request *) ADIOI_Realloc(ADIOI_Reqtable,
70 (ADIOI_Reqtable_max+1024)*sizeof(MPIO_Request));
71 for (i=ADIOI_Reqtable_max; i<ADIOI_Reqtable_max+1024; i++)
72 ADIOI_Reqtable[i] = MPIO_REQUEST_NULL;
73 ADIOI_Reqtable_max += 1024;
74 }
75 ADIOI_Reqtable_ptr++;
76 ADIOI_Reqtable[ADIOI_Reqtable_ptr] = request;
77
78 ROMIO_THREAD_CS_EXIT();
79 return (MPI_Fint) ADIOI_Reqtable_ptr;
80 #endif
81 }
82 #endif