diff options
Diffstat (limited to 'libc/signal')
-rw-r--r-- | libc/signal/Makefile | 2 | ||||
-rw-r--r-- | libc/signal/sigaction.c | 2 | ||||
-rw-r--r-- | libc/signal/sigsuspend.c | 49 |
3 files changed, 2 insertions, 51 deletions
diff --git a/libc/signal/Makefile b/libc/signal/Makefile index c58717547..c3e7029af 100644 --- a/libc/signal/Makefile +++ b/libc/signal/Makefile @@ -28,7 +28,7 @@ CSRC= allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \ sigblock.c sigdelset.c sigempty.c sigfillset.c siggetmask.c sighold.c \ sigignore.c sigintr.c sigisempty.c sigismem.c sigjmp.c signal.c \ sigorset.c sigpause.c sigrelse.c sigset.c sigsetmask.c sigsetops.c \ - sigsuspend.c sysv_signal.c + sysv_signal.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(COBJS) diff --git a/libc/signal/sigaction.c b/libc/signal/sigaction.c index 58cf57b75..849abc745 100644 --- a/libc/signal/sigaction.c +++ b/libc/signal/sigaction.c @@ -160,7 +160,7 @@ int sigaction (int sig, const struct sigaction *act, struct sigaction *oact) k_sigact.sa_restorer = act->sa_restorer; # endif } - result = sigaction(sig, act ? __ptrvalue (&k_sigact) : NULL, + result = __sigaction(sig, act ? __ptrvalue (&k_sigact) : NULL, oact ? __ptrvalue (&k_osigact) : NULL); if (oact && result >= 0) { diff --git a/libc/signal/sigsuspend.c b/libc/signal/sigsuspend.c deleted file mode 100644 index ad6e0fc8e..000000000 --- a/libc/signal/sigsuspend.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <errno.h> -#include <signal.h> -#include <stddef.h> -#include <unistd.h> - - -/* Change the set of blocked signals to SET, - wait until a signal arrives, and restore the set of blocked signals. */ -int __sigsuspend (const sigset_t *set) -{ - sigset_t oset; - int save; - - if (set == NULL) - { - __set_errno (EINVAL); - return -1; - } - - if (sigprocmask (SIG_SETMASK, set, &oset) < 0) - return -1; - - (void) pause(); - save = errno; - - if (sigprocmask (SIG_SETMASK, &oset, (sigset_t *) NULL) < 0) - return -1; - - __set_errno (save); - return -1; -} |