#define _INCLUDE_INTERRUPT_H_
#include <signal.h>
+#include <string.h>
/*
* This is a workaround for some slightly silly Linux/GNU Libc
/* 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)
{
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*) ;
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();