1*c0bfb082Skrw /* $OpenBSD: disklabel.h,v 1.24 2015/09/30 15:13:54 krw Exp $ */ 29c0b8818Smickey 39c0b8818Smickey /* 40b55b42cSmickey * Copyright (c) 1994 Christopher G. Demetriou 59c0b8818Smickey * All rights reserved. 69c0b8818Smickey * 79c0b8818Smickey * Redistribution and use in source and binary forms, with or without 89c0b8818Smickey * modification, are permitted provided that the following conditions 99c0b8818Smickey * are met: 109c0b8818Smickey * 1. Redistributions of source code must retain the above copyright 119c0b8818Smickey * notice, this list of conditions and the following disclaimer. 129c0b8818Smickey * 2. Redistributions in binary form must reproduce the above copyright 139c0b8818Smickey * notice, this list of conditions and the following disclaimer in the 149c0b8818Smickey * documentation and/or other materials provided with the distribution. 159c0b8818Smickey * 3. All advertising materials mentioning features or use of this software 169c0b8818Smickey * must display the following acknowledgement: 170b55b42cSmickey * This product includes software developed by Christopher G. Demetriou. 189c0b8818Smickey * 4. The name of the author may not be used to endorse or promote products 190b55b42cSmickey * derived from this software without specific prior written permission 209c0b8818Smickey * 219c0b8818Smickey * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 229c0b8818Smickey * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 239c0b8818Smickey * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 249c0b8818Smickey * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 259c0b8818Smickey * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 269c0b8818Smickey * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 279c0b8818Smickey * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 289c0b8818Smickey * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 299c0b8818Smickey * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 309c0b8818Smickey * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 319c0b8818Smickey */ 329c0b8818Smickey 339c0b8818Smickey #ifndef _MACHINE_DISKLABEL_H_ 349c0b8818Smickey #define _MACHINE_DISKLABEL_H_ 359c0b8818Smickey 361e913dd5Skrw #define LABELSECTOR 1 /* sector containing label */ 371e913dd5Skrw #define LABELOFFSET 0 /* offset of label in sector */ 389c0b8818Smickey #define MAXPARTITIONS 16 /* number of partitions */ 390b55b42cSmickey 400b55b42cSmickey /* 410b55b42cSmickey * volume header for "LIF" format volumes 420b55b42cSmickey */ 430b55b42cSmickey struct lifvol { 440b55b42cSmickey short vol_id; 450b55b42cSmickey char vol_label[6]; 460b55b42cSmickey u_int vol_addr; 470b55b42cSmickey short vol_oct; 480b55b42cSmickey short vol_dummy; 490b55b42cSmickey u_int vol_dirsize; 500b55b42cSmickey short vol_version; 510b55b42cSmickey short vol_zero; 520b55b42cSmickey u_int vol_number; 530b55b42cSmickey u_int vol_lastvol; 540b55b42cSmickey u_int vol_length; 550b55b42cSmickey char vol_toc[6]; 560b55b42cSmickey char vol_dummy1[198]; 570b55b42cSmickey 580b55b42cSmickey u_int ipl_addr; 590b55b42cSmickey u_int ipl_size; 600b55b42cSmickey u_int ipl_entry; 610b55b42cSmickey 620b55b42cSmickey u_int vol_dummy2; 630b55b42cSmickey }; 640b55b42cSmickey 650b55b42cSmickey struct lifdir { 660b55b42cSmickey char dir_name[10]; 67c9de4ee6Smickey u_short dir_type; 680b55b42cSmickey u_int dir_addr; 690b55b42cSmickey u_int dir_length; 700b55b42cSmickey char dir_toc[6]; 710b55b42cSmickey short dir_flag; 720b55b42cSmickey u_int dir_implement; 730b55b42cSmickey }; 740b55b42cSmickey 750b55b42cSmickey struct lif_load { 760b55b42cSmickey int address; 770b55b42cSmickey int count; 780b55b42cSmickey }; 790b55b42cSmickey 802225b05aSmickey #define HPUX_MAGIC 0x8b7f6a3c 812225b05aSmickey #define HPUX_MAXPART 16 822225b05aSmickey struct hpux_label { 832225b05aSmickey int32_t hl_magic1; 842225b05aSmickey u_int32_t hl_magic; 852225b05aSmickey int32_t hl_version; 862225b05aSmickey struct { 872225b05aSmickey int32_t hlp_blah[2]; 882225b05aSmickey int32_t hlp_start; 892225b05aSmickey int32_t hlp_length; 902225b05aSmickey } hl_parts[HPUX_MAXPART]; 912225b05aSmickey u_int8_t hl_flags[HPUX_MAXPART]; 922225b05aSmickey #define HPUX_PART_ROOT 0x10 932225b05aSmickey #define HPUX_PART_SWAP 0x14 942225b05aSmickey #define HPUX_PART_BOOT 0x32 952225b05aSmickey int32_t hl_blah[3*16]; 962225b05aSmickey u_int16_t hl_boot; 972225b05aSmickey u_int16_t hl_reserved; 982225b05aSmickey int32_t hl_magic2; 992225b05aSmickey }; 1002225b05aSmickey 1010b55b42cSmickey #define LIF_VOL_ID -32768 1020b55b42cSmickey #define LIF_VOL_OCT 4096 1030b55b42cSmickey #define LIF_DIR_SWAP 0x5243 1042225b05aSmickey #define LIF_DIR_HPLBL 0xa271 1050b55b42cSmickey #define LIF_DIR_FS 0xcd38 1060b55b42cSmickey #define LIF_DIR_IOMAP 0xcd60 1070b55b42cSmickey #define LIF_DIR_HPUX 0xcd80 1080b55b42cSmickey #define LIF_DIR_ISL 0xce00 1090b55b42cSmickey #define LIF_DIR_PAD 0xcffe 1100b55b42cSmickey #define LIF_DIR_AUTO 0xcfff 1110b55b42cSmickey #define LIF_DIR_EST 0xd001 1120b55b42cSmickey #define LIF_DIR_TYPE 0xe942 1130b55b42cSmickey 1140b55b42cSmickey #define LIF_DIR_FLAG 0x8001 /* dont ask me! */ 1150b55b42cSmickey #define LIF_SECTSIZE 256 1160b55b42cSmickey 1172225b05aSmickey #define LIF_NUMDIR 16 1180b55b42cSmickey 1190b55b42cSmickey #define LIF_VOLSTART 0 1200b55b42cSmickey #define LIF_VOLSIZE sizeof(struct lifvol) 1210b55b42cSmickey #define LIF_DIRSTART 2048 1220b55b42cSmickey #define LIF_DIRSIZE (LIF_NUMDIR * sizeof(struct lifdir)) 1230b55b42cSmickey #define LIF_FILESTART 8192 1240b55b42cSmickey 1250b55b42cSmickey #define btolifs(b) (((b) + (LIF_SECTSIZE - 1)) / LIF_SECTSIZE) 1260b55b42cSmickey #define lifstob(s) ((s) * LIF_SECTSIZE) 1270b55b42cSmickey #define lifstodb(s) ((s) * LIF_SECTSIZE / DEV_BSIZE) 1280b55b42cSmickey 1296336b7ddSderaadt #define MAXLIFSPACE 256 /* 512 byte blocks */ 1306336b7ddSderaadt 1319c0b8818Smickey #endif /* _MACHINE_DISKLABEL_H_ */ 132