summaryrefslogtreecommitdiffstats
path: root/sys/scsi/scsi_driver.c
Commit message (Collapse)AuthorAgeFilesLines
* Removed unused #includes.bde1997-09-021-6/+1
|
* Removed another vestige of devconf.bde1997-09-021-7/+1
|
* Introduce an advisory exclusive lock on the scsi link structure.tegge1997-06-251-1/+23
| | | | | | | | Change sd_open, sd_close and sd_ioctl to use this lock to ensure serialization of some critical operations, thus avoiding some race conditions. Ideas picked from NetBSD (ccd and sd devices). This fixes one of the problems noted in PR kern/3688. Reviewed by: "Justin T. Gibbs" <gibbs@plutotech.com>
* Removed nested #includes of <scsi/scsi_debug.h> and <scsi/scsi_driver.h>bde1997-03-231-1/+2
| | | | from <scsi/scsiconf.h> and fixed everything that depended on them.
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* Make some small tweaks to the messages to clean up some stuffwpaul1997-02-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | from last time. Some people have pointed out that there were some odd side-effects in the changes I made. Two things are different: - sc_print_addr() will print 'foodev0:' (i.e. sd0:, st0:, cd0:, etc...) if the device name is known. If it's not known, it'll use a longer notation. This shortens error messages back to a sane length. - Added a small function called sc_print_init() to set the sc_printing flag so that sc_print_addr() will know that we want it to print a linefeed. Used this in scsi_device_attach() to restore proper carriage return printing behavior which I broke. Remaining bogons: the NCR SCSI driver prints out information while the device-specific attach routine is running with its own linefeeds. This breaks up the individual messages emitted by the subdriver modules and causes at least one message to appear on a line by itself without a device spec prefix. I'm not sure of the correct way to fix this, and I don't have any NCR SCSI hardware to test with anyway. There's probably more, but I gather that a rewrite of the SCSI subsystem is pending anyway, so I'll leave the rest to Those Who Know More About This Than I (tm).
* Make the SCSI probe messages more BSDish. This may raise a few eyebrowswpaul1997-01-251-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ("Hey! Who made _you_ the keeper of all things BSDish?!") but this has bugged me for a long time, and now that I finally have the chance to hack on it (and test the results), I'll take my chances. I can also point to other BSD implementations for precedents if you put my back to the wall. The only thing that's changed is how the messages are formatted. Now, instead of having this: aha0 at 0x330-0x333 irq 11 drq 5 on isa (aha0:3:0): "HP C1553A 9503" type 1 removable SCSI 2 st0(aha0:3:0): Sequential-Access density code 0x24, variable blocks, write-enabled (aha0:3:1): "HP C1553A 9503" type 8 removable SCSI 2 ch0(aha0:3:1): Medium-Changer 6 slot(s) 1 drive(s) 0 arm(s) 0 i/e-slot(s) We have this: aha0 at 0x330-0x333 irq 11 drq 5 on isa scbus0 at aha0 bus 0 st0 at scbus0 target 3 lun 0 st0: <HP C1553A 9503> type 1 removable SCSI 2 st0: Sequential-Access density code 0x24, variable blocks, write-enabled ch0 at scbus0 target 3 lun 1 ch0: <HP C1553A 9503> type 8 removable SCSI 2 ch0: Medium-Changer 6 slot(s) 1 drive(s) 0 arm(s) 0 i/e-slot(s) Which is (to me anyway) is a lot more pleasant to look at. (Call me crazy -- g'head: you know you wanna -- but the previous messages remind me of Linux. Ever see the output from the linux device probes? It's a mess of copyright notices, version numbers/dates, author e-mail addresses and other crap. Let's not go there, okay? Bleh.) Notice that devices are now specified in terms of the scsi bus they live on rather than the adapter. This better reflects the contents of the kernel config file (if you use wired-down device specifications anyway) and removes some ambiguity that may arise if you have a multi- channel adapter with more than one bus. Also, sc_print_addr() now generates messages like this: st0 at scbus0 target 3 lun 0: NOT READY asc:3a,0 Medium not present instead of this: st0(aha0:3:0): NOT READY asc:3a,0 Medium not present I also added a quirk entry for the HP Superstore 12000e 6 tape DAT autoloader, which needs SC_MORE_LUS in order for the changer device to be properly probed and attached. (I'm working on a chcontrol utility to manipulate the changer on this drive which should hopefully be general enough to work with other changers too. If you want the prototype I have now, it's at ftp://skynet.ctr.columbia.edu/pub/freebsd/changer.c.) Remaining bugs: - The 'foodev0: yadda yadda yadda' bits should probably be printed entirely by the device-specific subdriver attach code instead of half by the scsi_device_attach() routine and half by the device specific attach routine like it is now. - The wired-down device specifications in the kernel config file should be used to control bus/device probing to some extent rather than just for choosing names for devices we find. If the config says there's a device at scbus0 target 0 lun 0 called sd0, we should look there and check for a device that can be managed by the sd driver. If we don't find one, we should probably complain that there's no device there or that there is a device but of the wrong type. Once all the devices from the wired down list have been probed, the code can then autodetect and autoattach any devices that remain unassigned. - Apparently some tape changers (hi Ulf!) return 'not ready/medium not present' when the magazine is loaded but a tape has not been put in the drive yet. This causes an open(/dev/ch0) to fail and prevents you from using the changer.c utility to load the first tape into the drive. My HP changer does not behave this way. The workaround is to manually load a tape into the drive before attempting to use the changer program, but you can get in trouble if you accidentally eject a tape without loading a new one and you're at a remote location: you won't be able to load any tapes anymore. I'm not sure what the correct software solution is for this but ideally there should be one. - I should not be doing this: I'm the NIS guru, not the SCSI guru. (This is not my beautiful code. How did I get here? My god: what have I done?)
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Remove devconf, it never grew up to be of any use.phk1996-09-061-5/+2
|
* Turn SCSIDEBUG into a new-style option.joerg1996-07-141-1/+4
|
* Make sure to update the SDEV_MEDIA_LOADED flag also when working onjoerg1996-06-161-1/+4
| | | | | | the control device. Submitted by: akiyama@kme.mei.co.jp (Shunsuke Akiyama)
* Removed now-unused #includes of <machine/cpu.h>. They were for bootverbosebde1996-04-071-3/+1
| | | | being declared in the wrong place.
* Cleanse the SCSI subsystem of its internally defined typesgibbs1996-03-101-4/+4
| | | | | u_int32, u_int16, u_int8, int32, int16, int8. Use the system defined *_t types instead.
* Make the "uk" device usable again. The open() always failed due to an ↵joerg1996-01-201-2/+2
| | | | | | internal driver design problem.
* fix a couple of stuffups in the worm driver and in other associated scsi filesjulian1995-12-051-2/+3
|
* If the open fails, don't mark the device as open (duh!)julian1995-12-051-2/+2
| | | | | symptom:.. once an open of a 'can only open it once' device fails.. you can never open it again, as it was marked open but wasn't open..
* Remove trailing whitespace.rgrimes1995-05-301-7/+7
|
* Moved unit definitions out of scsiconf.h;dufault1995-05-031-38/+44
| | | | | | Added CONTROL device that only does user-ioctl and nothing else; Added protection so user-ioctl requires write access; Clean up scsiconf.h a little. It needs more work.
* Added "scsi target" device that can act as a target for scsi transfersdufault1995-04-141-9/+12
| | | | | | | | from an initiator Added Julian's support for residuals. Added Julian's fixes to the tape driver Made compile cleanly with -Wall Reduce boot up output
* cd.c: Julian's CD audio cleanupdufault1995-03-211-2/+9
| | | | | | | | | | sd.c: Julian's removal of subdriver requests st.c, scsi_tape.h: Julian's suport of compressed tape drives Note: compressed tape drives are still not working fully. scsiconf.h, scsi_base.c, scsi_driver.c: address problems in probes and error console logs
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'bde1995-03-161-1/+3
| | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
* 1. Add text for ASC/ASCQdufault1995-03-151-1/+9
| | | | | 2. Clean up probe messages. This is how I propose it looks for 2.1 so if you don't like it you have my e-mail address.
* Fix when SCSI_DEBUG turned on. Thanks to Michael Reifenberger.dufault1995-03-051-4/+5
|
* 1. Change driver signatures to full signature for slice support.dufault1995-03-041-13/+23
| | | | | 2. Add "pt" (processor type) driver. 3. Add "worm" (Write Once) driver for Jordan.
* Make sure there is a device before opening. Fixes NULL accessdufault1995-03-031-1/+4
| | | | when opening unattached devices.
* Reviewed by: gibbs@freefall.cdrom.com julian@freefall.cdrom.comdufault1995-03-011-0/+177
1. Support for fixed device configuration 2. Hoisted common code to scsi_driver 3. SCSI busses dynamically allocated at boot 4. Reorg'd for LKMs
OpenPOWER on IntegriCloud