1 /****************************************************************************/
2 #if( defined _MSC_VER && defined _M_IX86 )
4 #ifdef LFDS710_PAL_PROCESSOR
5 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
8 #define LFDS710_PAL_PROCESSOR
10 typedef int long lfds710_pal_int_t;
11 typedef int long unsigned lfds710_pal_uint_t;
13 #define LFDS710_PAL_PROCESSOR_STRING "x86"
15 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
16 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
18 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 32
26 /****************************************************************************/
27 #if( defined _MSC_VER && (defined _M_X64 || defined _M_AMD64) )
29 #ifdef LFDS710_PAL_PROCESSOR
30 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
33 #define LFDS710_PAL_PROCESSOR
35 typedef int long long lfds710_pal_int_t;
36 typedef int long long unsigned lfds710_pal_uint_t;
38 #define LFDS710_PAL_PROCESSOR_STRING "x64"
40 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
41 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
43 // TRD : Intel bring over two cache lines at once, always, unless disabled in BIOS
44 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 128
52 /****************************************************************************/
53 #if( defined _MSC_VER && defined _M_IA64 )
55 #ifdef LFDS710_PAL_PROCESSOR
56 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
59 #define LFDS710_PAL_PROCESSOR
61 typedef int long long lfds710_pal_int_t;
62 typedef int long long unsigned lfds710_pal_uint_t;
64 #define LFDS710_PAL_PROCESSOR_STRING "IA64"
66 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
67 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
69 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 64
77 /****************************************************************************/
78 #if( defined _MSC_VER && defined _M_ARM )
80 #ifdef LFDS710_PAL_PROCESSOR
81 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
84 #define LFDS710_PAL_PROCESSOR
86 typedef int long lfds710_pal_int_t;
87 typedef int long unsigned lfds710_pal_uint_t;
89 #define LFDS710_PAL_PROCESSOR_STRING "ARM (32-bit)"
91 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
92 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
94 /* TRD : ARM is LL/SC and uses a reservation granule of 8 to 2048 bytes
95 so the isolation value used here is worst-case - be sure to set
96 this correctly, otherwise structures are painfully large
98 the test application has an argument, "-e", which attempts to
99 determine the ERG length
102 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 2048
110 /****************************************************************************/
111 #if( defined __GNUC__ && defined __arm__ )
113 #ifdef LFDS710_PAL_PROCESSOR
114 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
117 #define LFDS710_PAL_PROCESSOR
119 typedef int long lfds710_pal_int_t;
120 typedef int long unsigned lfds710_pal_uint_t;
122 #define LFDS710_PAL_PROCESSOR_STRING "ARM (32-bit)"
124 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
125 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
127 /* TRD : ARM is LL/SC and uses a reservation granule of 8 to 2048 bytes
128 so the isolation value used here is worst-case - be sure to set
129 this correctly, otherwise structures are painfully large
131 the test application has an argument, "-e", which attempts to
132 determine the ERG length
135 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 2048
143 /****************************************************************************/
144 #if( defined __GNUC__ && defined __aarch64__ )
146 #ifdef LFDS710_PAL_PROCESSOR
147 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
150 #define LFDS710_PAL_PROCESSOR
152 typedef int long long lfds710_pal_int_t;
153 typedef int long long unsigned lfds710_pal_uint_t;
155 #define LFDS710_PAL_PROCESSOR_STRING "ARM (64-bit)"
157 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
158 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
160 /* TRD : ARM is LL/SC and uses a reservation granule of 8 to 2048 bytes
161 so the isolation value used here is worst-case - be sure to set
162 this correctly, otherwise structures are painfully large
164 the test application has an argument, "-e", which attempts to
165 determine the ERG length
168 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 2048
176 /****************************************************************************/
177 #if( defined __GNUC__ && (defined __i686__ || defined __i586__ || defined __i486__) )
179 #ifdef LFDS710_PAL_PROCESSOR
180 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
183 #define LFDS710_PAL_PROCESSOR
185 typedef int long lfds710_pal_int_t;
186 typedef int long unsigned lfds710_pal_uint_t;
188 #define LFDS710_PAL_PROCESSOR_STRING "x86"
190 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
191 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
193 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 32
201 /****************************************************************************/
202 #if( defined __GNUC__ && defined __x86_64__ )
204 #ifdef LFDS710_PAL_PROCESSOR
205 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
208 #define LFDS710_PAL_PROCESSOR
210 typedef int long long lfds710_pal_int_t;
211 typedef int long long unsigned lfds710_pal_uint_t;
213 #define LFDS710_PAL_PROCESSOR_STRING "x64"
215 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
216 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
218 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 128
226 /****************************************************************************/
227 #if( defined __GNUC__ && defined __alpha__ )
229 #ifdef LFDS710_PAL_PROCESSOR
230 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
233 #define LFDS710_PAL_PROCESSOR
235 typedef int long lfds710_pal_int_t;
236 typedef int long unsigned lfds710_pal_uint_t;
238 #define LFDS710_PAL_PROCESSOR_STRING "alpha"
240 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
241 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
243 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 64
251 /****************************************************************************/
252 #if( defined __GNUC__ && defined __ia64__ )
254 #ifdef LFDS710_PAL_PROCESSOR
255 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
258 #define LFDS710_PAL_PROCESSOR
260 typedef int long long lfds710_pal_int_t;
261 typedef int long long unsigned lfds710_pal_uint_t;
263 #define LFDS710_PAL_PROCESSOR_STRING "IA64"
265 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
266 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
268 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 64
276 /****************************************************************************/
277 #if( defined __GNUC__ && defined __mips__ )
279 #ifdef LFDS710_PAL_PROCESSOR
280 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
283 #define LFDS710_PAL_PROCESSOR
285 typedef int long lfds710_pal_int_t;
286 typedef int long unsigned lfds710_pal_uint_t;
288 #define LFDS710_PAL_PROCESSOR_STRING "MIPS (32-bit)"
290 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
291 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
293 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 32
301 /****************************************************************************/
302 #if( defined __GNUC__ && defined __mips64 )
304 #ifdef LFDS710_PAL_PROCESSOR
305 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
308 #define LFDS710_PAL_PROCESSOR
310 typedef int long long lfds710_pal_int_t;
311 typedef int long long unsigned lfds710_pal_uint_t;
313 #define LFDS710_PAL_PROCESSOR_STRING "MIPS (64-bit)"
315 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
316 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
318 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 64
326 /****************************************************************************/
327 #if( defined __GNUC__ && defined __ppc__ )
329 #ifdef LFDS710_PAL_PROCESSOR
330 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
333 #define LFDS710_PAL_PROCESSOR
335 typedef int long lfds710_pal_int_t;
336 typedef int long unsigned lfds710_pal_uint_t;
338 #define LFDS710_PAL_PROCESSOR_STRING "POWERPC (32-bit)"
340 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
341 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
343 // TRD : this value is not very certain
344 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 128
352 /****************************************************************************/
353 #if( defined __GNUC__ && defined __ppc64__ )
355 #ifdef LFDS710_PAL_PROCESSOR
356 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
359 #define LFDS710_PAL_PROCESSOR
361 typedef int long long lfds710_pal_int_t;
362 typedef int long long unsigned lfds710_pal_uint_t;
364 #define LFDS710_PAL_PROCESSOR_STRING "POWERPC (64-bit)"
366 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
367 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
369 // TRD : this value is not very certain
370 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 128
378 /****************************************************************************/
379 #if( defined __GNUC__ && defined __sparc__ && !defined __sparc_v9__ )
381 #ifdef LFDS710_PAL_PROCESSOR
382 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
385 #define LFDS710_PAL_PROCESSOR
387 typedef int long lfds710_pal_int_t;
388 typedef int long unsigned lfds710_pal_uint_t;
390 #define LFDS710_PAL_PROCESSOR_STRING "SPARC (32-bit)"
392 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
393 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
395 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 32
403 /****************************************************************************/
404 #if( defined __GNUC__ && defined __sparc__ && defined __sparc_v9__ )
406 #ifdef LFDS710_PAL_PROCESSOR
407 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
410 #define LFDS710_PAL_PROCESSOR
412 typedef int long long lfds710_pal_int_t;
413 typedef int long long unsigned lfds710_pal_uint_t;
415 #define LFDS710_PAL_PROCESSOR_STRING "SPARC (64-bit)"
417 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 8
418 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 16
420 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 64
428 /****************************************************************************/
429 #if( defined __GNUC__ && defined __m68k__ )
431 #ifdef LFDS710_PAL_PROCESSOR
432 #error More than one porting abstraction layer matches the current platform in "lfds710_porting_abstraction_layer_processor.h".
435 #define LFDS710_PAL_PROCESSOR
437 typedef int long lfds710_pal_int_t;
438 typedef int long unsigned lfds710_pal_uint_t;
440 #define LFDS710_PAL_PROCESSOR_STRING "680x0"
442 #define LFDS710_PAL_ALIGN_SINGLE_POINTER 4
443 #define LFDS710_PAL_ALIGN_DOUBLE_POINTER 8
445 #define LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES 32
453 /****************************************************************************/
454 #if( !defined LFDS710_PAL_PROCESSOR )
456 #error No matching porting abstraction layer in "lfds710_porting_abstraction_layer_processor.h".