]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/PeiCis.h
Clean the public header files to remove the unnecessary include files.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / PeiCis.h
index b58f3dcd1c1048533eb07a49842a78e38fdccaf0..db0b185a1faabaa989dc97d7218108894243b165 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
-  PI PEI master include file. This file should match the PI spec.\r
+  Include file for definitions in the Intel Platform Innovation Framework for EFI\r
+  Pre-EFI Initialization Core Interface Specification (PEI CIS) Version 0.91.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
+  Copyright (c) 2006 - 2009, 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
   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
-  @par Revision Reference:\r
-  Version 1.0.\r
-\r
 **/\r
 \r
 #ifndef __PEICIS_H__\r
 #define __PEICIS_H__\r
 \r
-#include <PiPei.h>\r
 #include <Ppi/PciCfg.h>\r
+//\r
+// Framework PEI Specification Revision information\r
+//\r
+#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION    0\r
+#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION    91\r
+\r
+\r
+//\r
+// PEI services signature and Revision defined in Framework PEI spec\r
+//\r
+#define FRAMEWORK_PEI_SERVICES_SIGNATURE               0x5652455320494550ULL\r
+#define FRAMEWORK_PEI_SERVICES_REVISION               ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))\r
+\r
+\r
 \r
 typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;\r
 \r
@@ -36,8 +47,8 @@ typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;
 typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_PEIM_ENTRY_POINT)(\r
-  IN EFI_FFS_FILE_HEADER       *FfsHeader,\r
-  IN EFI_PEI_SERVICES          **PeiServices\r
+  IN EFI_FFS_FILE_HEADER            *FfsHeader,\r
+  IN EFI_PEI_SERVICES               **PeiServices\r
   );\r
   \r
 /**\r
@@ -57,10 +68,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME) (\r
-  IN FRAMEWORK_EFI_PEI_SERVICES      **PeiServices,\r
-  IN UINTN                           Instance,\r
-  IN OUT EFI_FIRMWARE_VOLUME_HEADER  **FwVolHeader\r
+(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME)(\r
+  IN FRAMEWORK_EFI_PEI_SERVICES     **PeiServices,\r
+  IN UINTN                          Instance,\r
+  IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader\r
   );\r
     \r
 /**\r
@@ -76,18 +87,18 @@ EFI_STATUS
   @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
+  @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 FRAMEWORK_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
+(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE)(\r
+  IN FRAMEWORK_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
@@ -99,66 +110,102 @@ EFI_STATUS
   @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
+  @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 FRAMEWORK_EFI_PEI_SERVICES  **PeiServices,\r
-  IN EFI_SECTION_TYPE            SectionType,\r
-  IN EFI_FFS_FILE_HEADER         *FfsFileHeader,\r
-  IN OUT VOID                    **SectionData\r
+(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA)(\r
+  IN FRAMEWORK_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
+///\r
+///  FRAMEWORK_EFI_PEI_SERVICES is a collection of functions whose implementation is provided by the PEI\r
+///  Foundation. The table is located in the temporary or permanent memory, depending upon the capabilities \r
+///  and phase of execution of PEI.\r
+///  \r
+///  These services fall into various classes, including the following:\r
+///  - Managing the boot mode\r
+///  - Allocating both early and permanent memory\r
+///  - Supporting the Firmware File System (FFS)\r
+///  - Abstracting the PPI database abstraction\r
+///  - Creating Hand-Off Blocks (HOBs)\r
+///        \r
 struct _FRAMEWORK_EFI_PEI_SERVICES {\r
-  EFI_TABLE_HEADER            Hdr;\r
+  EFI_TABLE_HEADER                  Hdr;\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
+  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
   // Boot Mode Functions\r
   //\r
-  EFI_PEI_GET_BOOT_MODE       GetBootMode;\r
-  EFI_PEI_SET_BOOT_MODE       SetBootMode;\r
+  EFI_PEI_GET_BOOT_MODE             GetBootMode;\r
+  EFI_PEI_SET_BOOT_MODE             SetBootMode;\r
   //\r
   // HOB Functions\r
   //\r
-  EFI_PEI_GET_HOB_LIST        GetHobList;\r
-  EFI_PEI_CREATE_HOB          CreateHob;\r
+  EFI_PEI_GET_HOB_LIST              GetHobList;\r
+  EFI_PEI_CREATE_HOB                CreateHob;\r
   //\r
   // Firmware Volume 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
+  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
   // PEI 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
+  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
+  // (the following interfaces are installed by publishing PEIM)\r
   // Status Code\r
-  EFI_PEI_REPORT_STATUS_CODE  ReportStatusCode;\r
   //\r
-  // Reset\r
+  EFI_PEI_REPORT_STATUS_CODE        ReportStatusCode;\r
   //\r
-  EFI_PEI_RESET_SYSTEM        ResetSystem;\r
+  // Reset\r
   //\r
-  // (the following interfaces are installed by publishing PEIM)\r
+  EFI_PEI_RESET_SYSTEM              ResetSystem;\r
+  ///\r
+  /// Inconsistent with specification here: \r
+  /// In Framework Spec, PeiCis0.91, CpuIo and PciCfg is NOT pointers. \r
+  ///\r
+  \r
   //\r
   // I/O Abstractions\r
   //\r
-  EFI_PEI_CPU_IO_PPI          *CpuIo;\r
-  EFI_PEI_PCI_CFG_PPI        *PciCfg;\r
+  EFI_PEI_CPU_IO_PPI                *CpuIo;\r
+  EFI_PEI_PCI_CFG_PPI               *PciCfg;\r
 };\r
-  \r
+///\r
+/// Enumeration of reset types defined in Framework Spec PeiCis\r
+///\r
+typedef enum {\r
+  ///\r
+  /// Used to induce a system-wide reset. This sets all circuitry within the \r
+  /// system to its initial state.  This type of reset is asynchronous to system\r
+  /// operation and operates withgout regard to cycle boundaries.  EfiColdReset \r
+  /// is tantamount to a system power cycle.\r
+  ///\r
+  EfiPeiResetCold,\r
+  ///\r
+  /// Used to induce a system-wide initialization. The processors are set to their\r
+  /// initial state, and pending cycles are not corrupted.  If the system does \r
+  /// not support this reset type, then an EfiResetCold must be performed.\r
+  ///\r
+  EfiPeiResetWarm,\r
+} EFI_PEI_RESET_TYPE;\r
+\r
 #endif  \r
+\r