Minor comment:
Why uses forward reference for structure EFI_PARTITION_INFO_PROTOCOL?
The forward reference is because some protocol interfaces need the pointer of
protocol structure as This parameter.
I think you can directly use typedef struct {...} EFI_PARTITION_INFO_PROTOCOL.
Thanks/Ray
> -----Original Message-----
> From: Wu, Hao A
> Sent: Thursday, June 22, 2017 4:45 PM
> To: [email protected]
> Cc: Wu, Hao A <[email protected]>; Ni, Ruiyu <[email protected]>;
> Kinney, Michael D <[email protected]>; Gao, Liming
> <[email protected]>
> Subject: [PATCH 1/2] MdePkg: Add EFI Partition Information Protocol
> definitions
>
> Cc: Ruiyu Ni <[email protected]>
> Cc: Michael D Kinney <[email protected]>
> Cc: Liming Gao <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Hao Wu <[email protected]>
> ---
> MdePkg/Include/Protocol/PartitionInfo.h | 78 ++++++++++++++++++++
> MdePkg/MdePkg.dec | 3 +
> 2 files changed, 81 insertions(+)
>
> diff --git a/MdePkg/Include/Protocol/PartitionInfo.h
> b/MdePkg/Include/Protocol/PartitionInfo.h
> new file mode 100644
> index 0000000000..60e46456c6
> --- /dev/null
> +++ b/MdePkg/Include/Protocol/PartitionInfo.h
> @@ -0,0 +1,78 @@
> +/** @file
> + This file defines the EFI Partition Information Protocol.
> +
> + Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> 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 <IndustryStandard/Mbr.h>
> +#include <Uefi/UefiGpt.h>
> +
> +//
> +// EFI Partition Information Protocol GUID value // #define
> +EFI_PARTITION_INFO_PROTOCOL_GUID \
> + { 0x8cf2f62c, 0xbc9b, 0x4821, { 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21,
> +0xa1, 0xa0 }};
> +
> +//
> +// Forward reference for pure ANSI compatability // typedef struct
> +_EFI_PARTITION_INFO_PROTOCOL EFI_PARTITION_INFO_PROTOCOL;
> +
> +#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.
> +///
> +struct _EFI_PARTITION_INFO_PROTOCOL {
> + //
> + // 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;
> +};
> +
> +#pragma pack()
> +
> +///
> +/// Partition Information Protocol GUID variable.
> +///
> +extern EFI_GUID gEfiPartitionInfoProtocolGuid;
> +
> +#endif
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index
> 7a7504b7a3..c48f248526 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -1671,6 +1671,9 @@
> ## Include/Protocol/BluetoothLeConfig.h
> gEfiBluetoothLeConfigProtocolGuid = { 0x8f76da58, 0x1f99, 0x4275,
> { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 } }
>
> + ## Include/Protocol/PartitionInfo.h
> + gEfiPartitionInfoProtocolGuid = { 0x8cf2f62c, 0xbc9b, 0x4821,
> { 0x80,
> 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0 }}
> +
> #
> # Protocols defined in Shell2.0
> #
> --
> 2.12.0.windows.1
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel