From fae8e7e498eadf7b859b49a5c6fe103ca447838b Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Thu, 21 Apr 2011 23:21:29 +0200 Subject: sigsuspend.c: add cancellation support independently of rt_sigsuspend signal.h: add __SYSCALL_SIGSET_T_SIZE, since kernel sigset_t is different on mips and use that instead of _NSIG / 8 Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- include/signal.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/signal.h') diff --git a/include/signal.h b/include/signal.h index 7ff2c9fbc..09f06f95b 100644 --- a/include/signal.h +++ b/include/signal.h @@ -299,7 +299,10 @@ libc_hidden_proto(sigprocmask) This function is a cancellation point and therefore not marked with __THROW. */ extern int sigsuspend (__const sigset_t *__set) __nonnull ((1)); +#ifdef _LIBC +extern __typeof(sigsuspend) __sigsuspend_nocancel attribute_hidden; libc_hidden_proto(sigsuspend) +#endif /* Get and/or set the action for signal SIG. */ extern int sigaction (int __sig, __const struct sigaction *__restrict __act, @@ -325,6 +328,16 @@ extern int __syscall_rt_sigaction(int, __const struct sigaction *, ; extern __typeof(sigaction) __libc_sigaction; libc_hidden_proto(sigaction) + +# ifdef __mips__ +# define _KERNEL_NSIG_WORDS (_NSIG / _MIPS_SZLONG) +typedef struct { + unsigned long sig[_KERNEL_NSIG_WORDS]; +} kernel_sigset_t; +# define __SYSCALL_SIGSET_T_SIZE (sizeof(kernel_sigset_t)) +# else +# define __SYSCALL_SIGSET_T_SIZE (_NSIG / 8) +# endif #endif /* Put in SET all signals that are blocked and waiting to be delivered. */ -- cgit v1.2.3