1 1.1 jakllsch /* $NetBSD: efipart.h,v 1.1.1.1 2014/04/01 16:16:07 jakllsch Exp $ */ 2 1.1 jakllsch 3 1.1 jakllsch #ifndef _EFI_PART_H 4 1.1 jakllsch #define _EFI_PART_H 5 1.1 jakllsch 6 1.1 jakllsch /*++ 7 1.1 jakllsch 8 1.1 jakllsch Copyright (c) 1998 Intel Corporation 9 1.1 jakllsch 10 1.1 jakllsch Module Name: 11 1.1 jakllsch 12 1.1 jakllsch efipart.h 13 1.1 jakllsch 14 1.1 jakllsch Abstract: 15 1.1 jakllsch Info about disk partitions and Master Boot Records 16 1.1 jakllsch 17 1.1 jakllsch 18 1.1 jakllsch 19 1.1 jakllsch 20 1.1 jakllsch Revision History 21 1.1 jakllsch 22 1.1 jakllsch --*/ 23 1.1 jakllsch 24 1.1 jakllsch // 25 1.1 jakllsch // 26 1.1 jakllsch // 27 1.1 jakllsch 28 1.1 jakllsch #define EFI_PARTITION 0xef 29 1.1 jakllsch #define MBR_SIZE 512 30 1.1 jakllsch 31 1.1 jakllsch #pragma pack(1) 32 1.1 jakllsch 33 1.1 jakllsch typedef struct { 34 1.1 jakllsch UINT8 BootIndicator; 35 1.1 jakllsch UINT8 StartHead; 36 1.1 jakllsch UINT8 StartSector; 37 1.1 jakllsch UINT8 StartTrack; 38 1.1 jakllsch UINT8 OSIndicator; 39 1.1 jakllsch UINT8 EndHead; 40 1.1 jakllsch UINT8 EndSector; 41 1.1 jakllsch UINT8 EndTrack; 42 1.1 jakllsch UINT8 StartingLBA[4]; 43 1.1 jakllsch UINT8 SizeInLBA[4]; 44 1.1 jakllsch } MBR_PARTITION_RECORD; 45 1.1 jakllsch 46 1.1 jakllsch #define EXTRACT_UINT32(D) (UINT32)(D[0] | (D[1] << 8) | (D[2] << 16) | (D[3] << 24)) 47 1.1 jakllsch 48 1.1 jakllsch #define MBR_SIGNATURE 0xaa55 49 1.1 jakllsch #define MIN_MBR_DEVICE_SIZE 0x80000 50 1.1 jakllsch #define MBR_ERRATA_PAD 0x40000 // 128 MB 51 1.1 jakllsch 52 1.1 jakllsch #define MAX_MBR_PARTITIONS 4 53 1.1 jakllsch typedef struct { 54 1.1 jakllsch UINT8 BootStrapCode[440]; 55 1.1 jakllsch UINT8 UniqueMbrSignature[4]; 56 1.1 jakllsch UINT8 Unknown[2]; 57 1.1 jakllsch MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS]; 58 1.1 jakllsch UINT16 Signature; 59 1.1 jakllsch } MASTER_BOOT_RECORD; 60 1.1 jakllsch #pragma pack() 61 1.1 jakllsch 62 1.1 jakllsch 63 1.1 jakllsch #endif 64