nf->arg0 = &nf->ureg;
nf->ip = 0;
cur->sp = PTR2UINT(nf);
+ cur->r0 = PTR2UINT(nf->arg0);
break;
default:
up->lastnote.flag = NDebug;
NFrame *nf;
if(up->procctl)
- procctl(up);
+ procctl();
if(up->nnote == 0)
return 0;
ureg->sp = sp;
ureg->pc = PTR2UINT(up->notify);
+ ureg->r0 = PTR2UINT(nf->arg0);
+
up->notified = 1;
up->nnote--;
memmove(&up->lastnote, &up->note[0], sizeof(Note));
syscallfmt(scallnr, ureg->pc, (va_list)up->s.args);
s = splhi();
up->procctl = Proc_stopme;
- procctl(up);
+ procctl();
splx(s);
startns = todget(nil);
}
sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns);
s = splhi();
up->procctl = Proc_stopme;
- procctl(up);
+ procctl();
splx(s);
}
up->psstate = 0;
if(scallnr == NOTED)
- noted(ureg, up->s.args[0]);
+ noted(ureg, *((ulong*)up->s.args));
splhi();
if(scallnr != RFORK && (up->procctl || up->nnote))