]> git.proxmox.com Git - mirror_edk2.git/commitdiff
to fill the gap between Framework and code to fix the bug #202405, #202419, #202418...
authorjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 8 Jul 2009 09:38:08 +0000 (09:38 +0000)
committerjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 8 Jul 2009 09:38:08 +0000 (09:38 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8817 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkPkg/Include/Framework/DxeCis.h
IntelFrameworkPkg/Include/Framework/PeiCis.h
IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h

index 28582353bca0eafd1ef80627cb4f812bf5719c0a..efc7ae807fd1e974aecf20f5921b0dee4e5cd201 100644 (file)
@@ -68,6 +68,103 @@ typedef struct {
   EFI_REPORT_STATUS_CODE            ReportStatusCode;\r
 } FRAMEWORK_EFI_RUNTIME_SERVICES;\r
 \r
+///\r
+/// Framework EFI Boot Services Table which comply with DxeCis spec.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// The table header for the EFI Boot Services Table.\r
+  ///\r
+  EFI_TABLE_HEADER                Hdr;\r
+\r
+  //\r
+  // Task Priority Services\r
+  //\r
+  EFI_RAISE_TPL                   RaiseTPL;\r
+  EFI_RESTORE_TPL                 RestoreTPL;\r
+\r
+  //\r
+  // Memory Services\r
+  //\r
+  EFI_ALLOCATE_PAGES              AllocatePages;\r
+  EFI_FREE_PAGES                  FreePages;\r
+  EFI_GET_MEMORY_MAP              GetMemoryMap;\r
+  EFI_ALLOCATE_POOL               AllocatePool;\r
+  EFI_FREE_POOL                   FreePool;\r
+\r
+  //\r
+  // Event & Timer Services\r
+  //\r
+  EFI_CREATE_EVENT                  CreateEvent;\r
+  EFI_SET_TIMER                     SetTimer;\r
+  EFI_WAIT_FOR_EVENT                WaitForEvent;\r
+  EFI_SIGNAL_EVENT                  SignalEvent;\r
+  EFI_CLOSE_EVENT                   CloseEvent;\r
+  EFI_CHECK_EVENT                   CheckEvent;\r
+\r
+  //\r
+  // Protocol Handler Services\r
+  //\r
+  EFI_INSTALL_PROTOCOL_INTERFACE    InstallProtocolInterface;\r
+  EFI_REINSTALL_PROTOCOL_INTERFACE  ReinstallProtocolInterface;\r
+  EFI_UNINSTALL_PROTOCOL_INTERFACE  UninstallProtocolInterface;\r
+  EFI_HANDLE_PROTOCOL               HandleProtocol;\r
+  EFI_HANDLE_PROTOCOL               PcHandleProtocol;\r
+  EFI_REGISTER_PROTOCOL_NOTIFY      RegisterProtocolNotify;\r
+  EFI_LOCATE_HANDLE                 LocateHandle;\r
+  EFI_LOCATE_DEVICE_PATH            LocateDevicePath;\r
+  EFI_INSTALL_CONFIGURATION_TABLE   InstallConfigurationTable;\r
+\r
+  //\r
+  // Image Services\r
+  //\r
+  EFI_IMAGE_LOAD                    LoadImage;\r
+  EFI_IMAGE_START                   StartImage;\r
+  EFI_EXIT                          Exit;\r
+  EFI_IMAGE_UNLOAD                  UnloadImage;\r
+  EFI_EXIT_BOOT_SERVICES            ExitBootServices;\r
+\r
+  //\r
+  // Miscellaneous Services\r
+  //\r
+  EFI_GET_NEXT_MONOTONIC_COUNT      GetNextMonotonicCount;\r
+  EFI_STALL                         Stall;\r
+  EFI_SET_WATCHDOG_TIMER            SetWatchdogTimer;\r
+\r
+  //\r
+  // DriverSupport Services\r
+  //\r
+  EFI_CONNECT_CONTROLLER            ConnectController;\r
+  EFI_DISCONNECT_CONTROLLER         DisconnectController;\r
+\r
+  //\r
+  // Open and Close Protocol Services\r
+  //\r
+  EFI_OPEN_PROTOCOL                 OpenProtocol;\r
+  EFI_CLOSE_PROTOCOL                CloseProtocol;\r
+  EFI_OPEN_PROTOCOL_INFORMATION     OpenProtocolInformation;\r
+\r
+  //\r
+  // Library Services\r
+  //\r
+  EFI_PROTOCOLS_PER_HANDLE          ProtocolsPerHandle;\r
+  EFI_LOCATE_HANDLE_BUFFER          LocateHandleBuffer;\r
+  EFI_LOCATE_PROTOCOL               LocateProtocol;\r
+  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES    InstallMultipleProtocolInterfaces;\r
+  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES  UninstallMultipleProtocolInterfaces;\r
+\r
+  //\r
+  // 32-bit CRC Services\r
+  //\r
+  EFI_CALCULATE_CRC32               CalculateCrc32;\r
+\r
+  //\r
+  // Miscellaneous Services\r
+  //\r
+  EFI_COPY_MEM                      CopyMem;\r
+  EFI_SET_MEM                       SetMem;\r
+} FRAMEWORK_EFI_BOOT_SERVICES;\r
+\r
 #define EFI_EVENT_RUNTIME_CONTEXT       0x20000000\r
 #define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
 #define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
index 90a1a91f434fffe23464c72e4487c94eca639f04..a50b1767e5439bed9f8e74f76fcaac24b77cec3b 100644 (file)
 \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
+/// Inconsistent with specification here: \r
+/// In Framework Spec, PeiCis0.91, FRAMEWORK_PEI_SERVICES_SIGNATURE is defined as 0x5652455320494550. But \r
+/// to pass multiple tool chain, it is append a ULL.\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
@@ -156,6 +174,7 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
   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
@@ -164,13 +183,29 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
   //\r
   EFI_PEI_RESET_SYSTEM              ResetSystem;\r
   //\r
-  // (the following interfaces are installed by publishing PEIM)\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
index d03c933c4d68202ed01711d2cea79806814b790b..2a1b76ab264d3ae7ea77c619b7028548ece44d91 100644 (file)
@@ -37,6 +37,7 @@ typedef struct _EFI_PEI_READ_ONLY_VARIABLE_PPI  EFI_PEI_READ_ONLY_VARIABLE_PPI;
 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002\r
 #define EFI_VARIABLE_RUNTIME_ACCESS     0x00000004\r
 \r
+\r
 /**\r
   Get Variable value by Name and GUID pair\r
 \r
@@ -104,8 +105,8 @@ EFI_STATUS
 /// variable services.  \r
 ///\r
 struct _EFI_PEI_READ_ONLY_VARIABLE_PPI {\r
-  EFI_PEI_GET_VARIABLE            PeiGetVariable;         ///< A service to ascertain a given variable name.\r
-  EFI_PEI_GET_NEXT_VARIABLE_NAME  PeiGetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable\r
+  EFI_PEI_GET_VARIABLE            GetVariable;         ///< A service to ascertain a given variable name.\r
+  EFI_PEI_GET_NEXT_VARIABLE_NAME  GetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable\r
 };\r
 \r
 extern EFI_GUID gEfiPeiReadOnlyVariablePpiGuid;\r