1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 #ifndef nspr_cpucfg___ 7 #define nspr_cpucfg___ 8 9 #ifndef XP_PC 10 #define XP_PC 11 #endif 12 13 #ifndef WIN32 14 #define WIN32 15 #endif 16 17 #ifndef WINNT 18 #define WINNT 19 #endif 20 21 #define PR_AF_INET6 23 /* same as AF_INET6 */ 22 23 #if defined(_M_IX86) || defined(_X86_) 24 25 #define IS_LITTLE_ENDIAN 1 26 #undef IS_BIG_ENDIAN 27 28 #define PR_BYTES_PER_BYTE 1 29 #define PR_BYTES_PER_SHORT 2 30 #define PR_BYTES_PER_INT 4 31 #define PR_BYTES_PER_INT64 8 32 #define PR_BYTES_PER_LONG 4 33 #define PR_BYTES_PER_FLOAT 4 34 #define PR_BYTES_PER_WORD 4 35 #define PR_BYTES_PER_DWORD 8 36 #define PR_BYTES_PER_DOUBLE 8 37 38 #define PR_BITS_PER_BYTE 8 39 #define PR_BITS_PER_SHORT 16 40 #define PR_BITS_PER_INT 32 41 #define PR_BITS_PER_INT64 64 42 #define PR_BITS_PER_LONG 32 43 #define PR_BITS_PER_FLOAT 32 44 #define PR_BITS_PER_WORD 32 45 #define PR_BITS_PER_DWORD 64 46 #define PR_BITS_PER_DOUBLE 64 47 48 #define PR_BITS_PER_BYTE_LOG2 3 49 #define PR_BITS_PER_SHORT_LOG2 4 50 #define PR_BITS_PER_INT_LOG2 5 51 #define PR_BITS_PER_INT64_LOG2 6 52 #define PR_BITS_PER_LONG_LOG2 5 53 #define PR_BITS_PER_FLOAT_LOG2 5 54 #define PR_BITS_PER_WORD_LOG2 5 55 #define PR_BITS_PER_DWORD_LOG2 6 56 #define PR_BITS_PER_DOUBLE_LOG2 6 57 58 #define PR_ALIGN_OF_SHORT 2 59 #define PR_ALIGN_OF_INT 4 60 #define PR_ALIGN_OF_LONG 4 61 #define PR_ALIGN_OF_INT64 8 62 #define PR_ALIGN_OF_FLOAT 4 63 #define PR_ALIGN_OF_WORD 4 64 #define PR_ALIGN_OF_DWORD 8 65 #define PR_ALIGN_OF_DOUBLE 4 66 #define PR_ALIGN_OF_POINTER 4 67 68 #define PR_BYTES_PER_WORD_LOG2 2 69 #define PR_BYTES_PER_DWORD_LOG2 2 70 71 #elif defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_) 72 73 #define IS_LITTLE_ENDIAN 1 74 #undef IS_BIG_ENDIAN 75 #define IS_64 76 77 #define PR_BYTES_PER_BYTE 1 78 #define PR_BYTES_PER_SHORT 2 79 #define PR_BYTES_PER_INT 4 80 #define PR_BYTES_PER_INT64 8 81 #define PR_BYTES_PER_LONG 4 82 #define PR_BYTES_PER_FLOAT 4 83 #define PR_BYTES_PER_WORD 8 84 #define PR_BYTES_PER_DWORD 8 85 #define PR_BYTES_PER_DOUBLE 8 86 87 #define PR_BITS_PER_BYTE 8 88 #define PR_BITS_PER_SHORT 16 89 #define PR_BITS_PER_INT 32 90 #define PR_BITS_PER_INT64 64 91 #define PR_BITS_PER_LONG 32 92 #define PR_BITS_PER_FLOAT 32 93 #define PR_BITS_PER_WORD 64 94 #define PR_BITS_PER_DWORD 64 95 #define PR_BITS_PER_DOUBLE 64 96 97 #define PR_BITS_PER_BYTE_LOG2 3 98 #define PR_BITS_PER_SHORT_LOG2 4 99 #define PR_BITS_PER_INT_LOG2 5 100 #define PR_BITS_PER_INT64_LOG2 6 101 #define PR_BITS_PER_LONG_LOG2 5 102 #define PR_BITS_PER_FLOAT_LOG2 5 103 #define PR_BITS_PER_WORD_LOG2 6 104 #define PR_BITS_PER_DWORD_LOG2 6 105 #define PR_BITS_PER_DOUBLE_LOG2 6 106 107 #define PR_ALIGN_OF_SHORT 2 108 #define PR_ALIGN_OF_INT 4 109 #define PR_ALIGN_OF_LONG 4 110 #define PR_ALIGN_OF_INT64 8 111 #define PR_ALIGN_OF_FLOAT 4 112 #define PR_ALIGN_OF_WORD 8 113 #define PR_ALIGN_OF_DWORD 8 114 #define PR_ALIGN_OF_DOUBLE 8 115 #define PR_ALIGN_OF_POINTER 8 116 117 #define PR_BYTES_PER_WORD_LOG2 3 118 #define PR_BYTES_PER_DWORD_LOG2 3 119 120 #elif defined(_M_IA64) || defined(_IA64_) 121 122 #define IS_LITTLE_ENDIAN 1 123 #undef IS_BIG_ENDIAN 124 #define IS_64 125 126 #define PR_BYTES_PER_BYTE 1 127 #define PR_BYTES_PER_SHORT 2 128 #define PR_BYTES_PER_INT 4 129 #define PR_BYTES_PER_INT64 8 130 #define PR_BYTES_PER_LONG 4 131 #define PR_BYTES_PER_FLOAT 4 132 #define PR_BYTES_PER_WORD 8 133 #define PR_BYTES_PER_DWORD 8 134 #define PR_BYTES_PER_DOUBLE 8 135 136 #define PR_BITS_PER_BYTE 8 137 #define PR_BITS_PER_SHORT 16 138 #define PR_BITS_PER_INT 32 139 #define PR_BITS_PER_INT64 64 140 #define PR_BITS_PER_LONG 32 141 #define PR_BITS_PER_FLOAT 32 142 #define PR_BITS_PER_WORD 64 143 #define PR_BITS_PER_DWORD 64 144 #define PR_BITS_PER_DOUBLE 64 145 146 #define PR_BITS_PER_BYTE_LOG2 3 147 #define PR_BITS_PER_SHORT_LOG2 4 148 #define PR_BITS_PER_INT_LOG2 5 149 #define PR_BITS_PER_INT64_LOG2 6 150 #define PR_BITS_PER_LONG_LOG2 5 151 #define PR_BITS_PER_FLOAT_LOG2 5 152 #define PR_BITS_PER_WORD_LOG2 6 153 #define PR_BITS_PER_DWORD_LOG2 6 154 #define PR_BITS_PER_DOUBLE_LOG2 6 155 156 #define PR_ALIGN_OF_SHORT 2 157 #define PR_ALIGN_OF_INT 4 158 #define PR_ALIGN_OF_LONG 4 159 #define PR_ALIGN_OF_INT64 8 160 #define PR_ALIGN_OF_FLOAT 4 161 #define PR_ALIGN_OF_WORD 8 162 #define PR_ALIGN_OF_DWORD 8 163 #define PR_ALIGN_OF_DOUBLE 8 164 #define PR_ALIGN_OF_POINTER 8 165 166 #define PR_BYTES_PER_WORD_LOG2 3 167 #define PR_BYTES_PER_DWORD_LOG2 3 168 169 #else /* defined(_M_IX86) || defined(_X86_) */ 170 171 #error unknown processor architecture 172 173 #endif /* defined(_M_IX86) || defined(_X86_) */ 174 175 #ifndef HAVE_LONG_LONG 176 #define HAVE_LONG_LONG 177 #endif 178 179 #ifndef NO_NSPR_10_SUPPORT 180 181 #define BYTES_PER_BYTE PR_BYTES_PER_BYTE 182 #define BYTES_PER_SHORT PR_BYTES_PER_SHORT 183 #define BYTES_PER_INT PR_BYTES_PER_INT 184 #define BYTES_PER_INT64 PR_BYTES_PER_INT64 185 #define BYTES_PER_LONG PR_BYTES_PER_LONG 186 #define BYTES_PER_FLOAT PR_BYTES_PER_FLOAT 187 #define BYTES_PER_DOUBLE PR_BYTES_PER_DOUBLE 188 #define BYTES_PER_WORD PR_BYTES_PER_WORD 189 #define BYTES_PER_DWORD PR_BYTES_PER_DWORD 190 191 #define BITS_PER_BYTE PR_BITS_PER_BYTE 192 #define BITS_PER_SHORT PR_BITS_PER_SHORT 193 #define BITS_PER_INT PR_BITS_PER_INT 194 #define BITS_PER_INT64 PR_BITS_PER_INT64 195 #define BITS_PER_LONG PR_BITS_PER_LONG 196 #define BITS_PER_FLOAT PR_BITS_PER_FLOAT 197 #define BITS_PER_DOUBLE PR_BITS_PER_DOUBLE 198 #define BITS_PER_WORD PR_BITS_PER_WORD 199 200 #define BITS_PER_BYTE_LOG2 PR_BITS_PER_BYTE_LOG2 201 #define BITS_PER_SHORT_LOG2 PR_BITS_PER_SHORT_LOG2 202 #define BITS_PER_INT_LOG2 PR_BITS_PER_INT_LOG2 203 #define BITS_PER_INT64_LOG2 PR_BITS_PER_INT64_LOG2 204 #define BITS_PER_LONG_LOG2 PR_BITS_PER_LONG_LOG2 205 #define BITS_PER_FLOAT_LOG2 PR_BITS_PER_FLOAT_LOG2 206 #define BITS_PER_DOUBLE_LOG2 PR_BITS_PER_DOUBLE_LOG2 207 #define BITS_PER_WORD_LOG2 PR_BITS_PER_WORD_LOG2 208 209 #define ALIGN_OF_SHORT PR_ALIGN_OF_SHORT 210 #define ALIGN_OF_INT PR_ALIGN_OF_INT 211 #define ALIGN_OF_LONG PR_ALIGN_OF_LONG 212 #define ALIGN_OF_INT64 PR_ALIGN_OF_INT64 213 #define ALIGN_OF_FLOAT PR_ALIGN_OF_FLOAT 214 #define ALIGN_OF_DOUBLE PR_ALIGN_OF_DOUBLE 215 #define ALIGN_OF_POINTER PR_ALIGN_OF_POINTER 216 #define ALIGN_OF_WORD PR_ALIGN_OF_WORD 217 218 #define BYTES_PER_WORD_LOG2 PR_BYTES_PER_WORD_LOG2 219 #define BYTES_PER_DWORD_LOG2 PR_BYTES_PER_DWORD_LOG2 220 #define WORDS_PER_DWORD_LOG2 PR_WORDS_PER_DWORD_LOG2 221 222 #endif /* NO_NSPR_10_SUPPORT */ 223 224 #endif /* nspr_cpucfg___ */ 225