summaryrefslogtreecommitdiff
path: root/sys/scsi/st.c
AgeCommit message (Collapse)Author
2024-09-04Fix some spelling.Marcus Glocker
Input and ok jmc@, jsg@
2023-04-27add support for I/O statistics so that tape speeds can be observed withRobert Nagy
iostat(8)
2022-02-27SC_DEBUG() requires an initialized scsi_link. ShuffleKenneth R Westerback
code to make it so. Pointed out by clang when prodded with SCSIDEBUG.
2022-01-11spellingJonathan Gray
2021-10-24Constify struct cfattach.Martin Pieuchot
ok visa@ a long time ago, ok krw@
2021-03-12spellingJonathan Gray
2020-09-22Since dlg@'s 2009 scsi midlayer refactoring the 'struct scsi_generic *cmd'Kenneth R Westerback
member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*' from cmd. Take the address of cmd as required by the various casts. No intentional functional change. luna88k test by aoyama@, sparc64 test by jmatthew@ Identification of 2009's last *cmd use and ok jmatthew@
2020-08-22The last timeout_add(sc_timeout) died in the great XS_NO_CCB purge of 2017. NukeKenneth R Westerback
pointless timeout_set(sc_timoeut) and timeout_del(sc_timeout) calls and the sc_timeout fields themselves.
2020-08-20Revert DYING. At least some USB memory sticks get very upset.Kenneth R Westerback
2020-08-19Nuke SDF_DYING, CDF_DYING and ST_DYING flags. Use the scsi_link flagKenneth R Westerback
SDEV_S_DYING instead. Makes it clear that the scsi_link and the [cd|sd|st] device always agree on their state.
2020-08-15The last SET()s of CDF_WAITING, SDF_WAITING, and ST_WAITING died in the greatKenneth R Westerback
XS_NO_CCB purge of 2017. Nuke pointless ISSET()/CLR() checks and the #define's.
2020-08-11Explicitly #include <scsi/scsi_debug.h> rather than assuming scsiconf.h will doKenneth R Westerback
it. Prepares for removal of #include <scsi/scsi_debug.h> from scsiconf.h as soon as the alpha tester digs out from hurricane to compile last untested files.
2020-07-16Access scsibus_softc info (luns, adapter, adapter_target,Kenneth R Westerback
adapter_softc, adapter_buswidth) via link->bus rather than using copies currently residing in the link.
2020-06-30Nuke unneeded 'sa_inqbuf' member of struct scsi_attach_args. It alwaysKenneth R Westerback
points to the inquiry data contained in the struct scsi_link pointed to by the other member, sa_sc_link.
2020-02-20Relax the grip the dead hand of QBUS (a.k.a. MAXPHYS) has on theKenneth R Westerback
throat of physio(). Allows individual devices to eventually be modified to support larger physio() (a.k.a. 'raw') i/o's if they prove capable of them. No immediate functional change. Tested for many weeks by and ok robert@.
2020-02-05Nuke unnecessary abstraction 'scsi_minphys()' which just callsKenneth R Westerback
'minphys()'. Just use & check for NULL instead, since 'minphys()' is always called on the code path ([cd|sd|st]minphys) that calls physio().
2020-01-27Make the commonalities of cdminphys, sdminphys and stminphys moreKenneth R Westerback
obvious by consistently using the variable names and idiom of sdminphys. No functional change.
2020-01-26Shuffle some names around to make reading the code less headacheKenneth R Westerback
inducing. Rename scsi_adapter member 'scsi_minphys' to 'dev_minphys' to reflect what it is supposed to do. Use consistent naming convention (<dev>_minphys) for the actual device functions. No functional change.
2020-01-25Ensure scsi_minphys() is always called on the physio() path.Kenneth R Westerback
Will allow simplification of individual driver *minphys() functions. ok jmatthew@ as part of larger diff
2019-12-05Shrink scsi_mode_do_sense() parameter list by eliminating the threeKenneth R Westerback
pointers returning possible block descriptor values for block size, block count and density. Most calls were passing "NULL, NULL, NULL" since they did not care. Call scsi_parse_blkdesc() directly in those few cases where one or more of the values is of interest. No intentional functional change.
2019-11-26Don't zero existing values for density, block_count and block_size inKenneth R Westerback
scsi_do_mode_sense(). Just update the values when valid data is available. Initialize the variables passed to scsi_do_mode_sense() in the one instance where they weren't already set. Fixes issue with softraid crypto volumes on 4K-sector disks. Found, fix tested, and ok tim@
2019-11-23Consistently use ISSET() to check for set flags.Kenneth R Westerback
2019-09-29Introduce SC_DEBUG_SENSE() and simplify code by eliminating a bunchKenneth R Westerback
of three line SCSIDEBUG chunks.
2019-09-29Continue SCSIDEBUG cleanup by nuking pointles SC_DEBUGN() #define.Kenneth R Westerback
2019-09-29Tweak some whitespace to make autoindenter happy. Use consistent naming ↵Kenneth R Westerback
idiom for the debug functions.
2019-09-27Add/tweak #endif comments to make spelunking via grep more rewarding.Kenneth R Westerback
2019-09-10Shuffle a couple of lines to make the device -> st_softc dances lookKenneth R Westerback
the same.
2019-09-10No need to check for ST_MOUNTED before calling st_mount_tape() AND inKenneth R Westerback
st_mount_tape(). Just keep the latter. st_mount_tape() is called from inside stopen() which has already found the relevant st_softc(), incremented the device reference count, and checked if it is dying. No need to repeast that in st_mount_tape(). Just pass the st_softc.
2019-09-10return is not a funciton call. Avoid pointless parenthesis.Kenneth R Westerback
2019-09-10Explicitly check error results against 0.Kenneth R Westerback
2019-09-10Some stray bit twiddles that were using yet another idiom.Kenneth R Westerback
2019-09-10check pointer against NULL and error values against 0.Kenneth R Westerback
2019-09-10Last (?) small bit twiddling modernization.Kenneth R Westerback
2019-09-10!ISSET() for various flags.Kenneth R Westerback
2019-09-10SET/CLR/ISSET all at once for st->quirks, and a few other rare flags.Kenneth R Westerback
2019-09-09SET/CLR/ISSET all at once for the far less numerous link->flags.Kenneth R Westerback
2019-09-09Continue bit twiddling tweaks. Use SET() with st->flags.Kenneth R Westerback
2019-09-09Lots of st->flags bit clearing in a mix of old school and CLR() makesKenneth R Westerback
code harder to read. Switch to CLR(). No change to executable.
2019-09-09Lots of st->flags checking in a mix of old school and ISSET() makesKenneth R Westerback
code harder to read. Switch to ISSET() where obvious. No change to executable.
2019-09-09Tweak some comments to be useful. Sort switch cases intoKenneth R Westerback
numerical order. Move bit of logic before calling st_unmount() into st_unmount().
2019-09-07Fold st_identify_drive() into stattach().Kenneth R Westerback
2019-09-07Tweak some comments and code layout to make MTSETBSIZE and MTSETDENSITYKenneth R Westerback
cases look the same.
2019-09-07ST_USER_BLKSIZE and ST_QUIRK_BLKSIZE are only tested as an or'd pair.Kenneth R Westerback
Ditto for ST_USER_DENSITY and ST_QUIRK_DENSITY. Thus the origin of the value stored in the mode is irrelevant. Just use two flags (ST_MODE_BLKSIZE and ST_MODE_DENSITY) instead of the existing four.
2019-09-07ST_Q_FORCE_BLKSIZE is superfluous since it is only used in combination withKenneth R Westerback
a non-zero value of blksize in the quirkdata. So just check for non-zero value of blksize, as is already done for density.
2019-09-07Nuke unused flag ST_BLOCK_SET.Kenneth R Westerback
2019-09-07Various struct/variables "modes" -> "mode" since there is only one.Kenneth R Westerback
2019-09-05Nuke some 25+year old comments that the oracles at delphi would haveKenneth R Westerback
found obscure. Repair a broken WangTEK 5150ES quirks entry that apparently suffered some damage when imported in 1995. It never made NetBSD/FreeBSD quirk lists at all. Some whitespace tweaking to make everything line up.
2019-09-05Devices that have no quirks don't need to appear in the list ofKenneth R Westerback
devices with quirks.
2019-09-05Nuke unused st_softc field 'numblks'.Kenneth R Westerback
2019-09-05There can be only one -- mode.Kenneth R Westerback
So fold 'modeflags' field of st_softc into 'flags' field of same. Nuke a bunch of dubious/obvious comments.