freebsd-skq/sys/cam/scsi
mjacob 1c1caa5507 Some fixes to handle fixed mode and variable mode more sensibly- and also
incorporate some notion of which revision the device is. If it's < SCSI2, for
example, READ BLOCK LIMITS is not a MANDATORY command.

At any rate, the initial state is to try and read block limits to get a notion
of the smallest and largest record size as well as the granularity. However,
this doesn't mean that the device should actually *in* fixed block mode should
the max && min  be equal... *That* choice is (for now) determined by whether
the device comes up with a blocksize of nonzero. If so, then it's a fixed block
preferred device, otherwise not (this will change again soon).

When actually doing I/O, and you're in fixed length mode, the block count is
*not* the byte count divided by the minimum block size- it's the byte count
divided by the current blocksize (or use shift/mask shortcuts if that worked
out...).

Then when you *change* the blocksize via an ioctl, make sure this actually
propagates to the stored notion of blocksize (and update the shift/mask
shortcuts).

Misc Other:
	When doing a mode select, only use the SCSI_SAME_DENSITY (0x7f) code if
the device is >= SCSI2- otherwise just use the saved density code.

	Recover from the ripple of ILLEGAL REQUEST not being 'retried' in that
RESERVE/RELEASE is not a mandatory command for < SCSI2 (so ignore it if it
fails).
1998-12-11 07:19:36 +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 Examine all occurrences of sprintf(), strcat(), and str[n]cpy() 1998-12-04 22:54:57 +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 Examine all occurrences of sprintf(), strcat(), and str[n]cpy() 1998-12-04 22:54:57 +00:00
scsi_ch.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00
scsi_da.c Convert dadump to use reasonable data types so that some casting is unecessary. 1998-12-11 03:54:43 +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 Some fixes to handle fixed mode and variable mode more sensibly- and also 1998-12-11 07:19:36 +00:00
scsi_sa.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00
scsi_target.c Convert debugging printfs to the CAM_DEBUG macro. 1998-12-10 04:07:42 +00:00
scsi_targetio.h SCSI Peripheral drivers for CAM: 1998-09-15 06:36:34 +00:00