| OLD | NEW |
| 1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ | 1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| 2 /* This Source Code Form is subject to the terms of the Mozilla Public | 2 /* This Source Code Form is subject to the terms of the Mozilla Public |
| 3 * License, v. 2.0. If a copy of the MPL was not distributed with this | 3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 5 | 5 |
| 6 /* | 6 /* |
| 7 * This file is used by not only Linux but also other glibc systems | 7 * This file is used by not only Linux but also other glibc systems |
| 8 * such as GNU/Hurd and GNU/k*BSD. | 8 * such as GNU/Hurd and GNU/k*BSD. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 #elif defined(__sparc__) && defined(__arch64__) | 34 #elif defined(__sparc__) && defined(__arch64__) |
| 35 #define _PR_SI_ARCHITECTURE "sparc64" | 35 #define _PR_SI_ARCHITECTURE "sparc64" |
| 36 #elif defined(__sparc__) | 36 #elif defined(__sparc__) |
| 37 #define _PR_SI_ARCHITECTURE "sparc" | 37 #define _PR_SI_ARCHITECTURE "sparc" |
| 38 #elif defined(__i386__) | 38 #elif defined(__i386__) |
| 39 #define _PR_SI_ARCHITECTURE "x86" | 39 #define _PR_SI_ARCHITECTURE "x86" |
| 40 #elif defined(__mips__) | 40 #elif defined(__mips__) |
| 41 #define _PR_SI_ARCHITECTURE "mips" | 41 #define _PR_SI_ARCHITECTURE "mips" |
| 42 #elif defined(__arm__) | 42 #elif defined(__arm__) |
| 43 #define _PR_SI_ARCHITECTURE "arm" | 43 #define _PR_SI_ARCHITECTURE "arm" |
| 44 #elif defined(__aarch64__) |
| 45 #define _PR_SI_ARCHITECTURE "aarch64" |
| 44 #elif defined(__hppa__) | 46 #elif defined(__hppa__) |
| 45 #define _PR_SI_ARCHITECTURE "hppa" | 47 #define _PR_SI_ARCHITECTURE "hppa" |
| 46 #elif defined(__s390x__) | 48 #elif defined(__s390x__) |
| 47 #define _PR_SI_ARCHITECTURE "s390x" | 49 #define _PR_SI_ARCHITECTURE "s390x" |
| 48 #elif defined(__s390__) | 50 #elif defined(__s390__) |
| 49 #define _PR_SI_ARCHITECTURE "s390" | 51 #define _PR_SI_ARCHITECTURE "s390" |
| 50 #elif defined(__sh__) | 52 #elif defined(__sh__) |
| 51 #define _PR_SI_ARCHITECTURE "sh" | 53 #define _PR_SI_ARCHITECTURE "sh" |
| 52 #elif defined(__avr32__) | 54 #elif defined(__avr32__) |
| 53 #define _PR_SI_ARCHITECTURE "avr32" | 55 #define _PR_SI_ARCHITECTURE "avr32" |
| 54 #elif defined(__m32r__) | 56 #elif defined(__m32r__) |
| 55 #define _PR_SI_ARCHITECTURE "m32r" | 57 #define _PR_SI_ARCHITECTURE "m32r" |
| 56 #else | 58 #else |
| 57 #error "Unknown CPU architecture" | 59 #error "Unknown CPU architecture" |
| 58 #endif | 60 #endif |
| 59 #define PR_DLL_SUFFIX ".so" | 61 #define PR_DLL_SUFFIX ".so" |
| 60 | 62 |
| 61 #define _PR_VMBASE 0x30000000 | 63 #define _PR_VMBASE 0x30000000 |
| 62 #define _PR_STACK_VMBASE 0x50000000 | 64 #define _PR_STACK_VMBASE 0x50000000 |
| 63 #define _MD_DEFAULT_STACK_SIZE 65536L | 65 #define _MD_DEFAULT_STACK_SIZE 65536L |
| 64 #define _MD_MMAP_FLAGS MAP_PRIVATE | 66 #define _MD_MMAP_FLAGS MAP_PRIVATE |
| 65 | 67 |
| 68 #if defined(__aarch64__) |
| 69 #define _MD_MINIMUM_STACK_SIZE 0x20000 |
| 70 #endif |
| 71 |
| 66 #undef HAVE_STACK_GROWING_UP | 72 #undef HAVE_STACK_GROWING_UP |
| 67 | 73 |
| 68 /* | 74 /* |
| 69 * Elf linux supports dl* functions | 75 * Elf linux supports dl* functions |
| 70 */ | 76 */ |
| 71 #define HAVE_DLL | 77 #define HAVE_DLL |
| 72 #define USE_DLFCN | 78 #define USE_DLFCN |
| 73 #if defined(ANDROID) | 79 #if defined(ANDROID) |
| 74 #define NO_DLOPEN_NULL | 80 #define NO_DLOPEN_NULL |
| 75 #endif | 81 #endif |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 "2: br 1b \n" \ | 185 "2: br 1b \n" \ |
| 180 ".previous" \ | 186 ".previous" \ |
| 181 : [ret] "=&r" (__atomic_ret), \ | 187 : [ret] "=&r" (__atomic_ret), \ |
| 182 [tmp] "=&r"(__atomic_tmp), \ | 188 [tmp] "=&r"(__atomic_tmp), \ |
| 183 [val] "=m" (*ptr) \ | 189 [val] "=m" (*ptr) \ |
| 184 : [newval] "Ir" (n), "m" (*ptr)); \ | 190 : [newval] "Ir" (n), "m" (*ptr)); \ |
| 185 __atomic_ret; \ | 191 __atomic_ret; \ |
| 186 }) | 192 }) |
| 187 #endif | 193 #endif |
| 188 | 194 |
| 189 #if defined(__arm__) | 195 #if defined(__arm__) || defined(__aarch64__) |
| 190 #if defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) | 196 #if defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) |
| 191 /* Use GCC built-in functions */ | 197 /* Use GCC built-in functions */ |
| 192 #define _PR_HAVE_ATOMIC_OPS | 198 #define _PR_HAVE_ATOMIC_OPS |
| 193 #define _MD_INIT_ATOMIC() | 199 #define _MD_INIT_ATOMIC() |
| 194 | 200 |
| 195 #define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1) | 201 #define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1) |
| 196 #define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1) | 202 #define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1) |
| 197 #define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv) | 203 #define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv) |
| 198 #define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i) | 204 #define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i) |
| 199 | 205 |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 643 int timeout); | 649 int timeout); |
| 644 #define _MD_POLL __syscall_poll | 650 #define _MD_POLL __syscall_poll |
| 645 #endif | 651 #endif |
| 646 | 652 |
| 647 /* For writev() */ | 653 /* For writev() */ |
| 648 #include <sys/uio.h> | 654 #include <sys/uio.h> |
| 649 | 655 |
| 650 extern void _MD_linux_map_sendfile_error(int err); | 656 extern void _MD_linux_map_sendfile_error(int err); |
| 651 | 657 |
| 652 #endif /* nspr_linux_defs_h___ */ | 658 #endif /* nspr_linux_defs_h___ */ |
| OLD | NEW |