This is the third, and hopefully the last, snapshot of the stage 2 of syscons update.
I placed a set of patches in http://www.freebsd.org/~yokota/syscons-update.27May.tar.gz This tar file includes patches for all architectures (i386, alpha, PC98), and minor modifications for screen savers and splash screen decoders. I would appreciate if you take a look and send me some comments. I intend to commit these changes to the source tree in the next week or so. I am attaching the README file from the tar file. Kazu ---------------------------------------------------------------------- Latest syscons update 28 May 1999 Kazutaka YOKOTA, yok...@freebsd.org 1. Introduction This is a snapshot of work-in-progress. I decided to release this because I am very much behind intended schedule and think it won't benefit us much if I will defer submitting this for public testing until everything is done. This update is still in the middle of active development and is incomplete yet. The main goal of this update is to split syscons source code into manageable chunks and in the process, reorganize some of complicated functions. It also includes some ideas and patches which were submitted to the FreeBSD PR database in the past and have not been integrated into syscons. A bunch of new ioctl commands are also added to syscons and the video driver in order to provide support for accessing frame buffer memory. The snapshot also includes a copy of (unfinished) text and some sample code to demonstrate video memory access by the userland program. 2. Applying patch files. There are 13 separate patch files and tar files: alpha.diff alpha-specific patch. devfb.diff Video driver patch. devfb.tar New video driver files. i386.diff i386-specific patch. sys.diff Patch for common kernel files. sys.tar New files in /sys/sys syscons.tar Updated and new syscons source files. pc98.diff Patch for the PC98 architecture syscons-pc98.tar Updated and new syscons source files for PC98 kbdcontrol.diff Patch for kbdcontrol. vidcontrol.diff Patch for vidcontrol. saver.diff Patch for screen saver KLDs. splash.diff Patch for splash screen KLDs. They are relative to 4.0-CURRENT around 26 May 1999. They update and overwrite quite a few files. Please make backup first! Affected files are: alpha.diff /sys/alpha/alpha/cons.c /sys/alpha/conf/files.alpha /sys/alpha/conf/options.alpha /sys/alpha/include/cons.h /sys/alpha/include/console.h devfb.diff /sys/dev/fb/fb.c /sys/dev/fb/fbreg.c /sys/dev/fb/splash.c /sys/dev/fb/splashreg.c /sys/dev/fb/vgareg.c devfb.tar /sys/dev/fb/vga.c NEW FILE syscons.tar /sys/dev/syscons/syscons.c /sys/dev/syscons/syscons.h /sys/dev/syscons/scvidctl.c /sys/dev/syscons/scvesactl.c /sys/dev/syscons/schistory.c NEW FILE /sys/dev/syscons/scmouse.c NEW FILE /sys/dev/syscons/scvgarndr.c NEW FILE /sys/dev/syscons/scvtb.c NEW FILE i386.diff /sys/i386/conf/LINT /sys/i386/conf/files.i386 /sys/i386/conf/options.i386 /sys/i386/i386/cons.c /sys/i386/i386/cons.h /sys/i386/isa/pcvt/pcvt_drv.c /sys/i386/isa/vesa.c /sys/i386/include/console.h sys.diff /sys/isa/sio.c /sys/isa/syscons_isa.c /sys/isa/vga_isa.c /sys/sys/fbio.h sys.tar /sys/sys/kbio.h NEW FILE /sys/sys/consio.h NEW FILE vidcontrol.diff /usr/src/usr.sbin/vidcontrol/vidcontrol.c kbdcontrol.diff /usr/src/usr.sbin/kbdcontrol/lex.h /usr/src/usr.sbin/kbdcontrol/lex.l /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c pc98.diff /sys/pc98/pc98/pc98gdc.c /sys/pc98/pc98/sio.c /sys/pc98/conf/files.pc98 /sys/pc98/conf/options.pc98 syscons-pc98.tar /sys/pc98/pc98/syscons.c /sys/pc98/pc98/syscons_pc98.c NEW FILE /sys/pc98/pc98/sc_machdep.h NEW FILE /sys/pc98/pc98/scgdcrndr.c NEW FILE /sys/pc98/pc98/scvtbpc98.c NEW FILE saver.diff /sys/modules/syscons/* splash.diff /sys/modules/splash/* Apply them as follows (assuming they are in /tmp): cd /sys patch < /tmp/sys.diff tar xvf /tmp/sys.tar cd i386 patch < /tmp/i386.diff cd ../alpha patch < /tmp/alpha.diff cd ../pc98 patch < /tmp/pc98.diff cd pc98 tar xvf /tmp/syscons-pc98.tar cd ../../dev/fb patch < /tmp/devfb.diff tar xvf /tmp/devfb.tar cd ../syscons tar xvf /tmp/syscons.tar cd /usr/src/usr.sbin/vidcontrol patch < /tmp/vidcontrol.diff cd ../kbdcontrol patch < /tmp/kbdcontrol.diff cd /sys/modules/syscons patch < /tmp/saver.diff cd ../splash patch < /tmp/splash.diff Then, before you rebuild vidcontrol and kbdcontrol, cp /sys/`uname -m`/include/console.h /usr/include/machine 3. Rough descriptions on modifications 1) Syscons update: - Many static variables are moved to the softc structure. - History buffer (back-scroll buffer) management functions are moved to a new file, schistory.c. - Sysmouse management functions are moved to a new file, scmouse.c. - Created a set of functions to access the virtual terminal buffer (scvtb.c). - Added a new key function, PREV. When this key is pressed, the vty immediately before the current vty will become foreground. Analogue to PREV, which is usually assigned to the PrntScrn key. PR: kern/10113 Submitted by: Christian Weisgerber <na...@mips.rhein-neckar.de> - Added a new ioctl: VT_GETINDEX. - Modified the console input function sccngetc() so that it handles function keys properly. - Reorganized the screen update routine. - Rendering functions (scvgarndr.c). - VT switching code is reorganized. It now should be slightly more robust than before. - Added the DEVICE_RESUME function so that syscons no longer hooks the APM resume event directly. - New kernel configuration options: options SC_NO_CUTPASTE options SC_NO_FONT_LOADING options SC_NO_HISTORY options SC_NO_SYSMOUSE Various parts of syscons can be omitted so that the kernel size is reduced. Use the above kernel configuration options to selectively disable parts of syscons. options SC_PIXEL_MODE Made the VESA 800x600 mode an option, rather than a standard part of syscons. This mode is useful on some laptop computers, but less so on most other systems, and it adds substantial amount of code to syscons. If the above kernel configuration option is NOT defined, you can reduce the kernel size a lot. options SC_DISABLE_DDBKEY Disables the `debug' key combination. It will prevent the user from entering DDB by pressing the key combination. DDB will still be invoked when the kernel panics or hits a break point if it is included in the kernel. options SC_ALT_MOUSE_IMAGE Inverse the character cell at the mouse cursor position in the text console, rather than drawing an arrow on the screen. This will reduce the system load a lot. Submitted by: Nick Hibma (n_hi...@freebsd.org) options SC_DFLT_FONT makeoptions "SC_DFLT_FONT=_font_name_" Include the named font as the default font of syscons. Available fonts are: iso, iso2, koi8-r, cp437, cp850, cp865 and cp866. 16- line, 14-line and 8-line font data will be compiled in. This option will replace the existing STD8X16FONT option, which loads 16- line font data only. 2) Video driver update: - The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c. - The video driver provides a set of ioctl commands to manipulate the frame buffer. - New kernel configuration options: options "VGA_WIDTH90" Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These modes are mot always supported by the video card. PR: i386/7510 Submitted by: kby...@freedomnet.com and al...@sui.gda.itesm.mx. 3) Other changes - The header file machine/console.h is reorganized; it has been placed in the architecture-dependent part of the source tree while much of the stuff is architecture-neutral. Its contents is now split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h (another new file). machine/console.h is still maintained for compatibility reasons; it simply includes the above three files (strange arrangement indeed that a machine dependent header file is including architecture-neutral headers! but...). - Kernel console selection/installation routines are fixed and slightly rebumped so that it should now be possible to switch between the interanl kernel console (sc or vt) and a remote kernel console (sio) again, as it was in 2.x, 3.0 and 3.1. - Screen savers and splash screen decoders Because of the header file reorganization described above, screen savers and splash screen decoders are slightly modified. After this update, /sys/modules/syscons/saver.h is no longer necessary and is deprecated. Text screen savers are modified to use virtual terminal buffer manipulation functions in scvtb.c; they no longer directly poke into the buffer. There is no functional changes in the screen savers and the splash screen decoders after these changes. ---------------------------------------------------------------------- To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message