1 /** @file 2 This file defines the EFI Partition Information Protocol. 3 4 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 @par Revision Reference: 8 This Protocol is introduced in UEFI Specification 2.7 9 10 **/ 11 12 #ifndef __PARTITION_INFO_PROTOCOL_H__ 13 #define __PARTITION_INFO_PROTOCOL_H__ 14 15 #include <IndustryStandard/Mbr.h> 16 #include <Uefi/UefiGpt.h> 17 18 // 19 // EFI Partition Information Protocol GUID value 20 // 21 #define EFI_PARTITION_INFO_PROTOCOL_GUID \ 22 { 0x8cf2f62c, 0xbc9b, 0x4821, { 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0 }}; 23 24 25 #define EFI_PARTITION_INFO_PROTOCOL_REVISION 0x0001000 26 #define PARTITION_TYPE_OTHER 0x00 27 #define PARTITION_TYPE_MBR 0x01 28 #define PARTITION_TYPE_GPT 0x02 29 30 #pragma pack(1) 31 32 /// 33 /// Partition Information Protocol structure. 34 /// 35 typedef struct { 36 // 37 // Set to EFI_PARTITION_INFO_PROTOCOL_REVISION. 38 // 39 UINT32 Revision; 40 // 41 // Partition info type (PARTITION_TYPE_MBR, PARTITION_TYPE_GPT, or PARTITION_TYPE_OTHER). 42 // 43 UINT32 Type; 44 // 45 // If 1, partition describes an EFI System Partition. 46 // 47 UINT8 System; 48 UINT8 Reserved[7]; 49 union { 50 /// 51 /// MBR data 52 /// 53 MBR_PARTITION_RECORD Mbr; 54 /// 55 /// GPT data 56 /// 57 EFI_PARTITION_ENTRY Gpt; 58 } Info; 59 } EFI_PARTITION_INFO_PROTOCOL; 60 61 #pragma pack() 62 63 /// 64 /// Partition Information Protocol GUID variable. 65 /// 66 extern EFI_GUID gEfiPartitionInfoProtocolGuid; 67 68 #endif 69