Changeset 14655
- Timestamp:
- Feb 21, 2011, 12:23:44 AM (14 years ago)
- File:
-
- 1 edited
-
trunk/source/lisp-kernel/arm-exceptions.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lisp-kernel/arm-exceptions.c
r14549 r14655 1486 1486 { 1487 1487 TCR *tcr=get_tcr(true); 1488 if (signo == SIGSEGV) { 1488 1489 if (signo == SIGBUS) { 1490 BytePtr addr = (BytePtr)(xp->uc_mcontext.fault_address); 1491 area *a = tcr->cs_area; 1492 if (((BytePtr)truncate_to_power_of_2(addr,log2_page_size))== a->softlimit) 1493 { 1494 if (mmap(a->softlimit, 1495 page_size, 1496 PROT_READ|PROT_WRITE|PROT_EXEC, 1497 MAP_PRIVATE|MAP_ANON|MAP_FIXED, 1498 -1, 1499 0) == a->softlimit) { 1500 return; 1501 } 1502 } 1503 } else if (signo == SIGSEGV) { 1489 1504 BytePtr addr = (BytePtr)(xp->uc_mcontext.fault_address); 1490 1505 area *a = tcr->cs_area; … … 1799 1814 install_signal_handler(SIGILL, (void *)sigill_handler, true, false); 1800 1815 install_signal_handler(SIGSEGV, (void *)ALTSTACK(signal_handler),true, true); 1816 install_signal_handler(SIGBUS, (void *)ALTSTACK(signal_handler),true,true); 1801 1817 1802 1818 }
Note:
See TracChangeset
for help on using the changeset viewer.
