/** @file

  Root include file for Mde Package DXE_CORE, DXE, RUNTIME, SMM, SAL type modules.

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_DXE_H__
#define __PI_DXE_H__

#include <Uefi/UefiBaseType.h>
#include <Uefi/UefiSpec.h>

#include <Pi/PiDxeCis.h>

#endif

