Commit Graph

62 Commits

Author SHA1 Message Date
mhitch 61ec2107d7 Clear lun field in ScsiCmd (SII driver change to work with MI SCSI). 2000-06-02 20:15:40 +00:00
thorpej 21fc65e1a8 sleep() -> tsleep() 2000-05-27 04:52:27 +00:00
thorpej 071aed40ac A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well.  This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
2000-05-19 18:54:22 +00:00
simonb bf851ea6cb Nuke register. 2000-03-30 14:45:04 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
mhitch 40b13c16c0 Do the Ultrix label check in readdisklabel() instead of in rz.c. Ultrix
disks are now usable with the MI SCSI sd devices.
The install mini-root adjustment and the default partitioning still needs
to be moved into readdisklabel().
2000-03-03 17:51:26 +00:00
thorpej fe551f0e64 Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle.  Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
2000-02-07 20:16:47 +00:00
thorpej 52242fdf9f Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:28:59 +00:00
simonb ede7778a1c Remove unneeded include files (up to 16 in two files!). 2000-01-10 03:24:31 +00:00
simonb 636b65bec8 The clean-up continues:
- Make local-only function and variables static.
 - Move function prototypes and extern variable declarations to
   header files.
 - Delete unused variables.
There's still a handful of extern declaraions that should be fixed up.
2000-01-09 03:55:28 +00:00
simonb ee075b7de7 Function prototype cleanup. 2000-01-08 01:02:35 +00:00
simonb b48a6bbd79 Allow the "install diskimag" label to be any size < 16MB, not just 4MB. 1999-12-06 02:53:50 +00:00
simonb 71cc75d706 Don't check for a write to write protected label if we are writing to
the raw partition.
1999-11-28 06:28:37 +00:00
simonb fcab0ccebb Tidy up the formatting of a comment. 1999-11-28 06:06:21 +00:00
simonb 682b4e3665 Include SCSI version of disk in device display. 1999-11-19 03:14:22 +00:00
thorpej 11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
simonb dc1d3940db Nuke register and remove trailling white space. 1999-04-24 08:01:01 +00:00
simonb be4160066d Allow the fake installation diskimage to be 2MB as well as 32MB in size. 1999-04-08 13:55:37 +00:00
mrg 3ca216fd8a fix NRND usage 1999-03-09 00:37:01 +00:00
explorer 3ebb419571 Update to slightly altered rnd_attach_source() api 1999-02-28 17:08:05 +00:00
simonb 384f5d9970 Remove unused pmax/stand/dec_*.h include files. 1999-01-27 03:03:51 +00:00
mhitch 475a5c2afd RZ25 disks seem to need a short delay after a start command; the test unit
ready right afterward succeeds, but the getsize following that failed with
a "not ready".
1998-11-20 06:24:02 +00:00
mhitch a7f70a5fbc Fix problem when using non-DEC CDROMS with blocksize other than 512 bytes.
This got lost when disk geometry processing was updated.

Also move the CDROM check from rzread() to rzwrite() - it doesn't make
much sense to report a read-only filesystem error when trying to read a
CDROM.
1998-11-06 01:59:25 +00:00
thorpej 21592147a1 defopt COMPAT_ULTRIX 1998-06-25 23:27:56 +00:00
simonb 469658d533 - Allow all valid SCSI id's to work on the SII and first two ASC
controllers (including SCSI id 7 on the 2100/3100).
- On the pmax (2100,3100) set the host SCSI id to 6.
- Move disk and tape config for the second ASC controller from the GENERIC
  config file to scsi.pmax so all configurations can use the second
  controller.
1998-05-08 00:05:19 +00:00
thorpej f02b1a7a33 Make this compile again in light of Lite2 merge. (Yuck.) 1998-03-02 23:17:19 +00:00
thorpej a3a297cc40 Two purely cosmetic whitespace changes. 1998-02-23 18:45:44 +00:00
jonathan f7bd3a0119 Move existing contextsw-avoidance code in rzdump() earlier, since rzready()
also calls biowait().

Some drives seek to modepage on every modepage geometry-sense in rzready()
cache dev_t of last readied device in rzdump() to elide rzready() calls.
2x speedup of dumps on rz25 and 20x-30x speedup on some IBM OEM 4gig drives.
1998-02-21 20:20:55 +00:00
thorpej 50f58080f4 Rewrite rzdump(); the previous one was completely broken. 1998-02-19 23:04:41 +00:00
mhitch 7984f5ce3a The scsi command length was not being set in rz_command(), which caused
the SII driver to fail when trying to get the drive geometry.
Remove extraneous newline when printing out the disk geometry during device
probes.
1997-11-13 03:56:49 +00:00
jonathan c176a3646e Fix kernel divide-by-zero errors and other bugs with removable devices:
* Add code to query CDs for size, from MI scsi cd.c. Use it on CDs.
  * Set C partition size for CDs. 4.4bsd/pmax code only set `a' partition
    size and required users to mount `a' partition, breking raw-device
    access like "disklabel rz?".
  * Avoid possible divide-by-zero call to howmany() from rzstart(),
    on removable media that aren't ready at device-open time.

Verified to work on rrz42.
1997-11-09 03:08:23 +00:00
jonathan 1dfe80f178 Add MODE SENSE code from MI scsi sd.c to rz.c.
* add includes for sys/dev/scsipi headers.
 * cut-and-paste mode_sense and disk-geometry sense code from sd.c,
   with name changes sd -> rz.
 * Write `rz_command()' to send SCSI sense commands based on
   existing rz size-sensing code.
 * get geometry info with page 4 and page 5 mode sense.
 * use resulting geom info for default label, fake label, and when
   using ultrix labels. (ultrix labels have no geometry info).

Fixes incrrect-label bugs with using sysinst to install onto
Ultrix-labelled disks.
1997-11-08 11:28:10 +00:00
jonathan 2025270865 Fixes for sysinst and installing diskimage:
* Check for a disklabel matching the known values in an install diskimage.
   If found, update incore disklabel's RAW_PART  with the size reported
   by the disk, clobbering the size used by vnd(4).*
 * If geometry info is bogus or /missing, supply a fake geometry
   (as in sd.c).  Saves readdisklabel() and sysinst from divide-by-zero errors.
 * lint: RAWPART -> RAW_PART.
1997-10-26 10:47:14 +00:00
jonathan 75e6c24f72 Don't turn off RZF_WLABEL flag on last close of raw partition.
It breaks disklabel -W, turning label writes back off again when
disklabel -W closes its open fd on the raw disk.
1997-10-25 22:28:52 +00:00
mhitch 748703e737 Correct the check for a recovered error (I did it wrong the first time). 1997-08-17 16:51:21 +00:00
jonathan 11bfae37bb Update compiled-in default partition. Default root 32Mbytes, swap 64Mbytes.
(appropriate for ELF and growth in / since 4.4bsd/pmax).
Clip default-label partitions against the end of the disk to make installs
easier.
1997-06-25 11:00:32 +00:00
pk 6b976a7d46 rzsize(): call rzopen()/rzclose() if not yet open, per the
current `openmask'.
1997-06-18 22:19:13 +00:00
jonathan 3d2676b809 Garbage-collect '#include <machine/pte.h>'. 1997-06-16 23:52:06 +00:00
mhitch 4ccdbb1c9e Don't return error status on recoverable errors 1997-06-15 17:17:07 +00:00
thorpej 9fc5d41bb3 Garbage-collect an ... insane use of "GENERIC" (used to generate a
different "default in-core disklabel" with a larger b partition in
the event no disklabel was present on the disk).
1997-02-04 05:24:55 +00:00
thorpej 08dafb1339 Add a sick little hack to glue old-config-pmax-scsi-stuff into the
alldevs list.  This is required for the new machine-independent setroot().
1997-01-31 02:00:56 +00:00
jonathan 11a7f97c20 Use <> not "" #include path for pmax/stand/dec_boot.h. 1997-01-15 00:52:17 +00:00
christos d286889901 backout previous kprintf change 1996-10-13 03:39:27 +00:00
christos 19d8368f2f printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:44:42 +00:00
jonathan 3a51c3ecb0 Move old 4.4bsd/pmax driver declaration below prototypes of driver
entry points, for -Wall -Wstrict-prototypes.
1996-09-21 08:47:17 +00:00
thorpej eeaf8d15ef Remove the old-style disk instrumentation code. 1996-07-12 21:55:48 +00:00
mhitch 2c4f6b4b82 Don't modify rz_softc[] entries beyond what was configured.
Show proper inquiry data when version >= 1, not <= 1 (SCSI-2 devices
now display their inquiry infor).
Correct transfer length passed to dk_unbusy (b_resid hasn't been
updated yet).
1996-06-16 16:57:31 +00:00
jonathan 39917746c1 fixes for -Wall -Wmissing-prototypes:
Update the pmax SCSI drivers (rz and tz) to  use <machine/conf.h>.
    Fix the driver entry points to have the correct signatures -- add
    "ioflag" args to read() and write(), add "struct proc *p" arg to
     open and close.
    Stop using __BDEVSW_DUMP_OLD_TYPE, and update the rzdump and tzdump
    entry points to have the correct, MI signatures.

    NB: this is just syntactic sugar: both the caller and the dump entry
    points ignore the additional args, and do exactly what they did before.
    This must be fixed before using dump entry points in non-pmax drivers
    (e.g., the MI scsi code).
1996-04-10 16:33:44 +00:00
jonathan 61a27eb882 Fix old pmax scsi disk and tape (rz and tz) drivers to compile with
-Wall -Wmissing-prototypes:

Add prototypes.
Fix printf() format strings (%x vs pointer-arg, %x with a long int).
Fix a possibly-uninitialized shadowing local variable "resid" in tzdone().
include <sys/systm.h> to get prototypes for printf() and bcopy().
1996-04-07 22:46:29 +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