From: bde@kralizec.zeta.org.au (Bruce Evans)
authorNate Willams <nate@FreeBSD.org>
Tue, 1 Feb 1994 05:55:21 +0000 (05:55 +0000)
committerNate Willams <nate@FreeBSD.org>
Tue, 1 Feb 1994 05:55:21 +0000 (05:55 +0000)
commit80d17733b677ad9058c2b11e2bf67dfb545c4b3c
treed50f4b41bc3f269715a14b45b144a34a7a08181d
parent21808a8c57f66f8e468a10f985bdbc3d5d7e8335
From: bde@kralizec.zeta.org.au (Bruce Evans)

o merged and fixed timeout code from sos.
o merged DOS partition support from sos.
o fixed "extra" interrupts.
o check if malloc retuns NULL :-(.
o print drive size as in NetBSD
o after an error, return the residual count, not 0.
o give up early for > 16 heads.
o cleaned up the old-drive detection in wdgetctlr().
o rewrote wddump().  I'd been putting this off because
  I'd had the dump disabled since 0.0 and had no idea
  if even the standard version worked.  It didn't:
  (0) syscons' sgetc() interface broke some keyboard
  stuff.
  (1) CADDR1 is mapped using pmap() and pmap got a NULL
  pointer trap (at least when I got to wddump() using
  call diediedie from ddb) because the pte for CADDR1
  is only supposed to be hacked on directly (e.g. in
  physcopyseg()).
  (2) bad144 handling was not done.
  (3) it was slooow (3600 sectors/minute) because my
  controller doesn't cache writes.
o miscellaneous other cleanups, e.g., removed scattered
  patchkit/terry dates.
o lots of reformatting.

To be done:
o Merge/fix TIH/NetBSD bad144 code (doesn't belong in any
  particular driver.  Why aren't we using i386/dkbad.c?).
o Merge/fix Dyson/NetBSD clustering code (large parts
  should be shared).
o Fix/extend the partition in use bits.  Support extended
  partitions.  This should be shared by all disk drivers.  Swap
  to a DOS partition so that the swap space can be shared with
  linux.
o Don't use polling except for initialization.  Need to
  reorganise the state machine.  Then "extra" interrupts
  shouldn't happen (except maybe one for initialization).
o Fix disklabel, boot and driver inconsistencies with
  bad144 in standard versions.
o Look at latest linux clustering methods.  Our disksort()
  gets in the way of clustering.
o cleaned up the ATA changes (needs more work.  I think
  the ATA specs say that the only thing really wrong with
  the original version of wx is that there was no test
  for drive-ready before some commands.  400 nsec delay
  suffices for almost everything and 400 nsec delay is
  usually "free").
sys/i386/isa/wd.c