]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Peim/PeiCis.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Include / Peim / PeiCis.h
diff --git a/OldMdePkg/Include/Peim/PeiCis.h b/OldMdePkg/Include/Peim/PeiCis.h
deleted file mode 100644 (file)
index 67db387..0000000
+++ /dev/null
@@ -1,612 +0,0 @@
-/** @file\r
-  Framework PEI master include file. This file should match the PEI CIS spec.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-  Module Name:  PeiCis.h\r
-\r
-  @par Revision Reference:\r
-  Version 0.91.\r
-\r
-**/\r
-\r
-#ifndef __PEIM_CIS_H__\r
-#define __PEIM_CIS_H__\r
-\r
-#include <Common/MultiPhase.h>\r
-#include <Common/BootMode.h>\r
-#include <Common/Hob.h>\r
-#include <Common/FirmwareVolumeImageFormat.h>\r
-#include <Common/FirmwareVolumeHeader.h>\r
-#include <Common/FirmwareFileSystem.h>\r
-#include <Common/Dependency.h>\r
-\r
-#define TIANO_ERROR(a)              (MAX_2_BITS | (a))\r
-\r
-#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
-//\r
-// Tiano added a couple of return types. These are owned by UEFI specification\r
-//  and Tiano can not use them. Thus for UEFI 2.0/R9 support we moved the values\r
-//  to a UEFI OEM extension range to conform to UEFI specification.\r
-//\r
-#define EFI_NOT_AVAILABLE_YET   EFIERR (28)\r
-#define EFI_UNLOAD_IMAGE        EFIERR (29)\r
-#else\r
-#define EFI_NOT_AVAILABLE_YET   TIANO_ERROR (0)\r
-#define EFI_UNLOAD_IMAGE        TIANO_ERROR (1)\r
-#endif\r
-\r
-//\r
-// Declare forward referenced data structures\r
-//\r
-typedef struct _EFI_PEI_SERVICES          EFI_PEI_SERVICES;\r
-typedef struct _EFI_PEI_NOTIFY_DESCRIPTOR EFI_PEI_NOTIFY_DESCRIPTOR;\r
-\r
-\r
-#include <Ppi/CpuIo.h>\r
-#include <Ppi/PciCfg2.h>\r
-#include <Ppi/PciCfg.h>\r
-\r
-//\r
-// PEI Specification Revision information\r
-//\r
-#define PEI_SPECIFICATION_MAJOR_REVISION  0\r
-#define PEI_SPECIFICATION_MINOR_REVISION  91\r
-\r
-/**\r
-  The PEI Dispatcher will invoke each PEIM one time.  During this pass, the PEI \r
-  Dispatcher will pass control to the PEIM at the AddressOfEntryPoint in the PE Header. \r
-\r
-  @param  FfsHeader        Pointer to the FFS file header.\r
-  @param  PeiServices      Describes the list of possible PEI Services.\r
-\r
-  @return Status code\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEIM_ENTRY_POINT)(\r
-  IN EFI_FFS_FILE_HEADER       *FfsHeader,\r
-  IN EFI_PEI_SERVICES          **PeiServices\r
-  );\r
-\r
-/**\r
-  Entry point of the notification callback function itself within the PEIM.\r
-\r
-  @param  PeiServices      Indirect reference to the PEI Services Table.\r
-  @param  NotifyDescriptor Address of the notification descriptor data structure.\r
-  @param  Ppi              Address of the PPI that was installed.\r
-\r
-  @return Status code\r
-  \r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEIM_NOTIFY_ENTRY_POINT) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
-  IN EFI_PEI_NOTIFY_DESCRIPTOR  *NotifyDescriptor,\r
-  IN VOID                       *Ppi\r
-  );\r
-\r
-//\r
-// PEI Ppi Services List Descriptors\r
-//\r
-#define EFI_PEI_PPI_DESCRIPTOR_PIC              0x00000001\r
-#define EFI_PEI_PPI_DESCRIPTOR_PPI              0x00000010\r
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK  0x00000020\r
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH  0x00000040\r
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES     0x00000060\r
-#define EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST   0x80000000\r
-\r
-typedef struct {\r
-  UINTN     Flags;\r
-  EFI_GUID  *Guid;\r
-  VOID      *Ppi;\r
-} EFI_PEI_PPI_DESCRIPTOR;\r
-\r
-struct _EFI_PEI_NOTIFY_DESCRIPTOR {\r
-  UINTN                       Flags;\r
-  EFI_GUID                    *Guid;\r
-  EFI_PEIM_NOTIFY_ENTRY_POINT Notify;\r
-};\r
-\r
-/**\r
-  This service is the first one provided by the PEI Foundation.  This function \r
-  installs an interface in the PEI PPI database by GUID.  The purpose of the \r
-  service is to publish an interface that other parties can use to call \r
-  additional PEIMs.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table\r
-                           published by the PEI Foundation.\r
-  @param  PpiList          A pointer to the list of interfaces that the caller shall install.\r
-\r
-  @retval EFI_SUCCESS           The interface was successfully installed.\r
-  @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.\r
-  @retval EFI_OUT_OF_RESOURCES  There is no additional space in the PPI database.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_INSTALL_PPI) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_PEI_PPI_DESCRIPTOR      *PpiList\r
-  );\r
-\r
-/**\r
-  This function reinstalls an interface in the PEI PPI database by GUID. \r
-  The purpose of the service is to publish an interface that other parties \r
-  can use to replace a same-named interface in the protocol database \r
-  with a different interface. \r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table\r
-                           published by the PEI Foundation.\r
-  @param  OldPpi           A pointer to the former PPI in the database.\r
-  @param  NewPpi           A pointer to the new interfaces that the caller shall install.\r
-\r
-  @retval EFI_SUCCESS           The interface was successfully installed.\r
-  @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the \r
-                                list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.\r
-  @retval EFI_OUT_OF_RESOURCES  There is no additional space in the PPI database.\r
-  @retval EFI_NOT_FOUND         The PPI for which the reinstallation was requested has not been installed.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_REINSTALL_PPI) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN EFI_PEI_PPI_DESCRIPTOR          *OldPpi,\r
-  IN EFI_PEI_PPI_DESCRIPTOR          *NewPpi\r
-  );\r
-\r
-/**\r
-  This function locates an interface in the PEI PPI database by GUID. \r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES published by the PEI Foundation.\r
-  @param  Guid             A pointer to the GUID whose corresponding interface needs to be found.\r
-  @param  Instance         The N-th instance of the interface that is required.\r
-  @param  PpiDescriptor    A pointer to instance of the EFI_PEI_PPI_DESCRIPTOR.\r
-  @param  Ppi              A pointer to the instance of the interface.\r
-\r
-  @retval EFI_SUCCESS           The interface was successfully returned.\r
-  @retval EFI_NOT_FOUND         The PPI descriptor is not found in the database.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_LOCATE_PPI) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_GUID                    *Guid,\r
-  IN UINTN                       Instance,\r
-  IN OUT EFI_PEI_PPI_DESCRIPTOR  **PpiDescriptor,\r
-  IN OUT VOID                    **Ppi\r
-  );\r
-\r
-/**\r
-  This function installs a notification service to be called back when a \r
-  given interface is installed or reinstalled.  The purpose of the service \r
-  is to publish an interface that other parties can use to call additional PPIs \r
-  that may materialize later.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation\r
-  @param  NotifyList       A pointer to the list of notification interfaces that the caller shall install.\r
-\r
-  @retval EFI_SUCCESS           The interface was successfully installed.\r
-  @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the \r
-                                list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.\r
-  @retval EFI_OUT_OF_RESOURCES  There is no additional space in the PPI database.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_NOTIFY_PPI) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN EFI_PEI_NOTIFY_DESCRIPTOR       *NotifyList\r
-  );\r
-\r
-/**\r
-  This function returns the present value of the boot mode.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  BootMode         A pointer to contain the value of the boot mode.\r
-\r
-  @retval EFI_SUCCESS           The boot mode was returned successfully.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_GET_BOOT_MODE) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  OUT EFI_BOOT_MODE              *BootMode\r
-  );\r
-\r
-/**\r
-  This function sets the value of the boot mode.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation\r
-  @param  BootMode         The value of the boot mode to set.\r
-\r
-  @retval EFI_SUCCESS           The boot mode was returned successfully.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_SET_BOOT_MODE) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_BOOT_MODE               BootMode\r
-  );\r
-\r
-/**\r
-  This function returns the pointer to the list of Hand-Off Blocks (HOBs) in memory. \r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation\r
-  @param  HobList          A pointer to the list of HOBs that the PEI Foundation will initialize\r
-\r
-  @retval EFI_SUCCESS           The list was successfully returned.\r
-  @retval EFI_NOT_AVAILABLE_YET The HOB list is not yet published.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_GET_HOB_LIST) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN OUT VOID                    **HobList\r
-  );\r
-\r
-/**\r
-  This service published by the PEI Foundation abstracts the creation of a Hand-Off Block's (HOB's) headers.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  Type             The type of HOB to be installed.\r
-  @param  Length           The length of the HOB to be added.\r
-  @param  Hob              The address of a pointer that will contain the HOB header.\r
-\r
-  @retval EFI_SUCCESS           The HOB was successfully created.\r
-  @retval EFI_OUT_OF_RESOURCES  There is no additional space for HOB creation.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_CREATE_HOB) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN UINT16                      Type,\r
-  IN UINT16                      Length,\r
-  IN OUT VOID                    **Hob\r
-  );\r
-\r
-/**\r
-  The purpose of the service is to abstract the capability of the PEI \r
-  Foundation to discover instances of firmware volumes in the system. \r
-  Given the input file pointer, this service searches for the next \r
-  matching file in the Firmware File System (FFS) volume.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  Instance         This instance of the firmware volume to find. The value 0 is the Boot Firmware Volume (BFV).\r
-  @param  FwVolHeader      Pointer to the firmware volume header of the volume to return.\r
-\r
-  @retval EFI_SUCCESS           The volume was found.\r
-  @retval EFI_NOT_FOUND         The volume was not found.\r
-  @retval EFI_INVALID_PARAMETER FwVolHeader is NULL\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN UINTN                           Instance,\r
-  IN OUT EFI_FIRMWARE_VOLUME_HEADER  **FwVolHeader\r
-  );\r
-\r
-/**\r
-  The purpose of the service is to abstract the capability of the PEI \r
-  Foundation to discover instances of firmware files in the system. \r
-  Given the input file pointer, this service searches for the next matching \r
-  file in the Firmware File System (FFS) volume.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  SearchType       A filter to find files only of this type.\r
-  @param  FwVolHeader      Pointer to the firmware volume header of the volume to search.This parameter \r
-                           must point to a valid FFS volume.\r
-  @param  FileHeader       Pointer to the current file from which to begin searching.This pointer will be \r
-                           updated upon return to reflect the file found.\r
-\r
-  @retval EFI_SUCCESS           The file was found.\r
-  @retval EFI_NOT_FOUND         The file was not found.\r
-  @retval EFI_NOT_FOUND         The header checksum was not zero.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_FV_FILETYPE             SearchType,\r
-  IN EFI_FIRMWARE_VOLUME_HEADER  *FwVolHeader,\r
-  IN OUT EFI_FFS_FILE_HEADER     **FileHeader\r
-  );\r
-\r
-/**\r
-  Given the input file pointer, this service searches for the next \r
-  matching file in the Firmware File System (FFS) volume. \r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  SectionType      The value of the section type to find.\r
-  @param  FfsFileHeader    A pointer to the file header that contains the set of sections to be searched.\r
-  @param  SectionData      A pointer to the discovered section, if successful.\r
-\r
-  @retval EFI_SUCCESS           The section was found.\r
-  @retval EFI_NOT_FOUND         The section was not found.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_SECTION_TYPE            SectionType,\r
-  IN EFI_FFS_FILE_HEADER         *FfsFileHeader,\r
-  IN OUT VOID                    **SectionData\r
-  );\r
-\r
-/**\r
-  This function registers the found memory configuration with the PEI Foundation.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  MemoryBegin      The value of a region of installed memory\r
-  @param  MemoryLength     The corresponding length of a region of installed memory.\r
-\r
-  @retval EFI_SUCCESS           The region was successfully installed in a HOB.\r
-  @retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system.\r
-  @retval EFI_OUT_OF_RESOURCES  There is no additional space for HOB creation.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_INSTALL_PEI_MEMORY) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
-  IN EFI_PHYSICAL_ADDRESS       MemoryBegin,\r
-  IN UINT64                     MemoryLength\r
-  );\r
-\r
-/**\r
-  The purpose of the service is to publish an interface that allows \r
-  PEIMs to allocate memory ranges that are managed by the PEI Foundation.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  MemoryType       The type of memory to allocate.\r
-  @param  Pages            The number of contiguous 4 KB pages to allocate.\r
-  @param  Memory           Pointer to a physical address. On output, the address is set to the base \r
-                           of the page range that was allocated.\r
-\r
-  @retval EFI_SUCCESS           The memory range was successfully allocated.\r
-  @retval EFI_OUT_OF_RESOURCES  The pages could not be allocated.\r
-  @retval EFI_INVALID_PARAMETER Type is not equal to AllocateAnyPages.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_ALLOCATE_PAGES) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
-  IN EFI_MEMORY_TYPE            MemoryType,\r
-  IN UINTN                      Pages,\r
-  IN OUT EFI_PHYSICAL_ADDRESS   *Memory\r
-  );\r
-\r
-/**\r
-  The purpose of this service is to publish an interface that \r
-  allows PEIMs to allocate memory ranges that are managed by the PEI Foundation.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  Size             The number of bytes to allocate from the pool.\r
-  @param  Buffer           If the call succeeds, a pointer to a pointer to the allocated buffer; undefined otherwise.\r
-\r
-  @retval EFI_SUCCESS           The allocation was successful.\r
-  @retval EFI_OUT_OF_RESOURCES  There is not enough heap to allocate the requested size.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_ALLOCATE_POOL) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
-  IN UINTN                      Size,\r
-  OUT VOID                      **Buffer\r
-  );\r
-\r
-/**\r
-  This service copies the contents of one buffer to another buffer.\r
-\r
-  @param  Destination      Pointer to the destination buffer of the memory copy.\r
-  @param  Source           Pointer to the source buffer of the memory copy\r
-  @param  Length           Number of bytes to copy from Source to Destination.\r
-\r
-  @return None\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_PEI_COPY_MEM) (\r
-  IN VOID                       *Destination,\r
-  IN VOID                       *Source,\r
-  IN UINTN                      Length\r
-  );\r
-\r
-/**\r
-  The service fills a buffer with a specified value.\r
-\r
-  @param  Buffer           Pointer to the buffer to fill.\r
-  @param  Size             Number of bytes in Buffer to fill.\r
-  @param  Value            Value to fill Buffer with\r
-\r
-  @return None\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_PEI_SET_MEM) (\r
-  IN VOID                       *Buffer,\r
-  IN UINTN                      Size,\r
-  IN UINT8                      Value\r
-  );\r
-\r
-/**\r
-  This service publishes an interface that allows PEIMs to report status codes.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
-  @param  Type             Indicates the type of status code being reported.\r
-  @param  Value            Describes the current status of a hardware or\r
-                           software entity. This includes information about the class and\r
-                           subclass that is used to classify the entity as well as an operation.\r
-                           For progress codes, the operation is the current activity.\r
-                           For error codes, it is the exception.For debug codes,it is not defined at this time.\r
-  @param  Instance         The enumeration of a hardware or software entity within\r
-                           the system. A system may contain multiple entities that match a class/subclass\r
-                           pairing. The instance differentiates between them. An instance of 0 indicates\r
-                           that instance information is unavailable, not meaningful, or not relevant.\r
-                           Valid instance numbers start with 1.\r
-  @param  CallerId         This optional parameter may be used to identify the caller.\r
-                           This parameter allows the status code driver to apply different rules to\r
-                           different callers.\r
-  @param  Data             This optional parameter may be used to pass additional data.\r
-\r
-  @retval EFI_SUCCESS           The function completed successfully.\r
-  @retval EFI_NOT_AVAILABLE_YET No progress code provider has installed an interface in the system.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_REPORT_STATUS_CODE) (\r
-  IN EFI_PEI_SERVICES         **PeiServices,\r
-  IN EFI_STATUS_CODE_TYPE     Type,\r
-  IN EFI_STATUS_CODE_VALUE    Value,\r
-  IN UINT32                   Instance,\r
-  IN EFI_GUID                 *CallerId OPTIONAL,\r
-  IN EFI_STATUS_CODE_DATA     *Data OPTIONAL\r
-  );\r
-\r
-/**\r
-  Resets the entire platform.\r
-\r
-  @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES\r
-                           table published by the PEI Foundation.\r
-\r
-  @retval EFI_SUCCESS           The function completed successfully.\r
-  @retval EFI_NOT_AVAILABLE_YET The service has not been installed yet.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_RESET_SYSTEM) (\r
-  IN EFI_PEI_SERVICES   **PeiServices\r
-  );\r
-\r
-//\r
-// EFI PEI Services Table\r
-//\r
-#define PEI_SERVICES_SIGNATURE  0x5652455320494550ULL\r
-#define PEI_SERVICES_REVISION   ((PEI_SPECIFICATION_MAJOR_REVISION << 16) | (PEI_SPECIFICATION_MINOR_REVISION))\r
-\r
-struct _EFI_PEI_SERVICES {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
-  //\r
-  // PPI Functions\r
-  //\r
-  EFI_PEI_INSTALL_PPI           InstallPpi;\r
-  EFI_PEI_REINSTALL_PPI         ReInstallPpi;\r
-  EFI_PEI_LOCATE_PPI            LocatePpi;\r
-  EFI_PEI_NOTIFY_PPI            NotifyPpi;\r
-\r
-  //\r
-  // Boot Mode Functions\r
-  //\r
-  EFI_PEI_GET_BOOT_MODE         GetBootMode;\r
-  EFI_PEI_SET_BOOT_MODE         SetBootMode;\r
-\r
-  //\r
-  // HOB Functions\r
-  //\r
-  EFI_PEI_GET_HOB_LIST          GetHobList;\r
-  EFI_PEI_CREATE_HOB            CreateHob;\r
-\r
-  //\r
-  // Filesystem Functions\r
-  //\r
-  EFI_PEI_FFS_FIND_NEXT_VOLUME  FfsFindNextVolume;\r
-  EFI_PEI_FFS_FIND_NEXT_FILE    FfsFindNextFile;\r
-  EFI_PEI_FFS_FIND_SECTION_DATA FfsFindSectionData;\r
-\r
-  //\r
-  // Memory Functions\r
-  //\r
-  EFI_PEI_INSTALL_PEI_MEMORY    InstallPeiMemory;\r
-  EFI_PEI_ALLOCATE_PAGES        AllocatePages;\r
-  EFI_PEI_ALLOCATE_POOL         AllocatePool;\r
-  EFI_PEI_COPY_MEM              CopyMem;\r
-  EFI_PEI_SET_MEM               SetMem;\r
-\r
-  //\r
-  // Status Code\r
-  //\r
-  EFI_PEI_REPORT_STATUS_CODE    PeiReportStatusCode;\r
-\r
-  //\r
-  // Reset\r
-  //\r
-  EFI_PEI_RESET_SYSTEM          PeiResetSystem;\r
-\r
-  //\r
-  // Pointer to PPI interface\r
-  //\r
-  EFI_PEI_CPU_IO_PPI            *CpuIo;\r
-  EFI_PEI_PCI_CFG_PPI           *PciCfg;\r
-\r
-};\r
-\r
-typedef struct {\r
-  UINTN                   BootFirmwareVolume;\r
-  UINTN                   SizeOfCacheAsRam;\r
-  EFI_PEI_PPI_DESCRIPTOR  *DispatchTable;\r
-} EFI_PEI_STARTUP_DESCRIPTOR;\r
-\r
-#include <Common/EfiImage.h>\r
-#include <Common/StatusCode.h>\r
-#include <Common/BootScript.h>\r
-#include <Common/Capsule.h>\r
-\r
-#include <Guid/Apriori.h>\r
-#include <Guid/Capsule.h>\r
-#include <Guid/DxeServices.h>\r
-#include <Guid/HobList.h>\r
-#include <Guid/MemoryAllocationHob.h>\r
-#include <Guid/FirmwareFileSystem.h>\r
-#include <Guid/SmramMemoryReserve.h>\r
-#include <Guid/GlobalVariable.h>\r
-\r
-#include <Ppi/BlockIo.h>\r
-#include <Ppi/BootInRecoveryMode.h>\r
-#include <Ppi/BootScriptExecuter.h>\r
-#include <Ppi/DeviceRecoveryModule.h>\r
-#include <Ppi/DxeIpl.h>\r
-#include <Ppi/EndOfPeiPhase.h>\r
-#include <Ppi/FindFv.h>\r
-#include <Ppi/LoadFile.h>\r
-#include <Ppi/MasterBootMode.h>\r
-#include <Ppi/MemoryDiscovered.h>\r
-#include <Ppi/Pcd.h>\r
-#include <Ppi/ReadOnlyVariable.h>\r
-#include <Ppi/RecoveryModule.h>\r
-#include <Ppi/Reset.h>\r
-#include <Ppi/S3Resume.h>\r
-#include <Ppi/SecPlatformInformation.h>\r
-#include <Ppi/SectionExtraction.h>\r
-#include <Ppi/Security.h>\r
-#include <Ppi/Smbus.h>\r
-#include <Ppi/Stall.h>\r
-#include <Ppi/StatusCode.h>\r
-\r
-#include <Protocol/FirmwareVolumeBlock.h>\r
-#endif\r