Commit Graph

1412 Commits

Author SHA1 Message Date
Justin T. Gibbs
bd524f1b07 Initialize SIMODE1, SCSIID, and SXFRCTL1 in ahc_init instead of at each
reconnection/selection with a target.
1995-01-22 00:48:39 +00:00
Justin T. Gibbs
d7be8cb6e9 Change the string returned in the aic7870 motherboard probe case. Change
#define to a more appropriate name.
1995-01-22 00:47:50 +00:00
Bruce Evans
1a0518966d Don't use mi_switch() to terminate cpu_exit(). Calling it just happened to
work (mi_switch() counted the last timeslice again but this didn't affect
the exiting process' rusage because the rusage has already been finalized).

Remove stale comment.
1995-01-21 15:34:03 +00:00
Bruce Evans
cee6d3700d Remove unused definitions of vm statistics counters. Most of the
counting is now done in C.  There are still about 100 unused
definitions for other things.
1995-01-21 15:22:28 +00:00
Bruce Evans
e6891db8c5 Don't count context switches here, they are already counted in mi_switch(). 1995-01-21 15:20:23 +00:00
Bruce Evans
a2562ad917 Keep track of open devices better to avoid closing the console device when
the physical device is closed.  Previously only the reverse case was handled.
Abuse the cdevsw interface instead of the vfs interface to do this.

Remove unnecessary #includes.
1995-01-21 14:12:15 +00:00
Søren Schmidt
02fb646de1 Second round in syscons update:
Support for pseudo graphic mouse cursor (not complete yet)
Some cheap speed fixes.
More cleanups.
Call ourselves scxxxx finally.
1995-01-20 08:35:32 +00:00
Bill Paul
f06a45ddd7 Removed hardcoded definition for RB_SERIAL that I left in my accident
(had it there for testing purposes). RB_SERIAL should be found in
<sys/reboot.h>.
1995-01-20 07:52:42 +00:00
Bill Paul
f778c9da00 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
bios boot block changed to allow booting from both the attached graphics
display and from a serial port. (A specially compiled serial boot block
is no longer necessary.) The boot block should detect the presence or
absence of a keyboard: if there is no keyboard, COM1 is turned into the
console. This simulates the behavior of the Sun boot PROMs. Unplug your
keyboard, attach a terminal to COM1 and you should be ready to go. :)
1995-01-20 07:48:27 +00:00
Bill Paul
2b237b4058 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
sio.c and sioreg.c changed to allow autodetecting the RB_SERIAL flag
passed by the boot blocks so that the kernel can switch to 'serial
console' mode automagically. 'options COMCONSOLE' can still be specified
to force the kernel to always use the serial port as a console.
CONUNIT and CONADDR can also be specified in the kernel config file
if the user wants to shift the console to a different port.
1995-01-20 07:34:18 +00:00
Andreas Schulz
c82762a9c3 Submitted by: Bruce Evans
Put in the much shorter and cleaner version for the calibrate_cycle_counter
for the Pentium that Bruce suggested. Tested here on my Pentium  and
it works okay.
1995-01-19 22:05:27 +00:00
Peter Dufault
8d38e0afd0 Print out exactly what we think the board is, and for the latest
rev Adaptec boards enable data transfer length detection instead
of assuming requested amount of data is transferred.
1995-01-19 12:33:10 +00:00
Jordan K. Hubbard
0b3782714e Enable floppy-tape controller by default again. Flags no longer has any
special meaning.
1995-01-17 17:32:33 +00:00
Bruce Evans
2d2fb1bf6b The %eflags checking introduced in the previous commit was too zealous.
sigreturn() sometimes failed for ordinary returns from signal handlers.
Failures of ordinary returns "can't happen" and are badly handled.
"Temporary" fix: allow users to corrupt PSL_RF.  This is fairly
harmless.  A correct fix would involve saving the old %eflags (and
perhaps the old segment registers) where the user can't get at them.
1995-01-17 01:15:12 +00:00
Justin T. Gibbs
87cf6d44c7 Add $Ids. Use DMA for downloading SCBs to the sequencer. Implement SDTR,
WDTR, and message reject handlers so they don't need to exist in the
sequencer.  All three of these cases are not on the critical path, so it
makes little sense to use up precious sequencer ram for them.
1995-01-16 16:33:47 +00:00
Justin T. Gibbs
344e176820 Add $Id. Recognize motherboard aic7870 based controllers. 1995-01-16 16:31:57 +00:00
Justin T. Gibbs
f61afda9a4 Add $Id 1995-01-16 16:31:34 +00:00
David Greenman
7082ec8aa5 Fixed some page table reference count problems; these changes may not be
complete, but should be closer to correct than before.
1995-01-15 09:06:23 +00:00
Garrett Wollman
b60e6e6e9f Some fixes to device configuration, now that I've had a chance to do it
properly from the beginning:

	1) The `kern_devconf' struct should be a part of the driver's
	   `softc' structure (now it is).
	2) The `description' should say what the device actually is,
	   rather than just giving a model number (now it does).
	3) The device should be registered even if the probe fails, so
	   that it can be reconfigured later.
	4) For netifs, the device state should follow the IFF_UP flag.

Other network interfaces should follow this example.  (Please?)  Eventually
there should be a rundown routine doing the equivalent of setting IFF_UP
off, and perhaps more if warranted.
1995-01-15 00:18:17 +00:00
Bruce Evans
20415301cd Fix security holes in sigreturn(), ptrace() and procfs. sigreturn()
attempted to check for insecure and fatal eflags and segment
selectors, but missed many cases and got the IOPL check back to
front.  The other syscalls didn't check at all.

sys_process.c, machdep.c:
Only allow PT_WRITE_U to write to the registers (ordinary and FP).

psl.h, locore.s, machdep.c:
Eliminate PSL_MBZ, PSL_MBO and PSL_USERCLR.  We are not supposed
to assume anything about the reserved bits.  Use PSL_USERCHANGE
and PSL_KERNEL instead.  Rename PSL_USERSET to PSL_USER.

exception.s:
Define a private label for use by doreti when returning to user
mode fails.

machdep.c:
In syscalls, allow changing only the eflags that can be changed on
486's in user mode (no longer attempt to allow benign IOPL changes;
allow changing the nasty PSL_NT; don't allow changing the i586
bits).

Don't attempt to check all the cases involving invalid selectors
and %eip's.  Just check for privilege violations and let the invalid
things cause a trap.

procfs_machdep.c:
Call the ptrace register functions to do all the work for reading
and writing ordinary registers and for single stepping.

trap.c:
Ignore traps caused by PSL_NT being set.  Previously, users could
cause a fatal trap in user mode by setting PSL_NT and executing an
iret, and a fatal trap in kernel mode by setting PSL_NT and making
a syscall.  PSL_NT was cleared too late and not in enough modes to
fix the problem.

Make all traps in user mode (except T_NMI) nonfatal.

Recover from traps caused by attempting to load invalid user
registers in doreti by restarting the traps so that they appear to
occur in user mode.
---

Fix bogons that I noticed while fixing the above:

psl.h:
Fix some comments.

Uniformize idempotency ifdef.

exception.s, machdep.c:
Remove rsvd[0-14].  rsvd0 hasn't been reserved since the 486 came
out.  Replace rsvd0 by `align'.  rsvd[0-11] used wrong (magic
non-unique) trap numbers.  Replace rsvd[1-14] by rsvd.

locore.s:
Enable alignment check flag on 486's and 586's.

machdep.c:
Use a better type for kstack[].

Use TFREGP() to find the registers.

Reformat ptrace functions from SEF to something closer to KNF.

procfs_machdep.c:
The wrong pointer to the registers got fixed as a side effect.

Implement reading and writing of FP registers.

/proc/*/*regs now work (only) for processes that are in memory.

Clean up comments.

trap.c, trap.h:
Remove unused trap types.
1995-01-14 13:20:26 +00:00
Bruce Evans
3831ab07f8 Define some public labels for use by trap(). 1995-01-14 11:00:27 +00:00
Jordan K. Hubbard
9949564470 Remove bogus scd0 driver - I should have looked at LINT first, anyway. 1995-01-14 10:48:56 +00:00
Bruce Evans
3117fbd98e Enable define of CR0_AM to prepare for implementing alignment checking.
Uniformize idempotency ifdef.
1995-01-14 10:44:55 +00:00
Bruce Evans
c277f99332 Declare a real `struct fpreg' to prepare for implementing reading and
writing of FP regs for procfs.

Uniformize idempotency ifdef.
1995-01-14 10:41:41 +00:00
Bruce Evans
1e1a3d012d Remove reference to impossible trap type T_KDBTRAP. We don't support
watchpoints.

Uniformize idempotency ifdef.
1995-01-14 10:34:52 +00:00
Bruce Evans
9bf308efab Eliminate T_KDBTRAP, which will soon go away. It was only used for an
unreachable case label in kdb_trap().

Use the correct case labels in kdb_trap() so that normal ddb entry doesn't
print a message.

Change all printf's to db_printf's.  Now you can put a breakpoint at printf,
and ddb entry messages don't spam the syslog output.

Cosmetic:

Use ISPL() instead of magic numbers.

Don't compile the unused function kdb_kbd_trap().

Improve some asms.

Print the arg to Debugger().
1995-01-14 10:24:48 +00:00
David Greenman
92c385361b Add missing object_lock/unlock. 1995-01-14 04:58:53 +00:00
Jordan K. Hubbard
0dd1eea105 Put UCONSOLE back - I was wrong, it's still used in one last place.
Submitted by:	ollivier
1995-01-14 02:39:22 +00:00
Søren Schmidt
2a13b58b61 Oops, forgot one change when DDB is defined. 1995-01-13 17:13:13 +00:00
Andrey A. Chernov
b9937fcc84 Use (n - 1) in ESC [ xxx d and ESC [ xxx ` 1995-01-13 03:19:22 +00:00
Justin T. Gibbs
b6b99cabea Point dependancy to i386/scsi 1995-01-13 02:29:14 +00:00
Justin T. Gibbs
01ce9c8620 Point include to i386/scsi 1995-01-13 02:27:08 +00:00
Justin T. Gibbs
deefdf55f5 Generic support for the entire aic7x70 line of adaptors. No one else
came up with a directory place ment more me, so now we have i386/scsi.
1995-01-13 02:24:31 +00:00
Justin T. Gibbs
451ab98ff3 Add in aic7770.c (EISA/VL Adaptors) and aic7870.c (PCI adaptor) dependancies
for the ahc driver.
1995-01-13 02:23:27 +00:00
Andrey A. Chernov
9db2473d62 Back out cursor wrap (restore original thing)
Submitted by: Bill Paul
1995-01-12 20:14:28 +00:00
Joerg Wunsch
dac0f2dbc1 Argl!, finally found this bummer. The code testing for a write-
protected drive at open() time has been *totally bogus*!  The guy who
submitted it didn't understand all the implications of calling
set_motor(), and the `who' who included the patch into the tree did it
blindly...  Pleeeeze, don't commit code to this driver unless you are
really going to understand what it does!  This one caused me to pull
out even more hears, and those who know me do know that i ain't got
too many o'them. :-)
1995-01-12 19:20:28 +00:00
Jordan K. Hubbard
09c42f85eb 1. Remove UCONSOLE. This appears to be well and truly dead (unless it's
hiding someplace in /sys I can't find).
2. Remove NCONS.  Soren's latest changes make it a no-op.
1995-01-12 15:37:16 +00:00
Stefan Eßer
cde24835d3 Submitted by: Mikael Hybsch <micke@dynas.se>
Add support for NCR 53c815 PCI SCSI chip.
1995-01-12 14:01:13 +00:00
Ugen J.S. Antsilevich
c5d5269fa6 here ip_fw.c lived once..correct me if i am wrong but
i think it shopuld be in conf/files
1995-01-12 13:05:00 +00:00
Søren Schmidt
6378775666 First round in syscons update. Several new features has been added:
No kernel config options anymore besides keyboard language layout.
Virtual consoles are now dynamically allocated, no NCONS anymore.
Software cursor blinking/nonblinking.
Visual bell for laptops (don't beep at meetings :-).
Cursor/bell default type setable via config "flags" instead of as defines.
Cursor/bell type setable via ioctl's.
New video modes 80x30 80x60 for some laptops, and those with multisync monitors.
Scroll-lock history (length currently fixed at 100 lines).
Lots of cleanups, some only commented out for now (will goaway soon).
Support for new features in vidcontrol/kbdcontrol.
Updated manpages.
1995-01-12 11:47:05 +00:00
Jordan K. Hubbard
6722294de8 Change GENERIC to SWAP_GENERIC for now. I need the GENERIC kernel to
build by default again!  When the furor subsides, maybe something better
can be done, but..
1995-01-11 17:51:26 +00:00
Joerg Wunsch
dc16046f96 Finally implement support for the `lsdev' program. The controller is
now marked busy as long as it's being in non-reset state, and the
drives are busy as long as at least one instance is open.

Also reformat everything to fit into 80 columns again.

Changed my mind wrt. error reporting for a write-protected drive and
an open() with write intent; ENXIO has been too weird, now return EIO.
Some portions of the code need to be rewritten to use tprintf()
instead of simple printf()'s, so the messages will also appear on the
session terminal, however.
1995-01-11 16:13:01 +00:00
Jordan K. Hubbard
ed4a82f717 Latest update from Serge Vakulenko <vak@cronyx.ru>
Submitted by:	vak
1995-01-10 11:41:28 +00:00
Joerg Wunsch
b324392f6b fix for: kern/97: wt DELAY patch
Wangtek PC-02 QIC-02 controller with Cipher 150MB tape drive

        Any attemp to open /dev/rwt0 hangs.

        The following patch to /sys/i386/isa/wt.c is derived from Mikael
Hybsch's wt driver.

Submitted by:	Terry Lee <terry@uivlsi.csl.uiuc.edu>
1995-01-09 17:55:10 +00:00
David Greenman
0d94caffca These changes embody the support of the fully coherent merged VM buffer cache,
much higher filesystem I/O performance, and much better paging performance. It
represents the culmination of over 6 months of R&D.

The majority of the merged VM/cache work is by John Dyson.

The following highlights the most significant changes. Additionally, there are
(mostly minor) changes to the various filesystem modules (nfs, msdosfs, etc) to
support the new VM/buffer scheme.

vfs_bio.c:
Significant rewrite of most of vfs_bio to support the merged VM buffer cache
scheme.  The scheme is almost fully compatible with the old filesystem
interface.  Significant improvement in the number of opportunities for write
clustering.

vfs_cluster.c, vfs_subr.c
Upgrade and performance enhancements in vfs layer code to support merged
VM/buffer cache.  Fixup of vfs_cluster to eliminate the bogus pagemove stuff.

vm_object.c:
Yet more improvements in the collapse code.  Elimination of some windows that
can cause list corruption.

vm_pageout.c:
Fixed it, it really works better now.  Somehow in 2.0, some "enhancements"
broke the code.  This code has been reworked from the ground-up.

vm_fault.c, vm_page.c, pmap.c, vm_object.c
Support for small-block filesystems with merged VM/buffer cache scheme.

pmap.c vm_map.c
Dynamic kernel VM size, now we dont have to pre-allocate excessive numbers of
kernel PTs.

vm_glue.c
Much simpler and more effective swapping code.  No more gratuitous swapping.

proc.h
Fixed the problem that the p_lock flag was not being cleared on a fork.

swap_pager.c, vnode_pager.c
Removal of old vfs_bio cruft to support the past pseudo-coherency.  Now the
code doesn't need it anymore.

machdep.c
Changes to better support the parameter values for the merged VM/buffer cache
scheme.

machdep.c, kern_exec.c, vm_glue.c
Implemented a seperate submap for temporary exec string space and another one
to contain process upages. This eliminates all map fragmentation problems
that previously existed.

ffs_inode.c, ufs_inode.c, ufs_readwrite.c
Changes for merged VM/buffer cache.  Add "bypass" support for sneaking in on
busy buffers.

Submitted by:	John Dyson and David Greenman
1995-01-09 16:06:02 +00:00
Jordan K. Hubbard
716831f5f4 Add a MIN macro. 1995-01-09 11:38:40 +00:00
Poul-Henning Kamp
5b568d88bb cdev #50 -> pcmcia 1995-01-09 09:36:48 +00:00
Peter Dufault
081964045f Added residual length for 1542C only 1995-01-08 13:41:28 +00:00
Peter Dufault
e8831d3712 added ssc device 1995-01-08 13:40:31 +00:00
David Greenman
f7c9e2441f Restored Herb's current copyright. The one in the file appeared to have
been run through indent and additionally doesn't contain clauses 3 and 4
that were apparantly added sometime after the driver was put into FreeBSD.
1995-01-08 10:47:23 +00:00