46e7a9a5b6edd0a2249ad5f0bc34238e452695e3
[charm.git] / src / arch / util / lrts-common.h
1 /* This header is included in conv-config.h, which is included in the
2  * machine layer implementations through converse.h
3  */
4
5 // Use CMA for intra node shared memory communication on all machines where it is supported, except for Multicore
6 #define CMK_USE_CMA                    (CMK_HAS_CMA && !CMK_MULTICORE && !CMK_BLUEGENEQ)
7
8 #if CMK_USE_CMA
9
10 #ifndef CMK_CMA_MIN
11 #define CMK_CMA_MIN                    1024
12 #endif
13
14 #ifndef CMK_CMA_MAX
15 #define CMK_CMA_MAX                    131072
16 #endif
17
18 #endif // end of CMK_USE_CMA
19
20 // Converse Message header contains msgtype which is set to one of these message types
21 enum MsgType {
22   // CMK_REG_MSG refers to a message which contains the payload being sent
23   CMK_REG_MSG=0,
24
25   // CMK_CMA_MD_MSG refers to a message which contains payload metadata (pe, pid, address, size) without the payload
26   // This message is used by the receiving process (running on the same physical host) to perform a CMA read operation
27   CMK_CMA_MD_MSG=1,
28
29   // CMK_CMA_ACK_MSG refers to a message which contains payload metadata (pe, pid, address, size) without the payload
30   // This message is sent by the receiving process to the sending process to signal the completion of the CMA operation in order
31   // to free the payload buffer
32   CMK_CMA_ACK_MSG=2,
33 };
34
35 #if CMK_USE_CMA
36 #undef  CMK_COMMON_NOCOPY_DIRECT_BYTES // previous definition is in conv-mach-common.h
37 #define CMK_COMMON_NOCOPY_DIRECT_BYTES sizeof(pid_t)
38 #endif