diff --git a/lisp/interrupt.c b/lisp/interrupt.c index 29d5fab2f4951fe8d4192c47921a304e495203b6..65a17df197fb9ede846c874727d77d353f9229e4 100644 --- a/lisp/interrupt.c +++ b/lisp/interrupt.c @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.51 2007/11/16 06:31:55 cshapiro Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.52 2007/12/04 10:48:45 cshapiro Exp $ */ /* Interrupt handling magic. */ @@ -27,23 +27,10 @@ boolean internal_errors_enabled = 0; os_context_t *lisp_interrupt_contexts[MAX_INTERRUPTS]; union interrupt_handler interrupt_handlers[NSIG]; -void (*interrupt_low_level_handlers[NSIG]) (HANDLER_ARGS) = { -0}; +void (*interrupt_low_level_handlers[NSIG])(HANDLER_ARGS) = {0}; static int pending_signal = 0; - -#if defined(SOLARIS) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) -static siginfo_t pending_code = { 0 }; - -#define PASSCODE(code) (&(code)) -#define DEREFCODE(code) (*(code)) -#else -static int pending_code = 0; - -#define PASSCODE(code) (code) -#define DEREFCODE(code) (code) -#endif - +static siginfo_t pending_code = {0}; static sigset_t pending_mask; static boolean maybe_gc_pending = FALSE; @@ -209,17 +196,13 @@ interrupt_handle_pending(os_context_t * context) if (pending_signal) { int signal; - -#if defined(SOLARIS) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) siginfo_t code; -#else - int code; -#endif + signal = pending_signal; code = pending_code; pending_signal = 0; /* pending_code = 0; */ - interrupt_handle_now(signal, PASSCODE(code), context); + interrupt_handle_now(signal, &code, context); } } @@ -300,7 +283,7 @@ maybe_now_maybe_later(HANDLER_ARGS) SAVE_CONTEXT(); /**/ if (SymbolValue(INTERRUPTS_ENABLED) == NIL) { pending_signal = signal; - pending_code = DEREFCODE(code); + pending_code = *code; pending_mask = context->uc_sigmask; FILLBLOCKSET(&context->uc_sigmask); SetSymbolValue(INTERRUPT_PENDING, T); @@ -310,7 +293,7 @@ maybe_now_maybe_later(HANDLER_ARGS) #endif arch_pseudo_atomic_atomic(context)) { pending_signal = signal; - pending_code = DEREFCODE(code); + pending_code = *code; pending_mask = context->uc_sigmask; FILLBLOCKSET(&context->uc_sigmask); arch_set_pseudo_atomic_interrupted(context);