]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspWrapperPkg/Library/BaseFspApiLib/X64/DispatchExecute.c
IntelFspPkg&IntelFspWrapperPkg: Remove them
[mirror_edk2.git] / IntelFspWrapperPkg / Library / BaseFspApiLib / X64 / DispatchExecute.c
diff --git a/IntelFspWrapperPkg/Library/BaseFspApiLib/X64/DispatchExecute.c b/IntelFspWrapperPkg/Library/BaseFspApiLib/X64/DispatchExecute.c
deleted file mode 100644 (file)
index b4beed0..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/** @file\r
-  Execute 32-bit code in Long Mode.\r
-  Provide a thunk function to transition from long mode to compatibility mode to execute 32-bit code and then transit\r
-  back to long mode.\r
-\r
-  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <Uefi.h>\r
-#include <Library/BaseLib.h>\r
-#include <FspApi.h>\r
-\r
-#pragma pack(1)\r
-typedef union {\r
-  struct {\r
-    UINT32  LimitLow    : 16;\r
-    UINT32  BaseLow     : 16;\r
-    UINT32  BaseMid     : 8;\r
-    UINT32  Type        : 4;\r
-    UINT32  System      : 1;\r
-    UINT32  Dpl         : 2;\r
-    UINT32  Present     : 1;\r
-    UINT32  LimitHigh   : 4;\r
-    UINT32  Software    : 1;\r
-    UINT32  Reserved    : 1;\r
-    UINT32  DefaultSize : 1;\r
-    UINT32  Granularity : 1;\r
-    UINT32  BaseHigh    : 8;\r
-  } Bits;\r
-  UINT64  Uint64;\r
-} IA32_GDT;\r
-#pragma pack()\r
-\r
-GLOBAL_REMOVE_IF_UNREFERENCED IA32_GDT mGdtEntries[] = {\r
-  {{0,      0,  0,  0,    0,  0,  0,  0,    0,  0, 0,  0,  0}}, /* 0x0:  reserve */\r
-  {{0xFFFF, 0,  0,  0xB,  1,  0,  1,  0xF,  0,  0, 1,  1,  0}}, /* 0x8:  compatibility mode */\r
-  {{0xFFFF, 0,  0,  0xB,  1,  0,  1,  0xF,  0,  1, 0,  1,  0}}, /* 0x10: for long mode */\r
-  {{0xFFFF, 0,  0,  0x3,  1,  0,  1,  0xF,  0,  0, 1,  1,  0}}, /* 0x18: data */\r
-  {{0,      0,  0,  0,    0,  0,  0,  0,    0,  0, 0,  0,  0}}, /* 0x20: reserve */\r
-};\r
-\r
-//\r
-// IA32 Gdt register\r
-//\r
-GLOBAL_REMOVE_IF_UNREFERENCED IA32_DESCRIPTOR mGdt = {\r
-  sizeof (mGdtEntries) - 1,\r
-  (UINTN) mGdtEntries\r
-  };\r
-\r
-/**\r
-  Assembly function to transition from long mode to compatibility mode to execute 32-bit code and then transit back to\r
-  long mode.\r
-\r
-  @param[in] Function     The 32bit code entry to be executed.\r
-  @param[in] Param1       The first parameter to pass to 32bit code\r
-  @param[in] Param2       The second parameter to pass to 32bit code\r
-  @param[in] InternalGdtr The GDT and GDT descriptor used by this library\r
-\r
-  @return status.\r
-**/\r
-UINT32\r
-AsmExecute32BitCode (\r
-  IN UINT64           Function,\r
-  IN UINT64           Param1,\r
-  IN UINT64           Param2,\r
-  IN IA32_DESCRIPTOR  *InternalGdtr\r
-  );\r
-\r
-/**\r
-  Wrapper for a thunk  to transition from long mode to compatibility mode to execute 32-bit code and then transit back to\r
-  long mode.\r
-\r
-  @param[in] Function     The 32bit code entry to be executed.\r
-  @param[in] Param1       The first parameter to pass to 32bit code.\r
-\r
-  @return EFI_STATUS.\r
-**/\r
-EFI_STATUS\r
-Execute32BitCode (\r
-  IN UINT64      Function,\r
-  IN UINT64      Param1\r
-  )\r
-{\r
-  EFI_STATUS       Status;\r
-  IA32_DESCRIPTOR  Idtr;\r
-\r
-  //\r
-  // Idtr might be changed inside of FSP. 32bit FSP only knows the <4G address.\r
-  // If IDTR.Base is >4G, FSP can not handle. So we need save/restore IDTR here for X64 only.\r
-  // Interrupt is already disabled here, so it is safety to update IDTR.\r
-  //\r
-  AsmReadIdtr (&Idtr);\r
-  Status = AsmExecute32BitCode (Function, Param1, 0, &mGdt);\r
-  AsmWriteIdtr (&Idtr);\r
-\r
-  return Status;\r
-}\r
-\r