138792Skarels /*
2*60986Sbostic * Copyright (c) 1989, 1993
3*60986Sbostic * The Regents of the University of California. All rights reserved.
438792Skarels *
542619Sbostic * %sccs.include.redist.c%
638792Skarels */
738792Skarels
838792Skarels #if defined(LIBC_SCCS) && !defined(lint)
9*60986Sbostic static char sccsid[] = "@(#)sigcompat.c 8.1 (Berkeley) 06/02/93";
1038792Skarels #endif /* LIBC_SCCS and not lint */
1138792Skarels
1238792Skarels #include <sys/param.h>
1346600Sbostic #include <signal.h>
1438792Skarels
sigvec(signo,sv,osv)1538792Skarels sigvec(signo, sv, osv)
1638792Skarels int signo;
1738792Skarels struct sigvec *sv, *osv;
1838792Skarels {
1938792Skarels int ret;
2038792Skarels
2138792Skarels if (sv)
2238792Skarels sv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */
2338792Skarels ret = sigaction(signo, (struct sigaction *)sv, (struct sigaction *)osv);
2438792Skarels if (ret == 0 && osv)
2538792Skarels osv->sv_flags ^= SV_INTERRUPT; /* !SA_INTERRUPT */
2638792Skarels return (ret);
2738792Skarels }
2838792Skarels
sigsetmask(mask)2938792Skarels sigsetmask(mask)
3038792Skarels int mask;
3138792Skarels {
3238792Skarels int omask, n;
3338792Skarels
3438792Skarels n = sigprocmask(SIG_SETMASK, (sigset_t *) &mask, (sigset_t *) &omask);
3538792Skarels if (n)
3638792Skarels return (n);
3738792Skarels return (omask);
3838792Skarels }
3938792Skarels
sigblock(mask)4038792Skarels sigblock(mask)
4138792Skarels int mask;
4238792Skarels {
4338792Skarels int omask, n;
4438792Skarels
4538792Skarels n = sigprocmask(SIG_BLOCK, (sigset_t *) &mask, (sigset_t *) &omask);
4638792Skarels if (n)
4738792Skarels return (n);
4838792Skarels return (omask);
4938792Skarels }
5038792Skarels
sigpause(mask)5138792Skarels sigpause(mask)
5238792Skarels int mask;
5338792Skarels {
5438792Skarels return (sigsuspend((sigset_t *)&mask));
5538792Skarels }
56