diff options
author | julian <julian@FreeBSD.org> | 1998-04-22 19:27:54 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1998-04-22 19:27:54 +0000 |
commit | ed0da47a02390b289c84b8d8bdda2caa48d1bf6a (patch) | |
tree | 51208643ece97c62db9703d39b4119a87de1e87c /sys/i386 | |
parent | efb500c7ac711f70e1f1fdbbaf8bb2ff7eac24f5 (diff) | |
download | FreeBSD-src-ed0da47a02390b289c84b8d8bdda2caa48d1bf6a.zip FreeBSD-src-ed0da47a02390b289c84b8d8bdda2caa48d1bf6a.tar.gz |
Bad144 support for the slice system (!)
Submitted by: luoqi@watermarkgroup.com (Luoqi Chen)
I'm amazed by this. Slice has only been checked in for 2 days..
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/isa/wd.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c index 88dc731..ef1181a 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.159 1998/04/19 23:31:44 julian Exp $ + * $Id: wd.c,v 1.160 1998/04/22 10:25:17 julian Exp $ */ /* TODO: @@ -83,6 +83,7 @@ #ifdef SLICE #include <sys/device.h> #include <sys/fcntl.h> +#include <sys/sliceio.h> #include <dev/slice/slice.h> #else #include <sys/devfsext.h> @@ -968,6 +969,11 @@ wdstart(int ctrlr) blknum = transbad144(dsgetbad(bp->b_dev, du->dk_slices), blknum - ds_offset) + ds_offset; } +#else + if (du->dk_flags & DKFL_SINGLE) { + (void) (*du->slice->handler_up->upconf)(du->slice, + SLCIOCTRANSBAD, (caddr_t)&blknum, 0, 0); + } #endif wdtab[ctrlr].b_active = 1; /* mark controller active */ @@ -2395,7 +2401,7 @@ out: static void wderror(struct buf *bp, struct disk *du, char *mesg) { -#ifndef SLICE +#ifdef SLICE printf("wd%d: %s:\n", du->dk_lunit, mesg); #else /* !SLICE */ if (bp == NULL) @@ -2653,7 +2659,7 @@ SYSINIT(wddev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+CDEV_MAJOR,wd_drvinit,NULL) * be a multiple of a sector in length. */ static void -wdsIOreq(void *private ,struct buf *bp) +wdsIOreq(void *private, struct buf *bp) { struct disk *du = private; int s; |