freebsd-nq/sys/cam/scsi
Matt Jacob 499d2a2a5c Extend unit numbers to a full 10 bits (split into sections
of the minor). Establish and use a control mode open. Control
mode opens may open the device without locking, but are prohibited
from all but some ioctls. MTIOCGET always works. MTIOCERRSTAT
works, but the clearing of latched error status is contingent
upon whether another application has the device open, in which
case an interruptible perip acquire is done. MTSETBSIZ, MTSETDNSTY
and MTCOMP also require a periph aquire.

Relative fileno and blkno are tracked. Note that just about any
error will make these undefined, and if you space to EOD or use
hardware block positioning, these are also lost until the next
UNLOAD or REWIND.

Driver state is also tracked and recorded in the unit softc
to be passed back in mt_dsreg for a MTIOCGET call.
Thanks to Dan Strick for suggesting this.

Reintroduce 2 filemarks at EOD for all but QIC devices. I
really think it's wrong, but there is a lot of 3rd party
software that depends upon this (not the least of which is
tcopy). Introduce a SA_QUIRK_1FM to ensure that some devices
can be marked as only being able to do 1 FM at EOD.

At samount time force a load to BOT if we aren't mounted. If the
LOAD command fails, use the REWIND command (e.g., for the IBM 3590
which for some gawdawful reason doesn't support the LOAD (to BOT)
command).

Also at samount time, if you don't know fixed or variable, try to
*set* to one of the known fixed (or variable, for special case)
density codes. We only have to do this once per boot, so it's not
that painful. This is another way to try and figure out the wierd
QIC devices without having to quirk everything in the universe.

A substantial amount of cleanup as to what operations can and what
operations cannot be retried. Don't retry space operations if they
fail- it'll just lead to lossage.

Not yet done is invalidating mounts correctly after errors. ENOTIME.
1999-02-05 07:32:52 +00:00
..
scsi_all.c Do not attempt to retry commands that fail with ILLEGAL REQUEST status. 1998-12-11 03:53:05 +00:00
scsi_all.h Add in named SID field revision names (including CCS). 1998-12-05 22:10:14 +00:00
scsi_cd.c Make dsopen() and dsioctl() use cdstrategy1 instead of cdstrategy. 1999-01-12 16:26:19 +00:00
scsi_cd.h Some fixes to the CD driver that may fix PR kern/7996. The data direction 1998-09-20 22:48:15 +00:00
scsi_ch.c Staticize. 1998-12-22 20:05:23 +00:00
scsi_ch.h Correct the definition of the changer device capabilities page. The 1998-12-17 22:26:39 +00:00
scsi_da.c A better fix to avoid race conditions between failed probes 1999-01-07 20:19:09 +00:00
scsi_da.h Fix the CAM code so that people can compile kernels with the CD driver but 1998-09-18 22:33:59 +00:00
scsi_message.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00
scsi_pass.c Fix a few problems that Bruce noticed about a month ago, and fix oup one 1998-11-22 23:44:47 +00:00
scsi_pass.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00
scsi_pt.c Fix a few problems that Bruce noticed about a month ago, and fix oup one 1998-11-22 23:44:47 +00:00
scsi_pt.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00
scsi_sa.c Extend unit numbers to a full 10 bits (split into sections 1999-02-05 07:32:52 +00:00
scsi_sa.h add QIC 525,320,1320,3080 codes 1999-02-05 07:19:23 +00:00
scsi_targ_bh.c The target mode 'Black Hole' device. This peripheral driver provides inquiry 1999-01-14 06:00:29 +00:00
scsi_target.c Properly handle transfers that only consume partial buffers. 1999-01-14 05:57:32 +00:00
scsi_targetio.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00