#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
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
//\r
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;\r
// Reset\r
//\r
EFI_PEI_RESET_SYSTEM ResetSystem;\r
- //\r
- // (the following interfaces are installed by publishing PEIM)\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
};\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