/** @file
  This file declares Reset2 PPI used to reset the platform.

  This PPI is installed by some platform- or chipset-specific PEIM that
  abstracts the Reset Service to other agents.

  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

  @par Revision Reference:
  This PPI is introduced in PI Version 1.4.

**/

#ifndef __RESET2_PPI_H__
#define __RESET2_PPI_H__

#define EFI_PEI_RESET2_PPI_GUID \
  { \
    0x6cc45765, 0xcce4, 0x42fd, {0xbc, 0x56, 0x1, 0x1a, 0xaa, 0xc6, 0xc9, 0xa8 } \
  }

///
/// This PPI provides provide a simple reset service.
///
typedef struct _EFI_PEI_RESET2_PPI {
  EFI_PEI_RESET2_SYSTEM    ResetSystem;
} EFI_PEI_RESET2_PPI;

extern EFI_GUID  gEfiPeiReset2PpiGuid;

#endif
