Splash screen (splashkit) for 3.0 systems...

[ Available lists | Index of freebsd-hackers | Month of Jan 1998 | Week of 6 Jan 1998 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Mike Smith <mike@smith.net.au>
Date
6 Jan 1998 05:10:05
Subject
Splash screen (splashkit) for 3.0 systems...
Message-ID
199801061303.XAA00382@word.smith.net.au


[ Hide this part ]
 
This appears to have been lost in the christmastime mail mangle...


Some people may remember the 'splashkit' I did for 2.2 systems early
last year. After not a little tinkering, I've adapted this for 3.0.

Rather than requring the bitmap be compiled into the kernel (although
still supporting this), the new code uses a new "extras" section
placed after the kernel but before the symbol table by the bootloader.

This "extras" section can be used for other items as well, not being
restricted to just the splash image. The kernel.config file is a good
example of this. (Some work is needed to support the extras region in
the kzip environment, but it can be done.)

Before bundling and releasing this (or just plastering it into -current
8) I'm looking for:

- Testers. Naturally, I need people to find my bugs. 8)

- A better image format. The DIB (.BMP) format is relatively easy to
work with, but a 320x200x8 image runs the best part of 64k, which is
slow to load from floppy and wastes valuable core.

- More video mode support. 320x200 is OK, 640x480 would be a minimal
requirement otherwise.

If there's anyone interested, I'll roll some diffs and put them out for
playing with.

The extras section:

The extras section uses two new fields in the bootinfo structure, but
should reduce the need for more of these additions in the future.
These fields point to the base of the extras region and give its length
respectively.

Each entry in the extras region has a two-word header. The first word
is a key value describing the contents of the region, the second gives
the data length of the region in bytes. The extras region is
terminated by a header with the key value 0.

Support for this region adds a small amount of extra code to the
bootblock, an extra accounting for the region in locore.S (to correctly
locate the end of the kernel), and a lookup function (which I have
placed in machdep.c for want of a more appropriate location).

The nature of the extras region makes it easy to relocate (in the kzip
case), and it should be straightforward to adapt the netboot code
similarly.

Comments?

--
\\ Sometimes you're ahead, \\ Mike Smith
\\ sometimes you're behind. \\ mike@smith.net.au
\\ The race is long, and in the \\ msmith@freebsd.org
\\ end it's only with yourself. \\




Elapsed time: 0.202 seconds