summaryrefslogtreecommitdiffstats
path: root/sys/dev/amr
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-02-24 21:49:27 +0000
committerphk <phk@FreeBSD.org>2003-02-24 21:49:27 +0000
commit83d0e58172de7563f59519892b23c2fd0e80ca56 (patch)
tree7de667f8904ef0bba742bdca938e64ad8392740e /sys/dev/amr
parentdd594d3b57c8fb3337401b9102e319ecee6af106 (diff)
downloadFreeBSD-src-83d0e58172de7563f59519892b23c2fd0e80ca56.zip
FreeBSD-src-83d0e58172de7563f59519892b23c2fd0e80ca56.tar.gz
NO_GEOM cleanup:
Move to new "struct disk *" centered API". OK'ed by: emoore
Diffstat (limited to 'sys/dev/amr')
-rw-r--r--sys/dev/amr/amr.c2
-rw-r--r--sys/dev/amr/amr_disk.c45
-rw-r--r--sys/dev/amr/amrvar.h1
3 files changed, 13 insertions, 35 deletions
diff --git a/sys/dev/amr/amr.c b/sys/dev/amr/amr.c
index e75c2af..6d11bec 100644
--- a/sys/dev/amr/amr.c
+++ b/sys/dev/amr/amr.c
@@ -883,7 +883,7 @@ amr_bio_command(struct amr_softc *sc, struct amr_command **acp)
ac->ac_flags |= AMR_CMD_DATAOUT;
cmd = AMR_CMD_LWRITE;
}
- amrd = (struct amrd_softc *)bio->bio_dev->si_drv1;
+ amrd = (struct amrd_softc *)bio->bio_disk->d_drv1;
driveno = amrd->amrd_drive - sc->amr_drive;
blkcount = (bio->bio_bcount + AMR_BLKSIZE - 1) / AMR_BLKSIZE;
diff --git a/sys/dev/amr/amr_disk.c b/sys/dev/amr/amr_disk.c
index bed1260..2960bda6 100644
--- a/sys/dev/amr/amr_disk.c
+++ b/sys/dev/amr/amr_disk.c
@@ -84,32 +84,10 @@ static int amrd_probe(device_t dev);
static int amrd_attach(device_t dev);
static int amrd_detach(device_t dev);
-static d_open_t amrd_open;
-static d_strategy_t amrd_strategy;
-
-#define AMRD_CDEV_MAJOR 133
-
-static struct cdevsw amrd_cdevsw = {
- /* open */ amrd_open,
- /* close */ nullclose,
- /* read */ physread,
- /* write */ physwrite,
- /* ioctl */ noioctl,
- /* poll */ nopoll,
- /* mmap */ nommap,
- /* strategy */ amrd_strategy,
- /* name */ "amrd",
- /* maj */ AMRD_CDEV_MAJOR,
- /* dump */ nodump,
- /* psize */ nopsize,
- /* flags */ D_DISK,
-#if __FreeBSD_version < 500000
- /* bmaj */ -1
-#endif
-};
+static disk_open_t amrd_open;
+static disk_strategy_t amrd_strategy;
static devclass_t amrd_devclass;
-static struct cdevsw amrddisk_cdevsw;
#ifdef FREEBSD_4
static int disks_registered = 0;
#endif
@@ -130,9 +108,9 @@ static driver_t amrd_driver = {
DRIVER_MODULE(amrd, amr, amrd_driver, amrd_devclass, 0, 0);
static int
-amrd_open(dev_t dev, int flags, int fmt, d_thread_t *td)
+amrd_open(struct disk *dp)
{
- struct amrd_softc *sc = (struct amrd_softc *)dev->si_drv1;
+ struct amrd_softc *sc = (struct amrd_softc *)dp->d_drv1;
#if __FreeBSD_version < 500000 /* old buf style */
struct disklabel *label;
#endif
@@ -175,7 +153,7 @@ amrd_open(dev_t dev, int flags, int fmt, d_thread_t *td)
static void
amrd_strategy(struct bio *bio)
{
- struct amrd_softc *sc = (struct amrd_softc *)bio->bio_dev->si_drv1;
+ struct amrd_softc *sc = (struct amrd_softc *)bio->bio_disk->d_drv1;
/* bogus disk? */
if (sc == NULL) {
@@ -202,7 +180,7 @@ void
amrd_intr(void *data)
{
struct bio *bio = (struct bio *)data;
- struct amrd_softc *sc = (struct amrd_softc *)bio->bio_dev->si_drv1;
+ struct amrd_softc *sc = (struct amrd_softc *)bio->bio_disk->d_drv1;
debug_called(2);
@@ -250,15 +228,16 @@ amrd_attach(device_t dev)
DEVSTAT_TYPE_STORARRAY | DEVSTAT_TYPE_IF_OTHER,
DEVSTAT_PRIORITY_ARRAY);
- sc->amrd_dev_t = disk_create(sc->amrd_unit, &sc->amrd_disk, 0, &amrd_cdevsw, &amrddisk_cdevsw);
- sc->amrd_dev_t->si_drv1 = sc;
+ sc->amrd_disk.d_drv1 = sc;
+ sc->amrd_disk.d_maxsize = (AMR_NSEG - 1) * PAGE_SIZE;
+ sc->amrd_disk.d_open = amrd_open;
+ sc->amrd_disk.d_strategy = amrd_strategy;
+ sc->amrd_disk.d_name = "amrd";
+ disk_create(sc->amrd_unit, &sc->amrd_disk, 0, NULL, NULL);
#ifdef FREEBSD_4
disks_registered++;
#endif
- /* set maximum I/O size to match the maximum s/g size */
- sc->amrd_dev_t->si_iosize_max = (AMR_NSEG - 1) * PAGE_SIZE;
-
return (0);
}
diff --git a/sys/dev/amr/amrvar.h b/sys/dev/amr/amrvar.h
index 0ea90a9..bc6f4ae 100644
--- a/sys/dev/amr/amrvar.h
+++ b/sys/dev/amr/amrvar.h
@@ -250,7 +250,6 @@ extern int amr_cam_command(struct amr_softc *sc, struct amr_command **acp);
struct amrd_softc
{
device_t amrd_dev;
- dev_t amrd_dev_t;
struct amr_softc *amrd_controller;
struct amr_logdrive *amrd_drive;
struct disk amrd_disk;
OpenPOWER on IntegriCloud