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#ifndef XP_UNIX
39#define XP_UNIX
40#endif
41
42#ifndef LINUX
43#define LINUX
44#endif
45
46#define PR_AF_INET6 10  /* same as AF_INET6 */
47
48#ifdef __powerpc__
49
50#undef  IS_LITTLE_ENDIAN
51#define IS_BIG_ENDIAN    1
52
53#define PR_BYTES_PER_BYTE   1
54#define PR_BYTES_PER_SHORT  2
55#define PR_BYTES_PER_INT    4
56#define PR_BYTES_PER_INT64  8
57#define PR_BYTES_PER_LONG   4
58#define PR_BYTES_PER_FLOAT  4
59#define PR_BYTES_PER_DOUBLE 8
60#define PR_BYTES_PER_WORD   4
61#define PR_BYTES_PER_DWORD  8
62
63#define PR_BITS_PER_BYTE    8
64#define PR_BITS_PER_SHORT   16
65#define PR_BITS_PER_INT     32
66#define PR_BITS_PER_INT64   64
67#define PR_BITS_PER_LONG    32
68#define PR_BITS_PER_FLOAT   32
69#define PR_BITS_PER_DOUBLE  64
70#define PR_BITS_PER_WORD    32
71
72#define PR_BITS_PER_BYTE_LOG2   3
73#define PR_BITS_PER_SHORT_LOG2  4
74#define PR_BITS_PER_INT_LOG2    5
75#define PR_BITS_PER_INT64_LOG2  6
76#define PR_BITS_PER_LONG_LOG2   5
77#define PR_BITS_PER_FLOAT_LOG2  5
78#define PR_BITS_PER_DOUBLE_LOG2 6
79#define PR_BITS_PER_WORD_LOG2   5
80
81#define PR_ALIGN_OF_SHORT   2
82#define PR_ALIGN_OF_INT     4
83#define PR_ALIGN_OF_LONG    4
84#define PR_ALIGN_OF_INT64   8
85#define PR_ALIGN_OF_FLOAT   4
86#define PR_ALIGN_OF_DOUBLE  8
87#define PR_ALIGN_OF_POINTER 4
88#define PR_ALIGN_OF_WORD    4
89
90#define PR_BYTES_PER_WORD_LOG2   2
91#define PR_BYTES_PER_DWORD_LOG2  3
92
93#elif defined(__alpha)
94
95#define IS_LITTLE_ENDIAN 1
96#undef  IS_BIG_ENDIAN
97#define IS_64
98
99#define PR_BYTES_PER_BYTE   1
100#define PR_BYTES_PER_SHORT  2
101#define PR_BYTES_PER_INT    4
102#define PR_BYTES_PER_INT64  8
103#define PR_BYTES_PER_LONG   8
104#define PR_BYTES_PER_FLOAT  4
105#define PR_BYTES_PER_DOUBLE 8
106#define PR_BYTES_PER_WORD   8
107#define PR_BYTES_PER_DWORD  8
108
109#define PR_BITS_PER_BYTE    8
110#define PR_BITS_PER_SHORT   16
111#define PR_BITS_PER_INT     32
112#define PR_BITS_PER_INT64   64
113#define PR_BITS_PER_LONG    64
114#define PR_BITS_PER_FLOAT   32
115#define PR_BITS_PER_DOUBLE  64
116#define PR_BITS_PER_WORD    64
117
118#define PR_BITS_PER_BYTE_LOG2   3
119#define PR_BITS_PER_SHORT_LOG2  4
120#define PR_BITS_PER_INT_LOG2    5
121#define PR_BITS_PER_INT64_LOG2  6
122#define PR_BITS_PER_LONG_LOG2   6
123#define PR_BITS_PER_FLOAT_LOG2  5
124#define PR_BITS_PER_DOUBLE_LOG2 6
125#define PR_BITS_PER_WORD_LOG2   6
126
127#define PR_ALIGN_OF_SHORT   2
128#define PR_ALIGN_OF_INT     4
129#define PR_ALIGN_OF_LONG    8
130#define PR_ALIGN_OF_INT64   8
131#define PR_ALIGN_OF_FLOAT   4
132#define PR_ALIGN_OF_DOUBLE  8
133#define PR_ALIGN_OF_POINTER 8
134#define PR_ALIGN_OF_WORD    8
135
136#define PR_BYTES_PER_WORD_LOG2  3
137#define PR_BYTES_PER_DWORD_LOG2 3
138
139#elif defined(__ia64__)
140
141#define IS_LITTLE_ENDIAN 1
142#undef  IS_BIG_ENDIAN
143#define IS_64
144
145#define PR_BYTES_PER_BYTE   1
146#define PR_BYTES_PER_SHORT  2
147#define PR_BYTES_PER_INT    4
148#define PR_BYTES_PER_INT64  8
149#define PR_BYTES_PER_LONG   8
150#define PR_BYTES_PER_FLOAT  4
151#define PR_BYTES_PER_DOUBLE 8
152#define PR_BYTES_PER_WORD   8
153#define PR_BYTES_PER_DWORD  8
154
155#define PR_BITS_PER_BYTE    8
156#define PR_BITS_PER_SHORT   16
157#define PR_BITS_PER_INT     32
158#define PR_BITS_PER_INT64   64
159#define PR_BITS_PER_LONG    64
160#define PR_BITS_PER_FLOAT   32
161#define PR_BITS_PER_DOUBLE  64
162#define PR_BITS_PER_WORD    64
163
164#define PR_BITS_PER_BYTE_LOG2   3
165#define PR_BITS_PER_SHORT_LOG2  4
166#define PR_BITS_PER_INT_LOG2    5
167#define PR_BITS_PER_INT64_LOG2  6
168#define PR_BITS_PER_LONG_LOG2   6
169#define PR_BITS_PER_FLOAT_LOG2  5
170#define PR_BITS_PER_DOUBLE_LOG2 6
171#define PR_BITS_PER_WORD_LOG2   6
172
173#define PR_ALIGN_OF_SHORT   2
174#define PR_ALIGN_OF_INT     4
175#define PR_ALIGN_OF_LONG    8
176#define PR_ALIGN_OF_INT64   8
177#define PR_ALIGN_OF_FLOAT   4
178#define PR_ALIGN_OF_DOUBLE  8
179#define PR_ALIGN_OF_POINTER 8
180#define PR_ALIGN_OF_WORD    8
181
182#define PR_BYTES_PER_WORD_LOG2  3
183#define PR_BYTES_PER_DWORD_LOG2 3
184
185#elif defined(__x86_64__)
186
187#define IS_LITTLE_ENDIAN 1
188#undef  IS_BIG_ENDIAN
189#define IS_64
190
191#define PR_BYTES_PER_BYTE   1
192#define PR_BYTES_PER_SHORT  2
193#define PR_BYTES_PER_INT    4
194#define PR_BYTES_PER_INT64  8
195#define PR_BYTES_PER_LONG   8
196#define PR_BYTES_PER_FLOAT  4
197#define PR_BYTES_PER_DOUBLE 8
198#define PR_BYTES_PER_WORD   8
199#define PR_BYTES_PER_DWORD  8
200
201#define PR_BITS_PER_BYTE    8
202#define PR_BITS_PER_SHORT   16
203#define PR_BITS_PER_INT     32
204#define PR_BITS_PER_INT64   64
205#define PR_BITS_PER_LONG    64
206#define PR_BITS_PER_FLOAT   32
207#define PR_BITS_PER_DOUBLE  64
208#define PR_BITS_PER_WORD    64
209
210#define PR_BITS_PER_BYTE_LOG2   3
211#define PR_BITS_PER_SHORT_LOG2  4
212#define PR_BITS_PER_INT_LOG2    5
213#define PR_BITS_PER_INT64_LOG2  6
214#define PR_BITS_PER_LONG_LOG2   6
215#define PR_BITS_PER_FLOAT_LOG2  5
216#define PR_BITS_PER_DOUBLE_LOG2 6
217#define PR_BITS_PER_WORD_LOG2   6
218
219#define PR_ALIGN_OF_SHORT   2
220#define PR_ALIGN_OF_INT     4
221#define PR_ALIGN_OF_LONG    8
222#define PR_ALIGN_OF_INT64   8
223#define PR_ALIGN_OF_FLOAT   4
224#define PR_ALIGN_OF_DOUBLE  8
225#define PR_ALIGN_OF_POINTER 8
226#define PR_ALIGN_OF_WORD    8
227
228#define PR_BYTES_PER_WORD_LOG2  3
229#define PR_BYTES_PER_DWORD_LOG2 3
230
231#elif defined(__mc68000__)
232
233#undef  IS_LITTLE_ENDIAN
234#define IS_BIG_ENDIAN 1
235
236#define PR_BYTES_PER_BYTE   1
237#define PR_BYTES_PER_SHORT  2
238#define PR_BYTES_PER_INT    4
239#define PR_BYTES_PER_INT64  8
240#define PR_BYTES_PER_LONG   4
241#define PR_BYTES_PER_FLOAT  4
242#define PR_BYTES_PER_DOUBLE 8
243#define PR_BYTES_PER_WORD   4
244#define PR_BYTES_PER_DWORD  8
245
246#define PR_BITS_PER_BYTE    8
247#define PR_BITS_PER_SHORT   16
248#define PR_BITS_PER_INT     32
249#define PR_BITS_PER_INT64   64
250#define PR_BITS_PER_LONG    32
251#define PR_BITS_PER_FLOAT   32
252#define PR_BITS_PER_DOUBLE  64
253#define PR_BITS_PER_WORD    32
254
255#define PR_BITS_PER_BYTE_LOG2   3
256#define PR_BITS_PER_SHORT_LOG2  4
257#define PR_BITS_PER_INT_LOG2    5
258#define PR_BITS_PER_INT64_LOG2  6
259#define PR_BITS_PER_LONG_LOG2   5
260#define PR_BITS_PER_FLOAT_LOG2  5
261#define PR_BITS_PER_DOUBLE_LOG2 6
262#define PR_BITS_PER_WORD_LOG2   5
263
264#define PR_ALIGN_OF_SHORT   2
265#define PR_ALIGN_OF_INT     2
266#define PR_ALIGN_OF_LONG    2
267#define PR_ALIGN_OF_INT64   2
268#define PR_ALIGN_OF_FLOAT   2
269#define PR_ALIGN_OF_DOUBLE  2
270#define PR_ALIGN_OF_POINTER 2
271#define PR_ALIGN_OF_WORD    2
272
273#define PR_BYTES_PER_WORD_LOG2   2
274#define PR_BYTES_PER_DWORD_LOG2  3
275
276#elif defined(__sparc__)
277
278#undef	IS_LITTLE_ENDIAN
279#define	IS_BIG_ENDIAN 1
280
281#define PR_BYTES_PER_BYTE   1
282#define PR_BYTES_PER_SHORT  2
283#define PR_BYTES_PER_INT    4
284#define PR_BYTES_PER_INT64  8
285#define PR_BYTES_PER_LONG   4
286#define PR_BYTES_PER_FLOAT  4
287#define PR_BYTES_PER_DOUBLE 8
288#define PR_BYTES_PER_WORD   4
289#define PR_BYTES_PER_DWORD  8
290
291#define PR_BITS_PER_BYTE    8
292#define PR_BITS_PER_SHORT   16
293#define PR_BITS_PER_INT     32
294#define PR_BITS_PER_INT64   64
295#define PR_BITS_PER_LONG    32
296#define PR_BITS_PER_FLOAT   32
297#define PR_BITS_PER_DOUBLE  64
298#define PR_BITS_PER_WORD    32
299
300#define PR_BITS_PER_BYTE_LOG2   3
301#define PR_BITS_PER_SHORT_LOG2  4
302#define PR_BITS_PER_INT_LOG2    5
303#define PR_BITS_PER_INT64_LOG2  6
304#define PR_BITS_PER_LONG_LOG2   5
305#define PR_BITS_PER_FLOAT_LOG2  5
306#define PR_BITS_PER_DOUBLE_LOG2 6
307#define PR_BITS_PER_WORD_LOG2   5
308
309#define PR_ALIGN_OF_SHORT   2
310#define PR_ALIGN_OF_INT     4
311#define PR_ALIGN_OF_LONG    4
312#define PR_ALIGN_OF_INT64   8
313#define PR_ALIGN_OF_FLOAT   4
314#define PR_ALIGN_OF_DOUBLE  8
315#define PR_ALIGN_OF_POINTER 4
316#define PR_ALIGN_OF_WORD    4
317
318#define PR_BYTES_PER_WORD_LOG2   2
319#define PR_BYTES_PER_DWORD_LOG2  3
320
321#elif defined(__i386__)
322
323#define IS_LITTLE_ENDIAN 1
324#undef  IS_BIG_ENDIAN
325
326#define PR_BYTES_PER_BYTE   1
327#define PR_BYTES_PER_SHORT  2
328#define PR_BYTES_PER_INT    4
329#define PR_BYTES_PER_INT64  8
330#define PR_BYTES_PER_LONG   4
331#define PR_BYTES_PER_FLOAT  4
332#define PR_BYTES_PER_DOUBLE 8
333#define PR_BYTES_PER_WORD   4
334#define PR_BYTES_PER_DWORD  8
335
336#define PR_BITS_PER_BYTE    8
337#define PR_BITS_PER_SHORT   16
338#define PR_BITS_PER_INT     32
339#define PR_BITS_PER_INT64   64
340#define PR_BITS_PER_LONG    32
341#define PR_BITS_PER_FLOAT   32
342#define PR_BITS_PER_DOUBLE  64
343#define PR_BITS_PER_WORD    32
344
345#define PR_BITS_PER_BYTE_LOG2   3
346#define PR_BITS_PER_SHORT_LOG2  4
347#define PR_BITS_PER_INT_LOG2    5
348#define PR_BITS_PER_INT64_LOG2  6
349#define PR_BITS_PER_LONG_LOG2   5
350#define PR_BITS_PER_FLOAT_LOG2  5
351#define PR_BITS_PER_DOUBLE_LOG2 6
352#define PR_BITS_PER_WORD_LOG2   5
353
354#define PR_ALIGN_OF_SHORT   2
355#define PR_ALIGN_OF_INT     4
356#define PR_ALIGN_OF_LONG    4
357#define PR_ALIGN_OF_INT64   4
358#define PR_ALIGN_OF_FLOAT   4
359#define PR_ALIGN_OF_DOUBLE  4
360#define PR_ALIGN_OF_POINTER 4
361#define PR_ALIGN_OF_WORD    4
362
363#define PR_BYTES_PER_WORD_LOG2   2
364#define PR_BYTES_PER_DWORD_LOG2  3
365
366#elif defined(__mips__)
367
368#ifdef __MIPSEB__
369#define IS_BIG_ENDIAN 1
370#undef  IS_LITTLE_ENDIAN
371#elif defined(__MIPSEL__)
372#define IS_LITTLE_ENDIAN 1
373#undef  IS_BIG_ENDIAN
374#else
375#error "Unknown MIPS endianness."
376#endif
377
378#define PR_BYTES_PER_BYTE   1
379#define PR_BYTES_PER_SHORT  2
380#define PR_BYTES_PER_INT    4
381#define PR_BYTES_PER_INT64  8
382#define PR_BYTES_PER_LONG   4
383#define PR_BYTES_PER_FLOAT  4
384#define PR_BYTES_PER_DOUBLE 8
385#define PR_BYTES_PER_WORD   4
386#define PR_BYTES_PER_DWORD  8
387
388#define PR_BITS_PER_BYTE    8
389#define PR_BITS_PER_SHORT   16
390#define PR_BITS_PER_INT     32
391#define PR_BITS_PER_INT64   64
392#define PR_BITS_PER_LONG    32
393#define PR_BITS_PER_FLOAT   32
394#define PR_BITS_PER_DOUBLE  64
395#define PR_BITS_PER_WORD    32
396
397#define PR_BITS_PER_BYTE_LOG2   3
398#define PR_BITS_PER_SHORT_LOG2  4
399#define PR_BITS_PER_INT_LOG2    5
400#define PR_BITS_PER_INT64_LOG2  6
401#define PR_BITS_PER_LONG_LOG2   5
402#define PR_BITS_PER_FLOAT_LOG2  5
403#define PR_BITS_PER_DOUBLE_LOG2 6
404#define PR_BITS_PER_WORD_LOG2   5
405
406#define PR_ALIGN_OF_SHORT   2
407#define PR_ALIGN_OF_INT     4
408#define PR_ALIGN_OF_LONG    4
409#define PR_ALIGN_OF_INT64   8
410#define PR_ALIGN_OF_FLOAT   4
411#define PR_ALIGN_OF_DOUBLE  8
412#define PR_ALIGN_OF_POINTER 4
413#define PR_ALIGN_OF_WORD    4
414
415#define PR_BYTES_PER_WORD_LOG2   2
416#define PR_BYTES_PER_DWORD_LOG2  3
417
418#elif defined(__arm__)
419
420#define IS_LITTLE_ENDIAN 1
421#undef  IS_BIG_ENDIAN
422
423#define PR_BYTES_PER_BYTE   1
424#define PR_BYTES_PER_SHORT  2
425#define PR_BYTES_PER_INT    4
426#define PR_BYTES_PER_INT64  8
427#define PR_BYTES_PER_LONG   4
428#define PR_BYTES_PER_FLOAT  4
429#define PR_BYTES_PER_DOUBLE 8
430#define PR_BYTES_PER_WORD   4
431#define PR_BYTES_PER_DWORD  8
432
433#define PR_BITS_PER_BYTE    8
434#define PR_BITS_PER_SHORT   16
435#define PR_BITS_PER_INT     32
436#define PR_BITS_PER_INT64   64
437#define PR_BITS_PER_LONG    32
438#define PR_BITS_PER_FLOAT   32
439#define PR_BITS_PER_DOUBLE  64
440#define PR_BITS_PER_WORD    32
441
442#define PR_BITS_PER_BYTE_LOG2   3
443#define PR_BITS_PER_SHORT_LOG2  4
444#define PR_BITS_PER_INT_LOG2    5
445#define PR_BITS_PER_INT64_LOG2  6
446#define PR_BITS_PER_LONG_LOG2   5
447#define PR_BITS_PER_FLOAT_LOG2  5
448#define PR_BITS_PER_DOUBLE_LOG2 6
449#define PR_BITS_PER_WORD_LOG2   5
450
451#define PR_ALIGN_OF_SHORT   2
452#define PR_ALIGN_OF_INT     4
453#define PR_ALIGN_OF_LONG    4
454#define PR_ALIGN_OF_INT64   4
455#define PR_ALIGN_OF_FLOAT   4
456#define PR_ALIGN_OF_DOUBLE  4
457#define PR_ALIGN_OF_POINTER 4
458#define PR_ALIGN_OF_WORD    4
459
460#define PR_BYTES_PER_WORD_LOG2   2
461#define PR_BYTES_PER_DWORD_LOG2  3
462
463#elif defined(__hppa__)
464
465#undef  IS_LITTLE_ENDIAN
466#define IS_BIG_ENDIAN    1
467
468#define PR_BYTES_PER_BYTE   1
469#define PR_BYTES_PER_SHORT  2
470#define PR_BYTES_PER_INT    4
471#define PR_BYTES_PER_INT64  8
472#define PR_BYTES_PER_LONG   4
473#define PR_BYTES_PER_FLOAT  4
474#define PR_BYTES_PER_DOUBLE 8
475#define PR_BYTES_PER_WORD   4
476#define PR_BYTES_PER_DWORD  8
477
478#define PR_BITS_PER_BYTE    8
479#define PR_BITS_PER_SHORT   16
480#define PR_BITS_PER_INT     32
481#define PR_BITS_PER_INT64   64
482#define PR_BITS_PER_LONG    32
483#define PR_BITS_PER_FLOAT   32
484#define PR_BITS_PER_DOUBLE  64
485#define PR_BITS_PER_WORD    32
486
487#define PR_BITS_PER_BYTE_LOG2   3
488#define PR_BITS_PER_SHORT_LOG2  4
489#define PR_BITS_PER_INT_LOG2    5
490#define PR_BITS_PER_INT64_LOG2  6
491#define PR_BITS_PER_LONG_LOG2   5
492#define PR_BITS_PER_FLOAT_LOG2  5
493#define PR_BITS_PER_DOUBLE_LOG2 6
494#define PR_BITS_PER_WORD_LOG2   5
495
496#define PR_ALIGN_OF_SHORT   2
497#define PR_ALIGN_OF_INT     4
498#define PR_ALIGN_OF_LONG    4
499#define PR_ALIGN_OF_INT64   8
500#define PR_ALIGN_OF_FLOAT   4
501#define PR_ALIGN_OF_DOUBLE  8
502#define PR_ALIGN_OF_POINTER 4
503#define PR_ALIGN_OF_WORD    4
504
505#define PR_BYTES_PER_WORD_LOG2   2
506#define PR_BYTES_PER_DWORD_LOG2  3
507
508#elif defined(__s390__)
509
510#define IS_BIG_ENDIAN 1
511#undef  IS_LITTLE_ENDIAN
512
513#define PR_BYTES_PER_BYTE   1
514#define PR_BYTES_PER_SHORT  2
515#define PR_BYTES_PER_INT    4
516#define PR_BYTES_PER_INT64  8
517#define PR_BYTES_PER_LONG   4
518#define PR_BYTES_PER_FLOAT  4
519#define PR_BYTES_PER_DOUBLE 8
520#define PR_BYTES_PER_WORD   4
521#define PR_BYTES_PER_DWORD  8
522
523#define PR_BITS_PER_BYTE    8
524#define PR_BITS_PER_SHORT   16
525#define PR_BITS_PER_INT     32
526#define PR_BITS_PER_INT64   64
527#define PR_BITS_PER_LONG    32
528#define PR_BITS_PER_FLOAT   32
529#define PR_BITS_PER_DOUBLE  64
530#define PR_BITS_PER_WORD    32
531
532#define PR_BITS_PER_BYTE_LOG2   3
533#define PR_BITS_PER_SHORT_LOG2  4
534#define PR_BITS_PER_INT_LOG2    5
535#define PR_BITS_PER_INT64_LOG2  6
536#define PR_BITS_PER_LONG_LOG2   5
537#define PR_BITS_PER_FLOAT_LOG2  5
538#define PR_BITS_PER_DOUBLE_LOG2 6
539#define PR_BITS_PER_WORD_LOG2   5
540
541#define PR_ALIGN_OF_SHORT   2
542#define PR_ALIGN_OF_INT     4
543#define PR_ALIGN_OF_LONG    4
544#define PR_ALIGN_OF_INT64   4
545#define PR_ALIGN_OF_FLOAT   4
546#define PR_ALIGN_OF_DOUBLE  4
547#define PR_ALIGN_OF_POINTER 4
548#define PR_ALIGN_OF_WORD    4
549
550#define PR_BYTES_PER_WORD_LOG2   2
551#define PR_BYTES_PER_DWORD_LOG2  3
552
553#elif defined(__s390x__)
554
555#define IS_BIG_ENDIAN 1
556#undef  IS_LITTLE_ENDIAN
557#define IS_64
558
559#define PR_BYTES_PER_BYTE   1
560#define PR_BYTES_PER_SHORT  2
561#define PR_BYTES_PER_INT    4
562#define PR_BYTES_PER_INT64  8
563#define PR_BYTES_PER_LONG   8
564#define PR_BYTES_PER_FLOAT  4
565#define PR_BYTES_PER_DOUBLE 8
566#define PR_BYTES_PER_WORD   8
567#define PR_BYTES_PER_DWORD  8
568
569#define PR_BITS_PER_BYTE    8
570#define PR_BITS_PER_SHORT   16
571#define PR_BITS_PER_INT     32
572#define PR_BITS_PER_INT64   64
573#define PR_BITS_PER_LONG    64
574#define PR_BITS_PER_FLOAT   32
575#define PR_BITS_PER_DOUBLE  64
576#define PR_BITS_PER_WORD    64
577
578#define PR_BITS_PER_BYTE_LOG2   3
579#define PR_BITS_PER_SHORT_LOG2  4
580#define PR_BITS_PER_INT_LOG2    5
581#define PR_BITS_PER_INT64_LOG2  6
582#define PR_BITS_PER_LONG_LOG2   6
583#define PR_BITS_PER_FLOAT_LOG2  5
584#define PR_BITS_PER_DOUBLE_LOG2 6
585#define PR_BITS_PER_WORD_LOG2   6
586
587#define PR_ALIGN_OF_SHORT   2
588#define PR_ALIGN_OF_INT     4
589#define PR_ALIGN_OF_LONG    8
590#define PR_ALIGN_OF_INT64   8
591#define PR_ALIGN_OF_FLOAT   4
592#define PR_ALIGN_OF_DOUBLE  8
593#define PR_ALIGN_OF_POINTER 8
594#define PR_ALIGN_OF_WORD    8
595
596#define PR_BYTES_PER_WORD_LOG2   3
597#define PR_BYTES_PER_DWORD_LOG2  3
598
599#else
600
601#error "Unknown CPU architecture"
602
603#endif
604
605#define	HAVE_LONG_LONG
606#if PR_ALIGN_OF_DOUBLE == 8
607#define HAVE_ALIGNED_DOUBLES
608#endif
609#if PR_ALIGN_OF_INT64 == 8
610#define HAVE_ALIGNED_LONGLONGS
611#endif
612
613#ifndef NO_NSPR_10_SUPPORT
614
615#define BYTES_PER_BYTE		PR_BYTES_PER_BYTE
616#define BYTES_PER_SHORT 	PR_BYTES_PER_SHORT
617#define BYTES_PER_INT 		PR_BYTES_PER_INT
618#define BYTES_PER_INT64		PR_BYTES_PER_INT64
619#define BYTES_PER_LONG		PR_BYTES_PER_LONG
620#define BYTES_PER_FLOAT		PR_BYTES_PER_FLOAT
621#define BYTES_PER_DOUBLE	PR_BYTES_PER_DOUBLE
622#define BYTES_PER_WORD		PR_BYTES_PER_WORD
623#define BYTES_PER_DWORD		PR_BYTES_PER_DWORD
624
625#define BITS_PER_BYTE		PR_BITS_PER_BYTE
626#define BITS_PER_SHORT		PR_BITS_PER_SHORT
627#define BITS_PER_INT		PR_BITS_PER_INT
628#define BITS_PER_INT64		PR_BITS_PER_INT64
629#define BITS_PER_LONG		PR_BITS_PER_LONG
630#define BITS_PER_FLOAT		PR_BITS_PER_FLOAT
631#define BITS_PER_DOUBLE		PR_BITS_PER_DOUBLE
632#define BITS_PER_WORD		PR_BITS_PER_WORD
633
634#define BITS_PER_BYTE_LOG2	PR_BITS_PER_BYTE_LOG2
635#define BITS_PER_SHORT_LOG2	PR_BITS_PER_SHORT_LOG2
636#define BITS_PER_INT_LOG2	PR_BITS_PER_INT_LOG2
637#define BITS_PER_INT64_LOG2	PR_BITS_PER_INT64_LOG2
638#define BITS_PER_LONG_LOG2	PR_BITS_PER_LONG_LOG2
639#define BITS_PER_FLOAT_LOG2	PR_BITS_PER_FLOAT_LOG2
640#define BITS_PER_DOUBLE_LOG2 	PR_BITS_PER_DOUBLE_LOG2
641#define BITS_PER_WORD_LOG2	PR_BITS_PER_WORD_LOG2
642
643#define ALIGN_OF_SHORT		PR_ALIGN_OF_SHORT
644#define ALIGN_OF_INT		PR_ALIGN_OF_INT
645#define ALIGN_OF_LONG		PR_ALIGN_OF_LONG
646#define ALIGN_OF_INT64		PR_ALIGN_OF_INT64
647#define ALIGN_OF_FLOAT		PR_ALIGN_OF_FLOAT
648#define ALIGN_OF_DOUBLE		PR_ALIGN_OF_DOUBLE
649#define ALIGN_OF_POINTER	PR_ALIGN_OF_POINTER
650#define ALIGN_OF_WORD		PR_ALIGN_OF_WORD
651
652#define BYTES_PER_WORD_LOG2	PR_BYTES_PER_WORD_LOG2
653#define BYTES_PER_DWORD_LOG2	PR_BYTES_PER_DWORD_LOG2
654#define WORDS_PER_DWORD_LOG2	PR_WORDS_PER_DWORD_LOG2
655
656#endif /* NO_NSPR_10_SUPPORT */
657
658#endif /* nspr_cpucfg___ */
659