/** @file
  EFI_HII_PACKAGE_LIST_PROTOCOL as defined in UEFI 2.1.
  Boot service LoadImage() installs EFI_HII_PACKAGE_LIST_PROTOCOL on the handle
  if the image contains a custom PE/COFF resource with the type 'HII'.
  The protocol's interface pointer points to the HII package list, which is
  contained in the resource's data.

  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef __HII_PACKAGE_LIST_H__
#define __HII_PACKAGE_LIST_H__

#define EFI_HII_PACKAGE_LIST_PROTOCOL_GUID \
  { 0x6a1ee763, 0xd47a, 0x43b4, {0xaa, 0xbe, 0xef, 0x1d, 0xe2, 0xab, 0x56, 0xfc}}

typedef EFI_HII_PACKAGE_LIST_HEADER *EFI_HII_PACKAGE_LIST_PROTOCOL;

extern EFI_GUID  gEfiHiiPackageListProtocolGuid;

#endif
