xref: /csrg-svn/lib/libc/gen/x.c (revision 60528)
1*60528Smckusick /*
2*60528Smckusick  * Copyright (c) 1993 Regents of the University of California.
3*60528Smckusick  * All rights reserved.
4*60528Smckusick  *
5*60528Smckusick  * %sccs.include.redist.c%
6*60528Smckusick  */
7*60528Smckusick 
8*60528Smckusick #if defined(LIBC_SCCS) && !defined(lint)
9*60528Smckusick static char sccsid[] = "@(#)x.c	5.1 (Berkeley) 05/28/93";
10*60528Smckusick #endif /* LIBC_SCCS and not lint */
11*60528Smckusick 
12*60528Smckusick #include <setjmp.h>
13*60528Smckusick 
14*60528Smckusick int
15*60528Smckusick sigsetjmp(jmpbuf, savemask)
16*60528Smckusick 	sigjmp_buf	jmpbuf;
17*60528Smckusick 	int		savemask;
18*60528Smckusick {
19*60528Smckusick 
20*60528Smckusick 	jmpbuf[_JBLEN] = savemask;
21*60528Smckusick 	if (savemask)
22*60528Smckusick 		return (setjmp(jmpbuf));
23*60528Smckusick 	return (_setjmp(jmpbuf));
24*60528Smckusick }
25*60528Smckusick 
26*60528Smckusick void
27*60528Smckusick siglongjmp(jmpbuf, retval)
28*60528Smckusick 	sigjmp_buf	jmpbuf;
29*60528Smckusick 	int		retval;
30*60528Smckusick {
31*60528Smckusick 
32*60528Smckusick 	if (jmpbuf[_JBLEN])
33*60528Smckusick 		return (longjmp(jmpbuf, retval));
34*60528Smckusick 	return (_longjmp(jmpbuf, retval));
35*60528Smckusick }
36