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