]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Csm/Include/Framework/DxeCis.h
OvmfPkg: Copy the required CSM components from framework packages
[mirror_edk2.git] / OvmfPkg / Csm / Include / Framework / DxeCis.h
diff --git a/OvmfPkg/Csm/Include/Framework/DxeCis.h b/OvmfPkg/Csm/Include/Framework/DxeCis.h
new file mode 100644 (file)
index 0000000..98a947e
--- /dev/null
@@ -0,0 +1,170 @@
+/** @file\r
+  Include file for definitions in the Intel Platform Innovation Framework for EFI\r
+  Driver Execution Environment Core Interface Specification (DXE CIS) Version 0.91.\r
+\r
+Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef _DXECIS_H_\r
+#define _DXECIS_H_\r
+\r
+#include <Protocol/StatusCode.h>\r
+\r
+/**\r
+  Functions of this type are used with the Framework MP Services Protocol and\r
+  the  SMM Services Table to execute a procedure on enabled APs.  The context\r
+  the AP should use durng execution is specified by Buffer.\r
+\r
+  @param[in]  Buffer   The pointer to the procedure's argument.\r
+\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)(\r
+  IN  VOID  *Buffer\r
+  );\r
+\r
+///\r
+/// The Framework EFI Runtime Services Table as an extension to the EFI 1.10 Runtime Services Table.\r
+///\r
+typedef struct {\r
+  //\r
+  // Table header for the Framework EFI Runtime Services Table\r
+  //\r
+  EFI_TABLE_HEADER                  Hdr;\r
+  //\r
+  // Time services\r
+  //\r
+  EFI_GET_TIME                      GetTime;\r
+  EFI_SET_TIME                      SetTime;\r
+  EFI_GET_WAKEUP_TIME               GetWakeupTime;\r
+  EFI_SET_WAKEUP_TIME               SetWakeupTime;\r
+  //\r
+  // Virtual memory services\r
+  //\r
+  EFI_SET_VIRTUAL_ADDRESS_MAP       SetVirtualAddressMap;\r
+  EFI_CONVERT_POINTER               ConvertPointer;\r
+  //\r
+  // Variable services\r
+  //\r
+  EFI_GET_VARIABLE                  GetVariable;\r
+  EFI_GET_NEXT_VARIABLE_NAME        GetNextVariableName;\r
+  EFI_SET_VARIABLE                  SetVariable;\r
+  //\r
+  // Misc\r
+  //\r
+  EFI_GET_NEXT_HIGH_MONO_COUNT      GetNextHighMonotonicCount;\r
+  EFI_RESET_SYSTEM                  ResetSystem;\r
+  ///\r
+  /// A Framework extension to the EFI 1.10 runtime table.\r
+  /// It was moved to a protocol to avoid conflict with UEFI 2.0.\r
+  ///\r
+  EFI_REPORT_STATUS_CODE            ReportStatusCode;\r
+} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+\r
+///\r
+/// The Framework EFI Boot Services Table. Complies with the DxeCis specification.\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
+#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\r
+\r
+#endif\r
+\r