]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
MdeModulePkg: Clean up source files
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebuggerHook.h
1 /** @file
2 Prototypes for the EBC Debugger hooks.
3
4 Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef _EFI_EBC_DEBUGGER_HOOK_H_
16 #define _EFI_EBC_DEBUGGER_HOOK_H_
17
18 #include <Uefi.h>
19
20 #include <Protocol/DebugSupport.h>
21 #include <Protocol/EbcVmTest.h>
22
23 /**
24 The VM interpreter calls this function when an exception is detected.
25
26 @param ExceptionType Specifies the processor exception detected.
27 @param ExceptionFlags Specifies the exception context.
28 @param VmPtr Pointer to a VM context for passing info to the
29 EFI debugger.
30
31 @retval EFI_SUCCESS This function completed successfully.
32
33 **/
34 EFI_STATUS
35 EbcDebugSignalException (
36 IN EFI_EXCEPTION_TYPE ExceptionType,
37 IN EXCEPTION_FLAGS ExceptionFlags,
38 IN VM_CONTEXT *VmPtr
39 );
40
41 /**
42
43 The hook in InitializeEbcDriver.
44
45 @param Handle - The EbcDebugProtocol handle.
46 @param EbcDebugProtocol - The EbcDebugProtocol interface.
47
48 **/
49 VOID
50 EbcDebuggerHookInit (
51 IN EFI_HANDLE Handle,
52 IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol
53 );
54
55 /**
56
57 The hook in UnloadImage for EBC Interpreter.
58
59 **/
60 VOID
61 EbcDebuggerHookUnload (
62 VOID
63 );
64
65 /**
66
67 The hook in EbcUnloadImage.
68 Currently do nothing here.
69
70 @param Handle The EbcImage handle.
71
72 **/
73 VOID
74 EbcDebuggerHookEbcUnloadImage (
75 IN EFI_HANDLE Handle
76 );
77
78
79 /**
80
81 Hooks in EbcSupport.c
82
83 @param VmPtr - pointer to VM context.
84
85 **/
86 VOID
87 EbcDebuggerHookExecuteEbcImageEntryPoint (
88 IN VM_CONTEXT *VmPtr
89 );
90
91 /**
92
93 The hook in ExecuteEbcImageEntryPoint.
94
95 @param VmPtr - pointer to VM context.
96
97 **/
98 VOID
99 EbcDebuggerHookEbcInterpret (
100 IN VM_CONTEXT *VmPtr
101 );
102
103
104 /**
105 The hook in EbcExecute, before ExecuteFunction.
106
107 @param VmPtr - pointer to VM context.
108
109 **/
110 VOID
111 EbcDebuggerHookExecuteStart (
112 IN VM_CONTEXT *VmPtr
113 );
114
115 /**
116 The hook in EbcExecute, after ExecuteFunction.
117
118 @param VmPtr - pointer to VM context.
119
120 **/
121 VOID
122 EbcDebuggerHookExecuteEnd (
123 IN VM_CONTEXT *VmPtr
124 );
125
126 /**
127 The hook in ExecuteCALL, before move IP.
128
129 @param VmPtr - pointer to VM context.
130
131 **/
132 VOID
133 EbcDebuggerHookCALLStart (
134 IN VM_CONTEXT *VmPtr
135 );
136
137 /**
138
139 The hook in ExecuteCALL, after move IP.
140
141 @param VmPtr - pointer to VM context.
142
143 **/
144 VOID
145 EbcDebuggerHookCALLEnd (
146 IN VM_CONTEXT *VmPtr
147 );
148
149 /**
150
151 The hook in ExecuteCALL, before call EbcLLCALLEX.
152
153 @param VmPtr - pointer to VM context.
154
155 **/
156 VOID
157 EbcDebuggerHookCALLEXStart (
158 IN VM_CONTEXT *VmPtr
159 );
160
161 /**
162
163 The hook in ExecuteCALL, after call EbcLLCALLEX.
164
165 @param VmPtr - pointer to VM context.
166
167 **/
168 VOID
169 EbcDebuggerHookCALLEXEnd (
170 IN VM_CONTEXT *VmPtr
171 );
172
173 /**
174
175 The hook in ExecuteRET, before move IP.
176
177 @param VmPtr - pointer to VM context.
178
179 **/
180 VOID
181 EbcDebuggerHookRETStart (
182 IN VM_CONTEXT *VmPtr
183 );
184
185 /**
186
187 The hook in ExecuteRET, after move IP.
188 It will record trace information.
189
190 @param VmPtr - pointer to VM context.
191
192 **/
193 VOID
194 EbcDebuggerHookRETEnd (
195 IN VM_CONTEXT *VmPtr
196 );
197
198
199 /**
200
201 The hook in ExecuteJMP, before move IP.
202
203 @param VmPtr - pointer to VM context.
204
205 **/
206 VOID
207 EbcDebuggerHookJMPStart (
208 IN VM_CONTEXT *VmPtr
209 );
210
211 /**
212
213 The hook in ExecuteJMP, after move IP.
214
215 @param VmPtr - pointer to VM context.
216
217 **/
218 VOID
219 EbcDebuggerHookJMPEnd (
220 IN VM_CONTEXT *VmPtr
221 );
222
223 /**
224
225 The hook in ExecuteJMP8, before move IP.
226
227 @param VmPtr - pointer to VM context.
228
229 **/
230 VOID
231 EbcDebuggerHookJMP8Start (
232 IN VM_CONTEXT *VmPtr
233 );
234
235 /**
236
237 The hook in ExecuteJMP8, after move IP..
238
239 @param VmPtr - pointer to VM context.
240
241 **/
242 VOID
243 EbcDebuggerHookJMP8End (
244 IN VM_CONTEXT *VmPtr
245 );
246
247 #endif