138792Skarels /* 238792Skarels * Copyright (c) 1989 The Regents of the University of California. 338792Skarels * All rights reserved. 438792Skarels * 542619Sbostic * %sccs.include.redist.c% 638792Skarels */ 738792Skarels 838792Skarels #if defined(LIBC_SCCS) && !defined(lint) 9*46600Sbostic static char sccsid[] = "@(#)sigcompat.c 5.3 (Berkeley) 02/24/91"; 1038792Skarels #endif /* LIBC_SCCS and not lint */ 1138792Skarels 1238792Skarels #include <sys/param.h> 13*46600Sbostic #include <signal.h> 1438792Skarels 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 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 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 5138792Skarels sigpause(mask) 5238792Skarels int mask; 5338792Skarels { 5438792Skarels return (sigsuspend((sigset_t *)&mask)); 5538792Skarels } 56