|
|
1.1 root 1: /* The Plum Hall Validation Suite for C
2: * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
3: * VERSION: 4
4: * DATE: 1993-01-01
5: * The "ANSI" mode of this suite corresponds to official ANSI C, X3.159-1989.
6: * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
7: * without specific permission from Plum Hall Inc.
8: */
9:
10:
11: #include "flags.h"
12: #ifndef SKIP47
13: #define LIB_TEST 1
14: /*
15: * 4.7 - Signal handling (Continued)
16: */
17: #include "defs.h"
18:
19: #if ANSI
20: #include <signal.h>
21: extern volatile sig_atomic_t flag_sig;
22: extern void (*prev_fn)(int);
23: typedef void (*PIF)(int);
24:
25: /* handler - record signal number in flag_sig */
26: static void handler(sig_no)
27: int sig_no;
28: {
29: flag_sig = sig_no;
30: }
31:
32: /* d4_7b - establish handler for sig_no */
33: PIF d4_7b(sig_no)
34: int sig_no;
35: {
36: flag_sig = 0;
37: prev_fn = signal(sig_no, handler);
38: return (prev_fn);
39: }
40:
41: #include <setjmp.h>
42: /* d4_7b_2 - a signal handler that longjmps out */
43: void d4_7b_2(sig_no)
44: int sig_no;
45: {
46: extern jmp_buf d7jbuf;
47:
48: longjmp(d7jbuf, sig_no); /* no-return is ok; see 3.6.6.4 */
49: }
50: #endif /* ANSI */
51:
52: #endif /* SKIP47 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.