/** @file
This file defines the EFI Partition Information Protocol.
Copyright (c) 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.7
**/
#ifndef __PARTITION_INFO_PROTOCOL_H__
#define __PARTITION_INFO_PROTOCOL_H__
#include
#include
//
// EFI Partition Information Protocol GUID value
//
#define EFI_PARTITION_INFO_PROTOCOL_GUID \
{ 0x8cf2f62c, 0xbc9b, 0x4821, { 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0 }};
#define EFI_PARTITION_INFO_PROTOCOL_REVISION 0x0001000
#define PARTITION_TYPE_OTHER 0x00
#define PARTITION_TYPE_MBR 0x01
#define PARTITION_TYPE_GPT 0x02
#pragma pack(1)
///
/// Partition Information Protocol structure.
///
typedef struct {
//
// Set to EFI_PARTITION_INFO_PROTOCOL_REVISION.
//
UINT32 Revision;
//
// Partition info type (PARTITION_TYPE_MBR, PARTITION_TYPE_GPT, or PARTITION_TYPE_OTHER).
//
UINT32 Type;
//
// If 1, partition describes an EFI System Partition.
//
UINT8 System;
UINT8 Reserved[7];
union {
///
/// MBR data
///
MBR_PARTITION_RECORD Mbr;
///
/// GPT data
///
EFI_PARTITION_ENTRY Gpt;
} Info;
} EFI_PARTITION_INFO_PROTOCOL;
#pragma pack()
///
/// Partition Information Protocol GUID variable.
///
extern EFI_GUID gEfiPartitionInfoProtocolGuid;
#endif