1*7dd7cddfSDavid du Colombier #include <u.h> 2*7dd7cddfSDavid du Colombier #include <libc.h> 3*7dd7cddfSDavid du Colombier #include <ureg.h> 4*7dd7cddfSDavid du Colombier 5*7dd7cddfSDavid du Colombier int __noterestore(void); 6*7dd7cddfSDavid du Colombier 7*7dd7cddfSDavid du Colombier void notejmp(void * vr,jmp_buf j,int ret)8*7dd7cddfSDavid du Colombiernotejmp(void *vr, jmp_buf j, int ret) 9*7dd7cddfSDavid du Colombier { 10*7dd7cddfSDavid du Colombier struct Ureg *r = vr; 11*7dd7cddfSDavid du Colombier 12*7dd7cddfSDavid du Colombier /* 13*7dd7cddfSDavid du Colombier * song and dance to get around the kernel smashing r3 in noted 14*7dd7cddfSDavid du Colombier */ 15*7dd7cddfSDavid du Colombier r->r4 = ret; 16*7dd7cddfSDavid du Colombier if(ret == 0) 17*7dd7cddfSDavid du Colombier r->r4 = 1; 18*7dd7cddfSDavid du Colombier r->r5 = j[JMPBUFPC] - JMPBUFDPC; 19*7dd7cddfSDavid du Colombier r->pc = (ulong)__noterestore; 20*7dd7cddfSDavid du Colombier r->sp = j[JMPBUFSP]; 21*7dd7cddfSDavid du Colombier noted(NCONT); 22*7dd7cddfSDavid du Colombier } 23