59 is unused; 61 is ECONNREFUSED not EREFUSED; add Berkeley header
[unix-history] / usr / src / lib / libc / gen / siginterrupt.c
CommitLineData
b8f253e8 1/*
84cb68a1
KB
2 * Copyright (c) 1988 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley. The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
b8f253e8
KM
16 */
17
2ce81398 18#if defined(LIBC_SCCS) && !defined(lint)
84cb68a1
KB
19static char sccsid[] = "@(#)siginterrupt.c 5.3 (Berkeley) %G%";
20#endif /* LIBC_SCCS and not lint */
6fa13af1
KM
21
22#include <signal.h>
23
24/*
25 * Set signal state to prevent restart of system calls
26 * after an instance of the indicated signal.
27 */
28siginterrupt(sig, flag)
29 int sig, flag;
30{
31 struct sigvec sv;
32 int ret;
33
84cb68a1 34 if ((ret = sigvec(sig, (struct sigvec *)0, &sv)) < 0)
6fa13af1
KM
35 return (ret);
36 if (flag)
37 sv.sv_flags |= SV_INTERRUPT;
38 else
39 sv.sv_flags &= ~SV_INTERRUPT;
84cb68a1 40 return (sigvec(sig, &sv, (struct sigvec *)0));
6fa13af1 41}