diff options
author | Sigrid <ftrvxmtrx@gmail.com> | 2020-12-10 12:19:45 +0100 |
---|---|---|
committer | Sigrid <ftrvxmtrx@gmail.com> | 2020-12-10 12:19:45 +0100 |
commit | f5d1fce9b56143ac90ef0c1c4388ee502f44cfed (patch) | |
tree | 36365233128940169535bbca8af48cabdb8e9a3f | |
parent | d7120ecb77c22496678e2352ed3782b411215118 (diff) | |
download | plan9front-f5d1fce9b56143ac90ef0c1c4388ee502f44cfed.tar.xz |
vmx: clean up mksegment, memset only if segment existed (devsegment clears new ones)
-rw-r--r-- | sys/src/cmd/vmx/vmx.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/sys/src/cmd/vmx/vmx.c b/sys/src/cmd/vmx/vmx.c index c82ba0d1c..b3b73d845 100644 --- a/sys/src/cmd/vmx/vmx.c +++ b/sys/src/cmd/vmx/vmx.c @@ -320,9 +320,6 @@ gend(void *v) return (u8int *) v + gavail(v); } -void *tmp, *vgamem; -uvlong tmpoff, vgamemoff; - static void mksegment(char *sn) { @@ -355,8 +352,9 @@ mksegment(char *sn) close(fd); gmem = segattach(0, sn, nil, sz); if(gmem == (void*)-1) sysfatal("segattach: %r"); + }else{ + memset(gmem, 0, sz > 1<<24 ? 1<<24 : sz); } - memset(gmem, 0, sz > 1<<24 ? 1<<24 : sz); p = gmem; for(r = mmap; r != nil; r = r->next){ if(r->segname == nil) continue; @@ -365,14 +363,12 @@ mksegment(char *sn) p += r->end - r->start; r->ve = p; } - vgamem = p; - vgamemoff = p - gmem; - regptr(0xa0000)->segoff = vgamemoff; - regptr(0xa0000)->v = vgamem; + /* vga */ + r = regptr(0xa0000); + r->segoff = p - gmem; + r->v = p; p += 256*1024; - regptr(0xa0000)->ve = p; - tmp = p; - tmpoff = p - gmem; + r->ve = p; for(r = mmap; r != nil; r = r->next) modregion(r); |