X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Finterrupt.h;h=7213c0c28f4ce68f8205d4307fb8aeab7655a8c2;hb=fb76e3acd8b8a53cdadaa65bce1d090d99e004a0;hp=0b6fb7b04a773d79b46b08efe69cb5076e8f8038;hpb=c0d30332957c6f0cab8c0a3670f2903546fc0ad8;p=sbcl.git diff --git a/src/runtime/interrupt.h b/src/runtime/interrupt.h index 0b6fb7b..7213c0c 100644 --- a/src/runtime/interrupt.h +++ b/src/runtime/interrupt.h @@ -13,6 +13,7 @@ #define _INCLUDE_INTERRUPT_H_ #include +#include /* * This is a workaround for some slightly silly Linux/GNU Libc @@ -25,6 +26,8 @@ /* FIXME: do not rely on NSIG being a multiple of 8 */ #define REAL_SIGSET_SIZE_BYTES ((NSIG/8)) +extern void check_blockables_blocked_or_lose(); + static inline void sigcopyset(sigset_t *new, sigset_t *old) { @@ -45,10 +48,9 @@ union interrupt_handler { void (*c)(int, siginfo_t*, void*); }; -struct interrupt_data { - void (*interrupt_low_level_handlers[NSIG]) (int, siginfo_t*, void*) ; - union interrupt_handler interrupt_handlers[NSIG]; +extern union interrupt_handler interrupt_handlers[NSIG]; +struct interrupt_data { /* signal information for pending signal. pending_signal=0 when there * is no pending signal. */ void (*pending_handler) (int, siginfo_t*, void*) ; @@ -92,9 +94,9 @@ extern unsigned long install_handler(int signal, extern union interrupt_handler interrupt_handlers[NSIG]; /* Set all deferrable signals into *s. */ -void sigaddset_deferrable(sigset_t *s); +extern void sigaddset_deferrable(sigset_t *s); /* Set all blockable signals into *s. */ -void sigaddset_blockable(sigset_t *s); +extern void sigaddset_blockable(sigset_t *s); extern void block_blockable_signals();