M pc/mmu.c => pc/mmu.c +0 -1
@@ 56,7 56,6 @@ memglobal(void)
int i, j;
ulong *pde, *pte;
-return;
/* only need to do this once, on bootstrap processor */
if(m->machno != 0)
return;
M pc/pci.c => pc/pci.c +12 -12
@@ 672,11 672,11 @@ pcirouting(void)
uchar *p, *m, pin, irq;
// Search for PCI interrupt routing table in BIOS
- for (p = (uchar *)KADDR(0xf0000); p < (uchar *)KADDR(0xfffff); p += 16)
- if (p[0] == '$' && p[1] == 'P' && p[2] == 'I' && p[3] == 'R')
+ for(p = (uchar *)KADDR(0xf0000); p < (uchar *)KADDR(0xfffff); p += 16)
+ if(p[0] == '$' && p[1] == 'P' && p[2] == 'I' && p[3] == 'R')
break;
- if (p >= (uchar *)KADDR(0xfffff))
+ if(p >= (uchar *)KADDR(0xfffff))
return;
r = (router_t *)p;
@@ 691,20 691,20 @@ pcirouting(void)
return;
}
- for (i = 0; i != nelem(southbridges); i++)
- if (sbpci->vid == southbridges[i].vid && sbpci->did == southbridges[i].did)
+ for(i = 0; i != nelem(southbridges); i++)
+ if(sbpci->vid == southbridges[i].vid && sbpci->did == southbridges[i].did)
break;
- if (i == nelem(southbridges)) {
- print("pcirouting: South bridge %.4uX/%.4uX unknown\n", sbpci->vid, sbpci->did);
+ if(i == nelem(southbridges)) {
+ print("pcirouting: south bridge %.4uX/%.4uX (unknown type)\n", sbpci->vid, sbpci->did);
return;
}
southbridge = &southbridges[i];
-
+
pciirqs = (r->rt_pciirqs[1] << 8)|r->rt_pciirqs[0];
size = (r->rt_size[1] << 8)|r->rt_size[0];
- for (e = (slot_t *)&r[1]; (uchar *)e < p + size; e++) {
+ for(e = (slot_t *)&r[1]; (uchar *)e < p + size; e++) {
// print("%.2uX/%.2uX %.2uX: ", e->e_bus, e->e_dev, e->e_slot);
// for (i = 0; i != 4; i++) {
// uchar *m = &e->e_maps[i * 3];
@@ 713,20 713,20 @@ pcirouting(void)
// }
// print("\n");
- for (fn = 0; fn != 8; fn++) {
+ for(fn = 0; fn != 8; fn++) {
tbdf = (BusPCI << 24)|(e->e_bus << 16)|((e->e_dev | fn) << 8);
pci = pcimatchtbdf(tbdf);
if(pci == nil)
continue;
pin = pcicfgr8(pci, PciINTP);
- if (pin == 0 || pin == 0xff)
+ if(pin == 0 || pin == 0xff)
continue;
m = &e->e_maps[(pin - 1) * 3];
irq = southbridge->get(sbpci, m[0]);
if(irq == 0 || irq == pci->intl)
continue;
- if (pci->intl != 0 && pci->intl != 0xFF) {
+ if(pci->intl != 0 && pci->intl != 0xFF) {
print("pcirouting: BIOS workaround: %T at pin %d irq %d -> %d\n",
tbdf, pin, irq, pci->intl);
southbridge->set(sbpci, m[0], pci->intl);
M pc/vgavmware.c => pc/vgavmware.c +4 -0
@@ 330,6 330,7 @@ vmwarefill(VGAscr*, Rectangle r, ulong sval)
static void
vmwaredrawinit(VGAscr *scr)
{
+ ulong offset;
ulong mmiobase, mmiosize;
if(scr->mmio==nil){
@@ 353,6 354,9 @@ vmwaredrawinit(VGAscr *scr)
scr->scroll = vmwarescroll;
scr->fill = vmwarefill;
+
+ offset = vmrd(vm, Rfboffset);
+ scr->gscreendata->bdata += offset;
}
VGAdev vgavmwaredev = {
M port/proc.c => port/proc.c +4 -2
@@ 809,8 809,10 @@ pexit(char *exitstr, int freemem)
poperror();
wq->w.pid = up->pid;
- wq->w.time[TUser] = utime = up->time[TUser] + up->time[TCUser];
- wq->w.time[TSys] = stime = up->time[TSys] + up->time[TCSys];
+ utime = up->time[TUser] + up->time[TCUser];
+ stime = up->time[TSys] + up->time[TCSys];
+ wq->w.time[TUser] = TK2MS(utime);
+ wq->w.time[TSys] = TK2MS(stime);
wq->w.time[TReal] = TK2MS(MACHP(0)->ticks - up->time[TReal]);
if(exitstr && exitstr[0])
snprint(wq->w.msg, sizeof(wq->w.msg), "%s %lud: %s", up->text, up->pid, exitstr);