From deb9f598f98ee51e893a83b97f6264198d0aa659 Mon Sep 17 00:00:00 2001 From: jsing Date: Fri, 8 Aug 2008 16:07:41 +0000 Subject: [PATCH] Make sgivol use the sgilabel struct from machine/disklabel.h, rather than declaring another. ok miod@ --- sys/arch/sgi/include/disklabel.h | 40 +++++++++++------- sys/arch/sgi/stand/sgivol/sgivol.c | 67 ++---------------------------- 2 files changed, 27 insertions(+), 80 deletions(-) diff --git a/sys/arch/sgi/include/disklabel.h b/sys/arch/sgi/include/disklabel.h index 603263a2965..dfa59565d66 100644 --- a/sys/arch/sgi/include/disklabel.h +++ b/sys/arch/sgi/include/disklabel.h @@ -1,4 +1,4 @@ -/* $OpenBSD: disklabel.h,v 1.5 2007/06/20 18:15:45 deraadt Exp $ */ +/* $OpenBSD: disklabel.h,v 1.6 2008/08/08 16:07:41 jsing Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -37,7 +37,27 @@ #define LABELOFFSET 0 #define MAXPARTITIONS 16 /* number of partitions */ -/* SGI */ +/* + * SGI Volume Header. + */ + +#define SGILABEL_MAGIC 0xbe5a941 +#define SGI_SIZE_VOLDIR 15 + +/* Partition types. */ +#define SGI_PTYPE_VOLHDR 0 +#define SGI_PTYPE_RAW 3 +#define SGI_PTYPE_BSD 4 +#define SGI_PTYPE_VOLUME 6 +#define SGI_PTYPE_EFS 7 +#define SGI_PTYPE_LVOL 8 +#define SGI_PTYPE_RLVOL 9 +#define SGI_PTYPE_XFS 10 +#define SGI_PTYPE_XFSLOG 11 +#define SGI_PTYPE_XLV 12 +#define SGI_PTYPE_XVM 13 + +/* Device parameters. */ struct devparms { u_int8_t dp_skew; u_int8_t dp_gap1; @@ -64,8 +84,8 @@ struct devparms { u_int16_t dp_xwcont; } __packed; +/* SGI volume header. */ struct sgilabel { -#define SGILABEL_MAGIC 0xbe5a941 u_int32_t magic; int16_t root; int16_t swap; @@ -75,7 +95,7 @@ struct sgilabel { char name[8]; int32_t block; int32_t bytes; - } voldir[15]; + } voldir[SGI_SIZE_VOLDIR]; struct { int32_t blocks; int32_t first; @@ -85,16 +105,4 @@ struct sgilabel { int32_t _pad; } __packed; -#define SGI_PTYPE_VOLHDR 0 -#define SGI_PTYPE_RAW 3 -#define SGI_PTYPE_BSD 4 -#define SGI_PTYPE_VOLUME 6 -#define SGI_PTYPE_EFS 7 -#define SGI_PTYPE_LVOL 8 -#define SGI_PTYPE_RLVOL 9 -#define SGI_PTYPE_XFS 10 -#define SGI_PTYPE_XFSLOG 11 -#define SGI_PTYPE_XLV 12 -#define SGI_PTYPE_XVM 13 - #endif /* _MACHINE_DISKLABEL_H_ */ diff --git a/sys/arch/sgi/stand/sgivol/sgivol.c b/sys/arch/sgi/stand/sgivol/sgivol.c index 6bf32f50e0e..746fd30fdf3 100644 --- a/sys/arch/sgi/stand/sgivol/sgivol.c +++ b/sys/arch/sgi/stand/sgivol/sgivol.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sgivol.c,v 1.9 2008/06/26 05:42:12 ray Exp $ */ +/* $OpenBSD: sgivol.c,v 1.10 2008/08/08 16:07:41 jsing Exp $ */ /* $NetBSD: sgivol.c,v 1.8 2003/11/08 04:59:00 sekiya Exp $ */ /*- @@ -53,68 +53,7 @@ * that "whole cylinder" multiples are not required. */ -#define SGILABEL_MAGIC 0xbe5a941 - #define SGI_SIZE_VOLHDR 3135 /* Can be overridden via -h parameter. */ -#define SGI_SIZE_VOLDIR 15 - -#define SGI_PTYPE_VOLHDR 0 -#define SGI_PTYPE_RAW 3 -#define SGI_PTYPE_BSD 4 -#define SGI_PTYPE_VOLUME 6 -#define SGI_PTYPE_EFS 7 -#define SGI_PTYPE_LVOL 8 -#define SGI_PTYPE_RLVOL 9 -#define SGI_PTYPE_XFS 10 -#define SGI_PTYPE_XFSLOG 11 -#define SGI_PTYPE_XLV 12 -#define SGI_PTYPE_XVM 13 - -struct local_devparms { - u_int8_t dp_skew; - u_int8_t dp_gap1; - u_int8_t dp_gap2; - u_int8_t dp_spares_cyl; - u_int16_t dp_cyls; - u_int16_t dp_shd0; - u_int16_t dp_trks0; - u_int8_t dp_ctq_depth; - u_int8_t dp_cylshi; - u_int16_t dp_unused; - u_int16_t dp_secs; - u_int16_t dp_secbytes; - u_int16_t dp_interleave; - u_int32_t dp_flags; - u_int32_t dp_datarate; - u_int32_t dp_nretries; - u_int32_t dp_mspw; - u_int16_t dp_xgap1; - u_int16_t dp_xsync; - u_int16_t dp_xrdly; - u_int16_t dp_xgap2; - u_int16_t dp_xrgate; - u_int16_t dp_xwcont; -} __packed; - -struct local_sgilabel { - u_int32_t magic; - int16_t root; - int16_t swap; - char bootfile[16]; - struct local_devparms dp; - struct { - char name[8]; - int32_t block; - int32_t bytes; - } voldir[SGI_SIZE_VOLDIR]; - struct { - int32_t blocks; - int32_t first; - int32_t type; - } partitions[MAXPARTITIONS]; - int32_t checksum; - int32_t _pad; -} __packed; /* * Mode of operation can be one of: @@ -130,7 +69,7 @@ char mode; int quiet; int fd; int partno, partfirst, partblocks, parttype; -struct local_sgilabel *volhdr; +struct sgilabel *volhdr; int32_t checksum; u_int32_t volhdr_size = SGI_SIZE_VOLHDR; @@ -267,7 +206,7 @@ main(int argc, char *argv[]) err(1, "read volhdr"); if (ioctl(fd, DIOCGDINFO, &lbl) == -1) err(1, "ioctl DIOCGDINFO"); - volhdr = (struct local_sgilabel *)buf; + volhdr = (struct sgilabel *)buf; if (mode == 'i') { init_volhdr(); -- 2.20.1