Home | History | Annotate | Download | only in nspr
      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_PC
     39 #define XP_PC
     40 #endif
     41 
     42 #ifndef WIN32
     43 #define WIN32
     44 #endif
     45 
     46 #ifndef WIN95
     47 #define WIN95
     48 #endif
     49 
     50 #define PR_AF_INET6 23  /* same as AF_INET6 */
     51 
     52 #if defined(_M_IX86) || defined(_X86_)
     53 
     54 #define IS_LITTLE_ENDIAN 1
     55 #undef  IS_BIG_ENDIAN
     56 
     57 #define PR_BYTES_PER_BYTE   1
     58 #define PR_BYTES_PER_SHORT  2
     59 #define PR_BYTES_PER_INT    4
     60 #define PR_BYTES_PER_INT64  8
     61 #define PR_BYTES_PER_LONG   4
     62 #define PR_BYTES_PER_FLOAT  4
     63 #define PR_BYTES_PER_WORD	4
     64 #define PR_BYTES_PER_DWORD	8
     65 #define PR_BYTES_PER_DOUBLE 8
     66 
     67 #define PR_BITS_PER_BYTE    8
     68 #define PR_BITS_PER_SHORT   16
     69 #define PR_BITS_PER_INT     32
     70 #define PR_BITS_PER_INT64   64
     71 #define PR_BITS_PER_LONG    32
     72 #define PR_BITS_PER_FLOAT   32
     73 #define PR_BITS_PER_WORD	32
     74 #define PR_BITS_PER_DWORD	64
     75 #define PR_BITS_PER_DOUBLE  64
     76 
     77 #define PR_BITS_PER_BYTE_LOG2   3
     78 #define PR_BITS_PER_SHORT_LOG2  4
     79 #define PR_BITS_PER_INT_LOG2    5
     80 #define PR_BITS_PER_INT64_LOG2  6
     81 #define PR_BITS_PER_LONG_LOG2   5
     82 #define PR_BITS_PER_FLOAT_LOG2  5
     83 #define PR_BITS_PER_WORD_LOG2	5
     84 #define PR_BITS_PER_DWORD_LOG2	6
     85 #define PR_BITS_PER_DOUBLE_LOG2 6
     86 
     87 #define PR_ALIGN_OF_SHORT   2
     88 #define PR_ALIGN_OF_INT     4
     89 #define PR_ALIGN_OF_LONG    4
     90 #define PR_ALIGN_OF_INT64   8
     91 #define PR_ALIGN_OF_FLOAT   4
     92 #define PR_ALIGN_OF_WORD	4
     93 #define PR_ALIGN_OF_DWORD	8
     94 #define PR_ALIGN_OF_DOUBLE  4
     95 #define PR_ALIGN_OF_POINTER 4
     96 
     97 #define PR_BYTES_PER_WORD_LOG2	2
     98 #define PR_BYTES_PER_DWORD_LOG2	2
     99 
    100 #elif defined(_ALPHA_)
    101 
    102 #define IS_LITTLE_ENDIAN 1
    103 #undef  IS_BIG_ENDIAN
    104 
    105 #define PR_BYTES_PER_BYTE   1
    106 #define PR_BYTES_PER_SHORT  2
    107 #define PR_BYTES_PER_INT    4
    108 #define PR_BYTES_PER_INT64  8
    109 #define PR_BYTES_PER_LONG   4
    110 #define PR_BYTES_PER_FLOAT  4
    111 #define PR_BYTES_PER_DOUBLE 8
    112 #define PR_BYTES_PER_WORD   4
    113 #define PR_BYTES_PER_DWORD  8
    114 
    115 #define PR_BITS_PER_BYTE    8
    116 #define PR_BITS_PER_SHORT   16
    117 #define PR_BITS_PER_INT     32
    118 #define PR_BITS_PER_INT64   64
    119 #define PR_BITS_PER_LONG    32
    120 #define PR_BITS_PER_FLOAT   32
    121 #define PR_BITS_PER_DOUBLE  64
    122 #define PR_BITS_PER_WORD    32
    123 
    124 #define PR_BITS_PER_BYTE_LOG2   3
    125 #define PR_BITS_PER_SHORT_LOG2  4
    126 #define PR_BITS_PER_INT_LOG2    5
    127 #define PR_BITS_PER_INT64_LOG2  6
    128 #define PR_BITS_PER_LONG_LOG2   5
    129 #define PR_BITS_PER_FLOAT_LOG2  5
    130 #define PR_BITS_PER_DOUBLE_LOG2 6
    131 #define PR_BITS_PER_WORD_LOG2   5
    132 
    133 #define PR_BYTES_PER_WORD_LOG2  2
    134 #define PR_BYTES_PER_DWORD_LOG2 3
    135 
    136 #define PR_ALIGN_OF_SHORT   2
    137 #define PR_ALIGN_OF_INT     4
    138 #define PR_ALIGN_OF_LONG    4
    139 #define PR_ALIGN_OF_INT64   8
    140 #define PR_ALIGN_OF_FLOAT   4
    141 #define PR_ALIGN_OF_DOUBLE  8
    142 #define PR_ALIGN_OF_POINTER 4
    143 
    144 #else /* defined(_M_IX86) || defined(_X86_) */
    145 
    146 #error unknown processor architecture
    147 
    148 #endif /* defined(_M_IX86) || defined(_X86_) */
    149 
    150 #define HAVE_LONG_LONG
    151 
    152 #ifndef NO_NSPR_10_SUPPORT
    153 
    154 #define BYTES_PER_BYTE      PR_BYTES_PER_BYTE
    155 #define BYTES_PER_SHORT     PR_BYTES_PER_SHORT
    156 #define BYTES_PER_INT       PR_BYTES_PER_INT
    157 #define BYTES_PER_INT64     PR_BYTES_PER_INT64
    158 #define BYTES_PER_LONG      PR_BYTES_PER_LONG
    159 #define BYTES_PER_FLOAT     PR_BYTES_PER_FLOAT
    160 #define BYTES_PER_DOUBLE    PR_BYTES_PER_DOUBLE
    161 #define BYTES_PER_WORD      PR_BYTES_PER_WORD
    162 #define BYTES_PER_DWORD     PR_BYTES_PER_DWORD
    163 
    164 #define BITS_PER_BYTE       PR_BITS_PER_BYTE
    165 #define BITS_PER_SHORT      PR_BITS_PER_SHORT
    166 #define BITS_PER_INT        PR_BITS_PER_INT
    167 #define BITS_PER_INT64      PR_BITS_PER_INT64
    168 #define BITS_PER_LONG       PR_BITS_PER_LONG
    169 #define BITS_PER_FLOAT      PR_BITS_PER_FLOAT
    170 #define BITS_PER_DOUBLE     PR_BITS_PER_DOUBLE
    171 #define BITS_PER_WORD       PR_BITS_PER_WORD
    172 
    173 #define BITS_PER_BYTE_LOG2  PR_BITS_PER_BYTE_LOG2
    174 #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2
    175 #define BITS_PER_INT_LOG2   PR_BITS_PER_INT_LOG2
    176 #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2
    177 #define BITS_PER_LONG_LOG2  PR_BITS_PER_LONG_LOG2
    178 #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2
    179 #define BITS_PER_DOUBLE_LOG2    PR_BITS_PER_DOUBLE_LOG2
    180 #define BITS_PER_WORD_LOG2  PR_BITS_PER_WORD_LOG2
    181 
    182 #define ALIGN_OF_SHORT      PR_ALIGN_OF_SHORT
    183 #define ALIGN_OF_INT        PR_ALIGN_OF_INT
    184 #define ALIGN_OF_LONG       PR_ALIGN_OF_LONG
    185 #define ALIGN_OF_INT64      PR_ALIGN_OF_INT64
    186 #define ALIGN_OF_FLOAT      PR_ALIGN_OF_FLOAT
    187 #define ALIGN_OF_DOUBLE     PR_ALIGN_OF_DOUBLE
    188 #define ALIGN_OF_POINTER    PR_ALIGN_OF_POINTER
    189 #define ALIGN_OF_WORD       PR_ALIGN_OF_WORD
    190 
    191 #define BYTES_PER_WORD_LOG2		PR_BYTES_PER_WORD_LOG2
    192 #define BYTES_PER_DWORD_LOG2    PR_BYTES_PER_DWORD_LOG2
    193 #define WORDS_PER_DWORD_LOG2    PR_WORDS_PER_DWORD_LOG2
    194 
    195 #endif /* NO_NSPR_10_SUPPORT */
    196 
    197 #endif /* nspr_cpucfg___ */
    198