]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/BootSectImage/mbr.h
36d157da247a6310ad0ef08621549f5cdaa38975
[mirror_edk2.git] / BaseTools / Source / C / BootSectImage / mbr.h
1 /** @file
2
3 MBR Partition Entry and Table structure defintions.
4
5 Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef _MBR_H_
17 #define _MBR_H_
18
19 #include "CommonLib.h"
20
21 #pragma pack(1)
22
23 #define MAX_MBR_PARTITIONS 4
24
25 //
26 // MBR Partition Entry
27 //
28 typedef struct {
29 UINT8 BootIndicator;
30 UINT8 StartHead;
31 UINT8 StartSector;
32 UINT8 StartTrack;
33 UINT8 OSType;
34 UINT8 EndHead;
35 UINT8 EndSector;
36 UINT8 EndTrack;
37 UINT32 StartingLBA;
38 UINT32 SizeInLBA;
39 } MBR_PARTITION_RECORD;
40
41 //
42 // MBR Partition table
43 //
44 typedef struct {
45 UINT8 BootCode[440];
46 UINT32 UniqueMbrSignature;
47 UINT16 Unknown;
48 MBR_PARTITION_RECORD PartitionRecord[MAX_MBR_PARTITIONS];
49 UINT16 Signature;
50 } MASTER_BOOT_RECORD;
51
52 #pragma pack()
53
54 #define MBR_SIGNATURE 0xAA55
55 #define EXTENDED_DOS_PARTITION 0x05
56 #define EXTENDED_WINDOWS_PARTITION 0x0F
57
58 #endif