/** @file
  This PPI will be installed at the end of PEI for all boot paths, including
  normal, recovery, and S3. It allows for PEIMs to possibly quiesce hardware,
  build handoff information for the next phase of execution,
  or provide some terminal processing behavior.

  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

  @par Revision Reference:
  This PPI is introduced in PI Version 1.0.

**/

#ifndef __END_OF_PEI_PHASE_PPI_H__
#define __END_OF_PEI_PHASE_PPI_H__

#define EFI_PEI_END_OF_PEI_PHASE_PPI_GUID \
  { \
    0x605EA650, 0xC65C, 0x42e1, {0xBA, 0x80, 0x91, 0xA5, 0x2A, 0xB6, 0x18, 0xC6 } \
  }

extern EFI_GUID  gEfiEndOfPeiSignalPpiGuid;

#endif
