add regex compatibility routines
[unix-history] / usr / src / lib / libc / compat-43 / sigcompat.c
CommitLineData
b1a3411a
MK
1/*
2 * Copyright (c) 1989 The Regents of the University of California.
3 * All rights reserved.
4 *
269a7923 5 * %sccs.include.redist.c%
b1a3411a
MK
6 */
7
8#if defined(LIBC_SCCS) && !defined(lint)
3d26fdf0 9static char sccsid[] = "@(#)sigcompat.c 5.3 (Berkeley) %G%";
b1a3411a
MK
10#endif /* LIBC_SCCS and not lint */
11
12#include <sys/param.h>
3d26fdf0 13#include <signal.h>
b1a3411a
MK
14
15sigvec(signo, sv, osv)
16 int signo;
17 struct sigvec *sv, *osv;
18{
19 int ret;
20
21 if (sv)
22 sv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */
23 ret = sigaction(signo, (struct sigaction *)sv, (struct sigaction *)osv);
24 if (ret == 0 && osv)
25 osv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */
26 return (ret);
27}
28
29sigsetmask(mask)
30 int mask;
31{
32 int omask, n;
33
34 n = sigprocmask(SIG_SETMASK, (sigset_t *) &mask, (sigset_t *) &omask);
35 if (n)
36 return (n);
37 return (omask);
38}
39
40sigblock(mask)
41 int mask;
42{
43 int omask, n;
44
45 n = sigprocmask(SIG_BLOCK, (sigset_t *) &mask, (sigset_t *) &omask);
46 if (n)
47 return (n);
48 return (omask);
49}
50
51sigpause(mask)
52 int mask;
53{
b1a3411a
MK
54 return (sigsuspend((sigset_t *)&mask));
55}