- FSHOW((stderr,"linux kernel %d.%d predates 2.4;\n enabling workarounds for SPARC kernel bugs in signal handling.\n", major_version,minor_version));
- linux_sparc_siginfo_bug = 1;
+ FSHOW((stderr,"linux kernel %d.%d predates 2.4;\n enabling workarounds for SPARC kernel bugs in signal handling.\n", major_version,minor_version));
+ linux_sparc_siginfo_bug = 1;
actual = mmap(addr, len, OS_VM_PROT_ALL, flags, -1, 0);
actual = mmap(addr, len, OS_VM_PROT_ALL, flags, -1, 0);
os_invalidate(os_vm_address_t addr, os_vm_size_t len)
{
if (munmap(addr,len) == -1) {
os_invalidate(os_vm_address_t addr, os_vm_size_t len)
{
if (munmap(addr,len) == -1) {
os_vm_address_t actual;
actual = mmap(addr, len, OS_VM_PROT_ALL, MAP_PRIVATE | MAP_FIXED,
os_vm_address_t actual;
actual = mmap(addr, len, OS_VM_PROT_ALL, MAP_PRIVATE | MAP_FIXED,
os_protect(os_vm_address_t address, os_vm_size_t length, os_vm_prot_t prot)
{
if (mprotect(address, length, prot) == -1) {
os_protect(os_vm_address_t address, os_vm_size_t length, os_vm_prot_t prot)
{
if (mprotect(address, length, prot) == -1) {
- || (DYNAMIC_0_SPACE_START <= ad && ad < DYNAMIC_0_SPACE_END)
- || (DYNAMIC_1_SPACE_START <= ad && ad < DYNAMIC_1_SPACE_END)
+ || (DYNAMIC_0_SPACE_START <= ad && ad < DYNAMIC_0_SPACE_END)
+ || (DYNAMIC_1_SPACE_START <= ad && ad < DYNAMIC_1_SPACE_END)
- if((size_t)(th->control_stack_start) <= ad
- && ad < (size_t)(th->control_stack_end))
- return 1;
- if((size_t)(th->binding_stack_start) <= ad
- && ad < (size_t)(th->binding_stack_start + BINDING_STACK_SIZE))
- return 1;
+ if((size_t)(th->control_stack_start) <= ad
+ && ad < (size_t)(th->control_stack_end))
+ return 1;
+ if((size_t)(th->binding_stack_start) <= ad
+ && ad < (size_t)(th->binding_stack_start + BINDING_STACK_SIZE))
+ return 1;
- if (!gencgc_handle_wp_violation(fault_addr))
- if(!handle_guard_page_triggered(context,fault_addr))
+ if (!gencgc_handle_wp_violation(fault_addr))
+ if(!handle_guard_page_triggered(context,fault_addr))
#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
arrange_return_to_lisp_function(context, SymbolFunction(MEMORY_FAULT_ERROR));
#else
#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
arrange_return_to_lisp_function(context, SymbolFunction(MEMORY_FAULT_ERROR));
#else
(how we got here: when interrupting, we set bit 63 in reg_ALLOC.
At the end of the atomic section we tried to write to reg_ALLOC,
got a SIGSEGV (there's nothing mapped there) so ended up here. */
(how we got here: when interrupting, we set bit 63 in reg_ALLOC.
At the end of the atomic section we tried to write to reg_ALLOC,
got a SIGSEGV (there's nothing mapped there) so ended up here. */
- if (addr != NULL &&
- *os_context_register_addr(context,reg_ALLOC) & (1L<<63)){
- *os_context_register_addr(context,reg_ALLOC) -= (1L<<63);
- interrupt_handle_pending(context);
- return;
+ if (addr != NULL &&
+ *os_context_register_addr(context,reg_ALLOC) & (1L<<63)){
+ *os_context_register_addr(context,reg_ALLOC) -= (1L<<63);
+ interrupt_handle_pending(context);
+ return;
- if(!handle_guard_page_triggered(context,addr))
- interrupt_handle_now(signal, info, context);
+ if(!handle_guard_page_triggered(context,addr))
+ interrupt_handle_now(signal, info, context);
os_install_interrupt_handlers(void)
{
undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
os_install_interrupt_handlers(void)
{
undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
#ifdef LISP_FEATURE_SB_THREAD
undoably_install_low_level_interrupt_handler(SIG_INTERRUPT_THREAD,
#ifdef LISP_FEATURE_SB_THREAD
undoably_install_low_level_interrupt_handler(SIG_INTERRUPT_THREAD,