Commit Graph

463 Commits

Author SHA1 Message Date
David Greenman
8f64d25d15 Added four pattern memory test routine that is done at startup. 1994-01-31 23:47:29 +00:00
Andrey A. Chernov
6405a87b09 Remove CALLOUTMASK, if non-bidir case. 1994-01-31 19:07:59 +00:00
Paul Richards
41ef6bd85e Added new probe code to detect generic lance based cards. Should now
work with ne2100 card.
1994-01-31 16:00:53 +00:00
David Greenman
da59a31c01 WINE/user LDT support from John Brezak, ported to FreeBSD by Jeffrey Hsu
<hsu@soda.berkeley.edu>.
1994-01-31 10:27:13 +00:00
Andrey A. Chernov
6df720041a 1) Set ipending back to 4, because (16 + 4) bit not in
netmask or impmask.

2) Fixes from Bruce:
	o Changed name of schedsoftcom() to setsofttty() to match
	  setsoftclock()
	o Bool_t isn't used.
	o tx_fifo_size is 1 for chips without fifos, 16 for 16550's, to
	  help to output more efficiently for 16550's (LSR_TXRDY means
	  that the fifo is empty, not that it has space for one char).
	o Changed name of softsio1() to siopoll() and merged compoll()
	  into siopoll().
	o The probe forgot to clear com_mcr after it failed.  This is
	  harmful for 4 single serial ports on 2 interrupts.  It makes
	  partial misconfigurations worse.
	o Don't bother initializing static variables that are 0 (bidir
	  stuff).
	o Only initialize t_oflag to TTYDEF_OFLAG if unit == COMCONSOLE,
	  not if COMCONSOLE is defined.
	o Don't call siointr() from comparam() if there is no output in
	  progress.  For the call from sioopen(), there's no output in
	  progress, and siointr() often saw silo overflows for stale
	  input because it was called before sioopen() discarded the
	  input.
	o Let ttselect() do the work for select(), so that the fixes for
	  ttselect() don't have to be duplicated in zillions of drivers.
1994-01-31 08:52:12 +00:00
David Greenman
3579d8917b Patch from dcjm@cs.ed.ac.uk (Dave Matthews)...
Yes, I know that IFADDR ioctl is supposed to be deprecated... Note
that the patch was modified by me to fit better into the driver. -DG

...

While porting CAP to 386bsd/pk0.2.4 and now to FreeBSD Release 1.0
I found a couple of bugs associated with the packet filter. Here
are the fixes.  I'm posting them here because they apply to
FreeBSD and 386bsd/pk0.2.4 and possibly to other *BSD.

The first occurs when using the packet filter to write raw
ethernet packets.  The header consisting of the sender and
destination addresses and the protocol is removed and later
added back on, but with the byte order of the protocol reversed.
The fix ensures that the byte order in the protocol field is
swapped when it is removed.

The second fix ensures that SIOCGIFADDR works for BPF as claimed
in the man pages, by adding it to the ed driver.  Similar fixes
will be needed for other ethernet drivers.
Dave Matthews.
1994-01-31 07:34:20 +00:00
David Greenman
0de1886721 Fix broken bit definitions for pte/pde. 1994-01-31 06:52:41 +00:00
David Greenman
d6eb591433 Patch from Brian Smith (modified a little by me) to allow kernel config
file override to disable fifo on 16550s:

I bought a board with two 16550's, but one of those ports has a mouse
on it.  The sio driver always enables the fifo, which is a bad thing
for mice and X.  The mouse is jerky and hard to use.  The simple thing
is be to treat one of the ports as a non-fifo'ed UART, and I use the
flags option in my config file.

So, my config file has:
device      sio0    at isa? port "IO_COM1" tty irq 4 flags 0x2 vector siointr
device      sio1    at isa? port "IO_COM2" tty irq 3 vector siointr

(patch deleted)
1994-01-31 06:12:18 +00:00
David Greenman
43411a3db4 Make I/O memory explicitly non-cacheable. This is purely an asthetic
change.
1994-01-31 04:39:37 +00:00
David Greenman
ec120393a0 VM system performance improvements from John Dyson and myself. The
following is a summary:

1) increased object cache back up to a more reasonable value.
2) removed old & bogus cruft from machdep.c (clearseg, copyseg,
	physcopyseg, etc).
3) inlined many functions in pmap.c
4) changed "load_cr3(rcr3())" into tlbflush() and made tlbflush inline
	assembly.
5) changed the way that modified pages are tracked - now vm_page struct
	is kept updated directly - no more scanning page tables.
6) removed lots of unnecessary spl's
7) removed old unused functions from pmap.c
8) removed all use of page_size, page_shift, page_mask variables - replaced
	with PAGE_ constants.
9) moved trunc/round_page, atop, ptoa, out of vm_param.h and into i386/
	include/param.h, and optimized them.
10) numerous changes to sys/vm/ swap_pager, vnode_pager, pageout, fault
	code to improve performance. LRU algorithm modified to be more
	effective, read ahead/behind values tuned for better performance,
	etc, etc...
1994-01-31 04:19:00 +00:00
Nate Williams
8c0f699c14 From: Wolfgang Solfrank <ws@sun-lamp.cs.berkeley.edu>
To: source-changes@sun-lamp.cs.berkeley.edu

Fix bogus fcom emulations
How did any program with floating point emulation ever work?
1994-01-29 22:07:16 +00:00
Rodney W. Grimes
ec40982451 Remove commented out PROCFS, it is standard. 1994-01-29 21:41:36 +00:00
Rodney W. Grimes
2e8a06d0b6 Patch from Julian. Commit message by me.
Cuddle { braces up where possible on if statements
Add missing splx(s) calls before some returns.
Remove extra semicolon that was keeping uha_init from returning
before the timeout occured.  This should speed probing up quite
a bit!
1994-01-29 10:29:14 +00:00
Andrey A. Chernov
bcbd5c8c3d Set FIFO_TRIGGER in more human-readable form 1994-01-29 03:17:39 +00:00
Nate Williams
f657493cee Added -static declartion to genassym compile so a kernel doesn't require
working shlibs.
1994-01-27 21:10:14 +00:00
David Greenman
801276d0ae Removed no longer used "wire" element in pv struct. 1994-01-27 03:36:14 +00:00
David Greenman
5d7fe66e75 Made pmap_is_managed a static inline function. 1994-01-27 03:35:42 +00:00
Andrey A. Chernov
690f540c97 Add FIFO_TRIGGER value for sio.c 1994-01-27 01:01:22 +00:00
David Greenman
1ef486634f Remove confusing and incorrect comment inherited from patchkit days. 1994-01-26 20:42:18 +00:00
Nate Williams
db5e13d8a0 Whoops, syntax error where I forgot a parenthesis. 1994-01-26 20:18:56 +00:00
Andrey A. Chernov
994f4bd197 Replace old-style Joerg copyright to berkeley-style,
per Joerg request.
1994-01-26 20:08:30 +00:00
Nate Williams
41252572a1 FreeBSD modifications to driver.
0) FreeBSD additional include files additions
1) Rod's arpacom changes
2) Function type and return code cleanup, and all functions have correct
   casting to the correct data types
3) Bugfix where driver would not function due to missing structure not
   given a value.
4) General cleanup.  (Theo did a lot already, I just did some more)
1994-01-26 09:13:56 +00:00
Nate Williams
287e7e4d61 Newer version of Herb Peyerl's 3C509 driver straight from NetBSD-current. 1994-01-26 09:06:29 +00:00
Andrey A. Chernov
424e2d04fc Fix error with tsleep loop 1994-01-25 23:04:27 +00:00
Andreas Schulz
76847ca3ae Put some more info about the toshiba ethernet cards into if_edreg.h.
Changed some numeric constants to defines in if_ed.c for the toshiba
cards.
1994-01-25 22:52:09 +00:00
Rodney W. Grimes
39970aa6a4 Do my fix that I have done to all the other ethernet drivers to use
arpcom intead of foo_ac, remove now unneeded defines, fix support for
options NS.

Still one compiler warning to fix :-)
1994-01-25 11:20:06 +00:00
Rodney W. Grimes
7e9dd2e95c Disabled sg disk driver in LINT since there is no sg.c file in isa yet!
Removed com port comments, since we are about to depricate the driver.

Fix several plaes in LINT where people have been cutting and pasting using
xterms :-(
1994-01-25 11:08:25 +00:00
Andrey A. Chernov
bf0e6e5324 Sound driver options added 1994-01-25 03:16:31 +00:00
Andrey A. Chernov
2b1c7c76c3 Add Ctrl-Altr-Esc DBG key to RUKEYMAP (russian keymap) 1994-01-24 05:22:27 +00:00
David Greenman
1b9d391946 Much better fix for the hanging console problem. This one actually
works.
1994-01-23 19:17:17 +00:00
David Greenman
c77fe5808b Backed out previous commit as it requires additional kludges to work
completely, and it looks like syscons might solve the problem a
different way  (although what about serial consoles??).
1994-01-23 17:50:11 +00:00
David Greenman
e4794aea16 Brute-force fix for the "hanging console" problem. Simply _don't_ call
the device close routine. This works because the device close calls
the line discipline close (which only flushes the output buffers) and
the ttyclose() routine, which does little of nothing except screw with
the session and process group fields (which is what was causing all
the problems).
1994-01-22 22:48:21 +00:00
Rodney W. Grimes
136cc9d5ef More sane AHA_RESET_TIMEOUT, from some testing by
Todd Pfaff <todd@flex.eng.mcmaster.ca> who was the person to report the
original problem on a 1542C.
1994-01-22 21:54:10 +00:00
Rodney W. Grimes
ce1105630d Now prints ``on eisa'' if id_iobase >= 0x1000, and made a slight code
cleanup for the other 2 cases of ``on motherboard'' and ``on isa''.
1994-01-22 21:52:04 +00:00
Andreas Schulz
3926f9e8f3 Added the correct typecast's to the untimeout calls. Added a missing
return statement in the probe. This should have fixed all compiler warnings.
1994-01-22 18:00:54 +00:00
Rodney W. Grimes
a8e9d1d5b7 Increased TIMEOUT in wdwait from 2000 to 20000 since it seems many people
have needed to do this in order for the wd driver to work for them.
1994-01-22 11:00:01 +00:00
Rodney W. Grimes
f4767d9a94 No longer need SYSVIPC option, any of the SYSV options now trigger the
kern/sysv_ipc.c file for inclusion in the kernel.
1994-01-22 09:25:37 +00:00
Rodney W. Grimes
cdd2062aac >From: julian@TFS.COM (Julian Elischer)
Date: Mon, 17 Jan 94 20:52:14 PST

As reported on the -bugs list by some one, and confirmed by Julian:

> I increased AHA_RESET_TIMEOUT in aha1542.c from 1000 to 10000
> and now my 1542C is found everytime.
1994-01-22 07:46:25 +00:00
David Greenman
df8d467a49 Remove some old, unused, major UGLY code. 1994-01-21 17:11:38 +00:00
David Greenman
2ae37484c6 System V IPC code from Danny Boulet, chewed on a bit by the NetBSD group
and then some more by Jeffrey Hsu (who provided this port for FreeBSD).
1994-01-21 09:56:05 +00:00
David Greenman
a728f398c2 Pointed out by Wolfgang Solfrank:
Correct parameters of sync
1994-01-20 23:17:39 +00:00
David Greenman
f707f734a6 Removed some more old unused code/comments. Added hack to "fix" the
problem with some chipsets (UMC) remapping the 'hole' memory even when
you've got 16MB. People were led to believe that since there was only
16MB of memory in the machine, that they were okay wrt the ISA DMA
limit. This hack simply causes the extra memory to be ignored if it
appears around the 16MB limit.
1994-01-20 17:49:57 +00:00
David Greenman
4b9f17c5b5 Improved algorithm that calculates the pages in the base memory - If the
BIOS says that the amount is *between* 0-640K, believe it.  Cleaned up
the comments a bit, removed some old cruff, etc.
1994-01-20 17:21:28 +00:00
Nate Williams
7af948c9cc Changed the default 'reboot' routine from cpu_reset() to shutdown_nice().
If you want to disable the reboot feature, then re-define the keymap to
not have a RBT call.
1994-01-18 05:33:34 +00:00
Nate Williams
87965552ef Changed the default syscons keymap to have <CTL-ALT-ESC> enter the
debugger and <CTL-ALT-DEL> call the reboot command.
1994-01-18 05:31:37 +00:00
Nate Williams
954c7b2b78 Reduced the delay amounts per patch submitted by gclarkii@netport.neosoft.com 1994-01-18 02:20:15 +00:00
David Greenman
d64f660fac Improvements mostly from John Dyson, with a little bit from me.
* Removed pmap_is_wired
* added extra cli/sti protection in idle (swtch.s)
* slight code improvement in trap.c
* added lots of comments
* improved paging and other algorithms in VM system
1994-01-17 09:32:32 +00:00
Rodney W. Grimes
e7988dea10 Add missing paren so that it now compiles. 1994-01-17 05:49:20 +00:00
Rodney W. Grimes
db703a94ed Removed at clause from LINT since it was wrong and is no longer needed. 1994-01-17 05:45:26 +00:00
Jordan K. Hubbard
26e25527db From Gary Clark II:
1. Fixed probe to work with FX mitsumi's.

2. Added some defines in prep for adding interupts and dma
1994-01-16 23:34:17 +00:00
Andreas Schulz
6216795300 Documented the drivers more in the LINT file. Added a line in files.i386
and LINT for the integration of a Seagate ST01/02 SCSI controller.
1994-01-16 12:01:34 +00:00
Andreas Schulz
e8f1fa7451 Updated the TODO file with missing things.
Changed the output of the isa probe routine, that only devices, that
have an IO address and are smaller than 0x100 to be on the motherboard.
The seagate SCSI adapter is an example of a card, that doesn't have
an IO address and works only memory mapped.
1994-01-16 11:25:06 +00:00
Martin Renters
c6863af480 NFS Diskless booting support added. 1994-01-16 02:21:58 +00:00
David Greenman
7f8cb36869 "New" VM system from John Dyson & myself. For a run-down of the
major changes, see the log of any effected file in the sys/vm
directory (swap_pager.c for instance).
1994-01-14 16:25:31 +00:00
Andreas Schulz
b06a5891b4 Added the support for the Toshiba ethernet cards. It is only
ifdef and not default, because, i don't know  if anyone else
is using this card.
1994-01-11 23:28:21 +00:00
Andreas Schulz
da37baffac Thrown out the obsolete drivers in the TODO list.
Added the Toshiba board-id's into the if_edreg.h file and the different
checksum for the Toshiba ethernet-boards.
1994-01-11 21:28:29 +00:00
Andrey A. Chernov
e58072bda5 From ache:
Choose older MULTIPORT version, because lastest bde version
	not worked.
	Don't force HUPCL for bidirectional case.
From bde:
	Use bit (1 << (16 + 4)) in schedsoftcom() to avoid clash with
	non-serial h/w on IRQ4.
	Allow FIFO_TRIGGER in config.
	Clear com->mcr_image when clearing mcr for init of 4port.  The
	usual value MCR_IENABLE should have broken 4ports unless
	something happened to clear it later.
	Turn off interrupts as well as DTR after an error waiting for
	carrier (bidir dialin case).
	Drain fifo more carefully.
	Don't hang up if debugging.
	Rearrange siointr() -> siointr1() for multiport case for speed,
	lower latency and clarity.
	Use suser() to check perms.
	Provide missing splx() after failed perms checks.
	c_ispeed == 0 means c_ispeed = c_ospeed (POSIX).
	Set parameters (except speed) for c_ospeed == 0 as well as
	hanging up.
	Better initialization for console (fifo stuff...).
	Misc. cleanups.
	Fix dead hang if modem power is off.
1994-01-11 18:31:45 +00:00
Rodney W. Grimes
1660308965 Add comment to MAX_SLOTS that it may need to be 16 and to check against
EISA spec.  Fixed off by one error in ahbprobe so that it can find an
aha1742 in slot 8 (now uses slot <= MAX_SLOT, instead of slot < 8).
1994-01-11 07:24:32 +00:00
Andrey A. Chernov
154f487097 Correct Vresume size, we have now 32 bits for it. 1994-01-10 23:15:09 +00:00
Andreas Schulz
dd66bbf852 First beta version of the 3C509 driver changed for FreeBSD. Known
problems in the moment are stray intr's in the ifconfig up/down.
No way to select all three interfaces on a combo card with
AUI/BNC/UTP interfaces and the performance doesn't look good.
Only tested with a ISA AUI/BNC card yet.
1994-01-10 19:13:50 +00:00
Andreas Schulz
96b4591b68 Committed the original NetBSD version of this driver to get the changes
made for FreeBSD as cvs diffs. This is the 3C509 ethernet driver.
1994-01-10 18:56:26 +00:00
Andreas Schulz
b2aba26166 Now enabled the line for the 3C509 driver. 1994-01-10 18:53:52 +00:00
Andreas Schulz
253a42c5fc I have a new adaptec 1542CF board bought, that has the board id of 0x45.
Added it to the list of known boards and put it into the the list for
the mailbox unlock. Maybe all board-ids over 0x42 should be in the
mailbox unlock part ?
1994-01-09 18:11:21 +00:00
Andreas Schulz
1668b3a88d Added lines for an Etherlink III ( 3C509 ) driver. 1994-01-09 13:30:50 +00:00
Andrey A. Chernov
712b66d518 After some testing dma_pagesize reduced to 4096 for *both*
byte and word DMA channels, use bounce buffer now.
1994-01-08 16:48:35 +00:00
Nate Williams
af60ea293c When a probe fails print a 'not found' line instead of nothing 1994-01-08 00:00:52 +00:00
Rodney W. Grimes
f3f1a1b513 SCSIDUMP option no longer needed, it is now standard. 1994-01-06 18:15:20 +00:00
Rodney W. Grimes
3b6585764d Fixed comment that refered to 8252 (we really have 8253's).
Per some one on the mailing list.
1994-01-05 15:03:28 +00:00
Rodney W. Grimes
b935223e65 Added dumps on wd0 to the end of all config lines so people know about it
and can change it.  This really won't change the kernels, it just documents
how to do the dumps on option.
1994-01-05 14:56:50 +00:00
Nate Williams
12da8ccb6e Whoops, I committed an older version that didn't have some warnings fixed.
This version fixes all warnings given the default compiler flags with some
casts.
1994-01-04 20:20:38 +00:00
Nate Williams
2620c42ea3 Updated config files for new multi-controller wd.c driver and removed
outdated wx config file.
1994-01-04 20:10:34 +00:00
Nate Williams
dd807b39fc Removed wx driver hooks. 1994-01-04 20:09:28 +00:00
Nate Williams
56067a6eec Removed wx driver hooks 1994-01-04 20:08:56 +00:00
Nate Williams
5be4b5f75a Temporary hack to allow multiple controller support until Rod gets more
time to do it the 'Right Way'.
1994-01-04 20:06:30 +00:00
Nate Williams
4aba964ef1 New wd driver, based on Bruce Evans 'wx/altwd' driver which has passed
enough tests to be considered more stable than current driver.

Lots of work by Bruce, David G., and Guido have gone into this version, and
more is to come in the future.

Support for multiple controllers is in, but doesn't work correctly with
different controllers (IDE AND MFM), but multiple alike controllers appears
to work.

Most of the stray interrupts problems should be fixed, although you will
get a couple 'extra interrupts' when disklabeling and on startup.
1994-01-04 20:05:26 +00:00
David Greenman
504c39bf88 Yanked out history section as it is unlikely there will be any further
changes for some time. Also changed the indentation style a little.
1994-01-03 17:17:19 +00:00
David Greenman
e10a618657 Increased maximum and default 'size' limits to more reasonable values. 1994-01-03 16:00:52 +00:00
David Greenman
c8a13ecd00 Convert syscall to trapframe. Based on work done by John Brezak. 1994-01-03 07:55:47 +00:00
Andrey A. Chernov
879d1ff90a Temporary plug CLOCAL security hole, while sticky bits
yet not implemented. Only for bidirectional case.
1994-01-02 10:17:29 +00:00
David Greenman
bb54009a35 Raised minimum buffer cache from 128k to 256k. 1993-12-22 13:12:04 +00:00
David Greenman
e2f27b409f Changed pointer type from caddr_t to void * for fillw, insw, outsw, and
outsb.
1993-12-21 21:27:04 +00:00
Andrey A. Chernov
8b6f2438aa Separate read/write and format GAPs. 1993-12-21 05:11:10 +00:00
Andrey A. Chernov
126518a182 Use separate fields for format GAP and read/write GAP.
Restore usage of read/write GAP.
1993-12-21 05:09:21 +00:00
Rich Murphey
7f66f26d0c Don't cast 2nd arg to fillw() per David's comments. The cast
breaks cursor positioning.
1993-12-21 03:27:26 +00:00
Rich Murphey
81664caf74 cast arg 2 of fillw() calls to type caddr_t as in pccons.
add "manual escape to debugger" arg in call to Debugger().
cast 1st arg to untimeout() to type timeout_func_t as done for timeout().
1993-12-21 02:49:13 +00:00
Garrett Wollman
a1f4319f4a Document use of counters 29 and 30 for CCITT netisrs. 1993-12-20 15:08:33 +00:00
Garrett Wollman
bd7d7eb52b Separated netisrs for pkintr() (X.25) and hdintr() (HDLC) so that someone
can actually write a sane netif device to support one of these.  Note that it
was necessary to steal a netisr bit from another protocol; I took the one for
PF_DATAKIT (no great loss).
1993-12-20 14:58:21 +00:00
Garrett Wollman
990ac0b7cb Added support for X.25 as a network-layer protocol under ISO TP class 0, as
is commonly used in Europe.  Make it compile, and bump up symtab space as
needed.
1993-12-19 22:45:13 +00:00
Andrew Moore
90d795a112 adding libc/quad:
added _QUAD_HIGH/LOW
added (U_)QUAD_MAX/MIN
(from NetBSD)
1993-12-19 05:14:46 +00:00
Garrett Wollman
aaf08d94ca Make everything compile with -Wtraditional. Make it easier to distribute
a binary link-kit.  Make all non-optional options (pagers, procfs) standard,
and update LINT to reflect new symtab requirements.

NB: -Wtraditional will henceforth be forgotten.  This editing pass was
primarily intended to detect any constructions where the old code might
have been relying on traditional C semantics or syntax.  These were all
fixed, and the result of fixing some of them means that -Wall is now a
realistic possibility within a few weeks.
1993-12-19 00:55:01 +00:00
Andrey A. Chernov
b39c878e2b Media table reorganization.
Entries for 800 and 820 fixed.
From vak@kiae.su:
incorporate Joerg Wunsch formatting code
correct handle timeouted operations
fixed entry for 720 media
1993-12-19 00:40:49 +00:00
Andrey A. Chernov
52449fdb1a From vak@kiae.su:
incorporate Joerg Wunsch floppy formatting code
1993-12-19 00:37:25 +00:00
Andrey A. Chernov
f4d3408967 Fix tsleep "waitvt" wait data from vak@kiae.su 1993-12-18 22:50:51 +00:00
Andrey A. Chernov
ed2fa05ece Reorganization of format table.
GAP values changed suitable for possible format code addition.
Read/write GAP always 2 now.
Interleave parameter added for possible format code addition.
Many logical formats added.
720K physical drive added.
Problems: still can't read 720..820 media in 1.44 drive.
1993-12-18 01:16:26 +00:00
Andrey A. Chernov
159569a418 RTCFDT_720K (physical drive 720K) added. 1993-12-18 01:12:47 +00:00
Andrey A. Chernov
2384b3a702 Added following formats (derived from MSDOS fdformat):
800K in HD 5.25in  (maximum for DD diskettes)
1.44M in HD 5.25in (for easy distributions)
1.46M in HD 5.25in (maximum for 5.25)
Some cosmetique changes.
1993-12-16 19:47:42 +00:00
Andrey A. Chernov
cf197426bb Change default dtrwait value to 2 seconds.
Change C-style into static initializer per Bruce request.
1993-12-16 04:38:27 +00:00
Andrey A. Chernov
7ca0641bb9 No more partition bits in floppy minor.
Now minor looks like UU DDDDDD, UU - unit, DDDDDD - density.
If density == 0, CMOS-detect format assumed.
Fix attach code for correct work with unknown CMOS
floppy types.
Trick diskerr to handle new minor.
1.722M floppy in 1.44M drive popular format added.
1993-12-16 04:28:42 +00:00
Andrew Moore
8b4d35c5ee wt.c - version 1.3
from:
Sergey Ryzhkov, Serge Vakulenko
E-mail: <sir@kiae.su>, <vak@zebub.msk.su>

This is the streamer tape driver for 386bsd and FreeBSD, which
supports Wangtek and Archive compatible QIC-02/QIC-36 controllers.
It was developed as a replacement of the old Wangtek tape driver from CMU.

In comparison with the CMU driver, this version has the following enhancements:
1) Support for Archive SC402 and SC499 tape controllers added.
2) Support for up to three tape controllers on the same machine.
3) Support for BSD-style ioctls MTIOCGET, MTIOCTOP.
   Mt command now works adequately with this driver.
2) Asynchronous REWIND and FSF operations, close() will not wait
   until they finish.  The next open() will wait for it instead.
4) Use of WTQICMD ioctl is limited to ERASE and RETENS operations.
   This prevents the user from locking the tape driver by strange
   tape operations.
5) Tape density switching added.
6) The status of the process, blocked on the tape operation,
   is displayed at the WCHAN column of the `ps' command as:

	wtread    reading data from the tape
	wtwrite   writing data to the tape
	wtrfm     reading the tape marker
	wtwfm     writing the tape marker
	wtrew     rewinding the tape
	wterase   doing WTQICMD ERASE operation
	wtretens  doing WTQICMD RETENS operation
	wtorew    doing MTIOCTOP REW/OFFL operation
	wtorfm    doing MTIOCTOP FSF operation
	wtowfm    doing MTIOCTOP WEOF operation

7) It's possible to use the tape with "default density",
   useful for devices which don't support density switching
   or do automatic format determination.
8) Some controllers support only 1024 block length.
   Setting WT_BSIZE bit in device minor number turns on this mode.

Minor number structure:
	0bfffuuu
Fields:
	uuu   - Unit number. It's possible to install
		up to three tape controllers on the same machine,
		using DRQs 1..3.  Hence, unit number can lie
		in range 0..2.
	fff   - Tape format number:
		0 - /dev/rwt0  - default density (auto select)
		1 - /dev/rwt0a - QIC 11 (obsolete)
		2 - /dev/rwt0b - QIC 24 (60 megabytes)
		3 - /dev/rwt0c - QIC 120 (120 megabytes)
		4 - /dev/rwt0d - QIC 150 (150 megabytes)
		5 - /dev/rwt0e - QIC 300 (300 megabytes?)
		6 - /dev/rwt0f - QIC 600 (600 megabytes?)
	b     - Long block size flag.  With this bit set,
		the driver will perform all i/o operations
		with the controller using 1024-byte
		blocks, instead of 512 ones.
		Some controllers need it (CMS for example).
		If you Wangtek controller does not stream well,
		you can try to use /dev/rWt0 device instead
		of /dev/rwt0 (uncomment needed lines in /dev/MAKEDEV
		to create it).

Block interface (writing blocks less than 2048 bytes) is not functioning
pwoperly.  Use raw interface instead.

Thanks to all who helped to test it on the following hardware:

Controller           Drive            Volume    Interface     Thanks to
---------------------------------------------------------------------------
Archive SC-499       Archive 2150L    150 Meg   QIC-02        KIAE
CMS?                 ?                150 Meg   QIC-02        KIAE
Everex EV 831/833    ?                ?         QIC-36        Joergen Haegg
Wangtek ASSY         Wangtek          60 Meg    QIC-02        Ken Whedbee
Tecmar QT150i?       Wangtek 5150EQ   ?         QIC-02?       Marko Teiste
?                    Wangtek 5099EK   60 Meg    QIC-36        Robert Shien
Archive SC400S       ?                60 Meg    ?             Warren Toomey
1993-12-13 18:38:44 +00:00
David Greenman
d39cf18213 set output flags to ttydefault if COMCONSOLE is defined. 1993-12-13 13:20:50 +00:00