xref: /original-bsd/lib/libc/gen/x.c (revision bac379f5)
147dde677Smckusick /*
2*bac379f5Sbostic  * Copyright (c) 1993
3*bac379f5Sbostic  *	The Regents of the University of California.  All rights reserved.
447dde677Smckusick  *
547dde677Smckusick  * %sccs.include.redist.c%
647dde677Smckusick  */
747dde677Smckusick 
847dde677Smckusick #if defined(LIBC_SCCS) && !defined(lint)
9*bac379f5Sbostic static char sccsid[] = "@(#)x.c	8.1 (Berkeley) 06/04/93";
1047dde677Smckusick #endif /* LIBC_SCCS and not lint */
1147dde677Smckusick 
1247dde677Smckusick #include <setjmp.h>
1347dde677Smckusick 
1447dde677Smckusick int
sigsetjmp(jmpbuf,savemask)1547dde677Smckusick sigsetjmp(jmpbuf, savemask)
1647dde677Smckusick 	sigjmp_buf	jmpbuf;
1747dde677Smckusick 	int		savemask;
1847dde677Smckusick {
1947dde677Smckusick 
2047dde677Smckusick 	jmpbuf[_JBLEN] = savemask;
2147dde677Smckusick 	if (savemask)
2247dde677Smckusick 		return (setjmp(jmpbuf));
2347dde677Smckusick 	return (_setjmp(jmpbuf));
2447dde677Smckusick }
2547dde677Smckusick 
2647dde677Smckusick void
siglongjmp(jmpbuf,retval)2747dde677Smckusick siglongjmp(jmpbuf, retval)
2847dde677Smckusick 	sigjmp_buf	jmpbuf;
2947dde677Smckusick 	int		retval;
3047dde677Smckusick {
3147dde677Smckusick 
3247dde677Smckusick 	if (jmpbuf[_JBLEN])
3347dde677Smckusick 		return (longjmp(jmpbuf, retval));
3447dde677Smckusick 	return (_longjmp(jmpbuf, retval));
3547dde677Smckusick }
36