1 /* $NetBSD: disklabel.h,v 1.5 2002/03/13 13:12:28 simonb Exp $ */ 2 3 /* 4 * Copyright (c) 2000 Soren S. Jorvang 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed for the 18 * NetBSD Project. See http://www.netbsd.org/ for 19 * information about NetBSD. 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 25 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 26 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 28 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 32 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 35 #ifndef _MACHINE_DISKLABEL_H_ 36 #define _MACHINE_DISKLABEL_H_ 37 38 /* 39 * SGI partition conventions: 40 * 41 * Partition 0 - root 42 * Partition 1 - swap 43 * Partition 6 - usr 44 * Partition 7 - volume body 45 * Partition 8 - volume header 46 * Partition 10 - whole disk 47 */ 48 49 #define LABELSECTOR 1 50 #define LABELOFFSET 0 51 52 #define MAXPARTITIONS 16 53 #define RAW_PART 2 54 55 struct cpu_disklabel { 56 int cd_dummy; 57 }; 58 59 struct devparms { 60 u_int8_t dp_skew; 61 u_int8_t dp_gap1; 62 u_int8_t dp_gap2; 63 u_int8_t dp_spares_cyl; 64 u_int16_t dp_cyls; 65 u_int16_t dp_shd0; 66 u_int16_t dp_trks0; 67 u_int8_t dp_ctq_depth; 68 u_int8_t dp_cylshi; 69 u_int16_t dp_unused; 70 u_int16_t dp_secs; 71 u_int16_t dp_secbytes; 72 u_int16_t dp_interleave; 73 u_int32_t dp_flags; 74 u_int32_t dp_datarate; 75 u_int32_t dp_nretries; 76 u_int32_t dp_mspw; 77 u_int16_t dp_xgap1; 78 u_int16_t dp_xsync; 79 u_int16_t dp_xrdly; 80 u_int16_t dp_xgap2; 81 u_int16_t dp_xrgate; 82 u_int16_t dp_xwcont; 83 } __attribute__((__packed__)); 84 85 struct sgilabel { 86 #define SGILABEL_MAGIC 0xbe5a941 87 u_int32_t magic; 88 int16_t root; 89 int16_t swap; 90 char bootfile[16]; 91 struct devparms dp; 92 struct { 93 char name[8]; 94 int32_t block; 95 int32_t bytes; 96 } voldir[15]; 97 struct { 98 int32_t blocks; 99 int32_t first; 100 int32_t type; 101 } partitions[MAXPARTITIONS]; 102 int32_t checksum; 103 int32_t _pad; 104 } __attribute__((__packed__)); 105 106 #define SGI_PTYPE_VOLHDR 0 107 #define SGI_PTYPE_RAW 3 108 #define SGI_PTYPE_BSD 4 109 #define SGI_PTYPE_VOLUME 6 110 #define SGI_PTYPE_EFS 7 111 #define SGI_PTYPE_LVOL 8 112 #define SGI_PTYPE_RLVOL 9 113 #define SGI_PTYPE_XFS 10 114 #define SGI_PTYPE_XFSLOG 11 115 #define SGI_PTYPE_XLV 12 116 #define SGI_PTYPE_XVM 13 117 118 #endif /* _MACHINE_DISKLABEL_H_ */ 119