diff options
author | phk <phk@FreeBSD.org> | 1996-07-21 09:28:50 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1996-07-21 09:28:50 +0000 |
commit | e3bb4b0ae744d999d480376f96757d666fc76712 (patch) | |
tree | 938cf88f866af13831c387a1aa7fee8175324f3d | |
parent | 31ff7912a40b9271d12eafac715f35179c6a2ab2 (diff) | |
download | FreeBSD-src-e3bb4b0ae744d999d480376f96757d666fc76712.zip FreeBSD-src-e3bb4b0ae744d999d480376f96757d666fc76712.tar.gz |
Add yet another kludge to this driver. Man page update to follow.
-rw-r--r-- | sys/i386/isa/wd.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c index df8b99b..958c51e 100644 --- a/sys/i386/isa/wd.c +++ b/sys/i386/isa/wd.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)wd.c 7.2 (Berkeley) 5/9/91 - * $Id: wd.c,v 1.109 1996/06/08 10:03:35 bde Exp $ + * $Id: wd.c,v 1.110 1996/06/12 05:03:51 gpalmer Exp $ */ /* TODO: @@ -109,6 +109,7 @@ extern void wdstart(int ctrlr); /* can't handle that in all cases */ #define WDOPT_32BIT 0x8000 #define WDOPT_SLEEPHACK 0x4000 +#define WDOPT_FORCEHD(x) (((x)&0x0f00)>>8) #define WDOPT_MULTIMASK 0x00ff @@ -1632,6 +1633,13 @@ failed: du->dk_dd.d_nsectors = wp->wdp_sectors; du->dk_dd.d_secpercyl = du->dk_dd.d_ntracks * du->dk_dd.d_nsectors; du->dk_dd.d_secperunit = du->dk_dd.d_secpercyl * du->dk_dd.d_ncylinders; + if (WDOPT_FORCEHD(du->cfg_flags)) { + du->dk_dd.d_ntracks = WDOPT_FORCEHD(du->cfg_flags); + du->dk_dd.d_secpercyl = + du->dk_dd.d_ntracks * du->dk_dd.d_nsectors; + du->dk_dd.d_ncylinders = + du->dk_dd.d_secperunit / du->dk_dd.d_secpercyl; + } #if 0 du->dk_dd.d_partitions[RAW_PART].p_size = du->dk_dd.d_secperunit; /* dubious ... */ |