Implement atomic operations library for libgupc SMP runtime.
[official-gcc.git] / libgupc / include / upc_types.def
blob4cb308418e6567851a32c60290535b7c9f1870a1
1 /*
2 - Supported AMO integer types are UPC_INT, UPC_UINT, UPC_LONG, UPC_ULONG,
3 UPC_INT32, UPC_UINT32, UPC_INT64, and UPC_UINT64.
4 - Supported AMO floating-point types are UPC_FLOAT and UPC_DOUBLE.
5 - Supported AMO accessors are UPC_GET, UPC_SET, and UPC_CSWAP.
6 - Supported AMO bit-wise operations are UPC_AND, UPC_OR, and UPC_XOR.
7 - Supported AMO numeric operations are UPC_ADD, UPC_SUB, UPC_MULT, UPC_INC,
8 UPC_DEC, UPC_MAX, and UPC_MIN. */
10 upc_type = {
11 type_upc_name = "UPC_CHAR";
12 type_abbrev = "C";
13 type_c_name = "char";
14 type_value = 1;
15 type_numeric_op_ok;
16 type_bit_op_ok;
18 upc_type = {
19 type_upc_name = "UPC_UCHAR";
20 type_abbrev = "UC";
21 type_c_name = "unsigned char";
22 type_value = 2;
23 type_numeric_op_ok;
24 type_bit_op_ok;
26 upc_type = {
27 type_upc_name = "UPC_SHORT";
28 type_abbrev = "S";
29 type_c_name = "short";
30 type_value = 3;
31 type_numeric_op_ok;
32 type_bit_op_ok;
34 upc_type = {
35 type_upc_name = "UPC_USHORT";
36 type_abbrev = "US";
37 type_c_name = "unsigned short";
38 type_value = 4;
39 type_numeric_op_ok;
40 type_bit_op_ok;
42 upc_type = {
43 type_upc_name = "UPC_INT";
44 type_abbrev = "I";
45 type_c_name = "int";
46 type_value = 5;
47 type_atomic_ok;
48 type_numeric_op_ok;
49 type_bit_op_ok;
51 upc_type = {
52 type_upc_name = "UPC_UINT";
53 type_abbrev = "UI";
54 type_c_name = "unsigned int";
55 type_value = 6;
56 type_atomic_ok;
57 type_numeric_op_ok;
58 type_bit_op_ok;
60 upc_type = {
61 type_upc_name = "UPC_LONG";
62 type_abbrev = "L";
63 type_c_name = "long";
64 type_value = 7;
65 type_atomic_ok;
66 type_numeric_op_ok;
67 type_bit_op_ok;
69 upc_type = {
70 type_upc_name = "UPC_ULONG";
71 type_abbrev = "UL";
72 type_c_name = "unsigned long";
73 type_value = 8;
74 type_atomic_ok;
75 type_numeric_op_ok;
76 type_bit_op_ok;
78 upc_type = {
79 type_upc_name = "UPC_LLONG";
80 type_abbrev = "LL";
81 type_c_name = "long long";
82 type_value = 9;
83 type_atomic_ok;
84 type_numeric_op_ok;
85 type_bit_op_ok;
87 upc_type = {
88 type_upc_name = "UPC_ULLONG";
89 type_abbrev = "ULL";
90 type_c_name = "unsigned long long";
91 type_value = 10;
92 type_atomic_ok;
93 type_numeric_op_ok;
94 type_bit_op_ok;
96 upc_type = {
97 type_upc_name = "UPC_INT8";
98 type_abbrev = "I8";
99 type_c_name = "int8_t";
100 type_value = 11;
101 type_numeric_op_ok;
102 type_bit_op_ok;
104 upc_type = {
105 type_upc_name = "UPC_UINT8";
106 type_abbrev = "UI8";
107 type_c_name = "uint8_t";
108 type_value = 12;
109 type_numeric_op_ok;
110 type_bit_op_ok;
112 upc_type = {
113 type_upc_name = "UPC_INT16";
114 type_abbrev = "I16";
115 type_c_name = "int16_t";
116 type_value = 13;
117 type_numeric_op_ok;
118 type_bit_op_ok;
120 upc_type = {
121 type_upc_name = "UPC_UINT16";
122 type_abbrev = "UI16";
123 type_c_name = "uint16_t";
124 type_value = 14;
125 type_numeric_op_ok;
126 type_bit_op_ok;
128 upc_type = {
129 type_upc_name = "UPC_INT32";
130 type_abbrev = "I32";
131 type_c_name = "int32_t";
132 type_value = 15;
133 type_atomic_ok;
134 type_numeric_op_ok;
135 type_bit_op_ok;
137 upc_type = {
138 type_upc_name = "UPC_UINT32";
139 type_abbrev = "UI32";
140 type_c_name = "uint32_t";
141 type_value = 16;
142 type_atomic_ok;
143 type_numeric_op_ok;
144 type_bit_op_ok;
146 upc_type = {
147 type_upc_name = "UPC_INT64";
148 type_abbrev = "I64";
149 type_c_name = "int64_t";
150 type_value = 17;
151 type_atomic_ok;
152 type_numeric_op_ok;
153 type_bit_op_ok;
155 upc_type = {
156 type_upc_name = "UPC_UINT64";
157 type_abbrev = "UI64";
158 type_c_name = "uint64_t";
159 type_value = 18;
160 type_atomic_ok;
161 type_numeric_op_ok;
162 type_bit_op_ok;
164 upc_type = {
165 type_upc_name = "UPC_FLOAT";
166 type_abbrev = "F";
167 type_c_name = "float";
168 type_value = 19;
169 type_floating_point;
170 type_atomic_ok;
171 type_numeric_op_ok;
173 upc_type = {
174 type_upc_name = "UPC_DOUBLE";
175 type_abbrev = "D";
176 type_c_name = "double";
177 type_value = 20;
178 type_floating_point;
179 type_atomic_ok;
180 type_numeric_op_ok;
182 upc_type = {
183 type_upc_name = "UPC_LDOUBLE";
184 type_abbrev = "LD";
185 type_c_name = "long double";
186 type_value = 21;
187 type_floating_point;
188 type_numeric_op_ok;
190 upc_type = {
191 type_upc_name = "UPC_PTS";
192 type_abbrev = "PTS";
193 type_c_name = "shared void *";
194 type_value = 22;
195 type_atomic_ok;