Xin LI <[email protected]> writes: > Author: delphij > Date: Mon Sep 21 08:17:57 2009 > New Revision: 197383 > URL: http://svn.freebsd.org/changeset/base/197383 > > Log: > Collapase interrupt supporting functions to a new module, and switch from > x86emu to this new module. > > This changeset also brings a fix for bugs introduced with the initial > x86emu commit, which prevents the user from using some display mode or > cause instant reboots during mode switch. > > Submitted by: paradox <ddkprog yahoo com> > > Index: sys/dev/x86bios/x86bios.c [...] > +static moduledata_t x86bios_mod = { > + "x86bios", > + x86bios_modevent, > + NULL, > +}; > + > +DECLARE_MODULE(x86bios, x86bios_mod, SI_SUB_KLD, SI_ORDER_ANY); > +MODULE_VERSION(x86bios, 1); > +
SI_SUB_KLD may not work sometimes. If it panics when loaded from loader(8) then better to place it in SI_SUB_CPU or later. BTW, some style(9) fixes didn't make it there.
--- sys/dev/fb/vesa.c~ +++ sys/dev/fb/vesa.c @@ -461,7 +461,7 @@ vesa_bios_state_buf_size(void) if ((regs.R_AX & 0xff) != 0x4f) return 0; - return regs.R_BX*64; + return regs.R_BX * 64; } static int @@ -698,7 +698,7 @@ vesa_bios_init(void) vesa_revstr = (char *)x86biosOffs(FARP(vesa_adp_info->v_revstr)); } - vesa_vmodetab = (u_int16_t *)x86biosOffs(FARP(vesa_adp_info->v_modetable)); + vesa_vmodetab = (uint16_t *)x86biosOffs(FARP(vesa_adp_info->v_modetable)); if (vesa_vmodetab == NULL) return 1; @@ -783,7 +783,7 @@ vesa_bios_init(void) - vmode.v_lfb; else vesa_vmode[modes].vi_buffer_size - = vmode.v_offscreen + vmode.v_offscreensize*1024; + = vmode.v_offscreen + vmode.v_offscreensize * 1024; #endif vesa_vmode[modes].vi_mem_model = vesa_translate_mmodel(vmode.v_memmodel); @@ -1269,7 +1269,7 @@ vesa_get_origin(video_adapter_t *adp, of if ((regs.R_AX & 0xff) != 0x4f) return 1; - *offset = regs.DX*adp->va_window_gran; + *offset = regs.DX * adp->va_window_gran; return 0; } @@ -1298,7 +1298,7 @@ vesa_set_origin(video_adapter_t *adp, of regs.R_EAX = 0x4f05; regs.R_EBX = 0; - regs.R_EDX = offset/adp->va_window_gran; + regs.R_EDX = offset / adp->va_window_gran; x86biosCall(®s, 0x10); if ((regs.R_AX & 0xff) != 0x4f) @@ -1306,7 +1306,7 @@ vesa_set_origin(video_adapter_t *adp, of regs.R_EAX = 0x4f05; regs.R_EBX = 1; - regs.R_EDX = offset/adp->va_window_gran; + regs.R_EDX = offset / adp->va_window_gran; x86biosCall(®s, 0x10); adp->va_window_orig = (offset/adp->va_window_gran)*adp->va_window_gran; --- sys/dev/x86bios/x86bios.c~ +++ sys/dev/x86bios/x86bios.c @@ -27,8 +28,8 @@ #include <contrib/x86emu/x86emu_regs.h> #include <dev/x86bios/x86bios.h> -unsigned char *pbiosMem = NULL; -static unsigned char *pbiosStack = NULL; +u_char *pbiosMem = NULL; +static u_char *pbiosStack = NULL; int busySegMap[5]; --- sys/dev/x86bios/x86bios_alloc.c~ +++ sys/dev/x86bios/x86bios_alloc.c @@ -29,7 +29,7 @@ #include <dev/x86bios/x86bios.h> -extern unsigned char *pbiosMem; +extern u_char *pbiosMem; extern int busySegMap[5]; void * @@ -74,7 +74,7 @@ x86biosFree(void *pbuf, int count) int i; int busySeg; - busySeg = ((unsigned char *)pbuf - (unsigned char *)pbiosMem)/4096; + busySeg = ((u_char *)pbuf - pbiosMem) / 4096; for (i = busySeg; i < (busySeg + count); i++) busySegMap[i] = 0;
_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "[email protected]"
