summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2008-08-08 16:07:42 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2008-08-08 16:07:42 +0000
commit0dcf6363ecf41623e478c09b588eb3595058d4d6 (patch)
treeb05d142f40b227632f346036826eb370ed742d6d
parent77d06cad3ace8e05f758f9bd7ecc289c8cf752bf (diff)
Make sgivol use the sgilabel struct from machine/disklabel.h, rather than
declaring another. ok miod@
-rw-r--r--sys/arch/sgi/include/disklabel.h40
-rw-r--r--sys/arch/sgi/stand/sgivol/sgivol.c67
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();