works for *one* time. Then deadlocks! - vx32 - Local 9vx git repository for patches.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 82fbd24951444ca2692411654eccf04780426418
 (DIR) parent 0abfe5b9b1e1ce2ac416e767fbaf12f4d0c3cc50
 (HTM) Author: rminnich@nox.hsd1.ca.comcast.net <none@none>
       Date:   Tue, 20 Apr 2010 06:36:41 -0700
       
       works for *one* time. Then deadlocks!
       
       Diffstat:
         src/9vx/trap.c                      |      11 +++++++----
       
       1 file changed, 7 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/src/9vx/trap.c b/src/9vx/trap.c
       @@ -237,9 +237,9 @@ syscallprint(Ureg *ureg)
                /* accomodate process-private system calls */
        
                if(syscallno > nelem(sysctab))
       -                fmtprint(&fmt, " %d %#x", syscallno, sp[0]);
       +                fmtprint(&fmt, " %d %#x ", syscallno, sp[0]);
                else
       -                fmtprint(&fmt, "%s %#ux", sysctab[syscallno], sp[0]);
       +                fmtprint(&fmt, "%s %#ux ", sysctab[syscallno], sp[0]);
        
                if(up->syscalltrace)
                        free(up->syscalltrace);
       @@ -271,10 +271,12 @@ syscallprint(Ureg *ureg)
                case EXEC: 
                        fmtuserstring(&fmt, sp[1], "");
                        argv = uvalidaddr(sp[2], 1, 0);
       +/*
                        for(i = 0; argv[i]; i++) {
                                fmtprint(&fmt, " ");
                                fmtuserstring(&fmt, argv[i], "");
                        }
       + */
                        break;
                case EXITS:
                        fmtuserstring(&fmt, sp[1], "");
       @@ -397,7 +399,7 @@ syscallprint(Ureg *ureg)
                        fmtuserstring(&fmt, sp[5], "");
                        break;
                case AWAIT:
       -                fmtprint(&fmt, "%08ux %#ux", sp[1], sp[2]);
       +                fmtprint(&fmt, "%#ux", sp[1]);
                        break;
                case _READ: 
                case PREAD:
       @@ -490,7 +492,8 @@ retprint(Ureg *ureg, int syscallno, uvlong start, uvlong stop)
                break;
                case AWAIT:
                        if(ureg->ax > 0){
       -                        fmtuserstring(&fmt, up->s.args[1], "");
       +                        fmtuserstring(&fmt, up->s.args[0], " ");
       +                        fmtprint(&fmt, "%d", up->s.args[1]);
                        } else {
                                fmtprint(&fmt, "\"\" %d", up->s.args[1]);
                        }