]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Csm/LegacyBiosDxe/Ipf/IpfThunk.h
EmbeddedPkg: Removing ipf which is no longer supported from edk2.
[mirror_edk2.git] / IntelFrameworkModulePkg / Csm / LegacyBiosDxe / Ipf / IpfThunk.h
CommitLineData
bcecde14 1/** @file\r
2\r
3Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
4\r
5This program and the accompanying materials\r
6are licensed and made available under the terms and conditions\r
7of the BSD License which accompanies this distribution. The\r
8full text of the license may be found at\r
9http://opensource.org/licenses/bsd-license.php\r
10\r
11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#ifndef _IPF_THUNK_H_\r
17#define _IPF_THUNK_H_\r
18\r
19#include "LegacyBiosInterface.h"\r
20#include <IndustryStandard/Sal.h>\r
21\r
22/**\r
23 Template of real mode code.\r
24\r
25 @param CodeStart Start address of code.\r
26 @param CodeEnd End address of code\r
27 @param ReverseThunkStart Start of reverse thunk.\r
28 @param IntThunk Low memory thunk.\r
29\r
30**/\r
31VOID\r
32RealModeTemplate (\r
33 OUT UINTN *CodeStart,\r
34 OUT UINTN *CodeEnd,\r
35 OUT UINTN *ReverseThunkStart,\r
36 LOW_MEMORY_THUNK *IntThunk\r
37 );\r
38\r
39/**\r
40 Register physical address of Esal Data Area\r
41\r
42 @param ReverseThunkCodeAddress Reverse Thunk Address\r
43 @param IntThunkAddress IntThunk Address\r
44\r
45 @retval EFI_SUCCESS ESAL data area set successfully.\r
46\r
47**/\r
48EFI_STATUS\r
49EsalSetSalDataArea (\r
50 IN UINTN ReverseThunkCodeAddress,\r
51 IN UINTN IntThunkAddress\r
52 );\r
53\r
54/**\r
55 Get address of reverse thunk.\r
56\r
57 @retval EFI_SAL_SUCCESS Address of reverse thunk returned successfully.\r
58\r
59**/\r
60SAL_RETURN_REGS\r
61EsalGetReverseThunkAddress (\r
62 VOID\r
63 );\r
64\r
65typedef struct {\r
66 UINT32 Eax; // 0\r
67 UINT32 Ecx; // 4\r
68 UINT32 Edx; // 8\r
69 UINT32 Ebx; // 12\r
70 UINT32 Esp; // 16\r
71 UINT32 Ebp; // 20\r
72 UINT32 Esi; // 24\r
73 UINT32 Edi; // 28\r
74 UINT32 Eflag; // 32\r
75 UINT32 Eip; // 36\r
76 UINT16 Cs; // 40\r
77 UINT16 Ds; // 42\r
78 UINT16 Es; // 44\r
79 UINT16 Fs; // 46\r
80 UINT16 Gs; // 48\r
81 UINT16 Ss; // 50\r
82} IPF_DWORD_REGS;\r
83\r
84/**\r
85 Entrypoint of IA32 code.\r
86\r
87 @param CallTypeData Data of call type\r
88 @param DwordRegister Register set of IA32 general registers\r
89 and segment registers\r
90 @param StackPointer Stack pointer.\r
91 @param StackSize Size of stack.\r
92\r
93**/\r
94VOID\r
95EfiIaEntryPoint (\r
96 UINT64 CallTypeData,\r
97 IPF_DWORD_REGS *DwordRegister,\r
98 UINT64 StackPointer,\r
99 UINT64 StackSize\r
100 );\r
101\r
102#endif\r