summaryrefslogtreecommitdiff
path: root/sys/arch/sun3/include
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2000-07-02 17:51:36 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2000-07-02 17:51:36 +0000
commite22d5e7aa2374bf95f15cfeb9f2757b99170fa86 (patch)
treed4a0d975c31aecfc739b5ed5208d7cd1a38d2aa9 /sys/arch/sun3/include
parentbb13cce4ae3bb5e97e20cdcdd7dcd51372761860 (diff)
Recognize and support 16 partition disklabels (taken from sparc port)
Diffstat (limited to 'sys/arch/sun3/include')
-rw-r--r--sys/arch/sun3/include/disklabel.h4
-rw-r--r--sys/arch/sun3/include/sun_disklabel.h14
2 files changed, 13 insertions, 5 deletions
diff --git a/sys/arch/sun3/include/disklabel.h b/sys/arch/sun3/include/disklabel.h
index 5ca0f1f8b55..bf115738433 100644
--- a/sys/arch/sun3/include/disklabel.h
+++ b/sys/arch/sun3/include/disklabel.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: disklabel.h,v 1.4 1997/09/21 04:21:07 niklas Exp $ */
+/* $OpenBSD: disklabel.h,v 1.5 2000/07/02 17:51:12 miod Exp $ */
/* $NetBSD: disklabel.h,v 1.3 1995/11/10 22:05:52 gwr Exp $ */
/*
@@ -36,7 +36,7 @@
#define LABELSECTOR 0 /* sector containing label */
#define LABELOFFSET 64 /* offset of label in sector */
-#define MAXPARTITIONS 8 /* number of partitions */
+#define MAXPARTITIONS 16 /* number of partitions */
#define RAW_PART 2 /* raw partition: xx?c */
/*
diff --git a/sys/arch/sun3/include/sun_disklabel.h b/sys/arch/sun3/include/sun_disklabel.h
index 204e5dd8dba..dab09cad9ca 100644
--- a/sys/arch/sun3/include/sun_disklabel.h
+++ b/sys/arch/sun3/include/sun_disklabel.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sun_disklabel.h,v 1.3 1997/09/21 04:21:23 niklas Exp $ */
+/* $OpenBSD: sun_disklabel.h,v 1.4 2000/07/02 17:51:12 miod Exp $ */
/* $NetBSD: sun_disklabel.h,v 1.4 1996/11/20 18:57:19 gwr Exp $ */
/*
@@ -59,11 +59,17 @@ struct sun_dkpart {
long sdkp_nsectors; /* number of sectors */
};
+#define SUNXPART 8
+#define SL_XPMAG (0x199d1fe2+SUNXPART)
+
struct sun_disklabel { /* total size = 512 bytes */
char sl_text[128];
- char sl_xxx1[292];
+ u_long sl_xpsum; /* additive cksum, [sl_xpmag,sl_xxx1) */
+ u_long sl_xpmag; /* "extended" magic number */
+ struct sun_dkpart sl_xpart[SUNXPART]; /* "extended" partitions, i through p */
+ char sl_xxx1[292-8-(8*SUNXPART)]; /* [292] including sl_x* */
u_short sl_rpm; /* rotational speed */
- u_short sl_pcyl; /* physical cylinders */
+ u_short sl_pcylinders; /* number of physical cyls */
u_short sl_sparespercyl; /* spare sectors per cylinder */
u_short sl_xxx3[2];
u_short sl_interleave; /* interleave factor */
@@ -76,3 +82,5 @@ struct sun_disklabel { /* total size = 512 bytes */
u_short sl_magic; /* == SUN_DKMAGIC */
u_short sl_cksum; /* xor checksum of all shorts */
};
+
+#define SUN_LABELOFFSET 128