freebsd-skq/sys/cam
Matt Jacob ed744c4e51 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 Some fixes to handle fixed mode and variable mode more sensibly- and also 1998-12-11 07:19:36 +00:00
cam_ccb.h Expand the hba_misc fied in the Path Inquiry ccb to allow a controller driver 1998-12-10 04:05:49 +00:00
cam_conf.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_debug.h Add a CAM_DEBUG_XPT define (to debug XPT layer only). Add a CAM_DEBUGGED 1998-12-05 23:55:48 +00:00
cam_extend.c CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_extend.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_periph.c Fix a problem with the way we handled device invalidation when attaching 1998-10-22 22:16:56 +00:00
cam_periph.h Fix a problem with the way we handled device invalidation when attaching 1998-10-22 22:16:56 +00:00
cam_queue.c CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_queue.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_sim.c CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_sim.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_xpt_periph.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_xpt_sim.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam_xpt.c Expand the hba_misc fied in the Path Inquiry ccb to allow a controller driver 1998-12-10 04:05:49 +00:00
cam_xpt.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00
cam.c cam.c: 1998-09-22 04:53:23 +00:00
cam.h CAM Transport Layer (XPT). 1998-09-15 06:33:23 +00:00