From ed05094c78161f2c895955d6a04ea1b0c3a462e9 Mon Sep 17 00:00:00 2001 From: Giacomo Tesio Date: Thu, 14 Sep 2017 00:06:29 +0200 Subject: [PATCH] jehanne: fix signal headers --- newlib/libc/sys/jehanne/include/signal.h | 23 +++++-------- newlib/libc/sys/jehanne/sys/signal.h | 41 +----------------------- 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/newlib/libc/sys/jehanne/include/signal.h b/newlib/libc/sys/jehanne/include/signal.h index 4348e8799..577dbbc0f 100644 --- a/newlib/libc/sys/jehanne/include/signal.h +++ b/newlib/libc/sys/jehanne/include/signal.h @@ -1,8 +1,6 @@ #ifndef _SIGNAL_H_ #define _SIGNAL_H_ -#define GIACOMO - #include "_ansi.h" #include #include @@ -11,26 +9,21 @@ _BEGIN_STD_C typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ #if __BSD_VISIBLE -typedef _sig_func_ptr sig_t; /* BSD naming */ +typedef PosixSigHandler sig_t; /* BSD naming */ #endif #if __GNU_VISIBLE -typedef _sig_func_ptr sighandler_t; /* glibc naming */ +typedef PosixSigHandler sighandler_t; /* glibc naming */ #endif -#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 */ +#define SIG_DFL ((PosixSigHandler)0) /* Default action */ +#define SIG_IGN ((PosixSigHandler)1) /* Ignore action */ +#define SIG_ERR ((PosixSigHandler)-1) /* Error return */ struct _reent; -_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr)); -int _EXFUN(_raise_r, (struct _reent *, int)); - -#ifndef _REENT_ONLY -_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr)); -int _EXFUN(raise, (int)); -void _EXFUN(psignal, (int, const char *)); -#endif +PosixSigHandler signal(int signo, PosixSigHandler handler); +int raise(int signo); +void psignal(int signo, const char *s); _END_STD_C diff --git a/newlib/libc/sys/jehanne/sys/signal.h b/newlib/libc/sys/jehanne/sys/signal.h index 4e270b655..654ad4b5e 100644 --- a/newlib/libc/sys/jehanne/sys/signal.h +++ b/newlib/libc/sys/jehanne/sys/signal.h @@ -50,24 +50,6 @@ typedef PosixSignalMask sigset_t; #define SIGEV_THREAD 3 /* A notification function shall be called to */ /* perform notification. */ -/* Signal Generation and Delivery, P1003.1b-1993, p. 63 - NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and - sigev_notify_attributes to the sigevent structure. */ - -union sigval { - int sival_int; /* Integer signal value */ - void *sival_ptr; /* Pointer signal value */ -}; - -struct sigevent { - int sigev_notify; /* Notification type */ - int sigev_signo; /* Signal number */ - union sigval sigev_value; /* Signal value */ - void (*sigev_notify_function)( union sigval ); - /* Notification function */ - pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ -}; - /* Signal Actions, P1003.1b-1993, p. 64 */ /* si_code values, p. 66 */ @@ -77,7 +59,7 @@ struct sigevent { #define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ #define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ -#define siginfo_t PosixSignalInfo; +#define siginfo_t PosixSignalInfo /* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ @@ -88,27 +70,6 @@ struct sigevent { #define SA_ONSTACK 4 /* Signal delivery will be on a separate stack. */ #endif -/* struct sigaction notes from POSIX: - * - * (1) Routines stored in sa_handler should take a single int as - * their argument although the POSIX standard does not require this. - * This is not longer true since at least POSIX.1-2008 - * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming - * application should not use both simultaneously. - */ -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 { - _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ - _sig_act_ptr _sigaction; - } _signal_handlers; -}; - -#define sa_handler _signal_handlers._handler -#define sa_sigaction _signal_handlers._sigaction #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 /*