diff options
author | aiju <devnull@localhost> | 2017-06-21 22:18:26 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2017-06-21 22:18:26 +0000 |
commit | 5c0bff4ba204cfad7aedb8c1c20f1c29265dcb01 (patch) | |
tree | 055fa5e6319b94d0f2992480a0e6ed0271179fb6 /sys/src/cmd/vmx/vmx.c | |
parent | 37b9ab5a043e45a68979632c177e11af7a439027 (diff) |
vmx(1): add support for (so far) crude 9p debugging fs; add gdb stub; clean up linux gdt code
Diffstat (limited to 'sys/src/cmd/vmx/vmx.c')
-rw-r--r-- | sys/src/cmd/vmx/vmx.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/src/cmd/vmx/vmx.c b/sys/src/cmd/vmx/vmx.c index 902405c8a..481424935 100644 --- a/sys/src/cmd/vmx/vmx.c +++ b/sys/src/cmd/vmx/vmx.c @@ -9,7 +9,7 @@ Region *mmap; int ctlfd, regsfd, waitfd; Channel *waitch, *sleepch, *notifch; enum { MSEC = 1000*1000, MinSleep = MSEC, SleeperPoll = 2000*MSEC } ; -int getexit, halt; +int getexit, state; typedef struct VmxNotif VmxNotif; struct VmxNotif { void (*f)(void *); @@ -440,7 +440,7 @@ runloop(void) notif.f(notif.arg); break; } - if(getexit == 0 && halt == 0) + if(getexit == 0 && state == VMRUNNING) launch(); } } @@ -463,6 +463,7 @@ extern void pciinit(void); extern void pcibusmap(void); extern void cpuidinit(void); extern void vgafbparse(char *); +extern void init9p(char *); int cmdlinen; char **cmdlinev; @@ -494,7 +495,7 @@ usage(void) for(p = blanks; *p != 0; p++) *p = ' '; fprint(2, "usage: %s [ -M mem ] [ -c com1rd[,com1wr] ] [ -C com2rd[,com2r] ] [ -n nic ]\n", argv0); - fprint(2, " %s [ -d blockfile ] [ -m module ] [ -v vga ] kernel [ args ... ]\n", blanks); + fprint(2, " %s [ -d blockfile ] [ -m module ] [ -v vga ] [ -9 srv ] kernel [ args ... ]\n", blanks); threadexitsall("usage"); } @@ -506,6 +507,7 @@ threadmain(int argc, char **argv) static char *edevaux[nelem(edev)]; static int edevn; static uvlong gmemsz = 64*1024*1024; + static char *srvname; extern uintptr fbsz, fbaddr; int i; @@ -546,6 +548,10 @@ threadmain(int argc, char **argv) case 'v': vgafbparse(EARGF(usage())); break; + case '9': + if(srvname != nil) usage(); + srvname = EARGF(usage()); + break; default: usage(); } ARGEND; @@ -578,6 +584,8 @@ threadmain(int argc, char **argv) sysfatal("%s: %r", edevt[i]); pcibusmap(); + + if(srvname != nil) init9p(srvname); runloop(); exits(nil); } |