diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h b/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h new file mode 100644 index 00000000..37c5c1ac --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h @@ -0,0 +1,241 @@ +/** @file + Prototypes for the EBC Debugger hooks. + + Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _EFI_EBC_DEBUGGER_HOOK_H_ +#define _EFI_EBC_DEBUGGER_HOOK_H_ + +#include <Uefi.h> + +#include <Protocol/DebugSupport.h> +#include <Protocol/EbcVmTest.h> + +/** + The VM interpreter calls this function when an exception is detected. + + @param ExceptionType Specifies the processor exception detected. + @param ExceptionFlags Specifies the exception context. + @param VmPtr Pointer to a VM context for passing info to the + EFI debugger. + + @retval EFI_SUCCESS This function completed successfully. + +**/ +EFI_STATUS +EbcDebugSignalException ( + IN EFI_EXCEPTION_TYPE ExceptionType, + IN EXCEPTION_FLAGS ExceptionFlags, + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in InitializeEbcDriver. + + @param Handle - The EbcDebugProtocol handle. + @param EbcDebugProtocol - The EbcDebugProtocol interface. + +**/ +VOID +EbcDebuggerHookInit ( + IN EFI_HANDLE Handle, + IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol + ); + +/** + +The hook in UnloadImage for EBC Interpreter. + +**/ +VOID +EbcDebuggerHookUnload ( + VOID + ); + +/** + + The hook in EbcUnloadImage. + Currently do nothing here. + + @param Handle The EbcImage handle. + +**/ +VOID +EbcDebuggerHookEbcUnloadImage ( + IN EFI_HANDLE Handle + ); + + +/** + + Hooks in EbcSupport.c + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookExecuteEbcImageEntryPoint ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteEbcImageEntryPoint. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookEbcInterpret ( + IN VM_CONTEXT *VmPtr + ); + + +/** + The hook in EbcExecute, before ExecuteFunction. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookExecuteStart ( + IN VM_CONTEXT *VmPtr + ); + +/** + The hook in EbcExecute, after ExecuteFunction. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookExecuteEnd ( + IN VM_CONTEXT *VmPtr + ); + +/** + The hook in ExecuteCALL, before move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookCALLStart ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteCALL, after move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookCALLEnd ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteCALL, before call EbcLLCALLEX. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookCALLEXStart ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteCALL, after call EbcLLCALLEX. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookCALLEXEnd ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteRET, before move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookRETStart ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteRET, after move IP. + It will record trace information. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookRETEnd ( + IN VM_CONTEXT *VmPtr + ); + + +/** + + The hook in ExecuteJMP, before move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookJMPStart ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteJMP, after move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookJMPEnd ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteJMP8, before move IP. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookJMP8Start ( + IN VM_CONTEXT *VmPtr + ); + +/** + + The hook in ExecuteJMP8, after move IP.. + + @param VmPtr - pointer to VM context. + +**/ +VOID +EbcDebuggerHookJMP8End ( + IN VM_CONTEXT *VmPtr + ); + +#endif |