Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 /*
7 * This file is used by not only Linux but also other glibc systems
8 * such as GNU/Hurd and GNU/k*BSD.
9 */
11 #ifndef nspr_cpucfg___
12 #define nspr_cpucfg___
14 #ifndef XP_UNIX
15 #define XP_UNIX
16 #endif
18 #if !defined(LINUX) && defined(__linux__)
19 #define LINUX
20 #endif
22 #ifdef __FreeBSD_kernel__
23 #define PR_AF_INET6 28 /* same as AF_INET6 */
24 #elif defined(__GNU__)
25 #define PR_AF_INET6 26 /* same as AF_INET6 */
26 #else
27 #define PR_AF_INET6 10 /* same as AF_INET6 */
28 #endif
30 #ifdef __powerpc64__
32 #ifdef __LITTLE_ENDIAN__
33 #define IS_LITTLE_ENDIAN 1
34 #undef IS_BIG_ENDIAN
35 #else
36 #undef IS_LITTLE_ENDIAN
37 #define IS_BIG_ENDIAN 1
38 #endif
39 #define IS_64
41 #define PR_BYTES_PER_BYTE 1
42 #define PR_BYTES_PER_SHORT 2
43 #define PR_BYTES_PER_INT 4
44 #define PR_BYTES_PER_INT64 8
45 #define PR_BYTES_PER_LONG 8
46 #define PR_BYTES_PER_FLOAT 4
47 #define PR_BYTES_PER_DOUBLE 8
48 #define PR_BYTES_PER_WORD 8
49 #define PR_BYTES_PER_DWORD 8
51 #define PR_BITS_PER_BYTE 8
52 #define PR_BITS_PER_SHORT 16
53 #define PR_BITS_PER_INT 32
54 #define PR_BITS_PER_INT64 64
55 #define PR_BITS_PER_LONG 64
56 #define PR_BITS_PER_FLOAT 32
57 #define PR_BITS_PER_DOUBLE 64
58 #define PR_BITS_PER_WORD 64
60 #define PR_BITS_PER_BYTE_LOG2 3
61 #define PR_BITS_PER_SHORT_LOG2 4
62 #define PR_BITS_PER_INT_LOG2 5
63 #define PR_BITS_PER_INT64_LOG2 6
64 #define PR_BITS_PER_LONG_LOG2 6
65 #define PR_BITS_PER_FLOAT_LOG2 5
66 #define PR_BITS_PER_DOUBLE_LOG2 6
67 #define PR_BITS_PER_WORD_LOG2 6
69 #define PR_ALIGN_OF_SHORT 2
70 #define PR_ALIGN_OF_INT 4
71 #define PR_ALIGN_OF_LONG 8
72 #define PR_ALIGN_OF_INT64 8
73 #define PR_ALIGN_OF_FLOAT 4
74 #define PR_ALIGN_OF_DOUBLE 8
75 #define PR_ALIGN_OF_POINTER 8
76 #define PR_ALIGN_OF_WORD 8
78 #define PR_BYTES_PER_WORD_LOG2 3
79 #define PR_BYTES_PER_DWORD_LOG2 3
81 #elif defined(__powerpc__)
83 #ifdef __LITTLE_ENDIAN__
84 #define IS_LITTLE_ENDIAN 1
85 #undef IS_BIG_ENDIAN
86 #else
87 #undef IS_LITTLE_ENDIAN
88 #define IS_BIG_ENDIAN 1
89 #endif
91 #define PR_BYTES_PER_BYTE 1
92 #define PR_BYTES_PER_SHORT 2
93 #define PR_BYTES_PER_INT 4
94 #define PR_BYTES_PER_INT64 8
95 #define PR_BYTES_PER_LONG 4
96 #define PR_BYTES_PER_FLOAT 4
97 #define PR_BYTES_PER_DOUBLE 8
98 #define PR_BYTES_PER_WORD 4
99 #define PR_BYTES_PER_DWORD 8
101 #define PR_BITS_PER_BYTE 8
102 #define PR_BITS_PER_SHORT 16
103 #define PR_BITS_PER_INT 32
104 #define PR_BITS_PER_INT64 64
105 #define PR_BITS_PER_LONG 32
106 #define PR_BITS_PER_FLOAT 32
107 #define PR_BITS_PER_DOUBLE 64
108 #define PR_BITS_PER_WORD 32
110 #define PR_BITS_PER_BYTE_LOG2 3
111 #define PR_BITS_PER_SHORT_LOG2 4
112 #define PR_BITS_PER_INT_LOG2 5
113 #define PR_BITS_PER_INT64_LOG2 6
114 #define PR_BITS_PER_LONG_LOG2 5
115 #define PR_BITS_PER_FLOAT_LOG2 5
116 #define PR_BITS_PER_DOUBLE_LOG2 6
117 #define PR_BITS_PER_WORD_LOG2 5
119 #define PR_ALIGN_OF_SHORT 2
120 #define PR_ALIGN_OF_INT 4
121 #define PR_ALIGN_OF_LONG 4
122 #define PR_ALIGN_OF_INT64 8
123 #define PR_ALIGN_OF_FLOAT 4
124 #define PR_ALIGN_OF_DOUBLE 8
125 #define PR_ALIGN_OF_POINTER 4
126 #define PR_ALIGN_OF_WORD 4
128 #define PR_BYTES_PER_WORD_LOG2 2
129 #define PR_BYTES_PER_DWORD_LOG2 3
131 #elif defined(__alpha)
133 #define IS_LITTLE_ENDIAN 1
134 #undef IS_BIG_ENDIAN
135 #define IS_64
137 #define PR_BYTES_PER_BYTE 1
138 #define PR_BYTES_PER_SHORT 2
139 #define PR_BYTES_PER_INT 4
140 #define PR_BYTES_PER_INT64 8
141 #define PR_BYTES_PER_LONG 8
142 #define PR_BYTES_PER_FLOAT 4
143 #define PR_BYTES_PER_DOUBLE 8
144 #define PR_BYTES_PER_WORD 8
145 #define PR_BYTES_PER_DWORD 8
147 #define PR_BITS_PER_BYTE 8
148 #define PR_BITS_PER_SHORT 16
149 #define PR_BITS_PER_INT 32
150 #define PR_BITS_PER_INT64 64
151 #define PR_BITS_PER_LONG 64
152 #define PR_BITS_PER_FLOAT 32
153 #define PR_BITS_PER_DOUBLE 64
154 #define PR_BITS_PER_WORD 64
156 #define PR_BITS_PER_BYTE_LOG2 3
157 #define PR_BITS_PER_SHORT_LOG2 4
158 #define PR_BITS_PER_INT_LOG2 5
159 #define PR_BITS_PER_INT64_LOG2 6
160 #define PR_BITS_PER_LONG_LOG2 6
161 #define PR_BITS_PER_FLOAT_LOG2 5
162 #define PR_BITS_PER_DOUBLE_LOG2 6
163 #define PR_BITS_PER_WORD_LOG2 6
165 #define PR_ALIGN_OF_SHORT 2
166 #define PR_ALIGN_OF_INT 4
167 #define PR_ALIGN_OF_LONG 8
168 #define PR_ALIGN_OF_INT64 8
169 #define PR_ALIGN_OF_FLOAT 4
170 #define PR_ALIGN_OF_DOUBLE 8
171 #define PR_ALIGN_OF_POINTER 8
172 #define PR_ALIGN_OF_WORD 8
174 #define PR_BYTES_PER_WORD_LOG2 3
175 #define PR_BYTES_PER_DWORD_LOG2 3
177 #elif defined(__ia64__)
179 #define IS_LITTLE_ENDIAN 1
180 #undef IS_BIG_ENDIAN
181 #define IS_64
183 #define PR_BYTES_PER_BYTE 1
184 #define PR_BYTES_PER_SHORT 2
185 #define PR_BYTES_PER_INT 4
186 #define PR_BYTES_PER_INT64 8
187 #define PR_BYTES_PER_LONG 8
188 #define PR_BYTES_PER_FLOAT 4
189 #define PR_BYTES_PER_DOUBLE 8
190 #define PR_BYTES_PER_WORD 8
191 #define PR_BYTES_PER_DWORD 8
193 #define PR_BITS_PER_BYTE 8
194 #define PR_BITS_PER_SHORT 16
195 #define PR_BITS_PER_INT 32
196 #define PR_BITS_PER_INT64 64
197 #define PR_BITS_PER_LONG 64
198 #define PR_BITS_PER_FLOAT 32
199 #define PR_BITS_PER_DOUBLE 64
200 #define PR_BITS_PER_WORD 64
202 #define PR_BITS_PER_BYTE_LOG2 3
203 #define PR_BITS_PER_SHORT_LOG2 4
204 #define PR_BITS_PER_INT_LOG2 5
205 #define PR_BITS_PER_INT64_LOG2 6
206 #define PR_BITS_PER_LONG_LOG2 6
207 #define PR_BITS_PER_FLOAT_LOG2 5
208 #define PR_BITS_PER_DOUBLE_LOG2 6
209 #define PR_BITS_PER_WORD_LOG2 6
211 #define PR_ALIGN_OF_SHORT 2
212 #define PR_ALIGN_OF_INT 4
213 #define PR_ALIGN_OF_LONG 8
214 #define PR_ALIGN_OF_INT64 8
215 #define PR_ALIGN_OF_FLOAT 4
216 #define PR_ALIGN_OF_DOUBLE 8
217 #define PR_ALIGN_OF_POINTER 8
218 #define PR_ALIGN_OF_WORD 8
220 #define PR_BYTES_PER_WORD_LOG2 3
221 #define PR_BYTES_PER_DWORD_LOG2 3
223 #elif defined(__x86_64__)
225 #ifdef __ILP32__
227 #define IS_LITTLE_ENDIAN 1
228 #undef IS_BIG_ENDIAN
230 #define PR_BYTES_PER_BYTE 1
231 #define PR_BYTES_PER_SHORT 2
232 #define PR_BYTES_PER_INT 4
233 #define PR_BYTES_PER_INT64 8
234 #define PR_BYTES_PER_LONG 4
235 #define PR_BYTES_PER_FLOAT 4
236 #define PR_BYTES_PER_DOUBLE 8
237 #define PR_BYTES_PER_WORD 4
238 #define PR_BYTES_PER_DWORD 8
240 #define PR_BITS_PER_BYTE 8
241 #define PR_BITS_PER_SHORT 16
242 #define PR_BITS_PER_INT 32
243 #define PR_BITS_PER_INT64 64
244 #define PR_BITS_PER_LONG 32
245 #define PR_BITS_PER_FLOAT 32
246 #define PR_BITS_PER_DOUBLE 64
247 #define PR_BITS_PER_WORD 32
249 #define PR_BITS_PER_BYTE_LOG2 3
250 #define PR_BITS_PER_SHORT_LOG2 4
251 #define PR_BITS_PER_INT_LOG2 5
252 #define PR_BITS_PER_INT64_LOG2 6
253 #define PR_BITS_PER_LONG_LOG2 5
254 #define PR_BITS_PER_FLOAT_LOG2 5
255 #define PR_BITS_PER_DOUBLE_LOG2 6
256 #define PR_BITS_PER_WORD_LOG2 5
258 #define PR_ALIGN_OF_SHORT 2
259 #define PR_ALIGN_OF_INT 4
260 #define PR_ALIGN_OF_LONG 4
261 #define PR_ALIGN_OF_INT64 8
262 #define PR_ALIGN_OF_FLOAT 4
263 #define PR_ALIGN_OF_DOUBLE 8
264 #define PR_ALIGN_OF_POINTER 4
265 #define PR_ALIGN_OF_WORD 4
267 #define PR_BYTES_PER_WORD_LOG2 2
268 #define PR_BYTES_PER_DWORD_LOG2 3
270 #else
272 #define IS_LITTLE_ENDIAN 1
273 #undef IS_BIG_ENDIAN
274 #define IS_64
276 #define PR_BYTES_PER_BYTE 1
277 #define PR_BYTES_PER_SHORT 2
278 #define PR_BYTES_PER_INT 4
279 #define PR_BYTES_PER_INT64 8
280 #define PR_BYTES_PER_LONG 8
281 #define PR_BYTES_PER_FLOAT 4
282 #define PR_BYTES_PER_DOUBLE 8
283 #define PR_BYTES_PER_WORD 8
284 #define PR_BYTES_PER_DWORD 8
286 #define PR_BITS_PER_BYTE 8
287 #define PR_BITS_PER_SHORT 16
288 #define PR_BITS_PER_INT 32
289 #define PR_BITS_PER_INT64 64
290 #define PR_BITS_PER_LONG 64
291 #define PR_BITS_PER_FLOAT 32
292 #define PR_BITS_PER_DOUBLE 64
293 #define PR_BITS_PER_WORD 64
295 #define PR_BITS_PER_BYTE_LOG2 3
296 #define PR_BITS_PER_SHORT_LOG2 4
297 #define PR_BITS_PER_INT_LOG2 5
298 #define PR_BITS_PER_INT64_LOG2 6
299 #define PR_BITS_PER_LONG_LOG2 6
300 #define PR_BITS_PER_FLOAT_LOG2 5
301 #define PR_BITS_PER_DOUBLE_LOG2 6
302 #define PR_BITS_PER_WORD_LOG2 6
304 #define PR_ALIGN_OF_SHORT 2
305 #define PR_ALIGN_OF_INT 4
306 #define PR_ALIGN_OF_LONG 8
307 #define PR_ALIGN_OF_INT64 8
308 #define PR_ALIGN_OF_FLOAT 4
309 #define PR_ALIGN_OF_DOUBLE 8
310 #define PR_ALIGN_OF_POINTER 8
311 #define PR_ALIGN_OF_WORD 8
313 #define PR_BYTES_PER_WORD_LOG2 3
314 #define PR_BYTES_PER_DWORD_LOG2 3
316 #endif
318 #elif defined(__mc68000__)
320 #undef IS_LITTLE_ENDIAN
321 #define IS_BIG_ENDIAN 1
323 #define PR_BYTES_PER_BYTE 1
324 #define PR_BYTES_PER_SHORT 2
325 #define PR_BYTES_PER_INT 4
326 #define PR_BYTES_PER_INT64 8
327 #define PR_BYTES_PER_LONG 4
328 #define PR_BYTES_PER_FLOAT 4
329 #define PR_BYTES_PER_DOUBLE 8
330 #define PR_BYTES_PER_WORD 4
331 #define PR_BYTES_PER_DWORD 8
333 #define PR_BITS_PER_BYTE 8
334 #define PR_BITS_PER_SHORT 16
335 #define PR_BITS_PER_INT 32
336 #define PR_BITS_PER_INT64 64
337 #define PR_BITS_PER_LONG 32
338 #define PR_BITS_PER_FLOAT 32
339 #define PR_BITS_PER_DOUBLE 64
340 #define PR_BITS_PER_WORD 32
342 #define PR_BITS_PER_BYTE_LOG2 3
343 #define PR_BITS_PER_SHORT_LOG2 4
344 #define PR_BITS_PER_INT_LOG2 5
345 #define PR_BITS_PER_INT64_LOG2 6
346 #define PR_BITS_PER_LONG_LOG2 5
347 #define PR_BITS_PER_FLOAT_LOG2 5
348 #define PR_BITS_PER_DOUBLE_LOG2 6
349 #define PR_BITS_PER_WORD_LOG2 5
351 #define PR_ALIGN_OF_SHORT 2
352 #define PR_ALIGN_OF_INT 2
353 #define PR_ALIGN_OF_LONG 2
354 #define PR_ALIGN_OF_INT64 2
355 #define PR_ALIGN_OF_FLOAT 2
356 #define PR_ALIGN_OF_DOUBLE 2
357 #define PR_ALIGN_OF_POINTER 2
358 #define PR_ALIGN_OF_WORD 2
360 #define PR_BYTES_PER_WORD_LOG2 2
361 #define PR_BYTES_PER_DWORD_LOG2 3
363 #elif defined(__sparc__) && defined (__arch64__)
365 #undef IS_LITTLE_ENDIAN
366 #define IS_BIG_ENDIAN 1
367 #define IS_64
369 #define PR_BYTES_PER_BYTE 1
370 #define PR_BYTES_PER_SHORT 2
371 #define PR_BYTES_PER_INT 4
372 #define PR_BYTES_PER_INT64 8
373 #define PR_BYTES_PER_LONG 8
374 #define PR_BYTES_PER_FLOAT 4
375 #define PR_BYTES_PER_DOUBLE 8
376 #define PR_BYTES_PER_WORD 8
377 #define PR_BYTES_PER_DWORD 8
379 #define PR_BITS_PER_BYTE 8
380 #define PR_BITS_PER_SHORT 16
381 #define PR_BITS_PER_INT 32
382 #define PR_BITS_PER_INT64 64
383 #define PR_BITS_PER_LONG 64
384 #define PR_BITS_PER_FLOAT 32
385 #define PR_BITS_PER_DOUBLE 64
386 #define PR_BITS_PER_WORD 64
388 #define PR_BITS_PER_BYTE_LOG2 3
389 #define PR_BITS_PER_SHORT_LOG2 4
390 #define PR_BITS_PER_INT_LOG2 5
391 #define PR_BITS_PER_INT64_LOG2 6
392 #define PR_BITS_PER_LONG_LOG2 6
393 #define PR_BITS_PER_FLOAT_LOG2 5
394 #define PR_BITS_PER_DOUBLE_LOG2 6
395 #define PR_BITS_PER_WORD_LOG2 6
397 #define PR_ALIGN_OF_SHORT 2
398 #define PR_ALIGN_OF_INT 4
399 #define PR_ALIGN_OF_INT64 8
400 #define PR_ALIGN_OF_LONG 8
401 #define PR_ALIGN_OF_FLOAT 4
402 #define PR_ALIGN_OF_DOUBLE 8
403 #define PR_ALIGN_OF_POINTER 8
404 #define PR_ALIGN_OF_WORD 8
406 #define PR_BYTES_PER_WORD_LOG2 3
407 #define PR_BYTES_PER_DWORD_LOG2 3
409 #elif defined(__sparc__)
411 #undef IS_LITTLE_ENDIAN
412 #define IS_BIG_ENDIAN 1
414 #define PR_BYTES_PER_BYTE 1
415 #define PR_BYTES_PER_SHORT 2
416 #define PR_BYTES_PER_INT 4
417 #define PR_BYTES_PER_INT64 8
418 #define PR_BYTES_PER_LONG 4
419 #define PR_BYTES_PER_FLOAT 4
420 #define PR_BYTES_PER_DOUBLE 8
421 #define PR_BYTES_PER_WORD 4
422 #define PR_BYTES_PER_DWORD 8
424 #define PR_BITS_PER_BYTE 8
425 #define PR_BITS_PER_SHORT 16
426 #define PR_BITS_PER_INT 32
427 #define PR_BITS_PER_INT64 64
428 #define PR_BITS_PER_LONG 32
429 #define PR_BITS_PER_FLOAT 32
430 #define PR_BITS_PER_DOUBLE 64
431 #define PR_BITS_PER_WORD 32
433 #define PR_BITS_PER_BYTE_LOG2 3
434 #define PR_BITS_PER_SHORT_LOG2 4
435 #define PR_BITS_PER_INT_LOG2 5
436 #define PR_BITS_PER_INT64_LOG2 6
437 #define PR_BITS_PER_LONG_LOG2 5
438 #define PR_BITS_PER_FLOAT_LOG2 5
439 #define PR_BITS_PER_DOUBLE_LOG2 6
440 #define PR_BITS_PER_WORD_LOG2 5
442 #define PR_ALIGN_OF_SHORT 2
443 #define PR_ALIGN_OF_INT 4
444 #define PR_ALIGN_OF_LONG 4
445 #define PR_ALIGN_OF_INT64 8
446 #define PR_ALIGN_OF_FLOAT 4
447 #define PR_ALIGN_OF_DOUBLE 8
448 #define PR_ALIGN_OF_POINTER 4
449 #define PR_ALIGN_OF_WORD 4
451 #define PR_BYTES_PER_WORD_LOG2 2
452 #define PR_BYTES_PER_DWORD_LOG2 3
454 #elif defined(__i386__)
456 #define IS_LITTLE_ENDIAN 1
457 #undef IS_BIG_ENDIAN
459 #define PR_BYTES_PER_BYTE 1
460 #define PR_BYTES_PER_SHORT 2
461 #define PR_BYTES_PER_INT 4
462 #define PR_BYTES_PER_INT64 8
463 #define PR_BYTES_PER_LONG 4
464 #define PR_BYTES_PER_FLOAT 4
465 #define PR_BYTES_PER_DOUBLE 8
466 #define PR_BYTES_PER_WORD 4
467 #define PR_BYTES_PER_DWORD 8
469 #define PR_BITS_PER_BYTE 8
470 #define PR_BITS_PER_SHORT 16
471 #define PR_BITS_PER_INT 32
472 #define PR_BITS_PER_INT64 64
473 #define PR_BITS_PER_LONG 32
474 #define PR_BITS_PER_FLOAT 32
475 #define PR_BITS_PER_DOUBLE 64
476 #define PR_BITS_PER_WORD 32
478 #define PR_BITS_PER_BYTE_LOG2 3
479 #define PR_BITS_PER_SHORT_LOG2 4
480 #define PR_BITS_PER_INT_LOG2 5
481 #define PR_BITS_PER_INT64_LOG2 6
482 #define PR_BITS_PER_LONG_LOG2 5
483 #define PR_BITS_PER_FLOAT_LOG2 5
484 #define PR_BITS_PER_DOUBLE_LOG2 6
485 #define PR_BITS_PER_WORD_LOG2 5
487 #define PR_ALIGN_OF_SHORT 2
488 #define PR_ALIGN_OF_INT 4
489 #define PR_ALIGN_OF_LONG 4
490 #define PR_ALIGN_OF_INT64 4
491 #define PR_ALIGN_OF_FLOAT 4
492 #define PR_ALIGN_OF_DOUBLE 4
493 #define PR_ALIGN_OF_POINTER 4
494 #define PR_ALIGN_OF_WORD 4
496 #define PR_BYTES_PER_WORD_LOG2 2
497 #define PR_BYTES_PER_DWORD_LOG2 3
499 #elif defined(__mips__)
501 #ifdef __MIPSEB__
502 #define IS_BIG_ENDIAN 1
503 #undef IS_LITTLE_ENDIAN
504 #elif defined(__MIPSEL__)
505 #define IS_LITTLE_ENDIAN 1
506 #undef IS_BIG_ENDIAN
507 #else
508 #error "Unknown MIPS endianness."
509 #endif
511 #define PR_BYTES_PER_BYTE 1
512 #define PR_BYTES_PER_SHORT 2
513 #define PR_BYTES_PER_INT 4
514 #define PR_BYTES_PER_INT64 8
515 #define PR_BYTES_PER_LONG 4
516 #define PR_BYTES_PER_FLOAT 4
517 #define PR_BYTES_PER_DOUBLE 8
518 #define PR_BYTES_PER_WORD 4
519 #define PR_BYTES_PER_DWORD 8
521 #define PR_BITS_PER_BYTE 8
522 #define PR_BITS_PER_SHORT 16
523 #define PR_BITS_PER_INT 32
524 #define PR_BITS_PER_INT64 64
525 #define PR_BITS_PER_LONG 32
526 #define PR_BITS_PER_FLOAT 32
527 #define PR_BITS_PER_DOUBLE 64
528 #define PR_BITS_PER_WORD 32
530 #define PR_BITS_PER_BYTE_LOG2 3
531 #define PR_BITS_PER_SHORT_LOG2 4
532 #define PR_BITS_PER_INT_LOG2 5
533 #define PR_BITS_PER_INT64_LOG2 6
534 #define PR_BITS_PER_LONG_LOG2 5
535 #define PR_BITS_PER_FLOAT_LOG2 5
536 #define PR_BITS_PER_DOUBLE_LOG2 6
537 #define PR_BITS_PER_WORD_LOG2 5
539 #define PR_ALIGN_OF_SHORT 2
540 #define PR_ALIGN_OF_INT 4
541 #define PR_ALIGN_OF_LONG 4
542 #define PR_ALIGN_OF_INT64 8
543 #define PR_ALIGN_OF_FLOAT 4
544 #define PR_ALIGN_OF_DOUBLE 8
545 #define PR_ALIGN_OF_POINTER 4
546 #define PR_ALIGN_OF_WORD 4
548 #define PR_BYTES_PER_WORD_LOG2 2
549 #define PR_BYTES_PER_DWORD_LOG2 3
551 #elif defined(__arm__)
553 #ifdef __ARMEB__
554 #undef IS_LITTLE_ENDIAN
555 #define IS_BIG_ENDIAN 1
556 #elif defined(__ARMEL__)
557 #define IS_LITTLE_ENDIAN 1
558 #undef IS_BIG_ENDIAN
559 #else
560 #error "Unknown ARM endianness."
561 #endif
563 #define PR_BYTES_PER_BYTE 1
564 #define PR_BYTES_PER_SHORT 2
565 #define PR_BYTES_PER_INT 4
566 #define PR_BYTES_PER_INT64 8
567 #define PR_BYTES_PER_LONG 4
568 #define PR_BYTES_PER_FLOAT 4
569 #define PR_BYTES_PER_DOUBLE 8
570 #define PR_BYTES_PER_WORD 4
571 #define PR_BYTES_PER_DWORD 8
573 #define PR_BITS_PER_BYTE 8
574 #define PR_BITS_PER_SHORT 16
575 #define PR_BITS_PER_INT 32
576 #define PR_BITS_PER_INT64 64
577 #define PR_BITS_PER_LONG 32
578 #define PR_BITS_PER_FLOAT 32
579 #define PR_BITS_PER_DOUBLE 64
580 #define PR_BITS_PER_WORD 32
582 #define PR_BITS_PER_BYTE_LOG2 3
583 #define PR_BITS_PER_SHORT_LOG2 4
584 #define PR_BITS_PER_INT_LOG2 5
585 #define PR_BITS_PER_INT64_LOG2 6
586 #define PR_BITS_PER_LONG_LOG2 5
587 #define PR_BITS_PER_FLOAT_LOG2 5
588 #define PR_BITS_PER_DOUBLE_LOG2 6
589 #define PR_BITS_PER_WORD_LOG2 5
591 #define PR_ALIGN_OF_SHORT 2
592 #define PR_ALIGN_OF_INT 4
593 #define PR_ALIGN_OF_LONG 4
594 #define PR_ALIGN_OF_INT64 4
595 #define PR_ALIGN_OF_FLOAT 4
596 #define PR_ALIGN_OF_DOUBLE 4
597 #define PR_ALIGN_OF_POINTER 4
598 #define PR_ALIGN_OF_WORD 4
600 #define PR_BYTES_PER_WORD_LOG2 2
601 #define PR_BYTES_PER_DWORD_LOG2 3
603 #elif defined(__aarch64__)
605 #ifdef __AARCH64EB__
606 #undef IS_LITTLE_ENDIAN
607 #define IS_BIG_ENDIAN 1
608 #elif defined(__AARCH64EL__)
609 #define IS_LITTLE_ENDIAN 1
610 #undef IS_BIG_ENDIAN
611 #else
612 #error "Unknown Aarch64 endianness."
613 #endif
614 #define IS_64
616 #define PR_BYTES_PER_BYTE 1
617 #define PR_BYTES_PER_SHORT 2
618 #define PR_BYTES_PER_INT 4
619 #define PR_BYTES_PER_INT64 8
620 #define PR_BYTES_PER_LONG 8
621 #define PR_BYTES_PER_FLOAT 4
622 #define PR_BYTES_PER_DOUBLE 8
623 #define PR_BYTES_PER_WORD 8
624 #define PR_BYTES_PER_DWORD 8
626 #define PR_BITS_PER_BYTE 8
627 #define PR_BITS_PER_SHORT 16
628 #define PR_BITS_PER_INT 32
629 #define PR_BITS_PER_INT64 64
630 #define PR_BITS_PER_LONG 64
631 #define PR_BITS_PER_FLOAT 32
632 #define PR_BITS_PER_DOUBLE 64
633 #define PR_BITS_PER_WORD 64
635 #define PR_BITS_PER_BYTE_LOG2 3
636 #define PR_BITS_PER_SHORT_LOG2 4
637 #define PR_BITS_PER_INT_LOG2 5
638 #define PR_BITS_PER_INT64_LOG2 6
639 #define PR_BITS_PER_LONG_LOG2 6
640 #define PR_BITS_PER_FLOAT_LOG2 5
641 #define PR_BITS_PER_DOUBLE_LOG2 6
642 #define PR_BITS_PER_WORD_LOG2 6
644 #define PR_ALIGN_OF_SHORT 2
645 #define PR_ALIGN_OF_INT 4
646 #define PR_ALIGN_OF_LONG 8
647 #define PR_ALIGN_OF_INT64 8
648 #define PR_ALIGN_OF_FLOAT 4
649 #define PR_ALIGN_OF_DOUBLE 8
650 #define PR_ALIGN_OF_POINTER 8
651 #define PR_ALIGN_OF_WORD 8
653 #define PR_BYTES_PER_WORD_LOG2 3
654 #define PR_BYTES_PER_DWORD_LOG2 3
656 #elif defined(__hppa__)
658 #undef IS_LITTLE_ENDIAN
659 #define IS_BIG_ENDIAN 1
661 #define PR_BYTES_PER_BYTE 1
662 #define PR_BYTES_PER_SHORT 2
663 #define PR_BYTES_PER_INT 4
664 #define PR_BYTES_PER_INT64 8
665 #define PR_BYTES_PER_LONG 4
666 #define PR_BYTES_PER_FLOAT 4
667 #define PR_BYTES_PER_DOUBLE 8
668 #define PR_BYTES_PER_WORD 4
669 #define PR_BYTES_PER_DWORD 8
671 #define PR_BITS_PER_BYTE 8
672 #define PR_BITS_PER_SHORT 16
673 #define PR_BITS_PER_INT 32
674 #define PR_BITS_PER_INT64 64
675 #define PR_BITS_PER_LONG 32
676 #define PR_BITS_PER_FLOAT 32
677 #define PR_BITS_PER_DOUBLE 64
678 #define PR_BITS_PER_WORD 32
680 #define PR_BITS_PER_BYTE_LOG2 3
681 #define PR_BITS_PER_SHORT_LOG2 4
682 #define PR_BITS_PER_INT_LOG2 5
683 #define PR_BITS_PER_INT64_LOG2 6
684 #define PR_BITS_PER_LONG_LOG2 5
685 #define PR_BITS_PER_FLOAT_LOG2 5
686 #define PR_BITS_PER_DOUBLE_LOG2 6
687 #define PR_BITS_PER_WORD_LOG2 5
689 #define PR_ALIGN_OF_SHORT 2
690 #define PR_ALIGN_OF_INT 4
691 #define PR_ALIGN_OF_LONG 4
692 #define PR_ALIGN_OF_INT64 8
693 #define PR_ALIGN_OF_FLOAT 4
694 #define PR_ALIGN_OF_DOUBLE 8
695 #define PR_ALIGN_OF_POINTER 4
696 #define PR_ALIGN_OF_WORD 4
698 #define PR_BYTES_PER_WORD_LOG2 2
699 #define PR_BYTES_PER_DWORD_LOG2 3
701 #elif defined(__s390x__)
703 #define IS_BIG_ENDIAN 1
704 #undef IS_LITTLE_ENDIAN
705 #define IS_64
707 #define PR_BYTES_PER_BYTE 1
708 #define PR_BYTES_PER_SHORT 2
709 #define PR_BYTES_PER_INT 4
710 #define PR_BYTES_PER_INT64 8
711 #define PR_BYTES_PER_LONG 8
712 #define PR_BYTES_PER_FLOAT 4
713 #define PR_BYTES_PER_DOUBLE 8
714 #define PR_BYTES_PER_WORD 8
715 #define PR_BYTES_PER_DWORD 8
717 #define PR_BITS_PER_BYTE 8
718 #define PR_BITS_PER_SHORT 16
719 #define PR_BITS_PER_INT 32
720 #define PR_BITS_PER_INT64 64
721 #define PR_BITS_PER_LONG 64
722 #define PR_BITS_PER_FLOAT 32
723 #define PR_BITS_PER_DOUBLE 64
724 #define PR_BITS_PER_WORD 64
726 #define PR_BITS_PER_BYTE_LOG2 3
727 #define PR_BITS_PER_SHORT_LOG2 4
728 #define PR_BITS_PER_INT_LOG2 5
729 #define PR_BITS_PER_INT64_LOG2 6
730 #define PR_BITS_PER_LONG_LOG2 6
731 #define PR_BITS_PER_FLOAT_LOG2 5
732 #define PR_BITS_PER_DOUBLE_LOG2 6
733 #define PR_BITS_PER_WORD_LOG2 6
735 #define PR_ALIGN_OF_SHORT 2
736 #define PR_ALIGN_OF_INT 4
737 #define PR_ALIGN_OF_LONG 8
738 #define PR_ALIGN_OF_INT64 8
739 #define PR_ALIGN_OF_FLOAT 4
740 #define PR_ALIGN_OF_DOUBLE 8
741 #define PR_ALIGN_OF_POINTER 8
742 #define PR_ALIGN_OF_WORD 8
744 #define PR_BYTES_PER_WORD_LOG2 3
745 #define PR_BYTES_PER_DWORD_LOG2 3
747 #elif defined(__s390__)
749 #define IS_BIG_ENDIAN 1
750 #undef IS_LITTLE_ENDIAN
752 #define PR_BYTES_PER_BYTE 1
753 #define PR_BYTES_PER_SHORT 2
754 #define PR_BYTES_PER_INT 4
755 #define PR_BYTES_PER_INT64 8
756 #define PR_BYTES_PER_LONG 4
757 #define PR_BYTES_PER_FLOAT 4
758 #define PR_BYTES_PER_DOUBLE 8
759 #define PR_BYTES_PER_WORD 4
760 #define PR_BYTES_PER_DWORD 8
762 #define PR_BITS_PER_BYTE 8
763 #define PR_BITS_PER_SHORT 16
764 #define PR_BITS_PER_INT 32
765 #define PR_BITS_PER_INT64 64
766 #define PR_BITS_PER_LONG 32
767 #define PR_BITS_PER_FLOAT 32
768 #define PR_BITS_PER_DOUBLE 64
769 #define PR_BITS_PER_WORD 32
771 #define PR_BITS_PER_BYTE_LOG2 3
772 #define PR_BITS_PER_SHORT_LOG2 4
773 #define PR_BITS_PER_INT_LOG2 5
774 #define PR_BITS_PER_INT64_LOG2 6
775 #define PR_BITS_PER_LONG_LOG2 5
776 #define PR_BITS_PER_FLOAT_LOG2 5
777 #define PR_BITS_PER_DOUBLE_LOG2 6
778 #define PR_BITS_PER_WORD_LOG2 5
780 #define PR_ALIGN_OF_SHORT 2
781 #define PR_ALIGN_OF_INT 4
782 #define PR_ALIGN_OF_LONG 4
783 #define PR_ALIGN_OF_INT64 4
784 #define PR_ALIGN_OF_FLOAT 4
785 #define PR_ALIGN_OF_DOUBLE 4
786 #define PR_ALIGN_OF_POINTER 4
787 #define PR_ALIGN_OF_WORD 4
789 #define PR_BYTES_PER_WORD_LOG2 2
790 #define PR_BYTES_PER_DWORD_LOG2 3
792 #elif defined(__sh__)
794 #define IS_LITTLE_ENDIAN 1
795 #undef IS_BIG_ENDIAN
797 #define PR_BYTES_PER_BYTE 1
798 #define PR_BYTES_PER_SHORT 2
799 #define PR_BYTES_PER_INT 4
800 #define PR_BYTES_PER_INT64 8
801 #define PR_BYTES_PER_LONG 4
802 #define PR_BYTES_PER_FLOAT 4
803 #define PR_BYTES_PER_DOUBLE 8
804 #define PR_BYTES_PER_WORD 4
805 #define PR_BYTES_PER_DWORD 8
807 #define PR_BITS_PER_BYTE 8
808 #define PR_BITS_PER_SHORT 16
809 #define PR_BITS_PER_INT 32
810 #define PR_BITS_PER_INT64 64
811 #define PR_BITS_PER_LONG 32
812 #define PR_BITS_PER_FLOAT 32
813 #define PR_BITS_PER_DOUBLE 64
814 #define PR_BITS_PER_WORD 32
816 #define PR_BITS_PER_BYTE_LOG2 3
817 #define PR_BITS_PER_SHORT_LOG2 4
818 #define PR_BITS_PER_INT_LOG2 5
819 #define PR_BITS_PER_INT64_LOG2 6
820 #define PR_BITS_PER_LONG_LOG2 5
821 #define PR_BITS_PER_FLOAT_LOG2 5
822 #define PR_BITS_PER_DOUBLE_LOG2 6
823 #define PR_BITS_PER_WORD_LOG2 5
825 #define PR_ALIGN_OF_SHORT 2
826 #define PR_ALIGN_OF_INT 4
827 #define PR_ALIGN_OF_LONG 4
828 #define PR_ALIGN_OF_INT64 4
829 #define PR_ALIGN_OF_FLOAT 4
830 #define PR_ALIGN_OF_DOUBLE 4
831 #define PR_ALIGN_OF_POINTER 4
832 #define PR_ALIGN_OF_WORD 4
834 #define PR_BYTES_PER_WORD_LOG2 2
835 #define PR_BYTES_PER_DWORD_LOG2 3
837 #elif defined(__avr32__)
839 #undef IS_LITTLE_ENDIAN
840 #define IS_BIG_ENDIAN 1
842 #define PR_BYTES_PER_BYTE 1
843 #define PR_BYTES_PER_SHORT 2
844 #define PR_BYTES_PER_INT 4
845 #define PR_BYTES_PER_INT64 8
846 #define PR_BYTES_PER_LONG 4
847 #define PR_BYTES_PER_FLOAT 4
848 #define PR_BYTES_PER_DOUBLE 8
849 #define PR_BYTES_PER_WORD 4
850 #define PR_BYTES_PER_DWORD 8
852 #define PR_BITS_PER_BYTE 8
853 #define PR_BITS_PER_SHORT 16
854 #define PR_BITS_PER_INT 32
855 #define PR_BITS_PER_INT64 64
856 #define PR_BITS_PER_LONG 32
857 #define PR_BITS_PER_FLOAT 32
858 #define PR_BITS_PER_DOUBLE 64
859 #define PR_BITS_PER_WORD 32
861 #define PR_BITS_PER_BYTE_LOG2 3
862 #define PR_BITS_PER_SHORT_LOG2 4
863 #define PR_BITS_PER_INT_LOG2 5
864 #define PR_BITS_PER_INT64_LOG2 6
865 #define PR_BITS_PER_LONG_LOG2 5
866 #define PR_BITS_PER_FLOAT_LOG2 5
867 #define PR_BITS_PER_DOUBLE_LOG2 6
868 #define PR_BITS_PER_WORD_LOG2 5
870 #define PR_ALIGN_OF_SHORT 2
871 #define PR_ALIGN_OF_INT 4
872 #define PR_ALIGN_OF_LONG 4
873 #define PR_ALIGN_OF_INT64 4
874 #define PR_ALIGN_OF_FLOAT 4
875 #define PR_ALIGN_OF_DOUBLE 4
876 #define PR_ALIGN_OF_POINTER 4
877 #define PR_ALIGN_OF_WORD 4
879 #define PR_BYTES_PER_WORD_LOG2 2
880 #define PR_BYTES_PER_DWORD_LOG2 3
882 #elif defined(__m32r__)
884 #undef IS_LITTLE_ENDIAN
885 #define IS_BIG_ENDIAN 1
887 #define PR_BYTES_PER_BYTE 1
888 #define PR_BYTES_PER_SHORT 2
889 #define PR_BYTES_PER_INT 4
890 #define PR_BYTES_PER_INT64 8
891 #define PR_BYTES_PER_LONG 4
892 #define PR_BYTES_PER_FLOAT 4
893 #define PR_BYTES_PER_DOUBLE 8
894 #define PR_BYTES_PER_WORD 4
895 #define PR_BYTES_PER_DWORD 8
897 #define PR_BITS_PER_BYTE 8
898 #define PR_BITS_PER_SHORT 16
899 #define PR_BITS_PER_INT 32
900 #define PR_BITS_PER_INT64 64
901 #define PR_BITS_PER_LONG 32
902 #define PR_BITS_PER_FLOAT 32
903 #define PR_BITS_PER_DOUBLE 64
904 #define PR_BITS_PER_WORD 32
906 #define PR_BITS_PER_BYTE_LOG2 3
907 #define PR_BITS_PER_SHORT_LOG2 4
908 #define PR_BITS_PER_INT_LOG2 5
909 #define PR_BITS_PER_INT64_LOG2 6
910 #define PR_BITS_PER_LONG_LOG2 5
911 #define PR_BITS_PER_FLOAT_LOG2 5
912 #define PR_BITS_PER_DOUBLE_LOG2 6
913 #define PR_BITS_PER_WORD_LOG2 5
915 #define PR_ALIGN_OF_SHORT 2
916 #define PR_ALIGN_OF_INT 4
917 #define PR_ALIGN_OF_LONG 4
918 #define PR_ALIGN_OF_INT64 4
919 #define PR_ALIGN_OF_FLOAT 4
920 #define PR_ALIGN_OF_DOUBLE 4
921 #define PR_ALIGN_OF_POINTER 4
922 #define PR_ALIGN_OF_WORD 4
924 #define PR_BYTES_PER_WORD_LOG2 2
925 #define PR_BYTES_PER_DWORD_LOG2 3
927 #else
929 #error "Unknown CPU architecture"
931 #endif
933 #ifndef HAVE_LONG_LONG
934 #define HAVE_LONG_LONG
935 #endif
936 #if PR_ALIGN_OF_DOUBLE == 8
937 #define HAVE_ALIGNED_DOUBLES
938 #endif
939 #if PR_ALIGN_OF_INT64 == 8
940 #define HAVE_ALIGNED_LONGLONGS
941 #endif
943 #ifndef NO_NSPR_10_SUPPORT
945 #define BYTES_PER_BYTE PR_BYTES_PER_BYTE
946 #define BYTES_PER_SHORT PR_BYTES_PER_SHORT
947 #define BYTES_PER_INT PR_BYTES_PER_INT
948 #define BYTES_PER_INT64 PR_BYTES_PER_INT64
949 #define BYTES_PER_LONG PR_BYTES_PER_LONG
950 #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
951 #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
952 #define BYTES_PER_WORD PR_BYTES_PER_WORD
953 #define BYTES_PER_DWORD PR_BYTES_PER_DWORD
955 #define BITS_PER_BYTE PR_BITS_PER_BYTE
956 #define BITS_PER_SHORT PR_BITS_PER_SHORT
957 #define BITS_PER_INT PR_BITS_PER_INT
958 #define BITS_PER_INT64 PR_BITS_PER_INT64
959 #define BITS_PER_LONG PR_BITS_PER_LONG
960 #define BITS_PER_FLOAT PR_BITS_PER_FLOAT
961 #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
962 #define BITS_PER_WORD PR_BITS_PER_WORD
964 #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
965 #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
966 #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
967 #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
968 #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
969 #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
970 #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
971 #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
973 #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
974 #define ALIGN_OF_INT PR_ALIGN_OF_INT
975 #define ALIGN_OF_LONG PR_ALIGN_OF_LONG
976 #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
977 #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
978 #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
979 #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
980 #define ALIGN_OF_WORD PR_ALIGN_OF_WORD
982 #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
983 #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
984 #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
986 #endif /* NO_NSPR_10_SUPPORT */
988 #endif /* nspr_cpucfg___ */