xref: /csrg-svn/lib/libc/gen/siginterrupt.c (revision 18295)
1*18295Smckusick /*	siginterrupt.c	4.1	85/03/11	*/
2*18295Smckusick 
3*18295Smckusick #include <signal.h>
4*18295Smckusick 
5*18295Smckusick /*
6*18295Smckusick  * Set signal state to prevent restart of system calls
7*18295Smckusick  * after an instance of the indicated signal.
8*18295Smckusick  */
9*18295Smckusick siginterrupt(sig, flag)
10*18295Smckusick 	int sig, flag;
11*18295Smckusick {
12*18295Smckusick 	struct sigvec sv;
13*18295Smckusick 	int ret;
14*18295Smckusick 
15*18295Smckusick 	if ((ret = sigvec(sig, 0, &sv)) < 0)
16*18295Smckusick 		return (ret);
17*18295Smckusick 	if (flag)
18*18295Smckusick 		sv.sv_flags |= SV_INTERRUPT;
19*18295Smckusick 	else
20*18295Smckusick 		sv.sv_flags &= ~SV_INTERRUPT;
21*18295Smckusick 	return (sigvec(sig, &sv, 0));
22*18295Smckusick }
23