Commit Graph

413 Commits

Author SHA1 Message Date
dillon
16ae72c2ec Reviewed by: J Wunsch <j@uriah.heep.sax.de>
-current commit for st.c, kernel support for /bin/mt's 'comp' option.
    (tested with exabyte and DAT tape units.  Does not apparently work with
    all SCSI tape's, though).
1998-09-03 07:01:39 +00:00
phk
8c27af6df4 remove bdevsw arg from dsopen();
Forgotten by:	julian
Reviewed by:	bde
1998-08-23 20:16:35 +00:00
bde
337322b7ec Moved `nx' functions to the one place where they are used (su.c).
They shouldn't be used there either.  They should have gone away
about 3 years ago when the statically initialized devswitches went
away, but su.c unfortunately still frobs the cdevswitch in the old
way.
1998-08-20 06:10:42 +00:00
bde
09bd4b9603 Fixed printf format errors. 1998-08-18 00:32:50 +00:00
bde
4e2d834c27 Removed unused includes. 1998-08-17 19:09:36 +00:00
dfr
277f8e55a3 Don't use unaligned accesses when printing extended sense codes. 1998-08-17 09:24:31 +00:00
bde
c96f169902 Cast to `char *' instead of to u_long to help add byte offsets to
pointers.  Neither is portable, but "correct" casts to integral
types are much uglier - they lead to expressions like

        ptr = (struct struct_with_too_long_a_name *)(void *)(uintptr_t)
	    ((uintptr_t)(void *)ptr + offset);

Here the cast to the struct pointer is to match the surrounding
style of this file (and not depend on C's feature of properly
converting `void *' on assignment or cast), the `void *' casts are
because uintptr_t is only specified to work on `void *' pointers
(I missed this in about 100 lines of previous changes from [u]long
to [u]intptr_t), the outer cast to a uintptr_t is in case the
addition promoted the type, and the inner cast to a uintptr_t
corresponds to the one cast to an integer in the original code.

Don't depend on gcc's feature of casting lvalues.
1998-08-15 23:06:38 +00:00
phk
ac78fb5eda In sys/scsi/st.c, st_close() does not check for errors from calling
st_write_filemarks().  This means that it is possible to write a file
on the tape for which all the writes and the close return without
errors, but the all bits did not make it onto the tape.

PR:		741
Reviewed by:	phk
Submitted by:	Andrew Heybey <ath@niksun.com>
1998-07-31 09:00:39 +00:00
bde
3016360e65 Use the slice interfaces for SCSI cdroms. This centralizes handling
of some disk ioctls and uniformizes bounds checking in the strategy
routine.  EOF handling got fixed as a side effect.  The changes
are similar to old changes for SCSI disks, except slices and labels
are not searched for on the disk and the in-core label has a few
more details (mostly just for backwards compatibility).  Bugs in
the in-core label had to be fixed to get dsopen() to accept it.
The slice interfaces had to support large sectors for all this to
work.
1998-07-30 17:05:10 +00:00
bde
2c362dc181 Added a flags arg to dsopen() and updated drivers. The DSO_ONESLICE
and DSO_NOLABELS flags prevent searching for slices and labels
respectively.  Current drivers don't set these flags.  When
DSO_NOLABELS is set, the in-core label for the whole disk is cloned
to create an in-core label for each slice.  This gives the correct
result (a good in-core label for the compatibility slice) if
DSO_ONESLICE is set or only one slice is found, but usually gives
broken labels otherwise, so DSO_ONESLICE should be set if DSO_NOLABELS
is set.
1998-07-30 15:16:06 +00:00
bde
57a5f9023d Centralized and optimized handling of large sectors. Centralized
checking of transfer sizes and alignments.

Old version tested with 2K-sectors on od disks by: Shunsuke Akiyama
<akiyama@kme.mei.co.jp>.
1998-07-29 11:15:54 +00:00
bde
f60ba2125f Set the disk type to SCSI in the in-core label for the whole disk. 1998-07-28 18:59:49 +00:00
phk
f59d8bb706 I have a PD drive (Matsushita PD/CD Drive LF-1600).
The machine can not recognize this PD drive
as neither PD drive nor CD-ROM Drive.
So I can not use CD-ROMs and PDs from FreeBSD.

PR:		7423
Reviewed by:	phk
Submitted by:	Takura Koyama <takura@popweb.ne.jp>
1998-07-28 09:03:37 +00:00
bde
ddb797776a If object pointers need to be cast to [unsigned] integers, then cast
to [u]intptr_t instead of to [u_]long.

Don't cast pointers to integers just to do ordinary pointer arithmetic
on them, especially when the casts use gcc's feature of casting lvalues.
1998-07-14 11:34:22 +00:00
bde
925110cd23 Fixed printf format errors (only 1 left in GENERIC now). 1998-07-13 09:53:11 +00:00
julian
1dc298263b SLICE probing becomes asynchronous. It can now be triggered by
interupt level events. This needs a lot of cleanup, but has been working
here for a month or two.. originally needed for CAM integration
but that hasn't happenned yet. The probing  state machines for each
handler should be replaced by a more generic state-service. It's
still quite messy in there..
1998-07-13 08:23:05 +00:00
bde
f0b863f4b5 Fixed printf format errors. 1998-07-11 07:46:16 +00:00
julian
0262543b5f There is no such thing any more as "struct bdevsw".
There is only cdevsw (which should be renamed in a later edit to deventry
or something). cdevsw contains the union of what were in both bdevsw an
cdevsw entries.  The bdevsw[] table stiff exists and is a second pointer
to the cdevsw entry of the device. it's major is in d_bmaj rather than
d_maj. some cleanup still to happen (e.g. dsopen now gets two pointers
to the same cdevsw struct instead of one to a bdevsw and one to a cdevsw).

rawread()/rawwrite() went away as part of this though it's not strictly
the same  patch, just that it involves all the same lines in the drivers.

cdroms no longer have write() entries (they did have rawwrite (?)).
tapes no longer have support for bdev operations.

Reviewed by: Eivind Eklund and Mike Smith
	Changes suggested by eivind.
1998-07-04 22:30:26 +00:00
jmg
9d60e9f53f make NO_SCSI_SENSE a proper option (already documented in LINT) 1998-06-30 07:47:44 +00:00
bde
744972b9cb Added used include of "ioconf.h" - don't depend on pollution in
<sys/conf.h>.  I'm fixing isa interrupt handler configuration and
this is just a quick fix to keep SCSI configuration unharmed.
1998-06-17 14:13:15 +00:00
dfr
1d5f38ac22 This commit fixes various 64bit portability problems required for
FreeBSD/alpha.  The most significant item is to change the command
argument to ioctl functions from int to u_long.  This change brings us
inline with various other BSD versions.  Driver writers may like to
use (__FreeBSD_version == 300003) to detect this change.

The prototype FreeBSD/alpha machdep will follow in a couple of days
time.
1998-06-07 17:13:14 +00:00
julian
5c6ec72d16 Allow devfs to support the 'uk' device
Submitted by: Micha Class <michael_class@hp.com>
1998-06-01 19:44:54 +00:00
gibbs
ec33d6bd5e Add sctargattach that initializes the bufq data structure. 1998-06-01 03:44:56 +00:00
julian
f067668263 Reformat some comments to not overflow 80 chars. 1998-05-24 04:52:31 +00:00
julian
37c51920d5 An effort to make SLICE/DEVFS play with SCSI.
Apparently I didn't make my plans to make dev_t and devsw[] go away
under DEVFS quite clear enough to Peter Dufault as he stitched the SCSI
system together using them when he redid the configuration side of things.
This made is rather an effort to remove all vestiges of dev_t and
devsw[] entries from sd.c in DEVFS/SLICE mode.
1998-05-07 12:13:47 +00:00
julian
a64c77cceb cleanup: remove duplicated dump code.
fix oversight on SLICE ioctl code.
1998-05-07 02:05:21 +00:00
julian
0cb054bfea Add dump support to the DEVFS/slice code.
now we can actually catch our crashes :-)

Submitted by: Luoqi Chen <luoqi@chen.ml.org> (the man who's everywhere)
1998-05-06 22:14:48 +00:00
phk
9739c7039d The CHIOGSTATUS ioctl of the SCSI media changer driver (sys/scsi/ch.c)
is broken.  It omits the SCSI_DATA_IN flag in the SCSI READ ELEMENT
STATUS command, which makes the 'chio status' command fail.

PR:		6528
Reviewed by:	phk
Submitted by:	Hans Huebner <hans@artcom.de>
1998-05-06 09:11:20 +00:00
des
1e8b395cf1 Fixed spelling of "fictitious" in diagnostics and comments
PR:		kern/6429
1998-04-27 11:36:06 +00:00
julian
db37f632a0 close() is no longer a SLICE method.
Close is simply an open with no-read and no-write once internal to SLICE
(it still exports a close to the rest of the kernel)
1998-04-22 10:25:27 +00:00
julian
0796a5c56e Add changes and code to implement a functional DEVFS.
This code will be turned on with the TWO options
DEVFS and SLICE. (see LINT)
Two labels PRE_DEVFS_SLICE and POST_DEVFS_SLICE will deliniate these changes.

/dev will be automatically mounted by init (thanks phk)
on bootup. See /sys/dev/slice/slice.4 for more info.
All code should act the same without these options enabled.

Mike Smith, Poul Henning Kamp, Soeren, and a few dozen others

This code does not support the following:
bad144 handling.
Persistance. (My head is still hurting from the last time we discussed this)
ATAPI flopies are not handled by the SLICE code yet.

When this code is running, all major numbers are arbitrary and COULD
be dynamically assigned. (this is not done, for POLA only)
Minor numbers for disk slices ARE arbitray and dynamically assigned.
1998-04-19 23:32:49 +00:00
des
396b114475 Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108. 1998-04-17 22:37:19 +00:00
peter
bee3002b7d Attempt to fix BOUNCE_BUFFERS. I cannot test these drivers, but they
seem to compile OK with the bounce buffer mods.  I have only visually
checked for missing bounce buffer support, I could have missed some.
1998-04-16 12:28:31 +00:00
peter
8c412834a4 Attempt to get bounce_buffers working again for per-process kernel stack
data targets.  At least st0 works for me again....
Also, scsi_scsi_cmd() looks like it's been exiting without a biodone() on
an attached buffer in a number of error cases, leading to locked buffers.
1998-04-16 11:15:23 +00:00
peter
b8ece98820 fix an obvious broken BOUNCE_BUFFER case. 1998-04-16 10:35:50 +00:00
bde
b598f559b2 Support compiling with `gcc -ansi'. 1998-04-15 17:47:40 +00:00
jmz
be9710b507 Add an ioctl to retrieve the next writable address.
Defer the WRITE SESSION command until the first write command, so that
it works like the prepare track command, allowing the device to be
closed after the command.
1998-03-31 01:56:29 +00:00
bde
cd450d6714 Moved some #includes from <sys/param.h> nearer to where they are actually
used.
1998-03-28 10:33:27 +00:00
jkh
34daaf7b2b Add a quirk entry for IO DATA CDC-TX86 6 CD changer.
PR:		5942
Submitted by:	Masanao Sasai <m_sasai@mxa.meshnet.ne.jp>
1998-03-08 06:52:45 +00:00
bde
999552194c Don't depend on "implicit int". 1998-02-20 13:37:40 +00:00
msmith
cd0d6c381a Put the SC_Q_NO_TAGS value in the correct field for the Iomega Jaz quirk
entry, and move it down with the other NO_TAGS device.
Submitted by:	bde
1998-02-18 09:40:54 +00:00
eivind
a5daa0b2f8 Add HW_WDOG to LINT, and turn it into a new-style option. 1998-02-16 23:57:49 +00:00
msmith
b17459b428 Based on the following message, disable tagged command queueing for all
Iomaga Jaz drives.

From: Steve Logue <stevel@mail.cdsnet.net>
To: freebsd-current@freebsd.org, freebsd-scsi@freebsd.org
Subject: Jaz Drives / Tagged Command Queuing

FreeBSD Lists,

Due to my own problems as the owner of a Jaz drive, I have gotten word
from Iomega that confirms the state of Tagged Command Queuing as the
underlying problem.  There is an error in all Jaz, and Jaz2 drives prior
to BIOS level J.86 that has not shipped yet.  Read the following, and
make the appropriate corrections to your system present, and future:

> Steve,
>
> I got a very fast response from the hardware engineer (Jaz and Jaz 2
> designer).  The problem is this - The Jaz drive does not support
> command queing, and revisions older than J.86 do not report it correctly.
> For example, when your SCSI adapter says "I'm going to use command
> queing" to the Jaz drive, the drive answers "OK, lets go", even though its
> not supported.  The J.86 drives will now answer "Sorry, command
> queing is not supported".  Iomega does not have any current plans to
> support command queing.
>
> Thank's for your report, I will continue to forward it to the hardware
> engineers.

-STEVEl
--
---------------------------------------------------------------------
  Steve Logue                        http://home.cdsnet.net/~stevel
  Systems Integration                                    nettek LLC
---------------------------------------------------------------------

Submitted by:	Steve Logue <stevel@mail.cdsnet.net>
1998-02-16 11:15:35 +00:00
eivind
d7a6ab2803 Staticize. 1998-02-09 06:11:36 +00:00
wollman
81f0e56cf6 Serves me right for committing code late at night...
Fix the SCIOCGETDEVINFO code so that it compiles, and while I'm at it,
add support for human-readable device names so that I don't have
to call devname(3) on  the scd->dev to get it.
1998-02-01 18:09:50 +00:00
wollman
f3d9b9b0a4 Add a new ioctl, SCSIOCGETDEVINFO, which takes a device ID and uses it
to look up information about that device.  Right now, all it does
is give back the dev_t for the device, if known, since that's all
I needed, but hopefully the SCSI mavens will come up with a more generally
useful structure.
1998-02-01 04:13:13 +00:00
eivind
71ddd31390 Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.
This introduce an xxxFS_BOOT for each of the rootable filesystems.
(Presently not required, but encouraged to allow a smooth move of option *FS
to opt_dontuse.h later.)

LFS is temporarily disabled, and will be re-enabled tomorrow.
1998-01-24 02:54:56 +00:00
ache
9059b3b040 Add SCSI-SCSI RAID from Infotrand as known device 1998-01-21 08:03:37 +00:00
julian
868a198eda the pt driver should make one DEVFS entry for each one found rather than
just one for the whole system..
1998-01-06 08:28:46 +00:00
nate
00293d1a14 - Accept all models of the HP C1553A tape series as usable tapes. This
is necessary for my tape drive to be found, since it's apparently a
  later model.
1997-12-30 22:26:51 +00:00