Upgraded GRUB2 to 2.00 release.
[AROS.git] / arch / all-pc / boot / grub2-aros / include / grub / bsdlabel.h
blobb10336c0100e8a19c5d6d8756559ee6720abb68c
1 /*
2 * GRUB -- GRand Unified Bootloader
3 * Copyright (C) 1999,2000,2001,2002,2004,2007 Free Software Foundation, Inc.
5 * GRUB is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * GRUB is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef GRUB_BSDLABEL_PARTITION_HEADER
20 #define GRUB_BSDLABEL_PARTITION_HEADER 1
22 /* Constants for BSD disk label. */
23 #define GRUB_PC_PARTITION_BSD_LABEL_SECTOR 1
24 #define GRUB_PC_PARTITION_BSD_LABEL_MAGIC 0x82564557
26 /* BSD partition types. */
27 #define GRUB_PC_PARTITION_BSD_TYPE_UNUSED 0
28 #define GRUB_PC_PARTITION_BSD_TYPE_SWAP 1
29 #define GRUB_PC_PARTITION_BSD_TYPE_V6 2
30 #define GRUB_PC_PARTITION_BSD_TYPE_V7 3
31 #define GRUB_PC_PARTITION_BSD_TYPE_SYSV 4
32 #define GRUB_PC_PARTITION_BSD_TYPE_V71K 5
33 #define GRUB_PC_PARTITION_BSD_TYPE_V8 6
34 #define GRUB_PC_PARTITION_BSD_TYPE_BSDFFS 7
35 #define GRUB_PC_PARTITION_BSD_TYPE_MSDOS 8
36 #define GRUB_PC_PARTITION_BSD_TYPE_BSDLFS 9
37 #define GRUB_PC_PARTITION_BSD_TYPE_OTHER 10
38 #define GRUB_PC_PARTITION_BSD_TYPE_HPFS 11
39 #define GRUB_PC_PARTITION_BSD_TYPE_ISO9660 12
40 #define GRUB_PC_PARTITION_BSD_TYPE_BOOT 13
42 /* FreeBSD-specific types. */
43 #define GRUB_PC_PARTITION_FREEBSD_TYPE_VINUM 14
44 #define GRUB_PC_PARTITION_FREEBSD_TYPE_RAID 15
45 #define GRUB_PC_PARTITION_FREEBSD_TYPE_JFS2 21
47 /* NetBSD-specific types. */
48 #define GRUB_PC_PARTITION_NETBSD_TYPE_ADOS 14
49 #define GRUB_PC_PARTITION_NETBSD_TYPE_HFS 15
50 #define GRUB_PC_PARTITION_NETBSD_TYPE_FILECORE 16
51 #define GRUB_PC_PARTITION_NETBSD_TYPE_EXT2FS 17
52 #define GRUB_PC_PARTITION_NETBSD_TYPE_NTFS 18
53 #define GRUB_PC_PARTITION_NETBSD_TYPE_RAID 19
54 #define GRUB_PC_PARTITION_NETBSD_TYPE_CCD 20
55 #define GRUB_PC_PARTITION_NETBSD_TYPE_JFS2 21
56 #define GRUB_PC_PARTITION_NETBSD_TYPE_APPLEUFS 22
58 /* OpenBSD-specific types. */
59 #define GRUB_PC_PARTITION_OPENBSD_TYPE_ADOS 14
60 #define GRUB_PC_PARTITION_OPENBSD_TYPE_HFS 15
61 #define GRUB_PC_PARTITION_OPENBSD_TYPE_FILECORE 16
62 #define GRUB_PC_PARTITION_OPENBSD_TYPE_EXT2FS 17
63 #define GRUB_PC_PARTITION_OPENBSD_TYPE_NTFS 18
64 #define GRUB_PC_PARTITION_OPENBSD_TYPE_RAID 19
66 #define GRUB_PC_PARTITION_BSD_LABEL_WHOLE_DISK_PARTITION 2
68 /* The BSD partition entry. */
69 struct grub_partition_bsd_entry
71 grub_uint32_t size;
72 grub_uint32_t offset;
73 grub_uint32_t fragment_size;
74 grub_uint8_t fs_type;
75 grub_uint8_t fs_fragments;
76 grub_uint16_t fs_cylinders;
77 } __attribute__ ((packed));
79 /* The BSD disk label. Only define members useful for GRUB. */
80 struct grub_partition_bsd_disk_label
82 grub_uint32_t magic;
83 grub_uint16_t type;
84 grub_uint8_t unused1[18];
85 grub_uint8_t packname[16];
86 grub_uint8_t unused2[92];
87 grub_uint32_t magic2;
88 grub_uint16_t checksum;
89 grub_uint16_t num_partitions;
90 grub_uint32_t boot_size;
91 grub_uint32_t superblock_size;
92 } __attribute__ ((packed));
94 #endif /* ! GRUB_PC_PARTITION_HEADER */