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

Reply via email to