TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
union | IA32_GDT |
Typedefs | |
typedef EFI_STATUS(EFIAPI * | FSP_FUNCTION) (IN VOID *Param1, IN VOID *Param2) |
Functions | |
UINT32 EFIAPI | AsmExecute32BitCode (IN UINT64 Function, IN UINT64 Param1, IN UINT64 Param2, IN IA32_DESCRIPTOR *InternalGdtr) |
EFI_STATUS | Execute32BitCode (IN UINT64 Function, IN UINT64 Param1, IN UINT64 Param2) |
EFI_STATUS | Execute64BitCode (IN UINT64 Function, IN UINT64 Param1, IN UINT64 Param2) |
Variables | |
GLOBAL_REMOVE_IF_UNREFERENCED IA32_GDT | mGdtEntries [] |
GLOBAL_REMOVE_IF_UNREFERENCED IA32_DESCRIPTOR | mGdt |
Execute 64-bit code in Long Mode. Provide a thunk function to transition from long mode to compatibility mode to execute 32-bit code and then transit back to long mode.
Copyright (c) 2014 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file DispatchExecute.c.
typedef EFI_STATUS(EFIAPI * FSP_FUNCTION) (IN VOID *Param1, IN VOID *Param2) |
FSP API functions.
[in] | Param1 | The first parameter to pass to 64bit code. |
[in] | Param2 | The second parameter to pass to 64bit code. |
Definition at line 24 of file DispatchExecute.c.
UINT32 EFIAPI AsmExecute32BitCode | ( | IN UINT64 | Function, |
IN UINT64 | Param1, | ||
IN UINT64 | Param2, | ||
IN IA32_DESCRIPTOR * | InternalGdtr | ||
) |
Assembly function to transition from long mode to compatibility mode to execute 32-bit code and then transit back to long mode.
[in] | Function | The 32bit code entry to be executed. |
[in] | Param1 | The first parameter to pass to 32bit code |
[in] | Param2 | The second parameter to pass to 32bit code |
[in] | InternalGdtr | The GDT and GDT descriptor used by this library |
EFI_STATUS Execute32BitCode | ( | IN UINT64 | Function, |
IN UINT64 | Param1, | ||
IN UINT64 | Param2 | ||
) |
Wrapper for a thunk to transition from long mode to compatibility mode to execute 32-bit code and then transit back to long mode.
[in] | Function | The 32bit code entry to be executed. |
[in] | Param1 | The first parameter to pass to 32bit code. |
[in] | Param2 | The second parameter to pass to 32bit code. |
Definition at line 108 of file DispatchExecute.c.
EFI_STATUS Execute64BitCode | ( | IN UINT64 | Function, |
IN UINT64 | Param1, | ||
IN UINT64 | Param2 | ||
) |
Wrapper to execute 64-bit code directly from long mode.
[in] | Function | The 64bit code entry to be executed. |
[in] | Param1 | The first parameter to pass to 64bit code. |
[in] | Param2 | The second parameter to pass to 64bit code. |
Definition at line 143 of file DispatchExecute.c.
GLOBAL_REMOVE_IF_UNREFERENCED IA32_DESCRIPTOR mGdt |
Definition at line 72 of file DispatchExecute.c.
GLOBAL_REMOVE_IF_UNREFERENCED IA32_GDT mGdtEntries[] |
Definition at line 51 of file DispatchExecute.c.