summaryrefslogtreecommitdiff
path: root/sys/arch/mvme68k/include/disklabel.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1997-02-12 02:15:30 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1997-02-12 02:15:30 +0000
commit2553ce04767666557e49a10098dade45ad5305db (patch)
tree6a810907dbe6d2fb7c2c11d72a772d86b374f853 /sys/arch/mvme68k/include/disklabel.h
parent62eb7e4d9fe3833073fcd412d31d7b35a5c1ae7a (diff)
The original disklabel code from dale had an unaligned-aligned problem
in it. This new code from rahnds and nivas will read either style of disklabel and hence will work on the mvme88k as well.
Diffstat (limited to 'sys/arch/mvme68k/include/disklabel.h')
-rw-r--r--sys/arch/mvme68k/include/disklabel.h152
1 files changed, 72 insertions, 80 deletions
diff --git a/sys/arch/mvme68k/include/disklabel.h b/sys/arch/mvme68k/include/disklabel.h
index bf4bfe1765f..b3cc39689b6 100644
--- a/sys/arch/mvme68k/include/disklabel.h
+++ b/sys/arch/mvme68k/include/disklabel.h
@@ -1,6 +1,5 @@
-/* $OpenBSD: disklabel.h,v 1.3 1996/05/10 03:18:43 chuck Exp $ */
-
/*
+ * Copyright (c) 1996 Nivas Madhur
* Copyright (c) 1995 Dale Rahn.
* All rights reserved.
*
@@ -34,7 +33,7 @@
#define _MACHINE_DISKLABEL_H_
/* number of boot pieces , ie xxboot bootxx */
-#define NUMBOOT 0
+#define NUMBOOT 2
#define PARTITIONSHIFT 4
@@ -69,92 +68,85 @@
*
* disksubr.c translates between cpu_disklabel and BSD disklabel.
*
+ * Note: this structure is exactly 512 bytes in size. If you move fields
+ * around, make sure the various members are properly aligned and the
+ * compiler won't do any additional padding.
*/
struct cpu_disklabel {
/* VID */
- u_char vid_id[4]; /* volume ID */
-#define VID_ID "NBSD"
- u_char vid_0[16];
- u_int vid_oss; /* starting block # of bootstrap */
-#define VID_OSS 2
- u_short vid_osl; /* bootstrap length (30 blocks) */
-#define VID_OSL 30
- u_char vid_1[4];
- u_short vid_osa_u; /* bootstrap start address (upper) */
- u_short vid_osa_l; /* bootstrap start address (lower) */
-#define VID_OSA 0x3f0000 /* MUST match bootstrap code */
-#define VID_OSAU ((VID_OSA >> 16) & 0xffff)
-#define VID_OSAL (VID_OSA & 0xffff)
- u_char vid_2[2];
- u_short partitions;
- u_char vid_vd[16];
- u_long bbsize;
- u_long magic1; /* 4 */
- u_short type; /* 2 */
- u_short subtype; /* 2 */
- u_char packname[16]; /* 16 */
- u_long flags; /* 4 */
- u_long drivedata[5]; /* 4 */
- u_long spare[5]; /* 4 */
- u_short checksum; /* 2 */
+ u_char vid_id[4];
+ u_char vid_0[16];
+ u_int vid_oss;
+ u_short vid_osl;
+ u_char vid_1[4];
+ u_short vid_osa_u;
+ u_short vid_osa_l;
+ u_char version;
+ u_char vid_2[1];
+ u_short checksum; /* 2 */
+ u_short partitions;
+ u_char vid_vd[16];
+ u_long bbsize;
+ u_long magic1; /* 4 */
+ u_short type; /* 2 */
+ u_short subtype; /* 2 */
+ u_char packname[16]; /* 16 */
+ u_long flags; /* 4 */
+ u_long drivedata[5]; /* 4 */
+ u_long spare[5]; /* 4 */
- u_long secpercyl; /* 4 */
- u_long secperunit; /* 4 */
- u_long headswitch; /* 4 */
+ u_long secpercyl; /* 4 */
+ u_long secperunit; /* 4 */
+ u_long headswitch; /* 4 */
- u_char vid_3[4];
- u_int vid_cas; /* block # of CFG area, hardwired at 1 */
-#define VID_CAS 1
- u_char vid_cal; /* length of CFG area, in blocks (1) */
-#define VID_CAL 1
- u_char vid_4_0[3];
- u_char vid_4[64];
- u_char vid_4_1[28];
- u_long sbsize;
- u_char vid_mot[8]; /* must contain "MOTOROLA" */
-#define VID_MOT "MOTOROLA"
+ u_char vid_3[4];
+ u_int vid_cas;
+ u_char vid_cal;
+ u_char vid_4_0[3];
+ u_char vid_4[64];
+ u_char vid_4_1[28];
+ u_long sbsize;
+ u_char vid_mot[8];
/* CFG */
- u_char cfg_0[4];
- u_short cfg_atm;
- u_short cfg_prm;
- u_short cfg_atw;
- u_short cfg_rec; /* block size (256) */
-#define CFG_REC 256
+ u_char cfg_0[4];
+ u_short cfg_atm;
+ u_short cfg_prm;
+ u_short cfg_atw;
+ u_short cfg_rec;
- u_short sparespertrack;
- u_short sparespercyl;
- u_long acylinders;
- u_short rpm;
- u_short cylskew;
+ u_short sparespertrack;
+ u_short sparespercyl;
+ u_long acylinders;
+ u_short rpm;
+ u_short cylskew;
- u_char cfg_spt;
- u_char cfg_hds;
- u_short cfg_trk;
- u_char cfg_ilv;
- u_char cfg_sof;
- u_short cfg_psm; /* physical sector size (512) */
-#define CFG_PSM 512
- u_short cfg_shd;
- u_char cfg_2[2];
- u_short cfg_pcom;
- u_char cfg_3;
- u_char cfg_ssr;
- u_short cfg_rwcc;
- u_short cfg_ecc;
- u_short cfg_eatm;
- u_short cfg_eprm;
- u_short cfg_eatw;
- u_char cfg_gpb1;
- u_char cfg_gpb2;
- u_char cfg_gpb3;
- u_char cfg_gpb4;
- u_char cfg_ssc;
- u_char cfg_runit;
- u_short cfg_rsvc1;
- u_short cfg_rsvc2;
- u_long magic2;
- u_char cfg_4[192];
+ u_char cfg_spt;
+ u_char cfg_hds;
+ u_short cfg_trk;
+ u_char cfg_ilv;
+ u_char cfg_sof;
+ u_short cfg_psm;
+ u_short cfg_shd;
+ u_char cfg_2[2];
+ u_short cfg_pcom;
+ u_char cfg_3;
+ u_char cfg_ssr;
+ u_short cfg_rwcc;
+ u_short cfg_ecc;
+ u_short cfg_eatm;
+ u_short cfg_eprm;
+ u_short cfg_eatw;
+ u_char cfg_gpb1;
+ u_char cfg_gpb2;
+ u_char cfg_gpb3;
+ u_char cfg_gpb4;
+ u_char cfg_ssc;
+ u_char cfg_runit;
+ u_short cfg_rsvc1;
+ u_short cfg_rsvc2;
+ u_long magic2;
+ u_char cfg_4[192];
};
#endif _MACHINE_DISKLABEL_H_