4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 1987 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
27 /* Copyright (c) 1984 AT&T */
28 /* All Rights Reserved */
30 #pragma ident "%Z%%M% %I% %E% SMI" /* from S5R2 1.2 */
34 * ssignal, gsignal: software signals
38 /* Highest allowable user signal number */
41 /* Lowest allowable signal number (lowest user number is always 1) */
44 /* Table of signal values */
45 typedef int (*sigfunc
)();
53 ssigp
= (sigfunc
*)calloc(MAXSIG
-MINSIG
+1, sizeof (sigfunc
));
59 register int sig
, (*fn
)();
61 register int (*savefn
)();
62 register sigfunc
*sp
= _ssig();
65 return ((int (*)())SIG_DFL
);
66 if (sig
>= MINSIG
&& sig
<= MAXSIG
) {
67 savefn
= sp
[sig
-MINSIG
];
70 savefn
= (int (*)())SIG_DFL
;
79 register int (*sigfn
)();
80 register sigfunc
*sp
= _ssig();
84 if (sig
< MINSIG
|| sig
> MAXSIG
||
85 (sigfn
= sp
[sig
-MINSIG
]) == (int (*)())SIG_DFL
)
87 else if (sigfn
== (int (*)())SIG_IGN
)
90 sp
[sig
-MINSIG
] = (int (*)())SIG_DFL
;
91 return ((*sigfn
)(sig
));