X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Finterrupt.h;h=83514d7892703526d851de6c6befb295dca3718d;hb=ed1910efb36f71b5ebe33b5ffffd7195e15644de;hp=a14823696f180cfbf4bee83122c7b2dd234907f5;hpb=e6f4c7523aa628ece995ee01879d3fb90eed6d9f;p=sbcl.git diff --git a/src/runtime/interrupt.h b/src/runtime/interrupt.h index a148236..83514d7 100644 --- a/src/runtime/interrupt.h +++ b/src/runtime/interrupt.h @@ -12,7 +12,7 @@ #if !defined(_INCLUDE_INTERRUPT_H_) #define _INCLUDE_INTERRUPT_H_ -#include +#include "runtime.h" #include /* @@ -24,7 +24,12 @@ * stack by the kernel, so copying a libc-sized sigset_t into it will * overflow and cause other data on the stack to be corrupted */ /* FIXME: do not rely on NSIG being a multiple of 8 */ -#define REAL_SIGSET_SIZE_BYTES ((NSIG/8)) + +#ifdef LISP_FEATURE_WIN32 +# define REAL_SIGSET_SIZE_BYTES (4) +#else +# define REAL_SIGSET_SIZE_BYTES ((NSIG/8)) +#endif static inline void sigcopyset(sigset_t *new, sigset_t *old) @@ -113,7 +118,7 @@ struct interrupt_data { * and with no pending handler. Both deferrable interrupt handlers * and gc are careful not to clobber each other's pending_mask. */ boolean gc_blocked_deferrables; -#ifdef LISP_FEATURE_PPC +#ifdef GENCGC_IS_PRECISE /* On PPC when consing wants to turn to alloc(), it does so via a * trap. When alloc() wants to save the sigmask it consults * allocation_trap_context. It does not look up the most recent @@ -177,8 +182,9 @@ extern void lower_thread_control_stack_guard_page(struct thread *th); extern void reset_thread_control_stack_guard_page(struct thread *th); #if defined(LISP_FEATURE_SB_SAFEPOINT) && !defined(LISP_FEATURE_WIN32) -void rtmin0_handler(int signal, siginfo_t *info, os_context_t *context); -void rtmin1_handler(int signal, siginfo_t *info, os_context_t *context); +# ifdef LISP_FEATURE_SB_THRUPTION +void thruption_handler(int signal, siginfo_t *info, os_context_t *context); +# endif #endif #endif