2 Prototypes for the EBC Debugger hooks.
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
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.
15 #ifndef _EFI_EBC_DEBUGGER_HOOK_H_
16 #define _EFI_EBC_DEBUGGER_HOOK_H_
20 #include <Protocol/DebugSupport.h>
21 #include <Protocol/EbcVmTest.h>
24 The VM interpreter calls this function when an exception is detected.
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
31 @retval EFI_SUCCESS This function completed successfully.
35 EbcDebugSignalException (
36 IN EFI_EXCEPTION_TYPE ExceptionType
,
37 IN EXCEPTION_FLAGS ExceptionFlags
,
43 The hook in InitializeEbcDriver.
45 @param Handle - The EbcDebugProtocol handle.
46 @param EbcDebugProtocol - The EbcDebugProtocol interface.
52 IN EFI_DEBUG_SUPPORT_PROTOCOL
*EbcDebugProtocol
57 The hook in UnloadImage for EBC Interpreter.
61 EbcDebuggerHookUnload (
67 The hook in EbcUnloadImage.
68 Currently do nothing here.
70 @param Handle The EbcImage handle.
74 EbcDebuggerHookEbcUnloadImage (
83 @param VmPtr - pointer to VM context.
87 EbcDebuggerHookExecuteEbcImageEntryPoint (
93 The hook in ExecuteEbcImageEntryPoint.
95 @param VmPtr - pointer to VM context.
99 EbcDebuggerHookEbcInterpret (
105 The hook in EbcExecute, before ExecuteFunction.
107 @param VmPtr - pointer to VM context.
111 EbcDebuggerHookExecuteStart (
116 The hook in EbcExecute, after ExecuteFunction.
118 @param VmPtr - pointer to VM context.
122 EbcDebuggerHookExecuteEnd (
127 The hook in ExecuteCALL, before move IP.
129 @param VmPtr - pointer to VM context.
133 EbcDebuggerHookCALLStart (
139 The hook in ExecuteCALL, after move IP.
141 @param VmPtr - pointer to VM context.
145 EbcDebuggerHookCALLEnd (
151 The hook in ExecuteCALL, before call EbcLLCALLEX.
153 @param VmPtr - pointer to VM context.
157 EbcDebuggerHookCALLEXStart (
163 The hook in ExecuteCALL, after call EbcLLCALLEX.
165 @param VmPtr - pointer to VM context.
169 EbcDebuggerHookCALLEXEnd (
175 The hook in ExecuteRET, before move IP.
177 @param VmPtr - pointer to VM context.
181 EbcDebuggerHookRETStart (
187 The hook in ExecuteRET, after move IP.
188 It will record trace information.
190 @param VmPtr - pointer to VM context.
194 EbcDebuggerHookRETEnd (
201 The hook in ExecuteJMP, before move IP.
203 @param VmPtr - pointer to VM context.
207 EbcDebuggerHookJMPStart (
213 The hook in ExecuteJMP, after move IP.
215 @param VmPtr - pointer to VM context.
219 EbcDebuggerHookJMPEnd (
225 The hook in ExecuteJMP8, before move IP.
227 @param VmPtr - pointer to VM context.
231 EbcDebuggerHookJMP8Start (
237 The hook in ExecuteJMP8, after move IP..
239 @param VmPtr - pointer to VM context.
243 EbcDebuggerHookJMP8End (