From db0b84d2e2ed0d832770176efa6f7e8e82cf53b5 Mon Sep 17 00:00:00 2001 From: Giacomo Tesio Date: Tue, 12 Sep 2017 00:49:17 +0200 Subject: [PATCH] jehanne: add sigprocmask --- newlib/libc/sys/jehanne/sigsets.c | 17 ++++++++++++----- newlib/libc/sys/jehanne/sys/signal.h | 6 +++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/newlib/libc/sys/jehanne/sigsets.c b/newlib/libc/sys/jehanne/sigsets.c index 5f0b0b34b..ab1639338 100644 --- a/newlib/libc/sys/jehanne/sigsets.c +++ b/newlib/libc/sys/jehanne/sigsets.c @@ -23,36 +23,43 @@ typedef unsigned long sigset_t; int -sigfillset(unsigned long *set) +sigfillset(sigset_t *set) { int *errnop = &_REENT->_errno; return POSIX_sigfillset(errnop, set); } int -sigemptyset(unsigned long *set) +sigemptyset(sigset_t *set) { int *errnop = &_REENT->_errno; return POSIX_sigemptyset(errnop, set); } int -sigismember(const unsigned long *set, int signo) +sigismember(const sigset_t *set, int signo) { int *errnop = &_REENT->_errno; return POSIX_sigismember(errnop, set, signo); } int -sigaddset(unsigned long *set, int signo) +sigaddset(sigset_t *set, int signo) { int *errnop = &_REENT->_errno; return POSIX_sigaddset(errnop, set, signo); } int -sigdelset(unsigned long *set, int signo) +sigdelset(sigset_t *set, int signo) { int *errnop = &_REENT->_errno; return POSIX_sigdelset(errnop, set, signo); } + +int +sigprocmask(int how, const sigset_t *set, sigset_t *oset) +{ + int *errnop = &_REENT->_errno; + return POSIX_sigprocmask(errnop, how, set, oset); +} diff --git a/newlib/libc/sys/jehanne/sys/signal.h b/newlib/libc/sys/jehanne/sys/signal.h index e6e1a772a..b44f60b54 100644 --- a/newlib/libc/sys/jehanne/sys/signal.h +++ b/newlib/libc/sys/jehanne/sys/signal.h @@ -98,7 +98,7 @@ typedef struct { */ typedef void (*_sig_func_ptr)(int); -typedef void (*_sigact_func_ptr)(int, siginfo_t *, void * ); +typedef void (*_sig_act_ptr)(int, siginfo_t *, void * ); struct sigaction { int sa_flags; /* Special flags to affect behavior of signal */ @@ -106,8 +106,8 @@ struct sigaction { /* during execution of signal-catching */ /* function. */ union { - _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ - _sigact_func_ptr _sigaction; + _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ + _sig_act_ptr _sigaction; } _signal_handlers; };