/** @file
  The GUID PEI_APRIORI_FILE_NAME_GUID definition is the file
  name of the PEI a priori file that is stored in a firmware
  volume.

  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

  @par Revision Reference:
  GUID introduced in PI Version 1.0.

**/

#ifndef __PEI_APRIORI_FILE_NAME_H__
#define __PEI_APRIORI_FILE_NAME_H__

#define PEI_APRIORI_FILE_NAME_GUID \
  { 0x1b45cc0a, 0x156a, 0x428a, { 0x62, 0XAF, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 } }


///
///  This file must be of type EFI_FV_FILETYPE_FREEFORM and must
///  contain a single section of type EFI_SECTION_RAW. For details on
///  firmware volumes, firmware file types, and firmware file section
///  types.
///
typedef struct {
  ///
  /// An array of zero or more EFI_GUID type entries that match the file names of PEIM
  /// modules in the same Firmware Volume. The maximum number of entries.
  ///
  EFI_GUID  FileNamesWithinVolume[1];
} PEI_APRIORI_FILE_CONTENTS;

extern EFI_GUID gPeiAprioriFileNameGuid;

#endif

