Home | History | Annotate | Download | only in BootSectImage
      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
     59