mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Move to 'struct disk*' API
Submitted by: phk
This commit is contained in:
parent
f6c912dd0c
commit
7540e65e84
3 changed files with 26 additions and 50 deletions
|
|
@ -899,7 +899,7 @@ aac_submit_bio(struct bio *bp)
|
|||
|
||||
debug_called(2);
|
||||
|
||||
ad = (struct aac_disk *)bp->bio_dev->si_drv1;
|
||||
ad = (struct aac_disk *)bp->bio_disk->d_drv1;
|
||||
sc = ad->ad_controller;
|
||||
|
||||
/* queue the BIO and try to get some work done */
|
||||
|
|
@ -952,7 +952,7 @@ aac_bio_command(struct aac_softc *sc, struct aac_command **cmp)
|
|||
fib->Header.Size = sizeof(struct aac_fib_header);
|
||||
|
||||
/* build the read/write request */
|
||||
ad = (struct aac_disk *)bp->bio_dev->si_drv1;
|
||||
ad = (struct aac_disk *)bp->bio_disk->d_drv1;
|
||||
if (BIO_IS_READ(bp)) {
|
||||
br = (struct aac_blockread *)&fib->data[0];
|
||||
br->Command = VM_CtBlockRead;
|
||||
|
|
@ -2716,8 +2716,8 @@ aac_query_disk(struct aac_softc *sc, caddr_t uptr)
|
|||
query_disk.Target = disk->unit;
|
||||
query_disk.Lun = 0;
|
||||
query_disk.UnMapped = 0;
|
||||
bcopy(disk->ad_dev_t->si_name,
|
||||
&query_disk.diskDeviceName[0], 10);
|
||||
sprintf(&query_disk.diskDeviceName[0], "%s%d",
|
||||
disk->ad_disk.d_name, disk->ad_disk.d_unit);
|
||||
}
|
||||
AAC_LOCK_RELEASE(&sc->aac_container_lock);
|
||||
|
||||
|
|
|
|||
|
|
@ -63,34 +63,12 @@ static int aac_disk_detach(device_t dev);
|
|||
/*
|
||||
* Interface to the device switch.
|
||||
*/
|
||||
static d_open_t aac_disk_open;
|
||||
static d_close_t aac_disk_close;
|
||||
static d_strategy_t aac_disk_strategy;
|
||||
static disk_open_t aac_disk_open;
|
||||
static disk_close_t aac_disk_close;
|
||||
static disk_strategy_t aac_disk_strategy;
|
||||
static dumper_t aac_disk_dump;
|
||||
|
||||
#define AAC_DISK_CDEV_MAJOR 151
|
||||
|
||||
static struct cdevsw aac_disk_cdevsw = {
|
||||
/* open */ aac_disk_open,
|
||||
/* close */ aac_disk_close,
|
||||
/* read */ physread,
|
||||
/* write */ physwrite,
|
||||
/* ioctl */ noioctl,
|
||||
/* poll */ nopoll,
|
||||
/* mmap */ nommap,
|
||||
/* strategy */ aac_disk_strategy,
|
||||
/* name */ "aacd",
|
||||
/* maj */ AAC_DISK_CDEV_MAJOR,
|
||||
/* dump */ aac_disk_dump,
|
||||
/* psize */ nopsize,
|
||||
/* flags */ D_DISK,
|
||||
#if __FreeBSD_version < 500005
|
||||
/* bmaj */ -1
|
||||
#endif
|
||||
};
|
||||
|
||||
static devclass_t aac_disk_devclass;
|
||||
static struct cdevsw aac_disk_disk_cdevsw;
|
||||
#ifdef FREEBSD_4
|
||||
static int disks_registered = 0;
|
||||
#endif
|
||||
|
|
@ -127,13 +105,13 @@ SYSCTL_UINT(_hw_aac, OID_AUTO, iosize_max, CTLFLAG_RD, &aac_iosize_max, 0,
|
|||
* basic device geometry paramters.
|
||||
*/
|
||||
static int
|
||||
aac_disk_open(dev_t dev, int flags, int fmt, d_thread_t *td)
|
||||
aac_disk_open(struct disk *dp)
|
||||
{
|
||||
struct aac_disk *sc;
|
||||
|
||||
debug_called(4);
|
||||
|
||||
sc = (struct aac_disk *)dev->si_drv1;
|
||||
sc = (struct aac_disk *)dp->d_drv1;
|
||||
|
||||
if (sc == NULL) {
|
||||
printf("aac_disk_open: No Softc\n");
|
||||
|
|
@ -147,11 +125,6 @@ aac_disk_open(dev_t dev, int flags, int fmt, d_thread_t *td)
|
|||
return(ENXIO);
|
||||
}
|
||||
|
||||
sc->ad_disk.d_sectorsize = AAC_BLOCK_SIZE;
|
||||
sc->ad_disk.d_mediasize = (off_t)sc->ad_size * AAC_BLOCK_SIZE;
|
||||
sc->ad_disk.d_fwsectors = sc->ad_sectors;
|
||||
sc->ad_disk.d_fwheads = sc->ad_heads;
|
||||
|
||||
sc->ad_flags |= AAC_DISK_OPEN;
|
||||
return (0);
|
||||
}
|
||||
|
|
@ -160,13 +133,13 @@ aac_disk_open(dev_t dev, int flags, int fmt, d_thread_t *td)
|
|||
* Handle last close of the disk device.
|
||||
*/
|
||||
static int
|
||||
aac_disk_close(dev_t dev, int flags, int fmt, d_thread_t *td)
|
||||
aac_disk_close(struct disk *dp)
|
||||
{
|
||||
struct aac_disk *sc;
|
||||
|
||||
debug_called(4);
|
||||
|
||||
sc = (struct aac_disk *)dev->si_drv1;
|
||||
sc = (struct aac_disk *)dp->d_drv1;
|
||||
|
||||
if (sc == NULL)
|
||||
return (ENXIO);
|
||||
|
|
@ -185,7 +158,7 @@ aac_disk_strategy(struct bio *bp)
|
|||
|
||||
debug_called(4);
|
||||
|
||||
sc = (struct aac_disk *)bp->bio_dev->si_drv1;
|
||||
sc = (struct aac_disk *)bp->bio_disk->d_drv1;
|
||||
|
||||
/* bogus disk? */
|
||||
if (sc == NULL) {
|
||||
|
|
@ -254,7 +227,7 @@ aac_disk_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size
|
|||
struct disk *dp;
|
||||
|
||||
dp = arg;
|
||||
ad = dp->d_dev->si_drv1;
|
||||
ad = dp->d_drv1;
|
||||
|
||||
if (ad == NULL)
|
||||
return (EINVAL);
|
||||
|
|
@ -308,7 +281,7 @@ aac_biodone(struct bio *bp)
|
|||
|
||||
debug_called(4);
|
||||
|
||||
sc = (struct aac_disk *)bp->bio_dev->si_drv1;
|
||||
sc = (struct aac_disk *)bp->bio_disk->d_drv1;
|
||||
|
||||
devstat_end_transaction_bio(&sc->ad_stats, bp);
|
||||
if (bp->bio_flags & BIO_ERROR) {
|
||||
|
|
@ -384,15 +357,19 @@ aac_disk_attach(device_t dev)
|
|||
DEVSTAT_PRIORITY_ARRAY);
|
||||
|
||||
/* attach a generic disk device to ourselves */
|
||||
sc->ad_dev_t = disk_create(device_get_unit(dev), &sc->ad_disk, 0,
|
||||
&aac_disk_cdevsw, &aac_disk_disk_cdevsw);
|
||||
sc->ad_dev_t->si_drv1 = sc;
|
||||
#ifdef FREEBSD_4
|
||||
disks_registered++;
|
||||
#endif
|
||||
|
||||
sc->ad_dev_t->si_iosize_max = aac_iosize_max;
|
||||
sc->unit = device_get_unit(dev);
|
||||
sc->ad_disk.d_drv1 = sc;
|
||||
sc->ad_disk.d_name = "aacd";
|
||||
sc->ad_disk.d_maxsize = aac_iosize_max;
|
||||
sc->ad_disk.d_open = aac_disk_open;
|
||||
sc->ad_disk.d_close = aac_disk_close;
|
||||
sc->ad_disk.d_strategy = aac_disk_strategy;
|
||||
sc->ad_disk.d_dump = aac_disk_dump;
|
||||
sc->ad_disk.d_sectorsize = AAC_BLOCK_SIZE;
|
||||
sc->ad_disk.d_mediasize = (off_t)sc->ad_size * AAC_BLOCK_SIZE;
|
||||
sc->ad_disk.d_fwsectors = sc->ad_sectors;
|
||||
sc->ad_disk.d_fwheads = sc->ad_heads;
|
||||
disk_create(sc->unit, &sc->ad_disk, 0, NULL, NULL);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@ struct aac_sim
|
|||
struct aac_disk
|
||||
{
|
||||
device_t ad_dev;
|
||||
dev_t ad_dev_t;
|
||||
struct aac_softc *ad_controller;
|
||||
struct aac_container *ad_container;
|
||||
struct disk ad_disk;
|
||||
|
|
|
|||
Loading…
Reference in a new issue