summaryrefslogtreecommitdiffstats
path: root/contrib/tcsh/tc.sig.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tcsh/tc.sig.c')
-rw-r--r--contrib/tcsh/tc.sig.c139
1 files changed, 0 insertions, 139 deletions
diff --git a/contrib/tcsh/tc.sig.c b/contrib/tcsh/tc.sig.c
deleted file mode 100644
index 343754f..0000000
--- a/contrib/tcsh/tc.sig.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* $Header: /p/tcsh/cvsroot/tcsh/tc.sig.c,v 3.36 2006/08/24 20:56:31 christos Exp $ */
-/*
- * tc.sig.c: Signal routine emulations
- */
-/*-
- * Copyright (c) 1980, 1991 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "sh.h"
-
-RCSID("$tcsh: tc.sig.c,v 3.36 2006/08/24 20:56:31 christos Exp $")
-
-#include "tc.wait.h"
-
-void
-sigset_interrupting(int sig, void (*fn) (int))
-{
- struct sigaction act;
-
- act.sa_handler = fn;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
- if (sigaction(sig, &act, NULL) == 0) {
- sigset_t set;
- sigemptyset(&set);
- sigaddset(&set, sig);
- sigprocmask(SIG_UNBLOCK, &set, NULL);
- }
-}
-
-static volatile sig_atomic_t alrmcatch_pending; /* = 0; */
-static volatile sig_atomic_t pchild_pending; /* = 0; */
-static volatile sig_atomic_t phup_pending; /* = 0; */
-static volatile sig_atomic_t pintr_pending; /* = 0; */
-int alrmcatch_disabled; /* = 0; */
-int phup_disabled; /* = 0; */
-int pchild_disabled; /* = 0; */
-int pintr_disabled; /* = 0; */
-
-void
-handle_pending_signals(void)
-{
- if (!phup_disabled && phup_pending) {
- phup_pending = 0;
- phup();
- }
- if (!pintr_disabled && pintr_pending) {
- pintr_pending = 0;
- pintr();
- }
- if (!pchild_disabled && pchild_pending) {
- pchild_pending = 0;
- pchild();
- }
- if (!alrmcatch_disabled && alrmcatch_pending) {
- alrmcatch_pending = 0;
- alrmcatch();
- }
-}
-
-void
-queue_alrmcatch(int sig)
-{
- USE(sig);
- alrmcatch_pending = 1;
-}
-
-void
-queue_pchild(int sig)
-{
- USE(sig);
- pchild_pending = 1;
-}
-
-void
-queue_phup(int sig)
-{
- USE(sig);
- phup_pending = 1;
-}
-
-void
-queue_pintr(int sig)
-{
- USE(sig);
- pintr_pending = 1;
-}
-
-void
-disabled_cleanup(void *xdisabled)
-{
- int *disabled;
-
- disabled = xdisabled;
- if (--*disabled == 0)
- handle_pending_signals();
-}
-
-void
-pintr_disabled_restore(void *xold)
-{
- int *old;
-
- old = xold;
- pintr_disabled = *old;
-}
-
-void
-pintr_push_enable(int *saved)
-{
- *saved = pintr_disabled;
- pintr_disabled = 0;
- cleanup_push(saved, pintr_disabled_restore);
- handle_pending_signals();
-}
OpenPOWER on IntegriCloud