12524 Commits

Author SHA1 Message Date
msmith
0e8da37687 Don't try to build i386-centric modules on non-i386 systems. 1998-11-04 17:15:07 +00:00
peter
61a53e2b63 Make a.out kernels kld compatable by default... 1998-11-04 15:27:41 +00:00
peter
abe415781a The handle for the kernel is common. With this fix, ELF kernels can load
a.out kld modules, and a.out kernels can load ELF kld modules.
1998-11-04 15:20:58 +00:00
peter
7f0987e02d Remove stray(?) debugging printf's and cngetc()'s that freeze boot several
times waiting for keypresses.
1998-11-04 13:37:43 +00:00
luigi
2842a92b36 Remove an error message from sb interrupt driver -- it
does not apply to all situations.
1998-11-04 09:13:20 +00:00
msmith
38c50ef266 Improve the assertion testing for successful softword compilation.
The excessive use of assert() vs. robust error checking is annoying.
1998-11-04 07:07:18 +00:00
peter
51a1d0307e Simple update to make these work as kld and preload modules. 1998-11-04 03:49:39 +00:00
msmith
41affade8b Turn off -g accidentally left in from testing. 1998-11-04 03:42:36 +00:00
msmith
4797b6fa60 Fix includes; we were still pulling in <stdlib.h> in some places.
Support building a standalone interpreter with 'make testmain', remove
win32 and egregious gets() in testmain.c
1998-11-04 03:42:16 +00:00
msmith
b5e4ddf831 Use a smaller default dictionary to waste less space. 1998-11-04 03:41:09 +00:00
peter
0b2613691d General tidy up: remove more unused code, update comments, simplify some
routines a little.
1998-11-04 03:18:10 +00:00
jkh
0f99bfc6c0 Respect ${.OBJDIR} properly when looking for libficl.a 1998-11-04 02:36:18 +00:00
msmith
8c52bcabbc Add required parts for BootForth building (currently disabled and
untested).  Only suitable for i386 at the moment, as we are missing
setjmp/longjmp on the Alpha.
1998-11-04 00:30:47 +00:00
msmith
e8cf5aa8c5 Make this work in the libstand environment; don't use stdio/stdlib headers. 1998-11-04 00:29:33 +00:00
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
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
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
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
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
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
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
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
obrien
e7035deee9 spell check 1998-11-02 09:39:54 +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
peter
e268ff150f Only do one VOP_ACCESS() per open() instead of two. This should reduce
the NFSv3 ACCESS RPC problems a little for busy clients that do a lot of
open/close.  The nfs code could probably cache the results, but I'm not
sure whether this would be legal or useful.  The problem is that with
a CPU farm, on each open there would be a lookup, getattr then access RPC
then the read/write RPC activity.  Caching the access results probably
isn't going to help much if the clients access lots of files.  Having the
nfs_access() routine interpret the getattr results is a bit of a hack, but
it's how NFSv2 is done and it might be OK for a mount attribute for v3.
1998-11-02 02:36:16 +00:00
alex
7f75b60ff7 Optimize bzero() by unrolling the aligned quadword loop and moving the length
manipulation away from the length comparison.  Measurements on beast.cdrom.com
show >3X improvement over the original code on large block sizes, putting the
performance on par with the optimized assembly code in libc.
1998-11-02 00:14:50 +00:00