Date: Sun, 24 Apr 2005 06:22:16 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 75866 for review Message-ID: <200504240622.j3O6MFP7050677@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=75866 Change 75866 by marcel@marcel_nfs on 2005/04/24 06:21:22 Submit various changes I made over the time. Affected files ... .. //depot/projects/tty/sys/conf/files#20 edit .. //depot/projects/tty/sys/conf/files.amd64#13 edit .. //depot/projects/tty/sys/conf/files.i386#17 edit .. //depot/projects/tty/sys/conf/files.ia64#15 edit .. //depot/projects/tty/sys/conf/files.pc98#14 edit .. //depot/projects/tty/sys/conf/files.powerpc#8 edit .. //depot/projects/tty/sys/conf/files.sparc64#12 edit .. //depot/projects/tty/sys/conf/options#17 edit .. //depot/projects/tty/sys/conf/options.i386#12 edit .. //depot/projects/tty/sys/conf/options.powerpc#6 edit .. //depot/projects/tty/sys/conf/options.sparc64#5 edit .. //depot/projects/tty/sys/dev/vga/vga.c#2 edit .. //depot/projects/tty/sys/dev/vga/vga.h#3 edit .. //depot/projects/tty/sys/dev/vga/vga_bus_isa.c#1 add .. //depot/projects/tty/sys/dev/vga/vga_bus_pci.c#1 add .. //depot/projects/tty/sys/dev/vga/vga_cons.c#5 edit .. //depot/projects/tty/sys/dev/vga/vga_cpu_alpha.c#2 edit .. //depot/projects/tty/sys/dev/vga/vga_cpu_amd64.c#1 add .. //depot/projects/tty/sys/dev/vga/vga_cpu_i386.c#2 edit .. //depot/projects/tty/sys/dev/vga/vga_cpu_ia64.c#2 edit .. //depot/projects/tty/sys/dev/vga/vga_cpu_sparc64.c#1 add .. //depot/projects/tty/sys/dev/vga/vga_isa.c#2 delete .. //depot/projects/tty/sys/dev/vga/vga_pci.c#3 delete .. //depot/projects/tty/sys/dev/vga/vga_vid.c#2 edit Differences ... ==== //depot/projects/tty/sys/conf/files#20 (text+ko) ==== @@ -832,18 +832,6 @@ dev/sx/sx_pci.c optional sx pci dev/sym/sym_hipd.c optional sym \ dependency "$S/dev/sym/sym_{conf,defs}.h" -dev/syscons/blank/blank_saver.c optional blank_saver -dev/syscons/daemon/daemon_saver.c optional daemon_saver -dev/syscons/dragon/dragon_saver.c optional dragon_saver -dev/syscons/fade/fade_saver.c optional fade_saver -dev/syscons/fire/fire_saver.c optional fire_saver -dev/syscons/green/green_saver.c optional green_saver -dev/syscons/logo/logo.c optional logo_saver -dev/syscons/logo/logo_saver.c optional logo_saver -dev/syscons/rain/rain_saver.c optional rain_saver -dev/syscons/snake/snake_saver.c optional snake_saver -dev/syscons/star/star_saver.c optional star_saver -dev/syscons/warp/warp_saver.c optional warp_saver dev/tdfx/tdfx_pci.c optional tdfx pci dev/trm/trm.c optional trm dev/twa/tw_cl_fwimg.c optional twa @@ -923,9 +911,9 @@ dev/utopia/suni.c optional utopia dev/utopia/utopia.c optional utopia dev/vga/vga.c optional vga +dev/vga/vga_bus_isa.c optional vga isa +dev/vga/vga_bus_pci.c optional vga pci dev/vga/vga_cons.c optional vga -dev/vga/vga_isa.c optional vga -dev/vga/vga_pci.c optional vga dev/vge/if_vge.c optional vge dev/vkbd/vkbd.c optional vkbd dev/vtc/vtc_core.c optional vtc ==== //depot/projects/tty/sys/conf/files.amd64#13 (text+ko) ==== @@ -32,11 +32,6 @@ no-obj no-implicit-rule before-depend \ clean "ia32_assym.h" # -font.h optional sc_dflt_font \ - compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'static u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'static u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'static u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \ - no-obj no-implicit-rule before-depend \ - clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" -# atkbdmap.h optional atkbd_dflt_keymap \ compile-with "/usr/sbin/kbdcontrol -L ${ATKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > atkbdmap.h" \ no-obj no-implicit-rule before-depend \ @@ -151,6 +146,7 @@ dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa dev/uart/uart_cpu_amd64.c optional uart +dev/vga/vga_cpu_amd64.c optional vga geom/geom_bsd.c standard geom/geom_bsd_enc.c standard geom/geom_mbr.c standard ==== //depot/projects/tty/sys/conf/files.i386#17 (text+ko) ==== @@ -154,10 +154,6 @@ dev/ed/if_ed_wd80x3.c optional ed isa dev/ed/if_ed_hpp.c optional ed isa ed_hpp dev/ed/if_ed_sic.c optional ed isa ed_sic -dev/fb/fb.c optional fb -dev/fb/fb.c optional vga -dev/fb/splash.c optional splash -dev/fb/vga.c optional vga dev/fdc/fdc.c optional fdc dev/fdc/fdc_acpi.c optional fdc dev/fdc/fdc_isa.c optional fdc isa ==== //depot/projects/tty/sys/conf/files.ia64#15 (text+ko) ==== @@ -13,11 +13,6 @@ no-obj no-implicit-rule before-depend \ clean "atkbdmap.h" # -font.h optional sc_dflt_font \ - compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'static u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'static u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'static u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \ - no-obj no-implicit-rule before-depend \ - clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" -# ukbdmap.h optional ukbd_dflt_keymap \ compile-with "/usr/sbin/kbdcontrol -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \ no-obj no-implicit-rule before-depend \ ==== //depot/projects/tty/sys/conf/files.pc98#14 (text+ko) ==== @@ -112,14 +112,10 @@ dev/ed/if_ed_wd80x3.c optional ed isa dev/ep/if_ep_pccard.c optional ep card dev/ex/if_ex_pccard.c optional ex card -dev/fb/fb.c optional fb -dev/fb/fb.c optional gdc -dev/fb/splash.c optional splash dev/fe/if_fe_cbus.c optional fe isa dev/fe/if_fe_pccard.c optional fe card dev/io/iodev.c optional io dev/kbd/kbd.c optional pckbd -dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd dev/lnc/if_lnc_cbus.c optional lnc isa dev/mem/memutil.c optional mem @@ -139,14 +135,6 @@ dev/snc/if_snc_cbus.c optional snc isa dev/snc/if_snc_pccard.c optional snc card dev/stg/tmc18c30_pccard.c optional stg card -dev/syscons/apm/apm_saver.c optional apm_saver apm -dev/syscons/schistory.c optional sc -dev/syscons/scmouse.c optional sc -dev/syscons/scterm.c optional sc -dev/syscons/scterm-dumb.c optional sc -dev/syscons/scvidctl.c optional sc -dev/syscons/syscons.c optional sc -dev/syscons/sysmouse.c optional sc dev/uart/uart_cpu_pc98.c optional uart dev/wi/if_wi_pccard.c optional wi card dev/xe/if_xe_pccard.c optional xe card @@ -364,12 +352,8 @@ pc98/pc98/pc98kbd.c optional pckbd pc98/pc98/pmc.c optional pmc pc98/pc98/ppc.c optional ppc -pc98/pc98/scgdcrndr.c optional sc gdc -pc98/pc98/scterm-sck.c optional sc -pc98/pc98/scvtbpc98.c optional sc pc98/pc98/sio.c optional sio pc98/pc98/sio_cbus.c optional sio isa -pc98/pc98/syscons_pc98.c optional sc pccard/pccard.c optional card pccard/pccard_beep.c optional card pccard/pccard_nbk.c optional card ==== //depot/projects/tty/sys/conf/files.powerpc#8 (text+ko) ==== @@ -9,23 +9,6 @@ # # -font.h optional sc \ - compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \ - no-obj no-implicit-rule before-depend \ - clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" - -dev/fb/fb.c optional sc -dev/kbd/kbd.c optional sc -dev/syscons/scgfbrndr.c optional sc -dev/syscons/schistory.c optional sc -dev/syscons/scmouse.c optional sc -dev/syscons/scterm.c optional sc -dev/syscons/scterm-dumb.c optional sc -dev/syscons/scterm-sc.c optional sc -dev/syscons/scvidctl.c optional sc -dev/syscons/scvtb.c optional sc -dev/syscons/syscons.c optional sc -dev/syscons/sysmouse.c optional sc geom/geom_apple.c standard kern/syscalls.c optional ktr powerpc/powerpc/atomic.S standard @@ -50,7 +33,6 @@ powerpc/powerpc/openpic.c standard powerpc/powerpc/pic_if.m standard powerpc/powerpc/pmap.c standard -powerpc/powerpc/sc_machdep.c optional sc powerpc/powerpc/setjmp.S standard powerpc/powerpc/sigcode.S standard powerpc/powerpc/suswintr.c standard @@ -95,7 +77,6 @@ powerpc/ofw/ofw_pci.c optional pci powerpc/ofw/ofw_pcib_pci.c optional pci -powerpc/ofw/ofw_syscons.c optional sc powerpc/powermac/ata_kauai.c optional powermac ata powerpc/powermac/ata_macio.c optional powermac ata ==== //depot/projects/tty/sys/conf/files.sparc64#12 (text+ko) ==== @@ -15,10 +15,6 @@ dev/auxio/auxio.c optional auxio sbus dev/auxio/auxio.c optional auxio ebus dev/esp/esp_sbus.c optional esp sbus -dev/fb/creator.c optional creator sc -dev/fb/fb.c optional sc -dev/fb/splash.c optional splash -dev/kbd/kbd.c optional sc dev/ofw/ofw_bus_if.m standard dev/ofw/ofw_console.c optional ofw_console dev/ofw/openfirm.c standard @@ -26,18 +22,9 @@ dev/ofw/openpromio.c standard dev/sound/sbus/cs4231.c optional snd_audiocs ebus dev/sound/sbus/cs4231.c optional snd_audiocs sbus -dev/syscons/scgfbrndr.c optional sc -dev/syscons/schistory.c optional sc -dev/syscons/scmouse.c optional sc -dev/syscons/scterm.c optional sc -dev/syscons/scterm-dumb.c optional sc -dev/syscons/scterm-sc.c optional sc -dev/syscons/scvidctl.c optional sc -dev/syscons/scvtb.c optional sc -dev/syscons/syscons.c optional sc -dev/syscons/sysmouse.c optional sc dev/uart/uart_cpu_sparc64.c optional uart -dev/uart/uart_kbd_sun.c optional uart sc +#dev/uart/uart_kbd_sun.c optional uart sc +dev/vga/vga_cpu_sparc64.c optional vga geom/geom_bsd.c standard geom/geom_bsd_enc.c standard geom/geom_sunlabel.c standard @@ -48,7 +35,6 @@ libkern/fls.c standard libkern/flsl.c standard sparc64/central/central.c optional central -sparc64/creator/creator_upa.c optional creator sc sparc64/ebus/ebus.c optional ebus sparc64/fhc/clkbrd.c optional clkbrd fhc sparc64/fhc/fhc.c optional fhc @@ -104,7 +90,6 @@ sparc64/sparc64/rtc.c optional rtc ebus sparc64/sparc64/rtc.c optional rtc isa sparc64/sparc64/rwindow.c standard -sparc64/sparc64/sc_machdep.c optional sc sparc64/sparc64/spitfire.c standard sparc64/sparc64/support.S standard sparc64/sparc64/sys_machdep.c standard ==== //depot/projects/tty/sys/conf/options#17 (text+ko) ==== @@ -470,10 +470,6 @@ SI_DEBUG opt_debug_si.h SX_DEBUG opt_debug_sx.h -# Fb options -FB_DEBUG opt_fb.h -FB_INSTALL_CDEV opt_fb.h - # ppbus related options PERIPH_1284 opt_ppb_1284.h DONTPROBE_1284 opt_ppb_1284.h @@ -640,30 +636,6 @@ SAFE_NO_RNG opt_safe.h SAFE_RNDTEST opt_safe.h -# syscons options -MAXCONS opt_syscons.h -SC_ALT_MOUSE_IMAGE opt_syscons.h -SC_CUT_SPACES2TABS opt_syscons.h -SC_CUT_SEPCHARS opt_syscons.h -SC_DEBUG_LEVEL opt_syscons.h -SC_DFLT_FONT opt_syscons.h -SC_DISABLE_KDBKEY opt_syscons.h -SC_DISABLE_REBOOT opt_syscons.h -SC_HISTORY_SIZE opt_syscons.h -SC_KERNEL_CONS_ATTR opt_syscons.h -SC_KERNEL_CONS_REV_ATTR opt_syscons.h -SC_MOUSE_CHAR opt_syscons.h -SC_NO_CUTPASTE opt_syscons.h -SC_NO_FONT_LOADING opt_syscons.h -SC_NO_HISTORY opt_syscons.h -SC_NO_SUSPEND_VTYSWITCH opt_syscons.h -SC_NO_SYSMOUSE opt_syscons.h -SC_NORM_ATTR opt_syscons.h -SC_NORM_REV_ATTR opt_syscons.h -SC_PIXEL_MODE opt_syscons.h -SC_RENDER_DEBUG opt_syscons.h -SC_TWOBUTTON_MOUSE opt_syscons.h - # kbd options KBD_DISABLE_KEYMAP_LOAD opt_kbd.h KBD_INSTALL_CDEV opt_kbd.h ==== //depot/projects/tty/sys/conf/options.i386#12 (text+ko) ==== @@ -80,30 +80,6 @@ ATKBD_DFLT_KEYMAP opt_atkbd.h -# pcvt(4) has a bunch of options -FAT_CURSOR opt_pcvt.h -PCVT_123GENERIC opt_pcvt.h -PCVT_24LINESDEF opt_pcvt.h -PCVT_CTRL_ALT_DEL opt_pcvt.h -PCVT_GREENSAVER opt_pcvt.h -PCVT_INHIBIT_NUMLOCK opt_pcvt.h -PCVT_META_ESC opt_pcvt.h -PCVT_NO_LED_UPDATE opt_pcvt.h -PCVT_NSCREENS opt_pcvt.h -PCVT_NULLCHARS opt_pcvt.h -PCVT_PRETTYSCRNS opt_pcvt.h -PCVT_SCANSET opt_pcvt.h -PCVT_SCREENSAVER opt_pcvt.h -PCVT_SETCOLOR opt_pcvt.h -PCVT_SHOWKEYS opt_pcvt.h -PCVT_SLOW_INTERRUPT opt_pcvt.h -PCVT_SYSBEEPF opt_pcvt.h -PCVT_UPDATEFAST opt_pcvt.h -PCVT_UPDATESLOW opt_pcvt.h -PCVT_USEKBDSEC opt_pcvt.h -PCVT_VT220KEYB opt_pcvt.h -XSERVER opt_pcvt.h - # Video spigot SPIGOT_UNSECURE opt_spigot.h ==== //depot/projects/tty/sys/conf/options.powerpc#6 (text+ko) ==== @@ -4,13 +4,7 @@ OEA opt_global.h IPKDB -GFB_DEBUG opt_gfb.h -GFB_NO_FONT_LOADING opt_gfb.h -GFB_NO_MODE_CHANGE opt_gfb.h - POWERMAC opt_platform.h PSIM -SC_OFWFB opt_ofwfb.h - OFWCONS_POLL_HZ opt_ofw.h ==== //depot/projects/tty/sys/conf/options.sparc64#5 (text+ko) ==== @@ -2,10 +2,6 @@ SUN4U opt_global.h -GFB_DEBUG opt_gfb.h -GFB_NO_FONT_LOADING opt_gfb.h -GFB_NO_MODE_CHANGE opt_gfb.h - PSYCHO_DEBUG opt_psycho.h DEBUGGER_ON_POWERFAIL opt_psycho.h OFW_PCI_DEBUG opt_ofw_pci.h ==== //depot/projects/tty/sys/dev/vga/vga.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/systm.h> #include <machine/bus.h> @@ -39,11 +40,14 @@ devclass_t vga_devclass; char vga_device_name[] = "vga"; +int vga_curcol; +int vga_currow; + static void -vga_write(struct vga_softc *sc, int x, int y, int ascii, int color) +vga_write(struct vga_softc *sc, int y, int x, int ascii, int color) { - u_int32_t ofs; - u_int16_t w; + uint32_t ofs; + uint16_t w; ofs = y * 160 + x * 2; w = color * 256 + ascii; @@ -53,8 +57,8 @@ static void vga_scrollup(struct vga_softc *sc) { - u_int32_t count, ofs; - u_int16_t w; + uint32_t count, ofs; + uint16_t w; ofs = 0; @@ -79,44 +83,73 @@ } void +vga_setpos(struct vga_softc *sc, int row, int col) +{ + uint16_t ofs; + + ofs = row * 80 + col; + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 0, 14); + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 1, ofs >> 8); + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 0, 15); + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 1, ofs & 0xff); +} + +void +vga_getpos(struct vga_softc *sc, int *row, int *col) +{ + uint16_t ofs; + + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 0, 14); + ofs = bus_space_read_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 1) << 8; + bus_space_write_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 0, 15); + ofs |= bus_space_read_1(sc->vga_crtc.bst, sc->vga_crtc.bsh, 1) & 0xff; + *row = ofs / 80; + *col = ofs % 80; +} + +void vga_putc(struct vga_softc *sc, int c) { - static uint32_t x = 0, y = 24; - int d = 1; + int d; + d = 1; switch (c) { case 0x07: /* bell */ return; case 0x08: /* backspace */ c = ' '; - if (x) - x--; + if (vga_curcol) + vga_curcol--; d = 0; break; case 0x09: /* tab */ - x = (x + 8) & ~7; - if (x < 80) + vga_curcol = (vga_curcol + 8) & ~7; + if (vga_curcol < 80) { + vga_setpos(sc, vga_currow, vga_curcol); return; + } /* FALLTHOUGH */ case 0x0a: /* linefeed */ - if (y == 24) + if (vga_currow == 24) vga_scrollup(sc); else - y++; + vga_currow++; /* FALLTHROUGH */ case 0x0d: /* carriage return */ - x = 0; + vga_curcol = 0; + vga_setpos(sc, vga_currow, vga_curcol); return; } - vga_write(sc, x, y, c, 0x0f); - x += d; - if (x == 80) { - x = 0; - if (y == 24) + vga_write(sc, vga_currow, vga_curcol, c, 0x0f); + vga_curcol += d; + if (vga_curcol >= 80) { + vga_curcol = 0; + if (vga_currow == 24) vga_scrollup(sc); else - y++; + vga_currow++; } + vga_setpos(sc, vga_currow, vga_curcol); } void @@ -127,11 +160,12 @@ vga_putc(sc, *s++); } -int vga_attach(device_t dev) +int +vga_attach(device_t dev) { struct vga_softc *sc; int error; - u_int32_t x, y; + uint32_t x, y; sc = device_get_softc(dev); @@ -148,12 +182,10 @@ for (y = 0; y < 24; y++) for (x = 0; x < 80; x++) - vga_write(sc, x, y, ' ', 7); + vga_write(sc, y, x, ' ', 7); - vga_write(sc, 0, 0, '\\', 7); - vga_write(sc, 79, 0, '/', 7); - vga_write(sc, 0, 24, '/', 7); - vga_write(sc, 79, 24, '\\', 7); + vga_currow = vga_curcol = 0; + vga_puts(sc, "Please wait...\r"); return (0); } ==== //depot/projects/tty/sys/dev/vga/vga.h#3 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,6 +26,9 @@ * $FreeBSD$ */ +#ifndef _DEV_VGA_VGA_H_ +#define _DEV_VGA_VGA_H_ + #define VGA_REG_MISC 0x1c /* 0x3CC */ struct vga_space @@ -41,12 +44,12 @@ dev_t vga_node; /* Device flags and state. */ - u_int32_t vga_bustype:2; + int vga_bustype:2; #define VGA_BUSTYPE_ISA 1 #define VGA_BUSTYPE_PCI 2 - u_int32_t vga_console:1; - u_int32_t vga_enable:1; - u_int32_t vga_mono:1; + int vga_console:1; + int vga_enable:1; + int vga_mono:1; /* Bus spaces */ struct vga_space vga_space[4]; @@ -73,7 +76,14 @@ extern devclass_t vga_devclass; extern char vga_device_name[]; +extern int vga_curcol; +extern int vga_currow; + int vga_attach(device_t); +void vga_getpos(struct vga_softc *, int *, int *); void vga_putc(struct vga_softc *, int); void vga_puts(struct vga_softc *, const char *); +void vga_setpos(struct vga_softc *, int, int); + +#endif /* _DEV_VGA_VGA_H_ */ ==== //depot/projects/tty/sys/dev/vga/vga_cons.c#5 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -35,7 +36,6 @@ #include <sys/tty.h> #include <dev/vga/vga.h> -#include <dev/sio/siovar.h> #include <sys/cons.h> @@ -59,6 +59,7 @@ bzero(&vga_console, sizeof(vga_console)); cp->cn_pri = CN_DEAD; + cp->cn_arg = &vga_console; if (vga_get_console(&cd) != 0) return; @@ -79,39 +80,35 @@ if (error) return; - vga_puts(&vga_console, "VGA probe successful\n"); - cp->cn_pri = CN_INTERNAL; } static void vga_cninit(struct consdev *cp) { + struct vga_softc *sc = cp->cn_arg; - vga_console.vga_console = 1; - vga_console.vga_enable = 1; + sc->vga_console = 1; + sc->vga_enable = 1; - vga_puts(&vga_console, "VGA is the system console\n"); + vga_getpos(sc, &vga_currow, &vga_curcol); + vga_putc(sc, '\n'); /* It's official... */ - vga_console.vga_consdev = cp; + sc->vga_consdev = cp; } static void vga_cnterm(struct consdev *cp) { - - /* XXX what to do here? */ } static void vga_cnputc(struct consdev *cp, int c) { - int s; + struct vga_softc *sc = cp->cn_arg; - s = spltty(); - vga_putc(&vga_console, c); - splx(s); + vga_putc(sc, c); } static int ==== //depot/projects/tty/sys/dev/vga/vga_cpu_alpha.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/bus.h> @@ -33,10 +34,11 @@ #include <dev/vga/vga.h> -int vga_get_console(struct vga_consdata *cd) +int +vga_get_console(struct vga_consdata *cd) { int mono; - u_char misc; + uint8_t misc; cd->fb.bst = busspace_isa_mem; cd->fb.bsh = 0xA0000; ==== //depot/projects/tty/sys/dev/vga/vga_cpu_i386.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/bus.h> @@ -34,13 +35,14 @@ #include <dev/vga/vga.h> -int vga_get_console(struct vga_consdata *cd) +int +vga_get_console(struct vga_consdata *cd) { int mono; - u_char misc; + uint8_t misc; cd->fb.bst = I386_BUS_SPACE_MEM; - cd->fb.bsh = atdevbase; /* Virtual address of 0xA0000 */ + cd->fb.bsh = 0xA0000 + KERNBASE; cd->reg.bst = I386_BUS_SPACE_IO; cd->reg.bsh = 0x3c0; ==== //depot/projects/tty/sys/dev/vga/vga_cpu_ia64.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002, 2003, 2004 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/bus.h> @@ -33,10 +34,11 @@ #include <dev/vga/vga.h> -int vga_get_console(struct vga_consdata *cd) +int +vga_get_console(struct vga_consdata *cd) { int mono; - u_char misc; + uint8_t misc; cd->fb.bst = IA64_BUS_SPACE_MEM; cd->fb.bsh = IA64_PHYS_TO_RR6(0xA0000); /* XXX */ ==== //depot/projects/tty/sys/dev/vga/vga_vid.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ -/* - * Copyright (c) 2002 Marcel Moolenaar +/*- + * Copyright (c) 2002-2005 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,10 +22,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/param.h> #include <sys/systm.h> #include <machine/bus.h> @@ -152,7 +153,7 @@ (void)bus_space_subregion(sc->vga_fb.bst, sc->vga_fb.bsh, (sc->vga_mono) ? 0x10000 : 0x18000, 4096, &sc->vga_screen.bsh); - sc->vga_console = 1; + sc->vga_enable = 1; vga_adapter.va_flags |= V_ADP_PROBED; init_adapter: @@ -310,17 +311,14 @@ static int vga_vid_read_hw_cursor(video_adapter_t *adp, int *col, int *row) { - int s; uint16_t ofs; - s = spltty(); outb(adp->va_crtc_addr + 0, 14); ofs = inb(adp->va_crtc_addr + 1) << 8; outb(adp->va_crtc_addr + 0, 15); ofs |= inb(adp->va_crtc_addr + 1) & 0xff; *row = ofs / adp->va_info.vi_width; *col = ofs % adp->va_info.vi_width; - splx(s); return (0); } @@ -352,40 +350,37 @@ static int vga_vid_set_border(video_adapter_t *adp, int color) { + return (ENODEV); +#if 0 static int called = 0; return (vga_vid_todo(__func__, ++called)); +#endif } static int vga_vid_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, int celsize, int blink) { - int s; - s = spltty(); outb(adp->va_crtc_addr + 0, 10); outb(adp->va_crtc_addr + 1, (height > 0) ? (celsize - base - height) & 0x1f : 0x20); outb(adp->va_crtc_addr + 0, 11); outb(adp->va_crtc_addr + 1, (height > 0) ? (celsize - base - 1) & 0x1f : 0); - splx(s); return (0); } static int vga_vid_set_hw_cursor(video_adapter_t *adp, int col, int row) { - int s; uint16_t ofs; - s = spltty(); ofs = (col != -1 || row != -1) ? row*adp->va_info.vi_width + col : -1; outb(adp->va_crtc_addr + 0, 14); outb(adp->va_crtc_addr + 1, ofs >> 8); outb(adp->va_crtc_addr + 0, 15); outb(adp->va_crtc_addr + 1, ofs & 0xff); - splx(s); return (0); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504240622.j3O6MFP7050677>
