diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-02-12 02:15:30 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1997-02-12 02:15:30 +0000 |
commit | 2553ce04767666557e49a10098dade45ad5305db (patch) | |
tree | 6a810907dbe6d2fb7c2c11d72a772d86b374f853 /sys/arch/mvme68k/include/disklabel.h | |
parent | 62eb7e4d9fe3833073fcd412d31d7b35a5c1ae7a (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.h | 152 |
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_ |