phil
a8597d8143
Report actual disksize on finding a disk.
...
(From: der Mouse <mouse@Rodents.Montreal.QC.CA>)
1997-07-02 03:51:25 +00:00
thorpej
84166e5151
foosize()'s return value is in DEV_BSIZE units; adjust the size obtained
...
from the disklabel accordingly.
1997-06-24 00:28:36 +00:00
pk
8303adf18a
sdsize(): only call sdopen()/sdclose() if not already open, per the
...
current openmask.
1997-06-18 20:38:59 +00:00
mycroft
aca1dae3c4
Push the buffer cleanup code into scsi_done(), and split it so that biodone()
...
is called *after* the driver `done' routine. This fixes disk I/O statistics
on SCSI devices.
Also, calling the `done' routine with a `complete' argument of 0 and actually
having it do anything meaningful loses in at least 3 ways, so just nuke the
argument altogether and don't call it this way. If the driver needs to do
some error handling, that's what `err_handler' is for.
1997-04-02 02:29:30 +00:00
mikel
4a6b41b8fe
garbage collect unused variable (was this struct declaration orginally
...
a typedef?); from Enami Tsugutomo in PR kern/3282.
1997-03-04 06:25:22 +00:00
thorpej
15b56daab6
If posting an error condition because the media has been unloaded,
...
make sure to set the residual count to reflect that no data was
transfered.
From Naofumi HONDA / MINOURA Makoto, PR #3007 .
1997-02-21 23:03:25 +00:00
thorpej
625d310b1b
Handle optical disks a little better, from Naofumi HONDA / MINOURA Makoto
...
in PR #3009 , with some slight KNF from me.
1997-02-21 21:51:59 +00:00
cgd
ea0c7b4423
update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
...
is defined.
1996-12-05 01:06:39 +00:00
thorpej
40611b811f
Start a mode sense with a clean sense buffer.
...
Fixes PR #2953 , from David M. Stanhope <dms@celtech.com>.
1996-11-29 19:58:40 +00:00
matthias
c53ad1988a
* At least the Teac FC-1 Shugart-SCSI bridgeboard does motor on/off
...
management by itself. But when it gets a start unit request, it keeps
the floppy motor running all the time. This adds code for dealing with
yet another quirk (SDEV_NOSTARTUNIT) that prevents sd.c from sending
start unit requests. A entry for the Teac FC-1 is added to the quirk
table.
1996-10-23 07:25:39 +00:00
christos
9a2c8cf28c
revert previous kprintf change
1996-10-12 23:23:13 +00:00
christos
9beb92aad7
printf -> kprintf, sprintf -> ksprintf
1996-10-10 23:32:59 +00:00
christos
7e1c82f6f4
- Apply PR/2535: Add support for flex scsi disks.
...
- Add a quirk called SCSI_NOMODESENSE for drives like the iomega jaz,
that don't support mode sense.
1996-07-05 16:19:02 +00:00
thorpej
56543dfb7d
In sddump(), don't check the SDEV_MEDIA_LOADED bit of the device, since
...
that bit might have been cleared by successful unmounting of all filesystems
on the dump device, e.g. in the case of "reboot -d".
1996-06-04 23:12:14 +00:00
leo
153c617719
Clear SDEV_MEDIA_LOADED bit on the last close of a device. This causes the
...
geometry info & the disklabel to be reloaded on each 'first-open' of the
device.
1996-05-14 10:38:47 +00:00
thorpej
1379322cde
Print the error code in the "not queued" message, to make debugging
...
a bit easier, and make sure a newline gets printed.
1996-05-14 00:10:37 +00:00
christos
0efbe64fb8
Cleanup the rest of the SCSIDEBUG printfs. From Bernd Ernesti.
1996-05-05 19:52:50 +00:00
christos
88c3808921
- SCSIDEBUG printf() fixes.
1996-05-03 19:48:20 +00:00
christos
ffd5576439
remove include of <sys/cpu.h>
1996-04-22 01:44:31 +00:00
christos
beec8ba94c
Eliminate scsi_conf.h.
1996-03-30 21:44:50 +00:00
mycroft
5ed22a9852
Put back dk_establish() for now.
1996-03-26 22:22:19 +00:00
mycroft
5f57f43753
Increase *OUTSTANDING.
...
Remove old dk_establish() garbage.
Support the `ancient' bit in both drivers.
1996-03-26 20:32:06 +00:00
mycroft
caeb897758
Fix trivial oversight in last.
1996-03-24 07:36:11 +00:00
mycroft
e819063285
Define a full set of [234][bl]tol() and lto[234][bl]() conversion functions,
...
inlined.
Use sized types in protocol structures.
Make the definition of scsi_sense_data less ugly.
1996-03-19 03:05:15 +00:00
pk
12bcc82160
Parentheses are your friends.
1996-03-17 02:06:50 +00:00
thorpej
532e997971
New device attachment scheme:
...
- split softc size and match/attach out from cfdriver into
a new struct cfattach.
- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
1996-03-17 00:57:14 +00:00
thorpej
a8573feb51
Normalize SCSI autoconfiguration output.
...
From Chris Demetriou <cgd@NetBSD.ORG>. Fixes PR #1958 .
1996-03-05 00:15:09 +00:00
christos
0bc63f486d
scsi prototypes
1996-02-14 21:46:52 +00:00
thorpej
c7a20f0ee3
Implement DIOCLOCK and DIOCEJECT. DIOCEJECT is limited to removable
...
media. Fixes PR #1975 .
1996-01-30 18:24:47 +00:00
thorpej
8068d9eeb2
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-12 22:43:26 +00:00
thorpej
5b39541e48
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.
1996-01-07 22:01:38 +00:00
thorpej
1cd2ca323b
Remove a couple of now unneeded assignments.
1995-12-07 21:54:24 +00:00
thorpej
b6c6d46a82
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.
1995-12-07 19:46:00 +00:00
thorpej
c9895db015
In both cd.c and sd.c:
...
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 sd.c:
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.
These changes have eliminated the rejected read/write requests on my
Sun 3/60 with 2 ESDI disks behind an Emulex MD21.
1995-12-07 19:11:32 +00:00
mycroft
92221a1399
Return EINVAL if something other than a whole number of blocks is requested.
1995-10-10 02:52:56 +00:00
pk
db0107b895
Specify SCSI_DATA_OUT in sddump() (from John Kohl; PR#1482).
1995-09-30 22:57:19 +00:00
thorpej
249cddaaa7
Don't declare Debugger(). It's handled in <sys/systm.h>.
...
#include <sys/systm.h> where necessary, as suggested by Jonathan Stone.
Fixes PR #1511 .
1995-09-26 19:26:48 +00:00
mycroft
8887de9230
opri --> s
1995-08-12 22:58:01 +00:00
mycroft
8a9880e714
Fix oversight in previous.
1995-08-12 21:36:46 +00:00
mycroft
80d7b0695a
minphys() functions really should return void.
1995-08-12 20:30:45 +00:00
mycroft
24a5e56396
Use an intermediate variable to shorten label initialization code.
1995-08-05 23:47:52 +00:00
cgd
3301cf82fd
update SCSI minphys routines' definitions to match standard minphys()
...
definition and usage.
1995-07-24 06:55:37 +00:00
mycroft
7263209ce6
Make each disk and tape driver define its own read and write functions.
...
Deprecate rawread() and rawwrite() completely. Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
cgd
2a8d6461a8
implement new-style block device dump routine if __BDEVSW_DUMP_OLD_TYPE
...
not defined, otherwise use an "not implemented" stub.
1995-06-26 05:16:55 +00:00
cgd
011aa68805
looks like some extra ')'s were left in here.
1995-05-03 21:38:57 +00:00
mycroft
1d2f0bce2a
Make the byte-shifting code consistent.
1995-05-03 19:38:45 +00:00
mycroft
04e937dcbd
Don't boundary check I/O to the `raw' partition.
1995-04-15 05:01:26 +00:00
mycroft
68c8c80929
kernel_pmap --> pmap_kernel()
1995-04-10 16:48:27 +00:00
mycroft
7e2dabf972
Add a missing unlock.
1995-04-01 10:29:41 +00:00
mycroft
1d568eab9a
Revamp the locking mechanism slightly.
1995-03-29 23:04:39 +00:00
mycroft
b51403f60d
Remove the write protect check altogether, and rely on the drive to do it.
1995-03-25 19:45:18 +00:00
mycroft
06d0a67a07
Check for read-only media in open(), not write().
1995-03-23 12:11:07 +00:00
mycroft
4712cd33dc
Rearrange DIOCWDINFO a little; closer to wd.c.
1995-03-23 11:43:09 +00:00
mycroft
02df08a47e
Allow DIOCWDINFO even if label is not `writable'.
1995-03-23 11:33:18 +00:00
mycroft
e203e49ef5
Correct spelling of `fictitious'. Add patterns for optical memory devices.
...
From Alistair Crooks.
1995-03-07 21:46:06 +00:00
mycroft
321b00bd07
Some drives don't grok START with LoEj=1, either.
1995-01-30 11:47:56 +00:00
mycroft
0ece1143f6
Set the LoadEject bit when issuing a START.
1995-01-30 11:37:17 +00:00
mycroft
9085638020
Some devices really do require the START before the PREVENT. This makes no
...
sense.
1995-01-30 11:34:25 +00:00
mycroft
1611df6ae0
Update copyrights.
1995-01-26 12:05:49 +00:00
mycroft
b76a328caa
Redo the `wait for spin up' code. The Mach 3 method clearly doesn't work.
...
Also, rearrange the first open sequences a bit; SDEV_OPEN is no longer magic.
1995-01-26 11:56:51 +00:00
mycroft
726fa4e94f
Do the PREVENT before the START.
1995-01-23 18:17:22 +00:00
mycroft
a6e7fe0d2a
If the disk reports a block size of 0, assume it really meant 512.
1995-01-16 21:40:17 +00:00
mycroft
7650bd97fc
Always boundary check I/O.
1995-01-13 10:46:32 +00:00
mycroft
8fd135209c
Numerous changes. Many bugs fixed, better autoconfig, a few new features.
1994-12-28 19:42:47 +00:00
mycroft
3e7afdbe8a
Remove DIOCSBAD handling. It's not actually handled, so why recognize it?
1994-12-16 04:38:30 +00:00
mycroft
ca65f2ce5d
Remove dkbad.h.
1994-12-14 15:17:22 +00:00
mycroft
cc44b4600c
There's no point in bothering to unlock what we didn't lock.
1994-11-23 07:54:15 +00:00
mycroft
95edd299b0
Add still more locking.
1994-11-22 03:23:49 +00:00
mycroft
fd32202948
Replace dev_unit with device_softc in scsi_link. Change argument to foostart()
...
to void*.
1994-11-21 10:39:09 +00:00
mycroft
5bd4115690
Add some missing locking, and some general cleanup.
1994-11-20 22:36:43 +00:00
deraadt
38483bbbf0
Enough Chinese torture already
1994-11-15 23:00:23 +00:00
cgd
6ac2bbfc35
be more careful with types, also pull in headers where necessary.
1994-10-30 21:43:03 +00:00
mycroft
e5d974c51f
First cut at making user-level SCSI commands work. This is untested.
...
Partly from John Brezak.
1994-10-20 20:31:23 +00:00
mycroft
b8ab5f65d1
Back out change to print geometry from label at boot; can't do this reliably.
1994-10-20 16:54:44 +00:00
mycroft
cd66683989
openpart -> openmask
1994-10-20 14:08:07 +00:00
mycroft
bb12b9c8a2
Trivial stylistic changes.
1994-10-20 14:05:08 +00:00
mycroft
b1568d887e
Use the block size in the label in most cases.
1994-10-20 13:50:38 +00:00
mycroft
d5b3572f5c
Various changes:
...
* Get rid of unused `partflags'.
* Use dk_openpart, and remove `openparts'. Also, allow an open on both
the block and characters devices at the same time.
* If there was a label, print the geometry from the label at boot time.
* Turn `wlabel' into a flag, and *don't* set it automatically in
DIOCWLABEL; disklabel(8) does that.
Other minor changes.
1994-10-20 13:33:36 +00:00
cgd
49c34d3337
move arch dependence to archs. clean up a bit. deal with weird MAXPARTITONS.
1994-10-14 18:26:22 +00:00
mycroft
863c736e39
Normalize label handling.
1994-07-26 19:39:19 +00:00
chopps
b10a5d5fac
change to support other MAXPARTITIONS vals aside from 8
1994-07-04 20:39:46 +00:00
cgd
fccfa11af5
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
1994-06-29 06:39:25 +00:00
chopps
7d3285c3d4
resolve confusion over who owns the buf after calling scsi_scsi_cmd()
1994-06-16 15:57:39 +00:00
mycroft
a69dd750a2
b_un.b_addr -> b_data
1994-06-16 01:07:30 +00:00
chopps
95faa87c60
remove union's from sense_data struct, conditionaly define RAW_PART
1994-05-09 07:40:47 +00:00
mycroft
58dfc9dffc
Fix various types. Remove some outdated flags.
1994-04-11 03:53:58 +00:00
mycroft
8b10b2cd18
Combine scsi_start_unit() and scsi_stop_unit(), and increase the start
...
timeout (again).
1994-04-11 02:23:41 +00:00
mycroft
5fe1b5b538
Redo the last change; it was compltely bogus.
1994-04-06 00:43:57 +00:00
mycroft
87e831ef86
Try to detect garbage data from page 4 sense.
1994-04-06 00:23:31 +00:00
mycroft
2e5a28159f
New SCSI system, based on Julian's more recent work.
1994-03-29 04:29:20 +00:00
cgd
c3218832ba
print even more SCSI sense data; this should be in a function...
1994-03-24 17:47:35 +00:00
cgd
20c82de12d
print out lots of info on non-media hardware error...
1994-03-24 04:32:44 +00:00
mycroft
adeebc448e
Use b_actf, not av_forw.
1994-02-06 10:00:30 +00:00
deraadt
894bb31ed1
print nice numbers for disks >2G. from <adrian@lemmings.cursci.com>
1994-01-25 08:56:45 +00:00
mycroft
efdb9fa688
*strategy functions return void.
1994-01-11 17:19:37 +00:00
mycroft
b4d3382694
Canonicalize all #includes.
1993-12-17 07:56:32 +00:00
mycroft
4862b84c92
Add RCS identifiers (this time on the correct side of the branch), and
...
incorporate recent changes in netbsd-0-9 branch.
1993-08-01 19:22:24 +00:00
cgd
30c2a20262
patches from allen briggs to fix a minor bug in *attach()
1993-07-19 11:30:49 +00:00
andrew
44b5013862
Reject non block-aligned transfers (where a block is 512 bytes in length);
...
they were causing scsi controller lockups. Replace an occurrence of "512"
with SECSIZE, which is #defined to be 512.
1993-07-04 07:09:59 +00:00
andrew
1b69e917eb
ANSIfications.
1993-06-27 06:59:20 +00:00