From 5ca23e01b09a53d6e3b7324a2279ad45598bfdd1 Mon Sep 17 00:00:00 2001 From: jjohnstn Date: Wed, 24 Jul 2002 18:18:05 +0000 Subject: [PATCH] 2002-07-24 Jeff Johnston * libc/include/signal.h (SIG_IGN, SIG_DFL, SIG_ERR): Change to use _sig_func_ptr type casted constants. (_sig_func_ptr): Typedef moved to sys/signal.h. * libc/include/sys/signal.h (_sig_func_ptr): Typedef added. For __rtems, use POSIX definition, otherwise default to ANSI. * libc/sys/linux/sys/signal.h (_sig_func_ptr): Typedef added. --- newlib/ChangeLog | 9 +++++++++ newlib/libc/include/signal.h | 14 +++----------- newlib/libc/include/sys/signal.h | 8 ++++++-- newlib/libc/sys/linux/sys/signal.h | 3 ++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index febaddad88..c7dddf91a6 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,12 @@ +2002-07-24 Jeff Johnston + + * libc/include/signal.h (SIG_IGN, SIG_DFL, SIG_ERR): Change + to use _sig_func_ptr type casted constants. + (_sig_func_ptr): Typedef moved to sys/signal.h. + * libc/include/sys/signal.h (_sig_func_ptr): Typedef added. + For __rtems, use POSIX definition, otherwise default to ANSI. + * libc/sys/linux/sys/signal.h (_sig_func_ptr): Typedef added. + 2002-07-24 Stephane Carrez * configure.host: Recognize m6811-elf and m6812-elf targets. diff --git a/newlib/libc/include/signal.h b/newlib/libc/include/signal.h index e1170a2342..1b3b57b49d 100644 --- a/newlib/libc/include/signal.h +++ b/newlib/libc/include/signal.h @@ -8,17 +8,9 @@ _BEGIN_STD_C typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ -#if defined(__STDC__) || defined(__cplusplus) -#define SIG_DFL ((void (*)(int))0) /* Default action */ -#define SIG_IGN ((void (*)(int))1) /* Ignore action */ -#define SIG_ERR ((void (*)(int))-1) /* Error return */ -#else -#define SIG_DFL ((void (*)())0) /* Default action */ -#define SIG_IGN ((void (*)())1) /* Ignore action */ -#define SIG_ERR ((void (*)())-1) /* Error return */ -#endif - -typedef void (*_sig_func_ptr) (int); +#define SIG_DFL ((_sig_func_ptr)0) /* Default action */ +#define SIG_IGN ((_sig_func_ptr)1) /* Ignore action */ +#define SIG_ERR ((_sig_func_ptr)-1) /* Error return */ struct _reent; diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h index 11d370ac4a..dde3aaa042 100644 --- a/newlib/libc/include/sys/signal.h +++ b/newlib/libc/include/sys/signal.h @@ -84,13 +84,15 @@ typedef struct { * application should not use both simultaneously. */ +typedef void (*_sig_func_ptr)(); + struct sigaction { int sa_flags; /* Special flags to affect behavior of signal */ sigset_t sa_mask; /* Additional set of signals to be blocked */ /* during execution of signal-catching */ /* function. */ union { - void (*_handler)(); /* SIG_DFL, SIG_IGN, or pointer to a function */ + _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ #if defined(_POSIX_REALTIME_SIGNALS) void (*_sigaction)( int, siginfo_t *, void * ); #endif @@ -104,9 +106,11 @@ struct sigaction { #else +typedef void (*_sig_func_ptr)(int); + struct sigaction { - void (*sa_handler)(int); + _sig_func_ptr sa_handler; sigset_t sa_mask; int sa_flags; }; diff --git a/newlib/libc/sys/linux/sys/signal.h b/newlib/libc/sys/linux/sys/signal.h index edbec6f50e..cef7058cd2 100644 --- a/newlib/libc/sys/linux/sys/signal.h +++ b/newlib/libc/sys/linux/sys/signal.h @@ -19,7 +19,8 @@ #undef sigset_t #define sigset_t __sigset_t -typedef void (*__sighandler_t) (int); +typedef void (*_sig_func_ptr) (int); +typedef _sig_func_ptr __sighandler_t; #include #include -- 2.11.0