1*8ccd4a63SDavid du Colombier #include "u.h" 2*8ccd4a63SDavid du Colombier #include "lib.h" 3*8ccd4a63SDavid du Colombier #include "dat.h" 4*8ccd4a63SDavid du Colombier #include "fns.h" 5*8ccd4a63SDavid du Colombier #include "error.h" 6*8ccd4a63SDavid du Colombier 7*8ccd4a63SDavid du Colombier Label* pwaserror(void)8*8ccd4a63SDavid du Colombierpwaserror(void) 9*8ccd4a63SDavid du Colombier { 10*8ccd4a63SDavid du Colombier if(up->nerrlab == NERR) 11*8ccd4a63SDavid du Colombier panic("error stack overflow"); 12*8ccd4a63SDavid du Colombier return &up->errlab[up->nerrlab++]; 13*8ccd4a63SDavid du Colombier } 14*8ccd4a63SDavid du Colombier 15*8ccd4a63SDavid du Colombier void nexterror(void)16*8ccd4a63SDavid du Colombiernexterror(void) 17*8ccd4a63SDavid du Colombier { 18*8ccd4a63SDavid du Colombier longjmp(up->errlab[--up->nerrlab].buf, 1); 19*8ccd4a63SDavid du Colombier } 20*8ccd4a63SDavid du Colombier 21*8ccd4a63SDavid du Colombier void error(char * e)22*8ccd4a63SDavid du Colombiererror(char *e) 23*8ccd4a63SDavid du Colombier { 24*8ccd4a63SDavid du Colombier kstrcpy(up->errstr, e, ERRMAX); 25*8ccd4a63SDavid du Colombier setjmp(up->errlab[NERR-1].buf); 26*8ccd4a63SDavid du Colombier nexterror(); 27*8ccd4a63SDavid du Colombier } 28