ref: a9105c84d1134fcf47d1fe05b7bdeb62192a3538
parent: 6c00c9b0876ee6d96aa76e11854d0ff8ed8c4dbe
author: Sigrid <ftrvxmtrx@gmail.com>
date: Thu Dec 10 07:19:45 EST 2020
vmx: clean up mksegment, memset only if segment existed (devsegment clears new ones)
--- a/sys/src/cmd/vmx/vmx.c
+++ b/sys/src/cmd/vmx/vmx.c
@@ -320,9 +320,6 @@
return (u8int *) v + gavail(v);
}
-void *tmp, *vgamem;
-uvlong tmpoff, vgamemoff;
-
static void
mksegment(char *sn)
{@@ -355,8 +352,9 @@
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 @@
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);
--
⑨