Skip to content
Snippets Groups Projects
Commit 8cbbd24d authored by rtoy's avatar rtoy
Browse files

Add sigsegv_handle_now (and segv_handle_now) to handle segv's that

weren't caused by a write-protected heap.  Requested by Lynn Quam.
parent fcbd8540
No related branches found
No related tags found
No related merge requests found
......@@ -15,7 +15,7 @@
* GENCGC support by Douglas Crosher, 1996, 1997.
* Alpha support by Julian Dolby, 1999.
*
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.18 2004/05/20 00:32:24 cwang Exp $
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.19 2004/06/07 15:24:08 rtoy Exp $
*
*/
......@@ -227,6 +227,11 @@ boolean valid_addr(os_vm_address_t addr)
#if defined GENCGC
static sigsegv_handle_now(HANDLER_ARGS)
{
interrupt_handle_now(signal, contextstruct);
}
void sigsegv_handler(HANDLER_ARGS)
{
GET_CONTEXT
......@@ -262,7 +267,7 @@ void sigsegv_handler(HANDLER_ARGS)
#else
DPRINTF(0,(stderr,"sigsegv: eip: %p\n",context->eip));
#endif
interrupt_handle_now(signal, contextstruct);
sigsegv_handle_now(signal, contextstruct);
}
#else
static void sigsegv_handler(HANDLER_ARGS)
......
/*
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/solaris-os.c,v 1.13 2004/05/04 12:39:45 rtoy Exp $
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/solaris-os.c,v 1.14 2004/06/07 15:24:08 rtoy Exp $
*
* OS-dependent routines. This file (along with os.h) exports an
* OS-independent interface to the operating system VM facilities.
......@@ -204,6 +204,12 @@ valid_addr(os_vm_address_t addr)
* Running into the gc trigger page will end up here...
*/
#if defined(GENCGC)
void segv_handle_now(HANDLER_ARGS)
{
interrupt_handle_now(signal, code, context);
}
void segv_handler(HANDLER_ARGS)
{
caddr_t addr = code->si_addr;
......@@ -273,7 +279,7 @@ void segv_handler(HANDLER_ARGS)
/* a *real* protection fault */
fprintf(stderr, "segv_handler: Real protection violation: 0x%08x\n",
addr);
interrupt_handle_now(signal, code, context);
segv_handle_now(signal, code, context);
}
#else
void
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment