xref: /plan9-contrib/sys/src/libc/mips/notejmp.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include <u.h>
2 #include <libc.h>
3 #include <ureg.h>
4 
5 int	__noterestore(void);
6 
7 void
8 notejmp(void *vr, jmp_buf j, int ret)
9 {
10 	struct Ureg *r = vr;
11 
12 	/*
13 	 * song and dance to get around the kernel smashing r1 in noted
14 	 */
15 	r->r2 = ret;
16 	if(ret == 0)
17 		r->r2 = 1;
18 	r->r3 = j[JMPBUFPC];
19 	r->pc = (ulong)__noterestore;
20 	r->sp = j[JMPBUFSP];
21 	noted(NCONT);
22 }
23