/** @file Prototypes for the EBC Debugger hooks. Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _EFI_EBC_DEBUGGER_HOOK_H_ #define _EFI_EBC_DEBUGGER_HOOK_H_ #include #include #include /** 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