/** @file

  Root include file for Mde Package SEC, PEIM, PEI_CORE type modules.

  This is the include file for any module of type PEIM. PEIM
  modules only use types defined via this include file and can
  be ported easily to any environment.

Copyright (c) 2006 - 2018, 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 that 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.

**/

#ifndef __PI_PEI_H__
#define __PI_PEI_H__

#include <Uefi/UefiBaseType.h>
#include <Pi/PiPeiCis.h>

#endif

