summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-04-02 11:52:13 +0000
committerphk <phk@FreeBSD.org>2002-04-02 11:52:13 +0000
commit4d586060a3f9379cb32b3d988bb5468233c03a0a (patch)
tree269b5ee7d63701fd15809dfe55f7d4dad5def37f /sys
parentffbaaedd06b2e3eec39a7a9188b1f69a971ca1f0 (diff)
downloadFreeBSD-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.c5
-rw-r--r--sys/dev/ccd/ccd.c9
-rw-r--r--sys/dev/mcd/mcd.c6
-rw-r--r--sys/dev/scd/scd.c5
-rw-r--r--sys/dev/vinum/vinumioctl.c11
-rw-r--r--sys/dev/vinum/vinumobj.h1
-rw-r--r--sys/geom/geom_bsd.c11
-rw-r--r--sys/geom/geom_ccd.c9
-rw-r--r--sys/i386/isa/matcd/matcd.c6
-rw-r--r--sys/i386/isa/mcd.c6
-rw-r--r--sys/i386/isa/scd.c5
-rw-r--r--sys/kern/subr_diskslice.c8
-rw-r--r--sys/sys/disklabel.h16
-rw-r--r--sys/sys/diskmbr.h16
-rw-r--r--sys/sys/diskpc98.h16
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 */
OpenPOWER on IntegriCloud