From 83f1f03ed55bf51e3617610b5f70a06192c82e84 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Fri, 27 Sep 1991 10:32:30 +0000 Subject: [PATCH] Don't assume signal handlers are (void *)(), 'cause under mach they are (int *)(). --- ldb/interrupt.c | 12 ++++++------ ldb/interrupt.h | 13 ++++++++++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ldb/interrupt.c b/ldb/interrupt.c index f56b84181..c7e2d8c32 100644 --- a/ldb/interrupt.c +++ b/ldb/interrupt.c @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.28 1991/05/24 17:50:13 wlott Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.29 1991/09/27 10:31:55 wlott Exp $ */ /* Interrupt handing magic. */ @@ -26,7 +26,7 @@ boolean internal_errors_enabled = 0; struct sigcontext *lisp_interrupt_contexts[MAX_INTERRUPTS]; union interrupt_handler interrupt_handlers[NSIG]; -void (*interrupt_low_level_handlers[NSIG])() = {0}; +SIGHDLRTYPE (*interrupt_low_level_handlers[NSIG])() = {0}; static int pending_signal = 0, pending_code = 0, pending_mask = 0; static boolean maybe_gc_pending = FALSE; @@ -195,7 +195,7 @@ void interrupt_handle_pending(context) * the two main signal handlers. * \****************************************************************/ -void interrupt_handle_now(signal, code, context) +SIGHDLRTYPE interrupt_handle_now(signal, code, context) int signal, code; struct sigcontext *context; { @@ -244,7 +244,7 @@ struct sigcontext *context; undo_fake_foreign_function_call(context); } -static void maybe_now_maybe_later(signal, code, context) +static SIGHDLRTYPE maybe_now_maybe_later(signal, code, context) int signal, code; struct sigcontext *context; { @@ -336,7 +336,7 @@ struct sigcontext *context; void interrupt_install_low_level_handler(signal,handler) int signal; -void (*handler)(); +SIGHDLRTYPE (*handler)(); { struct sigvec sv; @@ -351,7 +351,7 @@ void (*handler)(); unsigned long install_handler(signal, handler) int signal; -void (*handler)(); +SIGHDLRTYPE (*handler)(); { struct sigvec sv; int oldmask; diff --git a/ldb/interrupt.h b/ldb/interrupt.h index 18731c3cf..2e62292de 100644 --- a/ldb/interrupt.h +++ b/ldb/interrupt.h @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.h,v 1.2 1991/05/24 17:50:52 wlott Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.h,v 1.3 1991/09/27 10:32:30 wlott Exp $ */ #if !defined(_INCLUDE_INTERRUPT_H_) #define _INCLUDE_INTERRUPT_H_ @@ -9,12 +9,19 @@ extern struct sigcontext *lisp_interrupt_contexts[MAX_INTERRUPTS]; +#ifdef SUNOS +#define SIGHDLRTYPE void +#else +#define SIGHDLRTYPE int +#endif + union interrupt_handler { lispobj lisp; - void (*c)(); + SIGHDLRTYPE (*c)(); }; -extern void interrupt_handle_now(), interrupt_handle_pending(); +extern SIGHDLRTYPE interrupt_handle_now(); +extern void interrupt_handle_pending(); extern void interrupt_internal_error(); extern union interrupt_handler interrupt_handlers[NSIG]; -- GitLab