vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

commit 606410aaa55836f9109a81e774c7455c49bedb0e
parent 8c22637efa007aefa3b6e5767cfeb27ebf6ff881
Author: Jesus Galan Lopez (yiyus) <yiyu.jgl@gmail.com>
Date:   Sun,  5 Sep 2010 16:48:05 +0200

merged with rminnich

Diffstat:
.hgtags | 1+
src/9vx/a/tos.h | 21+++++++++++++++++++++
src/9vx/nogui.c | 2+-
src/9vx/sched.c | 1-
src/9vx/stub.c | 16++++++++++++++++
5 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/.hgtags b/.hgtags @@ -3,3 +3,4 @@ af0961db1f4bef6f32f0d63a814bab7f6401ce7c libvx32-0.12 612174f4f4ce4ab246d0dabfab547c46507616fc vx32-20100612 a5c929c5aaed4737be2e7fc5536f35f796f3d95e vx32-20100620 +17483d0086b1cd00448ef9061409edebc416a770 vx32-20100622 diff --git a/src/9vx/a/tos.h b/src/9vx/a/tos.h @@ -1,6 +1,7 @@ typedef struct Tos Tos; typedef struct Plink Plink; +#if 0 struct Tos { struct /* Per process profiling */ @@ -19,5 +20,25 @@ struct Tos { ulong clock; /* top of stack is here */ }; +#else + +struct Tos { + struct /* Per process profiling */ + { + uint32_t pp; /* known to be 0(ptr) */ + uint32_t next; /* known to be 4(ptr) */ + uint32_t last; + uint32_t first; + uint32_t pid; + uint32_t what; + } prof; + uvlong cyclefreq; /* cycle clock frequency if there is one, 0 otherwise */ + vlong kcycles; /* cycles spent in kernel */ + vlong pcycles; /* cycles spent in process (kernel + user) */ + uint32_t pid; /* might as well put the pid here */ + uint32_t clock; + /* top of stack is here */ +}; +#endif extern Tos *_tos; diff --git a/src/9vx/nogui.c b/src/9vx/nogui.c @@ -77,7 +77,7 @@ unloadmemimage(Memimage *i, Rectangle r, uchar *data, int ndata) return _unloadmemimage(i, r, data, ndata); } -ulong +uint32 pixelbits(Memimage *m, Point p) { return _pixelbits(m, p); diff --git a/src/9vx/sched.c b/src/9vx/sched.c @@ -162,7 +162,6 @@ runproc(void) * To avoid the "double sleep" bug * Full history begins at: * http://9fans.net/archive/2010/06/71 - * Who knows where it will end */ while (p->mach) sched_yield(); diff --git a/src/9vx/stub.c b/src/9vx/stub.c @@ -508,6 +508,21 @@ iprint(char *fmt, ...) return n; } +void +talktome(void) +{ + int i; + static char cmd[512]; + while (fgets(cmd, sizeof(cmd), stdin)) { + if (! strcmp(cmd, "mach")) { + for(i = 0; i < MAXMACH; i++) { + fprintf(stderr, "%d ", MACHP(i)->splpc); + } + + } + } + fprintf(stderr, "We're done talking\n"); +} /* * Panics go to standard error. */ @@ -537,6 +552,7 @@ panic(char *fmt, ...) microdelay(1000000); #else fprint(2, "aborting, to dump core.\n"); + talktome(); abort(); #endif }