|
|
1.1 root 1: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2: /*
3: * The contents of this file are subject to the Mozilla Public
4: * License Version 1.1 (the "License"); you may not use this file
5: * except in compliance with the License. You may obtain a copy of
6: * the License at http://www.mozilla.org/MPL/
7: *
8: * Software distributed under the License is distributed on an "AS
9: * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10: * implied. See the License for the specific language governing
11: * rights and limitations under the License.
12: *
13: * The Original Code is the Netscape Portable Runtime (NSPR).
14: *
15: * The Initial Developer of the Original Code is Netscape
16: * Communications Corporation. Portions created by Netscape are
17: * Copyright (C) 1998-2000 Netscape Communications Corporation. All
18: * Rights Reserved.
19: *
20: * Contributor(s):
21: *
22: * Alternatively, the contents of this file may be used under the
23: * terms of the GNU General Public License Version 2 or later (the
24: * "GPL"), in which case the provisions of the GPL are applicable
25: * instead of those above. If you wish to allow use of your
26: * version of this file only under the terms of the GPL and not to
27: * allow others to use your version of this file under the MPL,
28: * indicate your decision by deleting the provisions above and
29: * replace them with the notice and other provisions required by
30: * the GPL. If you do not delete the provisions above, a recipient
31: * may use your version of this file under either the MPL or the
32: * GPL.
33: */
34:
35: #ifndef nspr_cpucfg___
36: #define nspr_cpucfg___
37:
38: #ifdef _WIN32
39:
40: #ifndef XP_PC
41: #define XP_PC
42: #endif
43:
44: #ifndef WIN32
45: #define WIN32
46: #endif
47:
48: #ifndef WIN95
49: #define WIN95
50: #endif
51:
52: #define PR_AF_INET6 23 /* same as AF_INET6 */
53:
54: #if defined(_M_IX86) || defined(_X86_)
55:
56: #define IS_LITTLE_ENDIAN 1
57: #undef IS_BIG_ENDIAN
58:
59: #define PR_BYTES_PER_BYTE 1
60: #define PR_BYTES_PER_SHORT 2
61: #define PR_BYTES_PER_INT 4
62: #define PR_BYTES_PER_INT64 8
63: #define PR_BYTES_PER_LONG 4
64: #define PR_BYTES_PER_FLOAT 4
65: #define PR_BYTES_PER_WORD 4
66: #define PR_BYTES_PER_DWORD 8
67: #define PR_BYTES_PER_DOUBLE 8
68:
69: #define PR_BITS_PER_BYTE 8
70: #define PR_BITS_PER_SHORT 16
71: #define PR_BITS_PER_INT 32
72: #define PR_BITS_PER_INT64 64
73: #define PR_BITS_PER_LONG 32
74: #define PR_BITS_PER_FLOAT 32
75: #define PR_BITS_PER_WORD 32
76: #define PR_BITS_PER_DWORD 64
77: #define PR_BITS_PER_DOUBLE 64
78:
79: #define PR_BITS_PER_BYTE_LOG2 3
80: #define PR_BITS_PER_SHORT_LOG2 4
81: #define PR_BITS_PER_INT_LOG2 5
82: #define PR_BITS_PER_INT64_LOG2 6
83: #define PR_BITS_PER_LONG_LOG2 5
84: #define PR_BITS_PER_FLOAT_LOG2 5
85: #define PR_BITS_PER_WORD_LOG2 5
86: #define PR_BITS_PER_DWORD_LOG2 6
87: #define PR_BITS_PER_DOUBLE_LOG2 6
88:
89: #define PR_ALIGN_OF_SHORT 2
90: #define PR_ALIGN_OF_INT 4
91: #define PR_ALIGN_OF_LONG 4
92: #define PR_ALIGN_OF_INT64 8
93: #define PR_ALIGN_OF_FLOAT 4
94: #define PR_ALIGN_OF_WORD 4
95: #define PR_ALIGN_OF_DWORD 8
96: #define PR_ALIGN_OF_DOUBLE 4
97: #define PR_ALIGN_OF_POINTER 4
98:
99: #define PR_BYTES_PER_WORD_LOG2 2
100: #define PR_BYTES_PER_DWORD_LOG2 2
101:
102: #elif defined(_ALPHA_)
103:
104: #define IS_LITTLE_ENDIAN 1
105: #undef IS_BIG_ENDIAN
106:
107: #define PR_BYTES_PER_BYTE 1
108: #define PR_BYTES_PER_SHORT 2
109: #define PR_BYTES_PER_INT 4
110: #define PR_BYTES_PER_INT64 8
111: #define PR_BYTES_PER_LONG 4
112: #define PR_BYTES_PER_FLOAT 4
113: #define PR_BYTES_PER_DOUBLE 8
114: #define PR_BYTES_PER_WORD 4
115: #define PR_BYTES_PER_DWORD 8
116:
117: #define PR_BITS_PER_BYTE 8
118: #define PR_BITS_PER_SHORT 16
119: #define PR_BITS_PER_INT 32
120: #define PR_BITS_PER_INT64 64
121: #define PR_BITS_PER_LONG 32
122: #define PR_BITS_PER_FLOAT 32
123: #define PR_BITS_PER_DOUBLE 64
124: #define PR_BITS_PER_WORD 32
125:
126: #define PR_BITS_PER_BYTE_LOG2 3
127: #define PR_BITS_PER_SHORT_LOG2 4
128: #define PR_BITS_PER_INT_LOG2 5
129: #define PR_BITS_PER_INT64_LOG2 6
130: #define PR_BITS_PER_LONG_LOG2 5
131: #define PR_BITS_PER_FLOAT_LOG2 5
132: #define PR_BITS_PER_DOUBLE_LOG2 6
133: #define PR_BITS_PER_WORD_LOG2 5
134:
135: #define PR_BYTES_PER_WORD_LOG2 2
136: #define PR_BYTES_PER_DWORD_LOG2 3
137:
138: #define PR_ALIGN_OF_SHORT 2
139: #define PR_ALIGN_OF_INT 4
140: #define PR_ALIGN_OF_LONG 4
141: #define PR_ALIGN_OF_INT64 8
142: #define PR_ALIGN_OF_FLOAT 4
143: #define PR_ALIGN_OF_DOUBLE 8
144: #define PR_ALIGN_OF_POINTER 4
145:
146: #else /* defined(_M_IX86) || defined(_X86_) */
147:
148: #error unknown processor architecture
149:
150: #endif /* defined(_M_IX86) || defined(_X86_) */
151:
152: #define HAVE_LONG_LONG
153:
154: #ifndef NO_NSPR_10_SUPPORT
155:
156: #define BYTES_PER_BYTE PR_BYTES_PER_BYTE
157: #define BYTES_PER_SHORT PR_BYTES_PER_SHORT
158: #define BYTES_PER_INT PR_BYTES_PER_INT
159: #define BYTES_PER_INT64 PR_BYTES_PER_INT64
160: #define BYTES_PER_LONG PR_BYTES_PER_LONG
161: #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
162: #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
163: #define BYTES_PER_WORD PR_BYTES_PER_WORD
164: #define BYTES_PER_DWORD PR_BYTES_PER_DWORD
165:
166: #define BITS_PER_BYTE PR_BITS_PER_BYTE
167: #define BITS_PER_SHORT PR_BITS_PER_SHORT
168: #define BITS_PER_INT PR_BITS_PER_INT
169: #define BITS_PER_INT64 PR_BITS_PER_INT64
170: #define BITS_PER_LONG PR_BITS_PER_LONG
171: #define BITS_PER_FLOAT PR_BITS_PER_FLOAT
172: #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
173: #define BITS_PER_WORD PR_BITS_PER_WORD
174:
175: #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
176: #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
177: #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
178: #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
179: #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
180: #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
181: #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
182: #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
183:
184: #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
185: #define ALIGN_OF_INT PR_ALIGN_OF_INT
186: #define ALIGN_OF_LONG PR_ALIGN_OF_LONG
187: #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
188: #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
189: #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
190: #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
191: #define ALIGN_OF_WORD PR_ALIGN_OF_WORD
192:
193: #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
194: #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
195: #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
196:
197: #endif /* NO_NSPR_10_SUPPORT */
198:
199: #else /* Unix */
200:
201: #ifndef XP_UNIX
202: #define XP_UNIX
203: #endif
204:
205: #ifndef LINUX
206: #define LINUX
207: #endif
208:
209: #define PR_AF_INET6 10 /* same as AF_INET6 */
210:
211: #ifdef __powerpc__
212:
213: #undef IS_LITTLE_ENDIAN
214: #define IS_BIG_ENDIAN 1
215:
216: #define PR_BYTES_PER_BYTE 1
217: #define PR_BYTES_PER_SHORT 2
218: #define PR_BYTES_PER_INT 4
219: #define PR_BYTES_PER_INT64 8
220: #define PR_BYTES_PER_LONG 4
221: #define PR_BYTES_PER_FLOAT 4
222: #define PR_BYTES_PER_DOUBLE 8
223: #define PR_BYTES_PER_WORD 4
224: #define PR_BYTES_PER_DWORD 8
225:
226: #define PR_BITS_PER_BYTE 8
227: #define PR_BITS_PER_SHORT 16
228: #define PR_BITS_PER_INT 32
229: #define PR_BITS_PER_INT64 64
230: #define PR_BITS_PER_LONG 32
231: #define PR_BITS_PER_FLOAT 32
232: #define PR_BITS_PER_DOUBLE 64
233: #define PR_BITS_PER_WORD 32
234:
235: #define PR_BITS_PER_BYTE_LOG2 3
236: #define PR_BITS_PER_SHORT_LOG2 4
237: #define PR_BITS_PER_INT_LOG2 5
238: #define PR_BITS_PER_INT64_LOG2 6
239: #define PR_BITS_PER_LONG_LOG2 5
240: #define PR_BITS_PER_FLOAT_LOG2 5
241: #define PR_BITS_PER_DOUBLE_LOG2 6
242: #define PR_BITS_PER_WORD_LOG2 5
243:
244: #define PR_ALIGN_OF_SHORT 2
245: #define PR_ALIGN_OF_INT 4
246: #define PR_ALIGN_OF_LONG 4
247: #define PR_ALIGN_OF_INT64 8
248: #define PR_ALIGN_OF_FLOAT 4
249: #define PR_ALIGN_OF_DOUBLE 8
250: #define PR_ALIGN_OF_POINTER 4
251: #define PR_ALIGN_OF_WORD 4
252:
253: #define PR_BYTES_PER_WORD_LOG2 2
254: #define PR_BYTES_PER_DWORD_LOG2 3
255:
256: #elif defined(__alpha)
257:
258: #define IS_LITTLE_ENDIAN 1
259: #undef IS_BIG_ENDIAN
260: #define IS_64
261:
262: #define PR_BYTES_PER_BYTE 1
263: #define PR_BYTES_PER_SHORT 2
264: #define PR_BYTES_PER_INT 4
265: #define PR_BYTES_PER_INT64 8
266: #define PR_BYTES_PER_LONG 8
267: #define PR_BYTES_PER_FLOAT 4
268: #define PR_BYTES_PER_DOUBLE 8
269: #define PR_BYTES_PER_WORD 8
270: #define PR_BYTES_PER_DWORD 8
271:
272: #define PR_BITS_PER_BYTE 8
273: #define PR_BITS_PER_SHORT 16
274: #define PR_BITS_PER_INT 32
275: #define PR_BITS_PER_INT64 64
276: #define PR_BITS_PER_LONG 64
277: #define PR_BITS_PER_FLOAT 32
278: #define PR_BITS_PER_DOUBLE 64
279: #define PR_BITS_PER_WORD 64
280:
281: #define PR_BITS_PER_BYTE_LOG2 3
282: #define PR_BITS_PER_SHORT_LOG2 4
283: #define PR_BITS_PER_INT_LOG2 5
284: #define PR_BITS_PER_INT64_LOG2 6
285: #define PR_BITS_PER_LONG_LOG2 6
286: #define PR_BITS_PER_FLOAT_LOG2 5
287: #define PR_BITS_PER_DOUBLE_LOG2 6
288: #define PR_BITS_PER_WORD_LOG2 6
289:
290: #define PR_ALIGN_OF_SHORT 2
291: #define PR_ALIGN_OF_INT 4
292: #define PR_ALIGN_OF_LONG 8
293: #define PR_ALIGN_OF_INT64 8
294: #define PR_ALIGN_OF_FLOAT 4
295: #define PR_ALIGN_OF_DOUBLE 8
296: #define PR_ALIGN_OF_POINTER 8
297: #define PR_ALIGN_OF_WORD 8
298:
299: #define PR_BYTES_PER_WORD_LOG2 3
300: #define PR_BYTES_PER_DWORD_LOG2 3
301:
302: #elif defined(__ia64__)
303:
304: #define IS_LITTLE_ENDIAN 1
305: #undef IS_BIG_ENDIAN
306: #define IS_64
307:
308: #define PR_BYTES_PER_BYTE 1
309: #define PR_BYTES_PER_SHORT 2
310: #define PR_BYTES_PER_INT 4
311: #define PR_BYTES_PER_INT64 8
312: #define PR_BYTES_PER_LONG 8
313: #define PR_BYTES_PER_FLOAT 4
314: #define PR_BYTES_PER_DOUBLE 8
315: #define PR_BYTES_PER_WORD 8
316: #define PR_BYTES_PER_DWORD 8
317:
318: #define PR_BITS_PER_BYTE 8
319: #define PR_BITS_PER_SHORT 16
320: #define PR_BITS_PER_INT 32
321: #define PR_BITS_PER_INT64 64
322: #define PR_BITS_PER_LONG 64
323: #define PR_BITS_PER_FLOAT 32
324: #define PR_BITS_PER_DOUBLE 64
325: #define PR_BITS_PER_WORD 64
326:
327: #define PR_BITS_PER_BYTE_LOG2 3
328: #define PR_BITS_PER_SHORT_LOG2 4
329: #define PR_BITS_PER_INT_LOG2 5
330: #define PR_BITS_PER_INT64_LOG2 6
331: #define PR_BITS_PER_LONG_LOG2 6
332: #define PR_BITS_PER_FLOAT_LOG2 5
333: #define PR_BITS_PER_DOUBLE_LOG2 6
334: #define PR_BITS_PER_WORD_LOG2 6
335:
336: #define PR_ALIGN_OF_SHORT 2
337: #define PR_ALIGN_OF_INT 4
338: #define PR_ALIGN_OF_LONG 8
339: #define PR_ALIGN_OF_INT64 8
340: #define PR_ALIGN_OF_FLOAT 4
341: #define PR_ALIGN_OF_DOUBLE 8
342: #define PR_ALIGN_OF_POINTER 8
343: #define PR_ALIGN_OF_WORD 8
344:
345: #define PR_BYTES_PER_WORD_LOG2 3
346: #define PR_BYTES_PER_DWORD_LOG2 3
347:
348: #elif defined(__mc68000__)
349:
350: #undef IS_LITTLE_ENDIAN
351: #define IS_BIG_ENDIAN 1
352:
353: #define PR_BYTES_PER_BYTE 1
354: #define PR_BYTES_PER_SHORT 2
355: #define PR_BYTES_PER_INT 4
356: #define PR_BYTES_PER_INT64 8
357: #define PR_BYTES_PER_LONG 4
358: #define PR_BYTES_PER_FLOAT 4
359: #define PR_BYTES_PER_DOUBLE 8
360: #define PR_BYTES_PER_WORD 4
361: #define PR_BYTES_PER_DWORD 8
362:
363: #define PR_BITS_PER_BYTE 8
364: #define PR_BITS_PER_SHORT 16
365: #define PR_BITS_PER_INT 32
366: #define PR_BITS_PER_INT64 64
367: #define PR_BITS_PER_LONG 32
368: #define PR_BITS_PER_FLOAT 32
369: #define PR_BITS_PER_DOUBLE 64
370: #define PR_BITS_PER_WORD 32
371:
372: #define PR_BITS_PER_BYTE_LOG2 3
373: #define PR_BITS_PER_SHORT_LOG2 4
374: #define PR_BITS_PER_INT_LOG2 5
375: #define PR_BITS_PER_INT64_LOG2 6
376: #define PR_BITS_PER_LONG_LOG2 5
377: #define PR_BITS_PER_FLOAT_LOG2 5
378: #define PR_BITS_PER_DOUBLE_LOG2 6
379: #define PR_BITS_PER_WORD_LOG2 5
380:
381: #define PR_ALIGN_OF_SHORT 2
382: #define PR_ALIGN_OF_INT 2
383: #define PR_ALIGN_OF_LONG 2
384: #define PR_ALIGN_OF_INT64 2
385: #define PR_ALIGN_OF_FLOAT 2
386: #define PR_ALIGN_OF_DOUBLE 2
387: #define PR_ALIGN_OF_POINTER 2
388: #define PR_ALIGN_OF_WORD 2
389:
390: #define PR_BYTES_PER_WORD_LOG2 2
391: #define PR_BYTES_PER_DWORD_LOG2 3
392:
393: #elif defined(__sparc__)
394:
395: #undef IS_LITTLE_ENDIAN
396: #define IS_BIG_ENDIAN 1
397:
398: #define PR_BYTES_PER_BYTE 1
399: #define PR_BYTES_PER_SHORT 2
400: #define PR_BYTES_PER_INT 4
401: #define PR_BYTES_PER_INT64 8
402: #define PR_BYTES_PER_LONG 4
403: #define PR_BYTES_PER_FLOAT 4
404: #define PR_BYTES_PER_DOUBLE 8
405: #define PR_BYTES_PER_WORD 4
406: #define PR_BYTES_PER_DWORD 8
407:
408: #define PR_BITS_PER_BYTE 8
409: #define PR_BITS_PER_SHORT 16
410: #define PR_BITS_PER_INT 32
411: #define PR_BITS_PER_INT64 64
412: #define PR_BITS_PER_LONG 32
413: #define PR_BITS_PER_FLOAT 32
414: #define PR_BITS_PER_DOUBLE 64
415: #define PR_BITS_PER_WORD 32
416:
417: #define PR_BITS_PER_BYTE_LOG2 3
418: #define PR_BITS_PER_SHORT_LOG2 4
419: #define PR_BITS_PER_INT_LOG2 5
420: #define PR_BITS_PER_INT64_LOG2 6
421: #define PR_BITS_PER_LONG_LOG2 5
422: #define PR_BITS_PER_FLOAT_LOG2 5
423: #define PR_BITS_PER_DOUBLE_LOG2 6
424: #define PR_BITS_PER_WORD_LOG2 5
425:
426: #define PR_ALIGN_OF_SHORT 2
427: #define PR_ALIGN_OF_INT 4
428: #define PR_ALIGN_OF_LONG 4
429: #define PR_ALIGN_OF_INT64 8
430: #define PR_ALIGN_OF_FLOAT 4
431: #define PR_ALIGN_OF_DOUBLE 8
432: #define PR_ALIGN_OF_POINTER 4
433: #define PR_ALIGN_OF_WORD 4
434:
435: #define PR_BYTES_PER_WORD_LOG2 2
436: #define PR_BYTES_PER_DWORD_LOG2 3
437:
438: #elif defined(__i386__)
439:
440: #define IS_LITTLE_ENDIAN 1
441: #undef IS_BIG_ENDIAN
442:
443: #define PR_BYTES_PER_BYTE 1
444: #define PR_BYTES_PER_SHORT 2
445: #define PR_BYTES_PER_INT 4
446: #define PR_BYTES_PER_INT64 8
447: #define PR_BYTES_PER_LONG 4
448: #define PR_BYTES_PER_FLOAT 4
449: #define PR_BYTES_PER_DOUBLE 8
450: #define PR_BYTES_PER_WORD 4
451: #define PR_BYTES_PER_DWORD 8
452:
453: #define PR_BITS_PER_BYTE 8
454: #define PR_BITS_PER_SHORT 16
455: #define PR_BITS_PER_INT 32
456: #define PR_BITS_PER_INT64 64
457: #define PR_BITS_PER_LONG 32
458: #define PR_BITS_PER_FLOAT 32
459: #define PR_BITS_PER_DOUBLE 64
460: #define PR_BITS_PER_WORD 32
461:
462: #define PR_BITS_PER_BYTE_LOG2 3
463: #define PR_BITS_PER_SHORT_LOG2 4
464: #define PR_BITS_PER_INT_LOG2 5
465: #define PR_BITS_PER_INT64_LOG2 6
466: #define PR_BITS_PER_LONG_LOG2 5
467: #define PR_BITS_PER_FLOAT_LOG2 5
468: #define PR_BITS_PER_DOUBLE_LOG2 6
469: #define PR_BITS_PER_WORD_LOG2 5
470:
471: #define PR_ALIGN_OF_SHORT 2
472: #define PR_ALIGN_OF_INT 4
473: #define PR_ALIGN_OF_LONG 4
474: #define PR_ALIGN_OF_INT64 4
475: #define PR_ALIGN_OF_FLOAT 4
476: #define PR_ALIGN_OF_DOUBLE 4
477: #define PR_ALIGN_OF_POINTER 4
478: #define PR_ALIGN_OF_WORD 4
479:
480: #define PR_BYTES_PER_WORD_LOG2 2
481: #define PR_BYTES_PER_DWORD_LOG2 3
482:
483: #elif defined(__mips__)
484:
485: #ifdef __MIPSEB__
486: #define IS_BIG_ENDIAN 1
487: #undef IS_LITTLE_ENDIAN
488: #elif defined(__MIPSEL__)
489: #define IS_LITTLE_ENDIAN 1
490: #undef IS_BIG_ENDIAN
491: #else
492: #error "Unknown MIPS endianness."
493: #endif
494:
495: #define PR_BYTES_PER_BYTE 1
496: #define PR_BYTES_PER_SHORT 2
497: #define PR_BYTES_PER_INT 4
498: #define PR_BYTES_PER_INT64 8
499: #define PR_BYTES_PER_LONG 4
500: #define PR_BYTES_PER_FLOAT 4
501: #define PR_BYTES_PER_DOUBLE 8
502: #define PR_BYTES_PER_WORD 4
503: #define PR_BYTES_PER_DWORD 8
504:
505: #define PR_BITS_PER_BYTE 8
506: #define PR_BITS_PER_SHORT 16
507: #define PR_BITS_PER_INT 32
508: #define PR_BITS_PER_INT64 64
509: #define PR_BITS_PER_LONG 32
510: #define PR_BITS_PER_FLOAT 32
511: #define PR_BITS_PER_DOUBLE 64
512: #define PR_BITS_PER_WORD 32
513:
514: #define PR_BITS_PER_BYTE_LOG2 3
515: #define PR_BITS_PER_SHORT_LOG2 4
516: #define PR_BITS_PER_INT_LOG2 5
517: #define PR_BITS_PER_INT64_LOG2 6
518: #define PR_BITS_PER_LONG_LOG2 5
519: #define PR_BITS_PER_FLOAT_LOG2 5
520: #define PR_BITS_PER_DOUBLE_LOG2 6
521: #define PR_BITS_PER_WORD_LOG2 5
522:
523: #define PR_ALIGN_OF_SHORT 2
524: #define PR_ALIGN_OF_INT 4
525: #define PR_ALIGN_OF_LONG 4
526: #define PR_ALIGN_OF_INT64 8
527: #define PR_ALIGN_OF_FLOAT 4
528: #define PR_ALIGN_OF_DOUBLE 8
529: #define PR_ALIGN_OF_POINTER 4
530: #define PR_ALIGN_OF_WORD 4
531:
532: #define PR_BYTES_PER_WORD_LOG2 2
533: #define PR_BYTES_PER_DWORD_LOG2 3
534:
535: #elif defined(__arm__)
536:
537: #define IS_LITTLE_ENDIAN 1
538: #undef IS_BIG_ENDIAN
539:
540: #define PR_BYTES_PER_BYTE 1
541: #define PR_BYTES_PER_SHORT 2
542: #define PR_BYTES_PER_INT 4
543: #define PR_BYTES_PER_INT64 8
544: #define PR_BYTES_PER_LONG 4
545: #define PR_BYTES_PER_FLOAT 4
546: #define PR_BYTES_PER_DOUBLE 8
547: #define PR_BYTES_PER_WORD 4
548: #define PR_BYTES_PER_DWORD 8
549:
550: #define PR_BITS_PER_BYTE 8
551: #define PR_BITS_PER_SHORT 16
552: #define PR_BITS_PER_INT 32
553: #define PR_BITS_PER_INT64 64
554: #define PR_BITS_PER_LONG 32
555: #define PR_BITS_PER_FLOAT 32
556: #define PR_BITS_PER_DOUBLE 64
557: #define PR_BITS_PER_WORD 32
558:
559: #define PR_BITS_PER_BYTE_LOG2 3
560: #define PR_BITS_PER_SHORT_LOG2 4
561: #define PR_BITS_PER_INT_LOG2 5
562: #define PR_BITS_PER_INT64_LOG2 6
563: #define PR_BITS_PER_LONG_LOG2 5
564: #define PR_BITS_PER_FLOAT_LOG2 5
565: #define PR_BITS_PER_DOUBLE_LOG2 6
566: #define PR_BITS_PER_WORD_LOG2 5
567:
568: #define PR_ALIGN_OF_SHORT 2
569: #define PR_ALIGN_OF_INT 4
570: #define PR_ALIGN_OF_LONG 4
571: #define PR_ALIGN_OF_INT64 4
572: #define PR_ALIGN_OF_FLOAT 4
573: #define PR_ALIGN_OF_DOUBLE 4
574: #define PR_ALIGN_OF_POINTER 4
575: #define PR_ALIGN_OF_WORD 4
576:
577: #define PR_BYTES_PER_WORD_LOG2 2
578: #define PR_BYTES_PER_DWORD_LOG2 3
579:
580: #elif defined(__s390__)
581:
582: #define IS_BIG_ENDIAN 1
583: #undef IS_LITTLE_ENDIAN
584:
585: #define PR_BYTES_PER_BYTE 1
586: #define PR_BYTES_PER_SHORT 2
587: #define PR_BYTES_PER_INT 4
588: #define PR_BYTES_PER_INT64 8
589: #define PR_BYTES_PER_LONG 4
590: #define PR_BYTES_PER_FLOAT 4
591: #define PR_BYTES_PER_DOUBLE 8
592: #define PR_BYTES_PER_WORD 4
593: #define PR_BYTES_PER_DWORD 8
594:
595: #define PR_BITS_PER_BYTE 8
596: #define PR_BITS_PER_SHORT 16
597: #define PR_BITS_PER_INT 32
598: #define PR_BITS_PER_INT64 64
599: #define PR_BITS_PER_LONG 32
600: #define PR_BITS_PER_FLOAT 32
601: #define PR_BITS_PER_DOUBLE 64
602: #define PR_BITS_PER_WORD 32
603:
604: #define PR_BITS_PER_BYTE_LOG2 3
605: #define PR_BITS_PER_SHORT_LOG2 4
606: #define PR_BITS_PER_INT_LOG2 5
607: #define PR_BITS_PER_INT64_LOG2 6
608: #define PR_BITS_PER_LONG_LOG2 5
609: #define PR_BITS_PER_FLOAT_LOG2 5
610: #define PR_BITS_PER_DOUBLE_LOG2 6
611: #define PR_BITS_PER_WORD_LOG2 5
612:
613: #define PR_ALIGN_OF_SHORT 2
614: #define PR_ALIGN_OF_INT 4
615: #define PR_ALIGN_OF_LONG 4
616: #define PR_ALIGN_OF_INT64 4
617: #define PR_ALIGN_OF_FLOAT 4
618: #define PR_ALIGN_OF_DOUBLE 4
619: #define PR_ALIGN_OF_POINTER 4
620: #define PR_ALIGN_OF_WORD 4
621:
622: #define PR_BYTES_PER_WORD_LOG2 2
623: #define PR_BYTES_PER_DWORD_LOG2 3
624:
625: #elif defined(__s390x__)
626:
627: #define IS_BIG_ENDIAN 1
628: #undef IS_LITTLE_ENDIAN
629: #define IS_64
630:
631: #define PR_BYTES_PER_BYTE 1
632: #define PR_BYTES_PER_SHORT 2
633: #define PR_BYTES_PER_INT 4
634: #define PR_BYTES_PER_INT64 8
635: #define PR_BYTES_PER_LONG 8
636: #define PR_BYTES_PER_FLOAT 4
637: #define PR_BYTES_PER_DOUBLE 8
638: #define PR_BYTES_PER_WORD 8
639: #define PR_BYTES_PER_DWORD 8
640:
641: #define PR_BITS_PER_BYTE 8
642: #define PR_BITS_PER_SHORT 16
643: #define PR_BITS_PER_INT 32
644: #define PR_BITS_PER_INT64 64
645: #define PR_BITS_PER_LONG 64
646: #define PR_BITS_PER_FLOAT 32
647: #define PR_BITS_PER_DOUBLE 64
648: #define PR_BITS_PER_WORD 64
649:
650: #define PR_BITS_PER_BYTE_LOG2 3
651: #define PR_BITS_PER_SHORT_LOG2 4
652: #define PR_BITS_PER_INT_LOG2 5
653: #define PR_BITS_PER_INT64_LOG2 6
654: #define PR_BITS_PER_LONG_LOG2 6
655: #define PR_BITS_PER_FLOAT_LOG2 5
656: #define PR_BITS_PER_DOUBLE_LOG2 6
657: #define PR_BITS_PER_WORD_LOG2 6
658:
659: #define PR_ALIGN_OF_SHORT 2
660: #define PR_ALIGN_OF_INT 4
661: #define PR_ALIGN_OF_LONG 8
662: #define PR_ALIGN_OF_INT64 8
663: #define PR_ALIGN_OF_FLOAT 4
664: #define PR_ALIGN_OF_DOUBLE 8
665: #define PR_ALIGN_OF_POINTER 8
666: #define PR_ALIGN_OF_WORD 8
667:
668: #define PR_BYTES_PER_WORD_LOG2 3
669: #define PR_BYTES_PER_DWORD_LOG2 3
670:
671: #else
672:
673: #error "Unknown CPU architecture"
674:
675: #endif
676:
677: #define HAVE_LONG_LONG
678: #if PR_ALIGN_OF_DOUBLE == 8
679: #define HAVE_ALIGNED_DOUBLES
680: #endif
681: #if PR_ALIGN_OF_INT64 == 8
682: #define HAVE_ALIGNED_LONGLONGS
683: #endif
684:
685: #ifndef NO_NSPR_10_SUPPORT
686:
687: #define BYTES_PER_BYTE PR_BYTES_PER_BYTE
688: #define BYTES_PER_SHORT PR_BYTES_PER_SHORT
689: #define BYTES_PER_INT PR_BYTES_PER_INT
690: #define BYTES_PER_INT64 PR_BYTES_PER_INT64
691: #define BYTES_PER_LONG PR_BYTES_PER_LONG
692: #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT
693: #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE
694: #define BYTES_PER_WORD PR_BYTES_PER_WORD
695: #define BYTES_PER_DWORD PR_BYTES_PER_DWORD
696:
697: #define BITS_PER_BYTE PR_BITS_PER_BYTE
698: #define BITS_PER_SHORT PR_BITS_PER_SHORT
699: #define BITS_PER_INT PR_BITS_PER_INT
700: #define BITS_PER_INT64 PR_BITS_PER_INT64
701: #define BITS_PER_LONG PR_BITS_PER_LONG
702: #define BITS_PER_FLOAT PR_BITS_PER_FLOAT
703: #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE
704: #define BITS_PER_WORD PR_BITS_PER_WORD
705:
706: #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2
707: #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
708: #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2
709: #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
710: #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2
711: #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
712: #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2
713: #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2
714:
715: #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT
716: #define ALIGN_OF_INT PR_ALIGN_OF_INT
717: #define ALIGN_OF_LONG PR_ALIGN_OF_LONG
718: #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64
719: #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT
720: #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE
721: #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER
722: #define ALIGN_OF_WORD PR_ALIGN_OF_WORD
723:
724: #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2
725: #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2
726: #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2
727:
728: #endif /* NO_NSPR_10_SUPPORT */
729:
730: #endif /* Unix */
731:
732: #endif /* nspr_cpucfg___ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.