* 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.
* 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.
* 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.
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).
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).
-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().
- 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.
"struct pmax_device" to avoid conflict with <sys/device.h>.
Change the signature of interrupt-handlers to take a void *
(a pointer to the softc) and return an int (indicating spurious
interrupts or other conditions.)
to have the same interface as native readdisklabel(), call it cleanly
from caller of readdisklabel(), and fix bug that left d_npartitions at 1
for ultrix-compat labels. Ultrix labels now actually work.