X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Finterrupt.h;h=07b4a2d1e7c40ecd03156a7d6e734654002d7833;hb=c8617f57d0413beb2890e94dabe227cef9c5ddad;hp=3a6a51b5dee3e8ab77ed5517848a6aadbb25b340;hpb=1d06300e09f767a38bbe6d5b38232ca334ab1913;p=sbcl.git diff --git a/src/runtime/interrupt.h b/src/runtime/interrupt.h index 3a6a51b..07b4a2d 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) @@ -152,8 +157,9 @@ typedef void (*interrupt_handler_t)(int, siginfo_t *, os_context_t *); extern void undoably_install_low_level_interrupt_handler ( int signal, interrupt_handler_t handler); -extern unsigned long install_handler(int signal, - interrupt_handler_t handler); +extern uword_t install_handler(int signal, + interrupt_handler_t handler, + int synchronous); extern union interrupt_handler interrupt_handlers[NSIG];