diff options
author | phk <phk@FreeBSD.org> | 2002-04-02 11:52:13 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-04-02 11:52:13 +0000 |
commit | 4d586060a3f9379cb32b3d988bb5468233c03a0a (patch) | |
tree | 269b5ee7d63701fd15809dfe55f7d4dad5def37f /sys | |
parent | ffbaaedd06b2e3eec39a7a9188b1f69a971ca1f0 (diff) | |
download | FreeBSD-src-4d586060a3f9379cb32b3d988bb5468233c03a0a.zip FreeBSD-src-4d586060a3f9379cb32b3d988bb5468233c03a0a.tar.gz |
Retire the bogus ioctl DIOCGPART in toto.
Once again we can notice that badly thought out hacks ferment and infect
far more code than initially expected.
Sponsored by: DARPA and NAI Labs.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ata/atapi-cd.c | 5 | ||||
-rw-r--r-- | sys/dev/ccd/ccd.c | 9 | ||||
-rw-r--r-- | sys/dev/mcd/mcd.c | 6 | ||||
-rw-r--r-- | sys/dev/scd/scd.c | 5 | ||||
-rw-r--r-- | sys/dev/vinum/vinumioctl.c | 11 | ||||
-rw-r--r-- | sys/dev/vinum/vinumobj.h | 1 | ||||
-rw-r--r-- | sys/geom/geom_bsd.c | 11 | ||||
-rw-r--r-- | sys/geom/geom_ccd.c | 9 | ||||
-rw-r--r-- | sys/i386/isa/matcd/matcd.c | 6 | ||||
-rw-r--r-- | sys/i386/isa/mcd.c | 6 | ||||
-rw-r--r-- | sys/i386/isa/scd.c | 5 | ||||
-rw-r--r-- | sys/kern/subr_diskslice.c | 8 | ||||
-rw-r--r-- | sys/sys/disklabel.h | 16 | ||||
-rw-r--r-- | sys/sys/diskmbr.h | 16 | ||||
-rw-r--r-- | sys/sys/diskpc98.h | 16 |
15 files changed, 3 insertions, 127 deletions
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c index 51cc51d..df65921 100644 --- a/sys/dev/ata/atapi-cd.c +++ b/sys/dev/ata/atapi-cd.c @@ -1038,11 +1038,6 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td) error = EBADF; break; - case DIOCGPART: - ((struct partinfo *)addr)->disklab = &cdp->disklabel; - ((struct partinfo *)addr)->part = &cdp->disklabel.d_partitions[0]; - break; - default: error = ENOTTY; } diff --git a/sys/dev/ccd/ccd.c b/sys/dev/ccd/ccd.c index 05ebb97..4c84a81 100644 --- a/sys/dev/ccd/ccd.c +++ b/sys/dev/ccd/ccd.c @@ -1505,15 +1505,6 @@ ccdioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td) *(struct disklabel *)data = cs->sc_label; break; - case DIOCGPART: - if (!IS_INITED(cs)) - return (ENXIO); - - ((struct partinfo *)data)->disklab = &cs->sc_label; - ((struct partinfo *)data)->part = - &cs->sc_label.d_partitions[ccdpart(dev)]; - break; - case DIOCWDINFO: case DIOCSDINFO: if (!IS_INITED(cs)) diff --git a/sys/dev/mcd/mcd.c b/sys/dev/mcd/mcd.c index 8531475..ad6c2d9 100644 --- a/sys/dev/mcd/mcd.c +++ b/sys/dev/mcd/mcd.c @@ -578,12 +578,6 @@ MCD_TRACE("ioctl called 0x%lx\n", cmd); case DIOCGDINFO: *(struct disklabel *) addr = cd->dlabel; return 0; - case DIOCGPART: - ((struct partinfo *) addr)->disklab = &cd->dlabel; - ((struct partinfo *) addr)->part = - &cd->dlabel.d_partitions[mcd_part(dev)]; - return 0; - /* * a bit silly, but someone might want to test something on a * section of cdrom. diff --git a/sys/dev/scd/scd.c b/sys/dev/scd/scd.c index fb11abb..b6f2e86 100644 --- a/sys/dev/scd/scd.c +++ b/sys/dev/scd/scd.c @@ -436,11 +436,6 @@ scdioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td) case DIOCGDINFO: *(struct disklabel *)addr = cd->dlabel; return 0; - case DIOCGPART: - ((struct partinfo *)addr)->disklab = &cd->dlabel; - ((struct partinfo *)addr)->part = - &cd->dlabel.d_partitions[0]; - return 0; case CDIOCPLAYTRACKS: return scd_playtracks(unit, (struct ioc_play_track *) addr); case CDIOCPLAYBLOCKS: diff --git a/sys/dev/vinum/vinumioctl.c b/sys/dev/vinum/vinumioctl.c index 94a9790..0e5f696 100644 --- a/sys/dev/vinum/vinumioctl.c +++ b/sys/dev/vinum/vinumioctl.c @@ -388,17 +388,6 @@ vinumioctl(dev_t dev, break; /* - * Care! DIOCGPART returns *pointers* to - * the caller, so we need to store this crap - * as well. And yes, we need it. - */ - case DIOCGPART: /* get partition information */ - get_volume_label(vol->name, vol->plexes, vol->size, &vol->label); - ((struct partinfo *) data)->disklab = &vol->label; - ((struct partinfo *) data)->part = &vol->label.d_partitions[0]; - break; - - /* * We don't have this stuff on hardware, * so just pretend to do it so that * utilities don't get upset. diff --git a/sys/dev/vinum/vinumobj.h b/sys/dev/vinum/vinumobj.h index 457189e..8a7868f 100644 --- a/sys/dev/vinum/vinumobj.h +++ b/sys/dev/vinum/vinumobj.h @@ -305,7 +305,6 @@ struct _volume */ int plex[MAXPLEX]; /* index of plexes */ #ifdef _KERNEL - struct disklabel label; /* for DIOCGPART */ dev_t dev; /* associated device */ #endif }; diff --git a/sys/geom/geom_bsd.c b/sys/geom/geom_bsd.c index 6275bdc..f857dab 100644 --- a/sys/geom/geom_bsd.c +++ b/sys/geom/geom_bsd.c @@ -287,17 +287,6 @@ g_bsd_start(struct bio *bp) g_io_deliver(bp); return (1); } -#ifdef _KERNEL - if (gio->cmd == DIOCGPART) { - struct partinfo pi; - pi.disklab = &ms->inram; - pi.part = &ms->inram.d_partitions[bp->bio_to->index]; - bcopy(&pi, gio->data, sizeof pi); - bp->bio_error = 0; - g_io_deliver(bp); - return (1); - } -#endif return (0); } diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c index 05ebb97..4c84a81 100644 --- a/sys/geom/geom_ccd.c +++ b/sys/geom/geom_ccd.c @@ -1505,15 +1505,6 @@ ccdioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td) *(struct disklabel *)data = cs->sc_label; break; - case DIOCGPART: - if (!IS_INITED(cs)) - return (ENXIO); - - ((struct partinfo *)data)->disklab = &cs->sc_label; - ((struct partinfo *)data)->part = - &cs->sc_label.d_partitions[ccdpart(dev)]; - break; - case DIOCWDINFO: case DIOCSDINFO: if (!IS_INITED(cs)) diff --git a/sys/i386/isa/matcd/matcd.c b/sys/i386/isa/matcd/matcd.c index 88ef03e..eda05c3 100644 --- a/sys/i386/isa/matcd/matcd.c +++ b/sys/i386/isa/matcd/matcd.c @@ -1021,12 +1021,6 @@ int matcdioctl(dev_t dev, u_long command, caddr_t addr, *(struct disklabel *) addr = cd->dlabel; return(0); - case DIOCGPART: - ((struct partinfo *) addr)->disklab=&cd->dlabel; - ((struct partinfo *) addr)->part= - &cd->dlabel.d_partitions[matcd_partition(dev)]; - return(0); - case DIOCWDINFO: case DIOCSDINFO: if ((flags & FWRITE) == 0) { diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c index 8531475..ad6c2d9 100644 --- a/sys/i386/isa/mcd.c +++ b/sys/i386/isa/mcd.c @@ -578,12 +578,6 @@ MCD_TRACE("ioctl called 0x%lx\n", cmd); case DIOCGDINFO: *(struct disklabel *) addr = cd->dlabel; return 0; - case DIOCGPART: - ((struct partinfo *) addr)->disklab = &cd->dlabel; - ((struct partinfo *) addr)->part = - &cd->dlabel.d_partitions[mcd_part(dev)]; - return 0; - /* * a bit silly, but someone might want to test something on a * section of cdrom. diff --git a/sys/i386/isa/scd.c b/sys/i386/isa/scd.c index fb11abb..b6f2e86 100644 --- a/sys/i386/isa/scd.c +++ b/sys/i386/isa/scd.c @@ -436,11 +436,6 @@ scdioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td) case DIOCGDINFO: *(struct disklabel *)addr = cd->dlabel; return 0; - case DIOCGPART: - ((struct partinfo *)addr)->disklab = &cd->dlabel; - ((struct partinfo *)addr)->part = - &cd->dlabel.d_partitions[0]; - return 0; case CDIOCPLAYTRACKS: return scd_playtracks(unit, (struct ioc_play_track *) addr); case CDIOCPLAYBLOCKS: diff --git a/sys/kern/subr_diskslice.c b/sys/kern/subr_diskslice.c index 8120e55..85c1862 100644 --- a/sys/kern/subr_diskslice.c +++ b/sys/kern/subr_diskslice.c @@ -420,14 +420,6 @@ dsioctl(dev, cmd, data, flags, sspp) lp->d_secsize; return (0); - case DIOCGPART: - if (lp == NULL) - return (EINVAL); - ((struct partinfo *)data)->disklab = lp; - ((struct partinfo *)data)->part - = &lp->d_partitions[dkpart(dev)]; - return (0); - case DIOCGSLICEINFO: bcopy(ssp, data, (char *)&ssp->dss_slices[ssp->dss_nslices] - (char *)ssp); diff --git a/sys/sys/disklabel.h b/sys/sys/disklabel.h index e97aa10..6e11218 100644 --- a/sys/sys/disklabel.h +++ b/sys/sys/disklabel.h @@ -300,17 +300,6 @@ static char *fstypenames[] = { #define D_RAMDISK 0x08 /* disk emulator */ #define D_CHAIN 0x10 /* can do back-back transfers */ -#ifdef _KERNEL -/* - * Structure used internally to retrieve information about a partition - * on a disk. - */ -struct partinfo { - struct disklabel *disklab; - struct partition *part; -}; -#endif - /* DOS partition table -- located in boot block */ #if defined(PC98) && !defined(PC98_ATCOMPAT) @@ -367,13 +356,10 @@ struct dos_partition { /* * Disk-specific ioctls. */ - /* get and set disklabel; DIOCGPART used internally */ + /* get and set disklabel */ #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* get */ #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* set */ #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* set, update disk */ -#ifdef _KERNEL -#define DIOCGPART _IOW('d', 104, struct partinfo) /* get partition */ -#endif #define DIOCGDVIRGIN _IOR('d', 105, struct disklabel)/* get virgin label */ #define DIOCWLABEL _IOW('d', 109, int) /* write en/disable label */ diff --git a/sys/sys/diskmbr.h b/sys/sys/diskmbr.h index e97aa10..6e11218 100644 --- a/sys/sys/diskmbr.h +++ b/sys/sys/diskmbr.h @@ -300,17 +300,6 @@ static char *fstypenames[] = { #define D_RAMDISK 0x08 /* disk emulator */ #define D_CHAIN 0x10 /* can do back-back transfers */ -#ifdef _KERNEL -/* - * Structure used internally to retrieve information about a partition - * on a disk. - */ -struct partinfo { - struct disklabel *disklab; - struct partition *part; -}; -#endif - /* DOS partition table -- located in boot block */ #if defined(PC98) && !defined(PC98_ATCOMPAT) @@ -367,13 +356,10 @@ struct dos_partition { /* * Disk-specific ioctls. */ - /* get and set disklabel; DIOCGPART used internally */ + /* get and set disklabel */ #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* get */ #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* set */ #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* set, update disk */ -#ifdef _KERNEL -#define DIOCGPART _IOW('d', 104, struct partinfo) /* get partition */ -#endif #define DIOCGDVIRGIN _IOR('d', 105, struct disklabel)/* get virgin label */ #define DIOCWLABEL _IOW('d', 109, int) /* write en/disable label */ diff --git a/sys/sys/diskpc98.h b/sys/sys/diskpc98.h index e97aa10..6e11218 100644 --- a/sys/sys/diskpc98.h +++ b/sys/sys/diskpc98.h @@ -300,17 +300,6 @@ static char *fstypenames[] = { #define D_RAMDISK 0x08 /* disk emulator */ #define D_CHAIN 0x10 /* can do back-back transfers */ -#ifdef _KERNEL -/* - * Structure used internally to retrieve information about a partition - * on a disk. - */ -struct partinfo { - struct disklabel *disklab; - struct partition *part; -}; -#endif - /* DOS partition table -- located in boot block */ #if defined(PC98) && !defined(PC98_ATCOMPAT) @@ -367,13 +356,10 @@ struct dos_partition { /* * Disk-specific ioctls. */ - /* get and set disklabel; DIOCGPART used internally */ + /* get and set disklabel */ #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* get */ #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* set */ #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* set, update disk */ -#ifdef _KERNEL -#define DIOCGPART _IOW('d', 104, struct partinfo) /* get partition */ -#endif #define DIOCGDVIRGIN _IOR('d', 105, struct disklabel)/* get virgin label */ #define DIOCWLABEL _IOW('d', 109, int) /* write en/disable label */ |