From owner-p4-projects Tue Mar 19 7: 5:12 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A5D337B416; Tue, 19 Mar 2002 07:05:04 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 4F57E37B404 for ; Tue, 19 Mar 2002 07:05:03 -0800 (PST) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g2JF53O21650 for perforce@freebsd.org; Tue, 19 Mar 2002 07:05:03 -0800 (PST) (envelope-from phk@freebsd.org) Date: Tue, 19 Mar 2002 07:05:03 -0800 (PST) Message-Id: <200203191505.g2JF53O21650@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to phk@freebsd.org using -f From: Poul-Henning Kamp Subject: PERFORCE change 7960 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=7960 Change 7960 by phk@phk_flat on 2002/03/19 07:04:26 Get the new ioctls over. Affected files ... ... //depot/projects/sparc64/sys/geom/geom_dev.c#3 integrate ... //depot/projects/sparc64/sys/sys/disklabel.h#10 integrate Differences ... ==== //depot/projects/sparc64/sys/geom/geom_dev.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/geom_dev.c,v 1.4 2002/03/17 07:42:54 phk Exp $ + * $FreeBSD: src/sys/geom/geom_dev.c,v 1.5 2002/03/19 13:54:15 phk Exp $ */ #include @@ -248,17 +248,37 @@ error = 0; DROP_GIANT(); - gio = g_malloc(sizeof *gio, M_WAITOK); - gio->cmd = cmd; - gio->data = data; - gio->fflag = fflag; - gio->td = td; - i = sizeof *gio; - if (cmd & IOC_IN) - error = g_io_setattr("GEOM::ioctl", cp, i, gio, td); - else - error = g_io_getattr("GEOM::ioctl", cp, &i, gio, td); - g_free(gio); + i = IOCPARM_LEN(cmd); + switch (cmd) { + case DIOCGSECTORSIZE: + error = g_io_getattr("GEOM::sectorsize", cp, &i, data, td); + break; + case DIOCGMEDIASIZE: + error = g_io_getattr("GEOM::mediasize", cp, &i, data, td); + break; + case DIOCGFWSECTORS: + error = g_io_getattr("GEOM::fwsectors", cp, &i, data, td); + break; + case DIOCGFWHEADS: + error = g_io_getattr("GEOM::fwheads", cp, &i, data, td); + break; + case DIOCGFWCYLINDERS: + error = g_io_getattr("GEOM::fwcylinders", cp, &i, data, td); + break; + default: + gio = g_malloc(sizeof *gio, M_WAITOK); + gio->cmd = cmd; + gio->data = data; + gio->fflag = fflag; + gio->td = td; + i = sizeof *gio; + if (cmd & IOC_IN) + error = g_io_setattr("GEOM::ioctl", cp, i, gio, td); + else + error = g_io_getattr("GEOM::ioctl", cp, &i, gio, td); + g_free(gio); + break; + } if (error != 0 && cmd == DIOCGDVIRGIN) { g_topology_lock(); ==== //depot/projects/sparc64/sys/sys/disklabel.h#10 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)disklabel.h 8.2 (Berkeley) 7/10/94 - * $FreeBSD: src/sys/sys/disklabel.h,v 1.67 2002/03/13 03:17:29 jake Exp $ + * $FreeBSD: src/sys/sys/disklabel.h,v 1.68 2002/03/19 13:54:13 phk Exp $ */ #ifndef _SYS_DISKLABEL_H_ @@ -418,6 +418,12 @@ #define DIOCWLABEL _IOW('d', 109, int) /* write en/disable label */ +#define DIOCGSECTORSIZE _IOR('d', 128, u_int) /* Get sector size in bytes */ +#define DIOCGMEDIASIZE _IOR('d', 129, off_t) /* Get media size in bytes */ +#define DIOCGFWSECTORS _IOR('d', 130, u_int) /* Get firmware sectorcount */ +#define DIOCGFWHEADS _IOR('d', 131, u_int) /* Get firmware headcount */ +#define DIOCGFWCYLINDERS _IOR('d', 132, u_int) /* Get firmware cyl'scount */ + #ifdef _KERNEL /* To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message