diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/cam/scsi/scsi_da.c | 8 | ||||
-rw-r--r-- | sys/dev/aac/aac_disk.c | 8 | ||||
-rw-r--r-- | sys/dev/ata/ata-disk.c | 9 | ||||
-rw-r--r-- | sys/dev/ida/ida_disk.c | 8 | ||||
-rw-r--r-- | sys/dev/twe/twe_freebsd.c | 12 | ||||
-rw-r--r-- | sys/geom/geom_disk.c | 4 | ||||
-rw-r--r-- | sys/kern/kern_conf.c | 2 | ||||
-rw-r--r-- | sys/kern/subr_xxx.c | 2 | ||||
-rw-r--r-- | sys/sys/conf.h | 19 | ||||
-rw-r--r-- | sys/sys/linedisc.h | 19 |
10 files changed, 51 insertions, 40 deletions
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 77bc449..fa37690 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -453,7 +453,7 @@ static d_open_t daopen; static d_close_t daclose; static d_strategy_t dastrategy; static d_ioctl_t daioctl; -static d_dump_t dadump; +static dumper_t dadump; static periph_init_t dainit; static void daasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); @@ -814,14 +814,16 @@ daioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct thread *td) } static int -dadump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size_t length) +dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) { struct cam_periph *periph; struct da_softc *softc; u_int secsize; struct ccb_scsiio csio; + struct disk *dp; - periph = (struct cam_periph *)dev->si_drv1; + dp = arg; + periph = (struct cam_periph *)dp->d_dev->si_drv1; if (periph == NULL) return (ENXIO); softc = (struct da_softc *)periph->softc; diff --git a/sys/dev/aac/aac_disk.c b/sys/dev/aac/aac_disk.c index 664cc72..cc777dd 100644 --- a/sys/dev/aac/aac_disk.c +++ b/sys/dev/aac/aac_disk.c @@ -66,7 +66,7 @@ static int aac_disk_detach(device_t dev); static d_open_t aac_disk_open; static d_close_t aac_disk_close; static d_strategy_t aac_disk_strategy; -static d_dump_t aac_disk_dump; +static dumper_t aac_disk_dump; #define AAC_DISK_CDEV_MAJOR 151 @@ -241,7 +241,7 @@ aac_dump_map_sg(void *arg, bus_dma_segment_t *segs, int nsegs, int error) * Send out one command at a time with up to AAC_MAXIO of data. */ static int -aac_disk_dump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size_t length) +aac_disk_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) { struct aac_disk *ad; struct aac_softc *sc; @@ -251,8 +251,10 @@ aac_disk_dump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size int size; static bus_dmamap_t dump_datamap; static int first = 0; + struct disk *dp; - ad = dev->si_drv1; + dp = arg; + ad = dp->d_dev->si_drv1; if (ad == NULL) return (EINVAL); diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index 6478171..13906ab 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -55,7 +55,7 @@ static d_open_t adopen; static d_close_t adclose; static d_strategy_t adstrategy; -static d_dump_t addump; +static dumper_t addump; static struct cdevsw ad_cdevsw = { /* open */ adopen, /* close */ adclose, @@ -315,12 +315,15 @@ adstrategy(struct bio *bp) } static int -addump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size_t length) +addump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) { - struct ad_softc *adp = dev->si_drv1; + struct ad_softc *adp; struct ad_request request; static int once; + struct disk *dp; + dp = arg; + adp = dp->d_dev->si_drv1; if (!adp) return ENXIO; diff --git a/sys/dev/ida/ida_disk.c b/sys/dev/ida/ida_disk.c index e93dce8..f4265c9 100644 --- a/sys/dev/ida/ida_disk.c +++ b/sys/dev/ida/ida_disk.c @@ -61,7 +61,7 @@ static int idad_detach(device_t dev); static d_open_t idad_open; static d_close_t idad_close; static d_strategy_t idad_strategy; -static d_dump_t idad_dump; +static dumper_t idad_dump; #define IDAD_CDEV_MAJOR 109 @@ -180,13 +180,15 @@ bad: } static int -idad_dump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size_t length) +idad_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) { struct idad_softc *drv; int error = 0; + struct disk *dp; - drv = idad_getsoftc(dev); + dp = arg; + drv = idad_getsoftc(dp->d_dev); if (drv == NULL) return (ENXIO); diff --git a/sys/dev/twe/twe_freebsd.c b/sys/dev/twe/twe_freebsd.c index 95ca2a7..9bc27a3 100644 --- a/sys/dev/twe/twe_freebsd.c +++ b/sys/dev/twe/twe_freebsd.c @@ -586,7 +586,7 @@ DRIVER_MODULE(twed, twe, twed_driver, twed_devclass, 0, 0); static d_open_t twed_open; static d_close_t twed_close; static d_strategy_t twed_strategy; -static d_dump_t twed_dump; +static dumper_t twed_dump; #define TWED_CDEV_MAJOR 147 @@ -693,12 +693,16 @@ twed_strategy(twe_bio *bp) * System crashdump support */ static int -twed_dump(dev_t dev, void *virtual, vm_offset_t physical, off_t offset, size_t length) +twed_dump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) { - struct twed_softc *twed_sc = (struct twed_softc *)dev->si_drv1; - struct twe_softc *twe_sc = (struct twe_softc *)twed_sc->twed_controller; + struct twed_softc *twed_sc; + struct twe_softc *twe_sc; int error; + struct disk *dp; + dp = arg; + twed_sc = (struct twed_softc *)dp->d_dev->si_drv1; + twe_sc = (struct twe_softc *)twed_sc->twed_controller; if (!twed_sc || !twe_sc) return(ENXIO); diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index 7cf3c48..22c510e 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -160,7 +160,7 @@ g_disk_kerneldump(struct bio *bp, struct disk *dp) g_trace(G_T_TOPOLOGY, "g_disk_kernedump(%s, %jd, %jd)", gp->name, (intmax_t)gkd->offset, (intmax_t)gkd->length); di.dumper = dp->d_dump; - di.priv = dp->d_dev; + di.priv = dp; di.blocksize = dp->d_sectorsize; di.mediaoffset = gkd->offset; di.mediasize = gkd->length; @@ -348,7 +348,7 @@ disk_create(int unit, struct disk *dp, int flags, struct cdevsw *cdevsw, void * dp->d_cclose = cdevsw->d_close; dp->d_cioctl = cdevsw->d_ioctl; dp->d_strategy = cdevsw->d_strategy; - dp->d_dump = (dumper_t *)cdevsw->d_dump; + dp->d_dump = cdevsw->d_dump; dp->d_name = cdevsw->d_name; } KASSERT(dp->d_strategy != NULL, ("disk_create need d_strategy")); diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index d471cd4..22803c1 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -90,7 +90,7 @@ dead_strategy(struct bio *bp) biofinish(bp, NULL, ENXIO); } -#define dead_dump (d_dump_t *)enxio +#define dead_dump (dumper_t *)enxio static int dead_psize(dev_t dev) diff --git a/sys/kern/subr_xxx.c b/sys/kern/subr_xxx.c index c9d2676..6730bc7 100644 --- a/sys/kern/subr_xxx.c +++ b/sys/kern/subr_xxx.c @@ -143,7 +143,7 @@ nommap(dev, offset, nprot) } int -nodump(dev_t dev, void *virtual __unused, vm_offset_t physical __unused, off_t offset __unused, size_t length __unused) +nodump(void *arg, void *virtual __unused, vm_offset_t physical __unused, off_t offset __unused, size_t length __unused) { return (ENODEV); diff --git a/sys/sys/conf.h b/sys/sys/conf.h index adb95df..10d09d9 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -151,7 +151,6 @@ typedef int d_close_t(dev_t dev, int fflag, int devtype, struct thread *td); typedef void d_strategy_t(struct bio *bp); typedef int d_ioctl_t(dev_t dev, u_long cmd, caddr_t data, int fflag, struct thread *td); -typedef int d_dump_t(dev_t dev,void *virtual, vm_offset_t physical, off_t offset, size_t length); typedef int d_psize_t(dev_t dev); typedef int d_read_t(dev_t dev, struct uio *uio, int ioflag); @@ -170,6 +169,13 @@ typedef int l_rint_t(int c, struct tty *tp); typedef int l_start_t(struct tty *tp); typedef int l_modem_t(struct tty *tp, int flag); +typedef int dumper_t( + void *priv, /* Private to the driver. */ + void *virtual, /* Virtual (mapped) address. */ + vm_offset_t physical, /* Physical address of virtual. */ + off_t offset, /* Byte-offset to write at. */ + size_t length); /* Number of bytes to dump. */ + #define BIO_STRATEGY(bp) \ do { \ if ((!(bp)->bio_cmd) || ((bp)->bio_cmd & ((bp)->bio_cmd - 1))) \ @@ -226,7 +232,7 @@ struct cdevsw { d_strategy_t *d_strategy; const char *d_name; /* base device name, e.g. 'vn' */ int d_maj; - d_dump_t *d_dump; + dumper_t *d_dump; d_psize_t *d_psize; u_int d_flags; /* additions below are not binary compatible with 4.2 and below */ @@ -267,7 +273,7 @@ d_kqfilter_t nokqfilter; #define nostrategy ((d_strategy_t *)NULL) #define nopoll seltrue -d_dump_t nodump; +dumper_t nodump; #define NUMCDEVSW 256 @@ -344,13 +350,6 @@ EVENTHANDLER_DECLARE(dev_clone, dev_clone_fn); /* Stuff relating to kernel-dump */ -typedef int dumper_t( - void *priv, /* Private to the driver. */ - void *virtual, /* Virtual (mapped) address. */ - vm_offset_t physical, /* Physical address of virtual. */ - off_t offset, /* Byte-offset to write at. */ - size_t length); /* Number of bytes to dump. */ - struct dumperinfo { dumper_t *dumper; /* Dumping function. */ void *priv; /* Private parts. */ diff --git a/sys/sys/linedisc.h b/sys/sys/linedisc.h index adb95df..10d09d9 100644 --- a/sys/sys/linedisc.h +++ b/sys/sys/linedisc.h @@ -151,7 +151,6 @@ typedef int d_close_t(dev_t dev, int fflag, int devtype, struct thread *td); typedef void d_strategy_t(struct bio *bp); typedef int d_ioctl_t(dev_t dev, u_long cmd, caddr_t data, int fflag, struct thread *td); -typedef int d_dump_t(dev_t dev,void *virtual, vm_offset_t physical, off_t offset, size_t length); typedef int d_psize_t(dev_t dev); typedef int d_read_t(dev_t dev, struct uio *uio, int ioflag); @@ -170,6 +169,13 @@ typedef int l_rint_t(int c, struct tty *tp); typedef int l_start_t(struct tty *tp); typedef int l_modem_t(struct tty *tp, int flag); +typedef int dumper_t( + void *priv, /* Private to the driver. */ + void *virtual, /* Virtual (mapped) address. */ + vm_offset_t physical, /* Physical address of virtual. */ + off_t offset, /* Byte-offset to write at. */ + size_t length); /* Number of bytes to dump. */ + #define BIO_STRATEGY(bp) \ do { \ if ((!(bp)->bio_cmd) || ((bp)->bio_cmd & ((bp)->bio_cmd - 1))) \ @@ -226,7 +232,7 @@ struct cdevsw { d_strategy_t *d_strategy; const char *d_name; /* base device name, e.g. 'vn' */ int d_maj; - d_dump_t *d_dump; + dumper_t *d_dump; d_psize_t *d_psize; u_int d_flags; /* additions below are not binary compatible with 4.2 and below */ @@ -267,7 +273,7 @@ d_kqfilter_t nokqfilter; #define nostrategy ((d_strategy_t *)NULL) #define nopoll seltrue -d_dump_t nodump; +dumper_t nodump; #define NUMCDEVSW 256 @@ -344,13 +350,6 @@ EVENTHANDLER_DECLARE(dev_clone, dev_clone_fn); /* Stuff relating to kernel-dump */ -typedef int dumper_t( - void *priv, /* Private to the driver. */ - void *virtual, /* Virtual (mapped) address. */ - vm_offset_t physical, /* Physical address of virtual. */ - off_t offset, /* Byte-offset to write at. */ - size_t length); /* Number of bytes to dump. */ - struct dumperinfo { dumper_t *dumper; /* Dumping function. */ void *priv; /* Private parts. */ |