1 /*
2  * Copyright (c) 2013      Mellanox Technologies, Inc.
3  *                         All rights reserved.
4  * $COPYRIGHT$
5  *
6  * Additional copyrights may follow
7  *
8  * $HEADER$
9  */
10 
11 #ifndef OSHMEM_CONSTANTS_H
12 #define OSHMEM_CONSTANTS_H
13 
14 #include "orte/constants.h"
15 #include "oshmem/include/shmem.h"
16 
17 
18 #define OSHMEM_ERR_BASE   ORTE_ERR_MAX
19 
20 /* error codes */
21 enum {
22     /* Error codes inherited from ORTE/OPAL.  Still enum values so
23        that we might get nice debugger help */
24     OSHMEM_SUCCESS                  = ORTE_SUCCESS,
25 
26     OSHMEM_ERROR                    = ORTE_ERROR,
27     OSHMEM_ERR_OUT_OF_RESOURCE      = ORTE_ERR_OUT_OF_RESOURCE,
28     OSHMEM_ERR_TEMP_OUT_OF_RESOURCE = ORTE_ERR_TEMP_OUT_OF_RESOURCE,
29     OSHMEM_ERR_RESOURCE_BUSY        = ORTE_ERR_RESOURCE_BUSY,
30     OSHMEM_ERR_BAD_PARAM            = ORTE_ERR_BAD_PARAM,
31     OSHMEM_ERR_FATAL                = ORTE_ERR_FATAL,
32     OSHMEM_ERR_NOT_IMPLEMENTED      = ORTE_ERR_NOT_IMPLEMENTED,
33     OSHMEM_ERR_NOT_SUPPORTED        = ORTE_ERR_NOT_SUPPORTED,
34     OSHMEM_ERR_INTERUPTED           = ORTE_ERR_INTERUPTED,
35     OSHMEM_ERR_WOULD_BLOCK          = ORTE_ERR_WOULD_BLOCK,
36     OSHMEM_ERR_IN_ERRNO             = ORTE_ERR_IN_ERRNO,
37     OSHMEM_ERR_UNREACH              = ORTE_ERR_UNREACH,
38     OSHMEM_ERR_NOT_FOUND            = ORTE_ERR_NOT_FOUND,
39     OSHMEM_EXISTS                   = ORTE_EXISTS, /* indicates that the specified object already exists */
40     OSHMEM_ERR_TIMEOUT              = ORTE_ERR_TIMEOUT,
41     OSHMEM_ERR_NOT_AVAILABLE        = ORTE_ERR_NOT_AVAILABLE,
42     OSHMEM_ERR_PERM                 = ORTE_ERR_PERM,
43     OSHMEM_ERR_VALUE_OUT_OF_BOUNDS  = ORTE_ERR_VALUE_OUT_OF_BOUNDS,
44     OSHMEM_ERR_FILE_READ_FAILURE    = ORTE_ERR_FILE_READ_FAILURE,
45     OSHMEM_ERR_FILE_WRITE_FAILURE   = ORTE_ERR_FILE_WRITE_FAILURE,
46     OSHMEM_ERR_FILE_OPEN_FAILURE    = ORTE_ERR_FILE_OPEN_FAILURE,
47 
48     OSHMEM_ERR_RECV_LESS_THAN_POSTED      = ORTE_ERR_RECV_LESS_THAN_POSTED,
49     OSHMEM_ERR_RECV_MORE_THAN_POSTED      = ORTE_ERR_RECV_MORE_THAN_POSTED,
50     OSHMEM_ERR_NO_MATCH_YET               = ORTE_ERR_NO_MATCH_YET,
51     OSHMEM_ERR_BUFFER                     = ORTE_ERR_BUFFER,
52     OSHMEM_ERR_REQUEST                    = ORTE_ERR_REQUEST,
53     OSHMEM_ERR_NO_CONNECTION_ALLOWED      = ORTE_ERR_NO_CONNECTION_ALLOWED,
54     OSHMEM_ERR_CONNECTION_REFUSED         = ORTE_ERR_CONNECTION_REFUSED   ,
55     OSHMEM_ERR_CONNECTION_FAILED          = ORTE_ERR_CONNECTION_FAILED,
56     OSHMEM_PACK_MISMATCH                  = ORTE_ERR_PACK_MISMATCH,
57     OSHMEM_ERR_PACK_FAILURE               = ORTE_ERR_PACK_FAILURE,
58     OSHMEM_ERR_UNPACK_FAILURE             = ORTE_ERR_UNPACK_FAILURE,
59     OSHMEM_ERR_COMM_FAILURE               = ORTE_ERR_COMM_FAILURE,
60     OSHMEM_UNPACK_INADEQUATE_SPACE        = ORTE_ERR_UNPACK_INADEQUATE_SPACE,
61     OSHMEM_UNPACK_READ_PAST_END_OF_BUFFER = ORTE_ERR_UNPACK_READ_PAST_END_OF_BUFFER,
62     OSHMEM_ERR_TYPE_MISMATCH              = ORTE_ERR_TYPE_MISMATCH,
63     OSHMEM_ERR_COMPARE_FAILURE            = ORTE_ERR_COMPARE_FAILURE,
64     OSHMEM_ERR_COPY_FAILURE               = ORTE_ERR_COPY_FAILURE,
65     OSHMEM_ERR_UNKNOWN_DATA_TYPE          = ORTE_ERR_UNKNOWN_DATA_TYPE,
66     OSHMEM_ERR_DATA_TYPE_REDEF            = ORTE_ERR_DATA_TYPE_REDEF,
67     OSHMEM_ERR_DATA_OVERWRITE_ATTEMPT     = ORTE_ERR_DATA_OVERWRITE_ATTEMPT
68 };
69 
70 
71 /* C datatypes */
72 /*
73  * SHMEM_Init_thread constants
74  * Do not change the order of these without also modifying mpif.h.in.
75  */
76 enum {
77   SHMEM_NULL	= 0,
78   SHMEM_CHAR,
79   SHMEM_UCHAR,
80   SHMEM_SHORT,
81   SHMEM_USHORT,
82   SHMEM_INT,
83   SHMEM_UINT,
84   SHMEM_LONG,
85   SHMEM_ULONG,
86   SHMEM_LLONG,
87   SHMEM_INT32_T,
88   SHMEM_INT64_T,
89   SHMEM_ULLONG,
90   SHMEM_FLOAT,
91   SHMEM_DOUBLE,
92   SHMEM_LDOUBLE,
93 
94   SHMEM_FINT,
95   SHMEM_FINT4,
96   SHMEM_FINT8
97 };
98 
99 
100 /*
101  * Miscellaneous constants
102  */
103 #define SHMEM_ANY_SOURCE         -1                      /* match any source rank */
104 #define SHMEM_PROC_NULL          -2                      /* rank of null process */
105 #define SHMEM_UNDEFINED          -32766                  /* undefined stuff */
106 
107 
108 #ifndef UNREFERENCED_PARAMETER
109 #define UNREFERENCED_PARAMETER(P) ((void)P)
110 #endif
111 
112 #define OSHMEM_PREDEFINED_GLOBAL(type, global) ((type) ((void *) &(global)))
113 
114 #if OPAL_WANT_MEMCHECKER
115 #define MEMCHECKER(x) do {       \
116                 x;                     \
117        } while(0)
118 #else
119 #define MEMCHECKER(x)
120 #endif /* OPAL_WANT_MEMCHECKER */
121 
122 #endif /* OSHMEM_CONSTANTS_H */
123 
124