1ca987d46SWarner Losh #ifndef _EFI_PART_H 2ca987d46SWarner Losh #define _EFI_PART_H 3ca987d46SWarner Losh 4ca987d46SWarner Losh /*++ 5ca987d46SWarner Losh 6ca987d46SWarner Losh Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 7ca987d46SWarner Losh This software and associated documentation (if any) is furnished 8ca987d46SWarner Losh under a license and may only be used or copied in accordance 9ca987d46SWarner Losh with the terms of the license. Except as permitted by such 10ca987d46SWarner Losh license, no part of this software or documentation may be 11ca987d46SWarner Losh reproduced, stored in a retrieval system, or transmitted in any 12ca987d46SWarner Losh form or by any means without the express written consent of 13ca987d46SWarner Losh Intel Corporation. 14ca987d46SWarner Losh 15ca987d46SWarner Losh Module Name: 16ca987d46SWarner Losh 17ca987d46SWarner Losh efipart.h 18ca987d46SWarner Losh 19ca987d46SWarner Losh Abstract: 20*5b990a94SBaptiste Daroussin Info about disk partitions and Master Boot Records 21ca987d46SWarner Losh 22ca987d46SWarner Losh 23ca987d46SWarner Losh 24ca987d46SWarner Losh 25ca987d46SWarner Losh Revision History 26ca987d46SWarner Losh 27ca987d46SWarner Losh --*/ 28ca987d46SWarner Losh 29ca987d46SWarner Losh // 30ca987d46SWarner Losh // 31ca987d46SWarner Losh // 32ca987d46SWarner Losh 33ca987d46SWarner Losh #define EFI_PARTITION 0xef 34ca987d46SWarner Losh #define MBR_SIZE 512 35ca987d46SWarner Losh 36ca987d46SWarner Losh #pragma pack(1) 37ca987d46SWarner Losh 38ca987d46SWarner Losh typedef struct { 39ca987d46SWarner Losh UINT8 BootIndicator; 40ca987d46SWarner Losh UINT8 StartHead; 41ca987d46SWarner Losh UINT8 StartSector; 42ca987d46SWarner Losh UINT8 StartTrack; 43ca987d46SWarner Losh UINT8 OSIndicator; 44ca987d46SWarner Losh UINT8 EndHead; 45ca987d46SWarner Losh UINT8 EndSector; 46ca987d46SWarner Losh UINT8 EndTrack; 47ca987d46SWarner Losh UINT8 StartingLBA[4]; 48ca987d46SWarner Losh UINT8 SizeInLBA[4]; 49ca987d46SWarner Losh } MBR_PARTITION_RECORD; 50ca987d46SWarner Losh 51ca987d46SWarner Losh #define EXTRACT_UINT32(D) (UINT32)(D[0] | (D[1] << 8) | (D[2] << 16) | (D[3] << 24)) 52ca987d46SWarner Losh 53ca987d46SWarner Losh #define MBR_SIGNATURE 0xaa55 54ca987d46SWarner Losh #define MIN_MBR_DEVICE_SIZE 0x80000 55ca987d46SWarner Losh #define MBR_ERRATA_PAD 0x40000 // 128 MB 56ca987d46SWarner Losh 57ca987d46SWarner Losh #define MAX_MBR_PARTITIONS 4 58ca987d46SWarner Losh typedef struct { 59ca987d46SWarner Losh UINT8 BootStrapCode[440]; 60ca987d46SWarner Losh UINT8 UniqueMbrSignature[4]; 61ca987d46SWarner Losh UINT8 Unknown[2]; 62ca987d46SWarner Losh MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS]; 63ca987d46SWarner Losh UINT16 Signature; 64*5b990a94SBaptiste Daroussin } MASTER_BOOT_RECORD; 65ca987d46SWarner Losh #pragma pack() 66ca987d46SWarner Losh 67ca987d46SWarner Losh 68ca987d46SWarner Losh #endif 69