summaryrefslogtreecommitdiff
path: root/sys/scsi/sd.c
AgeCommit message (Collapse)Author
1996-05-02no sys/cpu.h, fix bugs in chTheo de Raadt
1996-04-21partial sync with netbsd 960418, more to comeTheo de Raadt
1996-04-19NetBSD 960317 mergeNiklas Hallqvist
1996-02-20Sync w/ NetBSD:briggs
- Implement DIOCLOCK and DIOCEJECT. DIOCEJECT is limited to removable media. Fixes PR #1975. - scsi prototypes
1996-01-14From NetBSD: (required for last change to scsi_base.c in case we getbriggs
"command aborted" status) Handle cases like the following: - controller calls scsi_done() with error XS_TIMEOUT - scsi_done() calls sddone() - sddone() calls disk_unbusy() - scsi_done() calls controller to retry command (missing the call to disk_busy()) - controller calls scsi_done() - scsi_done() calls sddone() - sddone() calls disk_busy(), which panics because of the imbalance. Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional boolean argument ("complete") to the device's "done" routine, with a value of `0' passed from the previous call to "done", and add an additional call to "done" when the xfer resources are freed.
1996-01-12from netbsd;Theo de Raadt
New generic disk framework. Highlights: New metrics handling. Metrics are now kept in the new `struct disk'. Busy time is now stored as a timeval, and transfer count in bytes. Storage for disklabels is now dynamically allocated, so that the size of the disk structure is not machine-dependent. Several new functions for attaching and detaching disks, and handling metrics calculation. Old-style instrumentation is still supported in drivers that did it before. However, old-style instrumentation is being deprecated, and will go away once the userland utilities are updated for the new framework. For usage and architectural details, see the forthcoming disk(9) manual page.
1995-12-14from netbsd:Theo de Raadt
If the read or write request can fit into a 6-byte cdb, then use a 6-byte cdb, otherwise use the 10-byte as before. In sdattach(), make a note if the device is "ancient" (i.e. inqbuf.version & SID_ANSII == 0). Implement sdminphys(): if the device is "ancient", shorten the transfer so it will fit into a 6-byte cdb. In sdminphys(), add a comment about the semantics of the "length" field in a 6-byte read/write cdb (namely, length == 0 really means 256), and that we handle this conservatively by limiting the transfer to 255 blocks. *sigh* One just never knows how a pre-scsi-1 device is going to behave. Remove a couple of now unneeded assignments.
1995-10-18initial import of NetBSD treeTheo de Raadt