]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/omap/syscall.c
kernel: stop the practice of passing DMDIR to devir() perm argument
[plan9front.git] / sys / src / 9 / omap / syscall.c
index 0a39166906fe9d53e0bbfc26ae08f5e2f9bad965..882aef2cc82bb79e38dba823c70b59ebcaea2260 100644 (file)
@@ -78,6 +78,7 @@ noted(Ureg* cur, uintptr arg0)
                nf->arg0 = &nf->ureg;
                nf->ip = 0;
                cur->sp = PTR2UINT(nf);
+               cur->r0 = PTR2UINT(nf->arg0);
                break;
        default:
                up->lastnote.flag = NDebug;
@@ -104,7 +105,7 @@ notify(Ureg* ureg)
        NFrame *nf;
 
        if(up->procctl)
-               procctl(up);
+               procctl();
        if(up->nnote == 0)
                return 0;
 
@@ -163,6 +164,8 @@ notify(Ureg* ureg)
 
        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));
@@ -196,7 +199,7 @@ syscall(Ureg* ureg)
 
        if(up->procctl == Proc_tracesyscall){
                up->procctl = Proc_stopme;
-               procctl(up);
+               procctl();
        }
 
        scallnr = ureg->r0;
@@ -247,9 +250,9 @@ syscall(Ureg* ureg)
        ureg->r0 = ret;
 
        if(up->procctl == Proc_tracesyscall){
-               up->procctl = Proc_stopme;
                s = splhi();
-               procctl(up);
+               up->procctl = Proc_stopme;
+               procctl();
                splx(s);
        }