Commit Graph

47 Commits

Author SHA1 Message Date
mjacob 33fde1ad76 Eliminate the moreluns entry as it makes no sense for fat SCSI busses (e.g,
FC loops). Change the semantics of scsi_probedev so that it returns 1 if
you should continue probing at this target, else 0 for not.

Replace the blanket use of '7' with the use of the new sc_maxlun property
that is now gathered from HBAs. Allocate scsipi_link arrays based upon this.
Fix a really nasty and silly bug that has been there for a while where the
number of first level scsipi_link structures was one less than it needed
to be.
1998-12-05 19:39:23 +00:00
bouyer 00d93f776b Rename scsi_interpret_sense() to scsipi_interpret_sense() and move it from
scsi_base.c to scsipi_base.c. Rename the functions from scsi_verbose.c
too, and rename the file itself. Cleaup includes too (scsi_*.h should not
be #included in scsipi_*.h files, which are supposed to be
common to atapi and scsi).
1998-11-17 14:38:42 +00:00
thorpej c0ba12768e Fix a sight open flags buglet pointed out by Matthias Scheler. 1998-10-20 22:26:04 +00:00
mycroft 04f0dc658c Assign my copyrights to TNF. 1998-08-17 00:49:01 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
christos e0436952f0 Split out the verbose printing of scsi messages, so that user programs
can use the printing routines.
1998-03-28 21:57:08 +00:00
enami d0ad49a001 Backout previous change, and rather, remove all protection but the one
actually currently required.  Suggested by Charles M. Hannum.
1998-02-13 08:28:16 +00:00
enami ef09ae656f Fix or add protection for mutiple inclusion. 1998-02-13 04:19:13 +00:00
enami d7d845c3d2 Cosmetic changes to keep coding style consistency in this directory;
- Indent with tab of width 8.
- Use four column to indent continuation line.
- Fold long line if possible.
- Use return (xx) instead of return xx.
- Compare pointer against NULL instead of testing like boolean.
- Delete whitespace at the end of line.
- Delete whitespace in front of function call operator.
- Delete whitespace after cast.
- Dereference a pointer to function explicitly.
- Add an empty line after local variable declaration.
- Use NULL instead of (char *)0.
- Dont use block for single statement.
1997-10-01 01:18:38 +00:00
bouyer 6f3bab1f59 Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
1997-08-27 11:22:52 +00:00
mjacob 77116c198a Add in prototype for routine to print SCSI errors in detail. 1997-08-20 18:11:37 +00:00
cgd 6ac982f2a0 mark prototypes for static inline functions as possibly unused (with
__attribute__ ((unused))), to avoid generating warnings when compiling
without optimization but with most ports' default warning flags.
1997-07-07 22:45:34 +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
thorpej f113ac70dd Add a "max_target" member to struct scsi_link, which is filled in by
host adapter drivers, indicating the highest SCSI target they can
address.  Use this value to dynamically allocate data structures, rather
than hard-coding 8 targets.

These changes allow targets > 7 to be addressed on wide SCSI busses.

Fixes PRs #1674 and #2892.
1996-12-10 21:06:29 +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
thorpej f60341a382 Store the SCSI version in the scsi_link, and set the LUN in the CDB
if the version is <= SCSI-2.  This should help some older SCSI
devices that previously needed the "NOLUNS" quirk.  While this is
not strictly necessary on SCSI-2 devices, the spec allows it,
so we set it for SCSI-2 devices "just in case".  See section 7.2.2 of
Draft X3T9.2 Rev 10L for details.
1996-09-03 18:20:31 +00:00
cgd 11ec3588ad (1) add a 'channel' field to scsi_link.
(2) in scsibusmatch, match channel as appropriate.
(3) add a scsiprint() function, to do the "scsibus at..."
    and channel (if not SCSI_CHANNEL_ONLY_ONE) printing,
    i.e. the common functionality that all SCSI drivers currently
    should be doing.
1996-08-28 18:47:51 +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
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
mycroft 294879d4ee Add SCSI scanner support by Kenneth Stailey and Joachim Koenig-Baltes,
hacked a bit.  Needs more work.
1996-02-18 20:32:40 +00:00
christos 0bc63f486d scsi prototypes 1996-02-14 21:46:52 +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
mycroft 80d7b0695a minphys() functions really should return void. 1995-08-12 20:30:45 +00:00
cgd d8e7ea659c restore a deleted semicolon 1995-07-24 09:03:00 +00:00
cgd 4d0bd10d53 kill structure offest comments in non-fixed-size structures.
In some of our worlds, pointers just Aren't 4 bytes.
1995-07-24 07:08:14 +00:00
cgd 3301cf82fd update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
1995-07-24 06:55:37 +00:00
cgd f60db5f02a add a SDEV_FORCELUNS flag, as suggested by Jason Thorpe, to force
the SCSI code to look for LUNs on prehistoric (pre-SCSI 1) drives &
controllers, where normally it would not.
1995-07-12 09:42:00 +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 bfd9901daf Fix some oversights in the debugging code. 1994-12-30 05:33:06 +00:00
mycroft 8fd135209c Numerous changes. Many bugs fixed, better autoconfig, a few new features. 1994-12-28 19:42:47 +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 ef0c18e1cf Always use direct configuration for SCSI devices. 1994-11-03 22:05:08 +00:00
mycroft 54608f7ea0 Remove a couple of i386-specific hacks, and make a couple of others #ifdef
CONFIG_INDIRECT instead.
1994-11-03 20:24:21 +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
cgd fccfa11af5 New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:39:25 +00:00
mycroft d023a319a4 Nuke some junk in scsi_link, as pointed out by Gordon. 1994-05-12 22:16:04 +00:00
mycroft df873c8545 Maintain the xs free list with LIST_*(). 1994-04-20 22:13:33 +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 2e5a28159f New SCSI system, based on Julian's more recent work. 1994-03-29 04:29:20 +00:00
mycroft d5a269b4dd Put controller target in scsi_switch. 1994-03-25 07:38:51 +00:00
cgd c59cd967ff add rcsids and clean up file headers 1993-05-20 03:46:09 +00:00
deraadt a0bcb17e60 support for making dev->id_alive be set, this is for iostat to
find disk devices. wee bit of a kludge. sub-device attach()
routines must now return 1 for successful attach(), 0 otherwise.
Other bsd's do this too..
1993-05-04 08:27:29 +00:00
deraadt 2c98ef3b72 new scsi subsystem.
changes also in config/mkioconf.c
	i386/isa/wd.c, fd.c, and all scsi drivers.
1993-04-12 08:19:28 +00:00
cgd e541169ce2 after 0.2.2 "stable" patches applied 1993-03-21 18:04:42 +00:00