aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/sigaction.c83
1 files changed, 0 insertions, 83 deletions
diff --git a/sysdeps/unix/sysv/sigaction.c b/sysdeps/unix/sysv/sigaction.c
deleted file mode 100644
index 285c0331a3..0000000000
--- a/sysdeps/unix/sysv/sigaction.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 1992,1994,1995,1996,1997,2002 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <errno.h>
-#include <stddef.h>
-#include <signal.h>
-
-
-/* If ACT is not NULL, change the action for SIG to *ACT.
- If OACT is not NULL, put the old action for SIG in *OACT. */
-int
-__sigaction (sig, act, oact)
- int sig;
- const struct sigaction *act;
- struct sigaction *oact;
-{
- sighandler_t handler;
- int save;
-
- if (sig <= 0 || sig >= NSIG)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (act == NULL)
- {
- if (oact == NULL)
- return 0;
- /* Race condition, but this is the only way to do it. */
- handler = signal (sig, SIG_IGN);
- if (handler == SIG_ERR)
- return -1;
- save = errno;
- (void) signal (sig, handler);
- __set_errno (save);
- }
- else
- {
- int i;
-
- if (act->sa_flags != 0)
- {
- unimplemented:
- __set_errno (ENOSYS);
- return -1;
- }
-
- for (i = 1; i < NSIG; ++i)
- if (__sigismember (&act->sa_mask, i))
- goto unimplemented;
-
- handler = signal (sig, act->sa_handler);
- if (handler == SIG_ERR)
- return -1;
- }
-
- if (oact != NULL)
- {
- oact->sa_handler = handler;
- __sigemptyset (&oact->sa_mask);
- oact->sa_flags = 0;
- }
-
- return 0;
-}
-libc_hidden_def (__sigaction)
-weak_alias (__sigaction, sigaction)