30 lines
696 B
C
30 lines
696 B
C
#if !defined(lint) && defined(SCCSIDS)
|
|
static char sccsid[] = "@(#)siginterrupt.c 1.1 92/07/30 SMI"; /* from UCB 5.2 3/9/86 */
|
|
#endif
|
|
/*
|
|
* Copyright (c) 1985 Regents of the University of California.
|
|
* All rights reserved. The Berkeley software License Agreement
|
|
* specifies the terms and conditions for redistribution.
|
|
*/
|
|
|
|
#include <signal.h>
|
|
|
|
/*
|
|
* Set signal state to prevent restart of system calls
|
|
* after an instance of the indicated signal.
|
|
*/
|
|
siginterrupt(sig, flag)
|
|
int sig, flag;
|
|
{
|
|
struct sigvec sv;
|
|
int ret;
|
|
|
|
if ((ret = sigvec(sig, 0, &sv)) < 0)
|
|
return (ret);
|
|
if (flag)
|
|
sv.sv_flags |= SV_INTERRUPT;
|
|
else
|
|
sv.sv_flags &= ~SV_INTERRUPT;
|
|
return (sigvec(sig, &sv, 0));
|
|
}
|