Commit Graph

564 Commits

Author SHA1 Message Date
bde
fb586a0db4 Make pcvt and syscons live in the same kernel. If both are enabled, then
the first one in the config has priority.  They can be switched using
userconfig().

i386/i386/conf.c:
Initialize the shared syscons/pcvt cdevsw entry to `nx'.

Add cdevsw registration functions.

Use devsw functions of the correct type if they exist.

i386/i386/cons.c:
Add renamed syscons entry points to constab.

i386/i386/cons.h:
Declare the renamed syscons entry points.

i386/i386/machdep.c:
Repeat console initialization after userconfig() in case the current
console has become wrong.  This depends on cn functions not wiring down
anything important.

sys/conf.h:
Declare new functions.

i386/isa/isa.[ch]:
Add a function to decide which display driver has priority.  Should be
done better.

i386/isa/syscons.c:
Rename pccn* -> sccn*.

Initialize CRTC start address in case the previous driver has moved it.

i386/isa/syscons.c, i386/isa/pcvt/*
Initialize the bogusly shared variable Crtat dynamically in case the
stored value was changed by the previous driver.

Initialize cdevsw table from a template.

Don't grab the console if another display driver has priority.

i386/isa/syscons.h, i386/isa/pcvt/pcvt_hdr.h:
Don't externally declare now-static cdevsw functions.

i386/isa/pcvt/pcvt_hdr.h:
Set the sensitive hardware flag so that pcvt doesn't always have lower
priority than syscons.  This also fixes the "stupid" detection of the
display after filling the display with text.

i386/isa/pcvt/pcvt_out.c:
Don't be confused the off-screen cursor offset 0xffff set by syscons.

kern/subr_xxx.c:
Add enough nxio/nodev/null devsw functions of the correct type for syscons
and pcvt.
1995-09-10 21:36:12 +00:00
bde
ad7999f808 cons.c:
Split off cdevsw initialization in cninit() into a new function
cninit_finish() that isn't called until all hardware device drivers
have been attached.  The bdevsw entry of the driver for the physical
console needs to be hooked after the physical driver has been
attached in case the attachment modified the entry.

Rearrange cninit() to avoid changing cn_tab until the driver for the
physical console has been initialized, so that the previous driver
(if any) can be used for debugging.

Start removing half-baked lint support.  bdevsw functions usually have
unused args but /*ARGSUSED*/ was used for only about 5% of them.

cons.h:
Declare cn_init_finish().

autoconf.c:
Call cn_init_finish().

Start adding prototypes.  Functions with bogus linkage (extern where
static is probably should be static) are explicitly declared as extern
so that the can be found easily (extern in a non-header is usually
wrong).

All:
Continue cleaning up init stuff: init functions shall be static;
INITs should be at the start of files...
1995-09-10 18:57:26 +00:00
bde
13843b0bec Fix wakeups for TIOCDRAINWAIT. The conditional wakeups introduced in rev
1.59 defeated the point of doing the wakeups (having reduced timeouts
take effect immediately).
1995-09-10 11:48:13 +00:00
dg
573c688a68 Fixed init functions argument type - caddr_t -> void *. Fixed a couple of
compiler warnings.
1995-09-09 18:10:37 +00:00
dg
3ecdc71d41 Fix my copyright. 1995-09-08 13:24:33 +00:00
bde
b25431cbea Fix benign type mismatches in devsw functions. 82 out of 299 devsw
functions were wrong.
1995-09-08 11:09:15 +00:00
nate
419924a821 Removed unused local variable from shutdown_nice() 1995-09-06 15:23:20 +00:00
dyson
251a16a6af Added VOP_GETPAGES/VOP_PUTPAGES and also the "backwards" block count
for VOP_BMAP.  Updated affected filesystems...
1995-09-04 00:21:16 +00:00
dyson
bc38d23bfc VOP_BMAP will eventually need an additional argument, but not yet. This
backs out that modification to minimize the window during which this
is not yet correct.
1995-09-03 20:32:52 +00:00
dyson
a601f9859f Improvements to the cluster code, minor vfs_bio efficiency:
Better performance -- more aggressive read-ahead
	under certain circumstanses.

	Mods to support clustering on small
	( < PAGE_SIZE) block size filesystems (e.g. ext2fs,
	msdosfs.)
1995-09-03 19:56:15 +00:00
julian
3b421a628b devfs changes..
changes to allow devices that don't probe (e.g. /dev/mem)
to create devfs entries
this required giving 'configure' its own SYSINIT entry
so we could duck in just before it with a DEVFS init
and some device inits..
my devfs now looks like:
./misc
./misc/speaker
./misc/mem
./misc/kmem
./misc/null
./misc/zero
./misc/io
./misc/console
./misc/pcaudio
./misc/pcaudioctl
./disks
./disks/rfloppy
./disks/rfloppy/fd0.1440
./disks/rfloppy/fd1.1200
./disks/floppy
./disks/floppy/fd0.1440
./disks/floppy/fd1.1200
also some sligt cleanups.. DEVFS needs a lot of work
but I'm getting back to it..
1995-09-03 05:43:50 +00:00
dyson
a752352fe7 Increase the size of the pipe buffer as denoted by PIPSIZ from
4k to 8k.  This has a significant effect on the pipe performance.  In
the future it might be good to increase this to 16k.  PIPSIZ is now
tunable for experimentation.
1995-08-31 01:39:31 +00:00
bde
025e99bcd1 Fix several sysinit functions that had the wrong type and unnecessarily
external linkage.

Remove useless comments saying that SYSINIT() does system initialization.

shm.c:
Remove nearly useless comment that gave wrong pseudo-prototypes.
1995-08-30 00:33:02 +00:00
bde
26e9d1768e Fix benign type mismatch in a sysinit function arg. 1995-08-30 00:17:18 +00:00
bde
c0826c67f6 Fix benign type mismatches and nested extern declarations in new sysinit
code.

Fix old and new missing prototypes.
1995-08-29 23:59:22 +00:00
bde
7de347d915 kmstartup had the wrong type and unnecessarily external linkage for a
sysinit function.

subr_prof.c:
Remove useless comment.
1995-08-29 03:09:14 +00:00
bde
9d58b7eb43 Fix correct_writedisklabel() and writedisklabel(). Their setting of
bp->b_flags has been broken for many years:
a) they didn't set B_BUSY for doing i/o.  This has been fatal since
   1995/07/25 when biodone() started checking that B_BUSY is set.
b) they didn't set B_INVAL for releasing the buffer.  This at best
   just put a useless buffer in the LRU queue for a little while.

Fix a couple of spelling errors and complete a couple of function
pointer declarations.
1995-08-28 16:09:11 +00:00
julian
ebb726ec45 Reviewed by: julian with quick glances by bruce and others
Submitted by:	terry (terry lambert)
This is  a composite of 3 patch sets submitted by terry.
they are:
New low-level init code that supports loadbal modules better
some cleanups in the namei code to help terry in 16-bit character support
some changes to the mount-root code to make it a little more
modular..

NOTE: mounting root off cdrom or NFS MIGHT be broken as I haven't been able
to test those cases..

certainly mounting root of disk still works just fine..
mfs should work but is untested. (tomorrows task)

The low level init stuff includes a total rewrite of init_main.c
to make it possible for new modules to have an init phase by simply
adding an entry to a TEXT_SET (or is it DATA_SET) list. thus a new module can
be added to the kernel without editing any other files other than the
'files' file.
1995-08-28 09:19:25 +00:00
bde
c8287897a6 Don't compile the diagnostic functions vhold() and holdrele() unless
DIAGNOSTIC is defined.
1995-08-25 20:49:44 +00:00
bde
1919b096ca Remove extra arg from one of the calls to (*pr_usrreq)(). 1995-08-25 20:27:46 +00:00
bde
76258d109c Call nosys() from lkmnosys() with the correct number and type of args
instead of with none.  The first (struct proc *) arg is used if lkmnosys()
if is actually called.

Implement lkmnosys() with the correct number and type of args so that
the first of them can be used and the others won't need to be fixed
lated.
1995-08-25 20:03:02 +00:00
dg
05ce7ad654 Another minor optimization, this time to incore(). 1995-08-24 13:59:14 +00:00
dg
71510114b2 Minor optimization. 1995-08-24 13:28:16 +00:00
dg
b4c4ba5932 Killed some gratuitous #include's. 1995-08-24 12:54:11 +00:00
dg
0af2eee79d Moved setting of VTEXT flag into the appropriate image activators. This
fixes a bug where linux binaries would get the flag set inappropriately.
1995-08-24 10:32:37 +00:00
dfr
8bffcb6d1a Add support for amd direct maps.
Reviewed by:	Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
1995-08-24 10:17:39 +00:00
jkh
20b06a26bb Don't clip d_ncylinders to value used by partitions. 1995-08-23 11:43:45 +00:00
jkh
9949f9b318 Properly initialize the d_ncylinders field to the maximum number of
cylinders.
1995-08-23 10:41:57 +00:00
dg
f635c53ade A couple of micro optimizations to improve NULL syscall performance by
about 2%.
1995-08-21 18:06:48 +00:00
dg
6c6ccd5982 Call boot() instead of cpu_reset() if init isn't running in shutdown_nice. 1995-08-20 04:42:25 +00:00
bde
36cc023d9c The cred' and proc' args were missing for some VOP_OPEN() and VOP_CLOSE()
calls.

Found by: gcc -Wstrict-prototypes after I supplied some of the 5000+
missing prototypes.  Now I have 9000+ lines of warnings and errors
about bogus conversions of function pointers.
1995-08-17 11:53:51 +00:00
bde
b31df09238 Make everything except the unsupported network sources compile cleanly
with -Wnested-externs.
1995-08-16 16:14:28 +00:00
dg
5b4b270015 Converted mountlist to a CIRCLEQ.
Partially obtained from: 4.4BSD-Lite2
1995-08-11 11:31:18 +00:00
dg
ec426e40ee Move mbuf frees to after call to sorflush().
Submitted by:	Matt Dillon
1995-08-08 02:22:16 +00:00
dg
99714b736d On closer inspection, it turns out that all of the callers of disksort
are already at splbio()...so back out the last change to disksort.
1995-08-07 14:20:27 +00:00
dg
d14e60d279 Since buffers can be pulled off of the disk queue at interrupt time and
disksort is called at non-interrupt time and can be actively traversing
the list when that happens, there is a very small window of vulnerability.
Close it by protecting disksort with splbio().
1995-08-07 11:55:32 +00:00
dg
3ed1e41c8e Woops, I committed the wrong version of the diff in the last rev. 1995-08-07 08:40:49 +00:00
dg
fad46e4f97 Made msgbuf range checking more robust and clean. 1995-08-07 07:58:23 +00:00
dg
f0b49bdd9e Restore check for msg_bufx being negative. Changed if() expression to be
in Lite2 style.
1995-08-06 22:00:17 +00:00
joerg
8bdb8276ba Extentd David's recent change to shutdown_nice() by calling
cpu_reset() directly in case init(8) is *not* running.
1995-08-06 19:45:34 +00:00
dg
d37f4ba3bc Resize both VMIO and non-VMIO buffers if the size changes. 1995-08-06 12:10:39 +00:00
ache
2fcbb0e592 Preserve current termios speed for TIOCSET*, if it matched with
nearest valid. It means that gtty+stty transaction (without speed
change) not breaks non-standard speeds now.
1995-08-02 12:53:14 +00:00
ache
a3dede9354 Better approximation for TIOCGETP (gtty) for non-standard speeds.
Old variant returns 38400 for them, now it returns nearest matched
rounded down, expect speeds in range 0 > speed < 50 rounded up
to not produce hangup.
1995-08-02 12:03:12 +00:00
ache
4b4411611c Back out predefined termios speeds check, it can cause troubles
with interaction pty <-> serial driver with non-standard speed.
So, nothing protect us from garbadge in speed field, expect
checking for < 0 left in tty.c :-(
1995-08-02 11:26:50 +00:00
ache
aa6b65d135 Check for valid speed values in pty drive
Check for negative speed values in tty drive
Back out valid speed values checking from tty drive
Suggested by: bde
1995-08-02 06:55:36 +00:00
bde
3be0ba285f Don't set TS_ZOMBIE flag for non-open ptys. ptcclose() has always done
too much for non-open ptys, but there is normally no problem because the
l_modem(, 0) is a no-op for closed ptys provided the line discipline is
standard and MDMBUF isn't set.
1995-08-02 02:55:47 +00:00
ache
8d9dc39602 Optimize a bit valid speed search using fact that speed table sorted
Submitted by:
Obtained from:
1995-08-01 23:38:00 +00:00
ache
caec2f2ae9 Check for valid speeds in TIOCSET* and return EINVAL for incorrect
values instead of setting garbadge.
1995-08-01 23:27:36 +00:00
dg
21cc29328e Removed my special-case hack for VOP_LINK and fixed the problem with the
wrong vp's ops vector being used by changing the VOP_LINK's argument order.
The special-case hack doesn't go far enough and breaks the generic
bypass routine used in some non-leaf filesystems. Pointed out by Kirk
McKusick.
1995-08-01 18:51:02 +00:00
bde
659cc4e678 Obtained from: partly from ancient patches of mine via 1.1.5
Change all short variables in `struct tty' to int.  Shorts were only
right on ancient systems with ints optimized for vaxness over
efficiency.
1995-07-31 22:50:08 +00:00