Add missing prototype. [rsc] --rw-rw-r-- M 489211 glenda sys 21210 Nov 7 09:55 sys/src/9/pc/trap.c /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/trap.c:591,596 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/trap.c:591,597 print("unexpected trap %lud; ignoring\n", ureg->trap); } + extern void checkpages(void); static void fault386(Ureg* ureg, void*) { [rsc] --rw-rw-r-- M 489211 rsc sys 2396 Nov 7 17:27 sys/src/9/pc/vgavesa.c /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vgavesa.c:23,33 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vgavesa.c:23,36 static uchar* vbesetup(Ureg *u, int ax) { + ulong pa; + + pa = PADDR(RMBUF); memset(u, 0, sizeof *u); u->ax = ax; - u->es = (RMBUF>>4)&0xF000; - u->di = RMBUF&0xFFFF; - return KADDR(RMBUF); + u->es = (pa>>4)&0xF000; + u->di = pa&0xFFFF; + return (void*)RMBUF; } static void [rsc] --rw-rw-r-- M 489211 glenda sys 10255 Nov 7 22:58 sys/src/9/pc/vganeomagic.c /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:34,39 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:34,41 * scr->mmio holds the virtual address of the cursor registers * in the MMIO space. This may need to change for older chips * which have the MMIO space offset in the framebuffer region. + * + * scr->io holds the offset into mmio of the CursorNM struct. */ if(scr->mmio) return; /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:88,94 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:90,96 * last 2KB of the framebuffer. */ scr->storage = vmsize-2*1024; - scr->mmio = (ulong*)((uchar*)scr->mmio + curoff); + scr->io = curoff; vgalinearpci(scr); if(scr->paddr) addvgaseg("neomagicscreen", scr->paddr, scr->apsize); /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:101,107 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:103,109 if(scr->mmio == 0) return; - cursornm = (void*)scr->mmio; + cursornm = (void*)((char*)scr->mmio + scr->io); cursornm->enable = 0; } /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:112,118 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:114,120 uint p0, p1; int x, y; - p = (uchar*)scr->mmio; + p = (uchar*)scr->vaddr; p += scr->storage + index*1024; for(y = yo; y < 16; y++){ /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:156,162 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:158,164 if(scr->mmio == 0) return; - cursornm = (void*)scr->mmio; + cursornm = (void*)((char*)scr->mmio + scr->io); cursornm->enable = 0; memmove(&scr->Cursor, curs, sizeof(Cursor)); /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:172,178 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:174,180 if(scr->mmio == 0) return 1; - cursornm = (void*)scr->mmio; + cursornm = (void*)((char*)scr->mmio + scr->io); index = 0; if((x = p.x+scr->offset.x) < 0){ /n/sourcesdump/2005/1107/plan9/sys/src/9/pc/vganeomagic.c:211,217 - /n/sourcesdump/2005/1108/plan9/sys/src/9/pc/vganeomagic.c:213,219 neomagicenable(scr); if(scr->mmio == 0) return; - cursornm = (void*)scr->mmio; + cursornm = (void*)((char*)scr->mmio + scr->io); cursornm->enable = 0; /*