Commit Graph

33337 Commits

Author SHA1 Message Date
msmith
155c4cb295 Add BootForth hooks; if BOOT_FORTH is defined, pass every line read
to the Forth interpreter.  Instantiate all of our inbuilt commands
as Forth words, and handle them being called from there.

Add my copyright to the bcache module (oops).
1998-11-04 00:29:01 +00:00
msmith
e29cc743ca Move setjmp/longjmp implementations here from libc; no signal handling
in libstand, only for i386 until I locate an alpha setjmp/longjmp.

Minimal 64-bit gcc integer support for i386.  This is kinda nasty, and
should be revisited once we decide whether the bootblocks need
quad arithmetic.
1998-11-04 00:23:18 +00:00
jkh
6332255de8 Formatting tweak. 1998-11-04 00:06:41 +00:00
msmith
6043fe8061 Include "bootstrap.h" to get a definition for bcache_devdata.
Submitted by:	jkh
1998-11-03 23:44:49 +00:00
des
d6ccde6698 Back out previous commit. The bpfilter -> bpf transition will have to be a
flag day unless we can hack config(8) to smooth things over.
1998-11-03 22:01:22 +00:00
des
b38e7f90e1 Rename the 'bpfilter' pseudo-device to 'bpf'. The old syntax is still legal
and will stick around for a while.
1998-11-03 21:12:20 +00:00
msmith
b6968d189c USERCONFIG_BOOT -> INTRO_USERCONFIG 1998-11-03 21:09:11 +00:00
msmith
b120b000dd Remove USERCONFIG_BOOT, add INTRO_USERCONFIG 1998-11-03 21:08:49 +00:00
msmith
90bdf0d597 Remove the USERCONFIG_BOOT option. Userconfig script data is searched
for in a loaded module of type "userconfig_script".  The RB_CONFIG
flag will always result in the user being left inside userconfig at
the end of the script's execution, regardless of 'quit' commands in
the script.  If the RB_CONFIG flag is not specified, the user will
never be left inside userconfig, even if the script does not have an
explicit exit command.

Add the INTRO_USERCONFIG option.  This option forces the userconfig 'intro'
screen (after a script has optionally been executed).  There is no longer
a need to queue an 'intro' command.
1998-11-03 21:07:51 +00:00
peter
c3fb5f8be1 A feeble attempt at kld compatability. The mount_* programs assume that
they cannot mount a filesystem that they cannot see in getvfsbyname().
Part 1 of this is a hack, make vfsisloadable() always return true - the
ultimate decider of whether it's loadable or not is kldload() or mount().
Part 2 of this is to have vfsload() call kldload(2) and return success if
it works.  This means that we will use a viable kld module in preference
to an LKM!
Ultimately, the thing to do is remove the hacks to do a vfsload in all the
mount_* commands and let the kernel do it by itself in mount(2).
1998-11-03 15:02:29 +00:00
peter
43589c7042 make mount(2) automatically kldload modules if the requested filesystem
isn't present.
1998-11-03 14:29:09 +00:00
peter
2b6debf094 Have the in-kernel linker try a default extension of .ko. This means that
"kldload nfs" works.  We use the same default extension in the /boot/loader
system.
1998-11-03 14:27:05 +00:00
peter
5e8da6440f Initialize the a.out kld loader after elf, so that elf gets first shot at
a kldload attempt.
1998-11-03 14:25:21 +00:00
peter
cc3d9aafe5 Use the kvm space pathname that we copied in, not the one in user space. 1998-11-03 13:09:31 +00:00
peter
78464eeb15 Reactivate coda. Also, KLD isn't just for i386, it will work on all
architectures since it is a key part of the configuration mechanism. The
exact same code runs in the kernel as it does in a kld module.
1998-11-03 08:58:27 +00:00
peter
851bd52172 Support KLD. We register and unregister two modules. "coda" (the vfs)
via VFS_SET(), and "codadev" for the cdevsw entry.  From kldstat -v:
 3    1 0xf02c5000 115d8    coda.ko
        Contains modules:
                Id Name
                 2 codadev
                 3 coda
1998-11-03 08:55:06 +00:00
julian
aa7402e864 In the cyrix Cx5530, there are null (empty) Base address registers before the
base register that controls Ultra-DMA, so we need to examine all possible
base registers instead of just giving up at the first empty one.
Also, looking at the source code to the BIOS, I see that they are also
checking for 0xffffffff as an invalid value so do the same. Stefan may like
to clean this up, but at least now I can find my PCI IDE registers.
1998-11-03 08:47:29 +00:00
phk
c6a794270e Move the "root" entry up so people can see it. 1998-11-03 08:14:38 +00:00
peter
e7e9c71f4a Update unionfs comments; It could be made to work but isn't worth the
effort since LKM's will be going away soon.
1998-11-03 08:07:08 +00:00
peter
e6e5fe4da6 The union kld module is now fully functional. 1998-11-03 08:03:04 +00:00
peter
7819a9450e Change the #ifdef UNION code into a callable hook. Arrange to have this
set up when unionfs is present, either statically or as a kld module.
1998-11-03 08:01:48 +00:00
grog
da2bac6a49 Correct name of RAID-5 version
Add URL for Cybernet
1998-11-03 07:02:58 +00:00
peter
2c746786bd Update comments on status of modules 1998-11-03 06:51:48 +00:00
peter
b1b96c5c5f Build KLD modules, these work for both a.out and elf. 1998-11-03 06:50:58 +00:00
grog
817fa589a9 Correct u_int_64 casting to remove warnings in printf() 1998-11-03 06:39:39 +00:00
grog
e284b0b462 Remove some dead code and comments 1998-11-03 06:38:58 +00:00
grog
1d2a8a5a9c Print a warning if we removed a junked drive
Take a drive down if it's not open
1998-11-03 06:38:26 +00:00
grog
14ab1cb81a Take drive down if the disk driver tells us it's not there 1998-11-03 06:37:57 +00:00
grog
194b462c0c Check for duplicate subdisk names 1998-11-03 06:37:14 +00:00
msmith
fe1c6b5af2 Add the Ficl (Forth Inspired Command Language) interpreter. If all goes well,
this will allow us to manage bloat in the loader by using a bytecoded HLL
rather than lots of C code.  It also offers an opportunity for vendors
or others with special applications to significantly customise the boot
process without having to commit to a divergent code branch.

This early commit is to allow others to experiment with the most effective
mechanisms for integrating FICL with the loader as it currently stands.

Ficl is distributed with the following license conditions:

"Ficl is freeware.  Use it in any way that you like, with the understanding
 that the code is not supported."

All source files contain authorship attributions.

Obtained from:	John Sadler (john_sadler@alum.mit.edu)
1998-11-03 06:11:35 +00:00
jkh
004c9a9a7b Deal with both foo.hlp and FOO.TXT files. 1998-11-03 03:38:56 +00:00
jkh
4d71d2d6e9 Copy appropriate docs into help/ directory of boot floppy. 1998-11-03 03:36:34 +00:00
jkh
06bdd2ba98 Use the new doc locations. 1998-11-03 03:31:22 +00:00
jkh
46de8d9aba Stage 1: Move a bunch of docs out from under sysinstall and other
less than accessible places.
1998-11-03 03:21:09 +00:00
yokota
bea6b236e2 Don't update the screen while the cursor shape is being changed
by the user-land program.
PR: i386/8344
1998-11-03 02:37:46 +00:00
msmith
e79304233b Ok, the entry aging algorithm sucked; 1s time resolution is not enough for
LRU.  Use a 31-bit counter instead.  If we decide to do heavy I/O through
the bootloader this will have to be revisited.
1998-11-02 23:50:59 +00:00
msmith
7ff854a690 Implement a simple LRU block cache. By default this is initialised to 16k,
and will bypass transfers for more than 8k.  Blocks are invalidated after
2 seconds, so removable media should not confuse the cache.

The 8k threshold is a compromise; all UFS transfers performed by
libstand are 8k or less, so large file reads thrash the cache.
However many filesystem metadata operations are also performed using
8k blocks, so using a lower threshold gives poor performance.

Those of you with an eye for cache algorithms are welcome to tell me
how badly this one sucks; you can start with the 'bcachestats' command
which will print the contents of the cache and access statistics.
1998-11-02 23:28:11 +00:00
rnordier
459dfe3332 Revise a few comments. 1998-11-02 17:53:08 +00:00
msmith
fed03efc4e Standardise on ';' as a component separator; it seems to be a little more
common than ','.
1998-11-02 16:55:57 +00:00
joerg
55bc1d5350 Include `enigma' into the list of usr.bin programs. 1998-11-02 11:01:38 +00:00
obrien
0539a87a0e Remove the "adding default route" message and replace with
"Looking up host %s".

Suggested by:	msmith
1998-11-02 10:42:18 +00:00
obrien
e7035deee9 spell check 1998-11-02 09:39:54 +00:00
grog
0dbd09dcde Show revive pointer in percentage complete as well as absolute value. 1998-11-02 04:12:51 +00:00
grog
3d94966976 Remove kludge to set subdisk states when bringing up a plex 1998-11-02 04:12:28 +00:00
grog
95f7eb9b2a Change some numeric #defines to enums 1998-11-02 04:11:16 +00:00
grog
481b541319 Don't close drives when called from interrupt context, set a flag for
the top half to do it.

Put in a dubious check for subdisk integrity when trying to bring
up a plex where others are already up.  This particular kludge is
crying out for a rewrite of the whole state code.

Add code to set_plex_state and set_volume_state to defer updates when
called from an interrupt context.  This doesn't happen yet, but it
could do.
1998-11-02 04:10:45 +00:00
grog
dac500a962 Get the default revive blocksize right for striped and RAID-5 plexes 1998-11-02 04:10:19 +00:00
grog
b7c6c26d5a Close any drives downed in an interrupt context.
Ensure correct order of requests.
Call launch_requests at splhigh to see if this stops the mysterious
SMP panics
1998-11-02 04:09:34 +00:00
grog
fad87abf77 Accept incorrect device open counts, but print a warning
Don't save invalid drive config information, remove the drive
1998-11-02 04:09:09 +00:00
grog
fd0b82172d Check for maximum number of subdisks in a plex
Get object counts right when removing
1998-11-02 04:08:30 +00:00