xref: /plan9/sys/src/libc/arm/notejmp.c (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1*80ee5cbfSDavid du Colombier #include <u.h>
2*80ee5cbfSDavid du Colombier #include <libc.h>
3*80ee5cbfSDavid du Colombier #include <ureg.h>
4*80ee5cbfSDavid du Colombier 
5*80ee5cbfSDavid du Colombier void
notejmp(void * vr,jmp_buf j,int ret)6*80ee5cbfSDavid du Colombier notejmp(void *vr, jmp_buf j, int ret)
7*80ee5cbfSDavid du Colombier {
8*80ee5cbfSDavid du Colombier 	struct Ureg *r = vr;
9*80ee5cbfSDavid du Colombier 
10*80ee5cbfSDavid du Colombier 	r->r0 = ret;
11*80ee5cbfSDavid du Colombier 	if(ret == 0)
12*80ee5cbfSDavid du Colombier 		r->r0 = 1;
13*80ee5cbfSDavid du Colombier 	r->pc = j[JMPBUFPC];
14*80ee5cbfSDavid du Colombier 	r->r13 = j[JMPBUFSP];
15*80ee5cbfSDavid du Colombier 	noted(NCONT);
16*80ee5cbfSDavid du Colombier }
17