.TH SETJMP 3
.SH NAME
setjmp, longjmp, notejmp \- non-local goto
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.ta \w'\fLvoid 'u
.B
int	setjmp(jmp_buf env)
.PP
.B
void	longjmp(jmp_buf env, int val)
.PP
.B
void	notejmp(void *uregs, jmp_buf env, int val)
.SH DESCRIPTION
These routines are useful for dealing with errors
and interrupts encountered in
a low-level subroutine of a program.
.PP
.I Setjmp
saves its stack environment in
.I env
for later use by
.IR longjmp .
It returns value 0.
.PP
.I Longjmp
restores the environment saved by the last call of
.IR setjmp .
It then causes execution to
continue as if the call of
.I setjmp
had just returned with value
.IR val .
The invoker of
.I setjmp
must not itself have returned in the interim.
All accessible data have values as of the time
.I longjmp
was called.
.PP
.I Notejmp
is the same as
.I longjmp
except that it is to be called from within a note handler (see
.IR notify (3)).
The
.I uregs
argument should be the first argument passed to the note handler.
.PP
.I Setjmp
and
.I longjmp
can also be used to switch stacks.
Defined in
.B </$objtype/u.h>
are several macros that can be used to build
.B jmp_bufs
by hand.  The following code establishes a
.B jmp_buf
.i label
that may be called by
.I longjmp
to begin execution in a function
.BR f
with 1024 bytes of stack:
.IP
.EX
#include <u.h>
#include <libc.h>

jmp_buf label;
#define NSTACK 1024
char stack[NSTACK];

void
setlabel(void)
{
	label[JMPBUFPC] = ((ulong)f+JMPBUFDPC);
	/* -2 leaves room for old pc and new pc in frame */
	label[JMPBUFSP =
	        (ulong)(&stack[NSTACK-2*sizeof(ulong*)]);
}
.EE
.SH SOURCE
.B /usr/local/plan9/src/lib9/jmp.c
.SH SEE ALSO
.IR notify (3)
.SH BUGS
.PP
.I Notejmp
cannot recover from an address trap or bus error (page fault) on the 680x0
architectures.
