]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.c
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / SmmControl2OnSmmControlThunk / SmmControl2OnSmmControlThunk.c
diff --git a/EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.c b/EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.c
deleted file mode 100644 (file)
index 651d194..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/** @file\r
-  SMM Control2 Protocol on SMM Control Protocol Thunk driver.\r
-\r
-  Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
-  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
-**/\r
-\r
-#include "SmmControl2OnSmmControlThunk.h"\r
-\r
-EFI_SMM_CONTROL2_PROTOCOL gSmmControl2 = {\r
-  SmmControl2Trigger,\r
-  SmmControl2Clear,\r
-  0\r
-};\r
-\r
-EFI_SMM_CONTROL_PROTOCOL  *mSmmControl;\r
-UINT8                      mDataPort;\r
-\r
-/**\r
-  Invokes SMI activation from either the preboot or runtime environment.\r
-\r
-  This function generates an SMI.\r
-\r
-  @param[in]     This                The EFI_SMM_CONTROL2_PROTOCOL instance.\r
-  @param[in, out] CommandPort         The value written to the command port.\r
-  @param[in, out] DataPort            The value written to the data port.\r
-  @param[in]     Periodic            Optional mechanism to engender a periodic stream.\r
-  @param[in]     ActivationInterval  Optional parameter to repeat at this period one\r
-                                     time or, if the Periodic Boolean is set, periodically.\r
-\r
-  @retval EFI_SUCCESS            The SMI/PMI has been engendered.\r
-  @retval EFI_DEVICE_ERROR       The timing is unsupported.\r
-  @retval EFI_INVALID_PARAMETER  The activation period is unsupported.\r
-  @retval EFI_INVALID_PARAMETER  The last periodic activation has not been cleared. \r
-  @retval EFI_NOT_STARTED        The SMM base service has not been initialized.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SmmControl2Trigger (\r
-  IN CONST EFI_SMM_CONTROL2_PROTOCOL  *This,\r
-  IN OUT UINT8                        *CommandPort       OPTIONAL,\r
-  IN OUT UINT8                        *DataPort          OPTIONAL,\r
-  IN BOOLEAN                          Periodic           OPTIONAL,\r
-  IN UINTN                            ActivationInterval OPTIONAL\r
-  )\r
-{\r
-  UINTN  ArgumentBufferSize;\r
-\r
-  ArgumentBufferSize = 0;\r
-  if (CommandPort != NULL) {\r
-    ArgumentBufferSize = 1;\r
-  }\r
-  if (DataPort != NULL) {\r
-    IoWrite8 (mDataPort, *DataPort);\r
-  }\r
-  return mSmmControl->Trigger (mSmmControl, (INT8 *)CommandPort, &ArgumentBufferSize, Periodic, ActivationInterval);\r
-}\r
-\r
-/**\r
-  Clears any system state that was created in response to the Trigger() call.\r
-\r
-  This function acknowledges and causes the deassertion of the SMI activation source.\r
-\r
-  @param[in] This                The EFI_SMM_CONTROL2_PROTOCOL instance.\r
-  @param[in] Periodic            Optional parameter to repeat at this period one time\r
-\r
-  @retval EFI_SUCCESS            The SMI/PMI has been engendered.\r
-  @retval EFI_DEVICE_ERROR       The source could not be cleared.\r
-  @retval EFI_INVALID_PARAMETER  The service did not support the Periodic input argument.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SmmControl2Clear (\r
-  IN CONST EFI_SMM_CONTROL2_PROTOCOL  *This,\r
-  IN BOOLEAN                          Periodic OPTIONAL\r
-  )\r
-{\r
-  return mSmmControl->Clear (mSmmControl, Periodic);\r
-}\r
-\r
-/**\r
-  Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.\r
-\r
-  This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.\r
-  It convers pointer to new virtual address.\r
-\r
-  @param[in]  Event        Event whose notification function is being invoked.\r
-  @param[in]  Context      Pointer to the notification function's context.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetVirtualAddressNotify (\r
-  IN EFI_EVENT  Event,\r
-  IN VOID       *Context\r
-  )\r
-{\r
-  EfiConvertPointer (0x0, (VOID **)&mSmmControl);\r
-}\r
-\r
-/**\r
-  Entry Point for this thunk driver.\r
-\r
-  @param[in] ImageHandle  Image handle of this driver.\r
-  @param[in] SystemTable  A Pointer to the EFI System Table.\r
-\r
-  @retval EFI_SUCCESS  The entry point is executed successfully.\r
-  @retval other        Some error occurred when executing this entry point.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SmmControl2ThunkMain (\r
-  IN EFI_HANDLE        ImageHandle,\r
-  IN EFI_SYSTEM_TABLE  *SystemTable\r
-  )\r
-{\r
-  EFI_STATUS               Status;\r
-  EFI_EVENT                Event;\r
-  EFI_SMM_CONTROL_REGISTER RegisterInfo;\r
-\r
-  ///\r
-  /// Locate Framework SMM Control Protocol\r
-  ///\r
-  Status = gBS->LocateProtocol (&gEfiSmmControlProtocolGuid, NULL, (VOID **)&mSmmControl);\r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  gSmmControl2.MinimumTriggerPeriod = mSmmControl->MinimumTriggerPeriod;\r
-\r
-  Status = mSmmControl->GetRegisterInfo (mSmmControl, &RegisterInfo);\r
-  ASSERT_EFI_ERROR (Status);\r
-  mDataPort = RegisterInfo.SmiDataRegister;\r
-\r
-  ///\r
-  /// Create event on SetVirtualAddressMap() to convert mSmmControl from a physical address to a virtual address\r
-  ///\r
-  Status = gBS->CreateEventEx (\r
-                  EVT_NOTIFY_SIGNAL,\r
-                  TPL_NOTIFY,\r
-                  SetVirtualAddressNotify,\r
-                  NULL,\r
-                  &gEfiEventVirtualAddressChangeGuid,\r
-                  &Event\r
-                  );\r
-                  \r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  ///\r
-  /// Publish framework SMM Control Protocol\r
-  ///\r
-  Status = gBS->InstallProtocolInterface (\r
-                  &ImageHandle,\r
-                  &gEfiSmmControl2ProtocolGuid,\r
-                  EFI_NATIVE_INTERFACE,\r
-                  &gSmmControl2\r
-                  );\r
-  return Status;\r
-}\r
-\r