summaryrefslogtreecommitdiff
path: root/usr/src/lib/libbc/libc/gen/sys5/sighold.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libbc/libc/gen/sys5/sighold.c')
-rw-r--r--usr/src/lib/libbc/libc/gen/sys5/sighold.c118
1 files changed, 0 insertions, 118 deletions
diff --git a/usr/src/lib/libbc/libc/gen/sys5/sighold.c b/usr/src/lib/libbc/libc/gen/sys5/sighold.c
deleted file mode 100644
index d0b304dd72..0000000000
--- a/usr/src/lib/libbc/libc/gen/sys5/sighold.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-/*
- * Copyright (c) 1987 Sun Microsystems, Inc.
- */
-
-#include <errno.h>
-#include <sys/signal.h>
-
-int
-sighold(sig)
- int sig;
-{
-
- if (sig == SIGKILL) {
- errno = EINVAL;
- return (-1); /* sigblock quietly disallows SIGKILL */
- }
- (void) sigblock(sigmask(sig));
- return (0); /* SVID specifies 0 return on success */
-}
-
-int
-sigrelse(sig)
- int sig;
-{
-
- if (sig == SIGKILL) {
- errno = EINVAL;
- return (-1); /* sigsetmask quietly disallows SIGKILL */
- }
- (void) sigsetmask(sigblock(0) & ~sigmask(sig));
- return (0); /* SVID specifies 0 return on success */
-}
-
-int
-sigignore(sig)
- int sig;
-{
- struct sigvec vec;
-
- if (sig == SIGKILL) {
- errno = EINVAL;
- return (-1); /* sigsetmask quietly disallows SIGKILL */
- }
- if (sigvec(sig, (struct sigvec *)0, &vec) < 0)
- return (-1);
- vec.sv_handler = SIG_IGN;
- if (sigvec(sig, &vec, (struct sigvec *)0) < 0)
- return (-1);
- (void) sigsetmask(sigblock(0) & ~sigmask(sig));
- return (0); /* SVID specifies 0 return on success */
-}
-
-void (*
-sigset(sig, func))()
- int sig;
- void (*func)();
-{
- struct sigvec newvec;
- int newmask;
- struct sigvec oldvec;
- int oldmask;
-
- if (sigvec(sig, (struct sigvec *)0, &oldvec) < 0)
- return (SIG_ERR);
- oldmask = sigblock(0);
- newvec = oldvec;
- newvec.sv_flags |= SV_INTERRUPT;
- newvec.sv_flags &= ~SV_RESETHAND;
- newvec.sv_mask = 0;
- newmask = oldmask;
- if (func == SIG_HOLD) {
- /*
- * Signal will be held. Set the bit for that
- * signal in the signal mask. Leave the action
- * alone.
- */
- newmask |= sigmask(sig);
- } else {
- /*
- * Signal will not be held. Clear the bit
- * for it in the signal mask. Set the action
- * for it.
- */
- newmask &= ~sigmask(sig);
- newvec.sv_handler = func;
- }
- if (sigvec(sig, &newvec, (struct sigvec *)0) < 0)
- return (SIG_ERR);
- if (sigsetmask(newmask) < 0)
- return (SIG_ERR);
- if (oldmask & sigmask(sig))
- return (SIG_HOLD); /* signal was held */
- else
- return (oldvec.sv_handler);
-}