xref: /csrg-svn/lib/libc/gen/x.c (revision 61111)
160528Smckusick /*
2*61111Sbostic  * Copyright (c) 1993
3*61111Sbostic  *	The Regents of the University of California.  All rights reserved.
460528Smckusick  *
560528Smckusick  * %sccs.include.redist.c%
660528Smckusick  */
760528Smckusick 
860528Smckusick #if defined(LIBC_SCCS) && !defined(lint)
9*61111Sbostic static char sccsid[] = "@(#)x.c	8.1 (Berkeley) 06/04/93";
1060528Smckusick #endif /* LIBC_SCCS and not lint */
1160528Smckusick 
1260528Smckusick #include <setjmp.h>
1360528Smckusick 
1460528Smckusick int
sigsetjmp(jmpbuf,savemask)1560528Smckusick sigsetjmp(jmpbuf, savemask)
1660528Smckusick 	sigjmp_buf	jmpbuf;
1760528Smckusick 	int		savemask;
1860528Smckusick {
1960528Smckusick 
2060528Smckusick 	jmpbuf[_JBLEN] = savemask;
2160528Smckusick 	if (savemask)
2260528Smckusick 		return (setjmp(jmpbuf));
2360528Smckusick 	return (_setjmp(jmpbuf));
2460528Smckusick }
2560528Smckusick 
2660528Smckusick void
siglongjmp(jmpbuf,retval)2760528Smckusick siglongjmp(jmpbuf, retval)
2860528Smckusick 	sigjmp_buf	jmpbuf;
2960528Smckusick 	int		retval;
3060528Smckusick {
3160528Smckusick 
3260528Smckusick 	if (jmpbuf[_JBLEN])
3360528Smckusick 		return (longjmp(jmpbuf, retval));
3460528Smckusick 	return (_longjmp(jmpbuf, retval));
3560528Smckusick }
36