]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
MdeModulePkg/EbcDebugger: Compare ASCII char with '\0'
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebuggerHook.h
CommitLineData
6f0a3cd2
PB
1/** @file\r
2 Prototypes for the EBC Debugger hooks.\r
3\r
4 Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef _EFI_EBC_DEBUGGER_HOOK_H_\r
16#define _EFI_EBC_DEBUGGER_HOOK_H_\r
17\r
3e2c7843
PB
18#include <Uefi.h>\r
19\r
20#include <Protocol/DebugSupport.h>\r
21#include <Protocol/EbcVmTest.h>\r
22\r
23/**\r
24 The VM interpreter calls this function when an exception is detected.\r
25\r
26 @param ExceptionType Specifies the processor exception detected.\r
27 @param ExceptionFlags Specifies the exception context.\r
28 @param VmPtr Pointer to a VM context for passing info to the\r
29 EFI debugger.\r
30\r
31 @retval EFI_SUCCESS This function completed successfully.\r
32\r
33**/\r
34EFI_STATUS\r
35EbcDebugSignalException (\r
36 IN EFI_EXCEPTION_TYPE ExceptionType,\r
37 IN EXCEPTION_FLAGS ExceptionFlags,\r
38 IN VM_CONTEXT *VmPtr\r
39 );\r
40\r
6f0a3cd2
PB
41//\r
42// Hooks in EbcInt.c\r
43//\r
44VOID\r
45EbcDebuggerHookInit (\r
46 IN EFI_HANDLE Handle,\r
47 IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol\r
48 );\r
49\r
50VOID\r
51EbcDebuggerHookUnload (\r
52 VOID\r
53 );\r
54\r
55VOID\r
56EbcDebuggerHookEbcUnloadImage (\r
57 IN EFI_HANDLE Handle\r
58 );\r
59\r
60//\r
61// Hooks in EbcSupport.c\r
62//\r
63VOID\r
64EbcDebuggerHookExecuteEbcImageEntryPoint (\r
65 IN VM_CONTEXT *VmPtr\r
66 );\r
67\r
68VOID\r
69EbcDebuggerHookEbcInterpret (\r
70 IN VM_CONTEXT *VmPtr\r
71 );\r
72\r
73//\r
74// Hooks in EbcExecute.c\r
75//\r
76VOID\r
77EbcDebuggerHookExecuteStart (\r
78 IN VM_CONTEXT *VmPtr\r
79 );\r
80\r
81VOID\r
82EbcDebuggerHookExecuteEnd (\r
83 IN VM_CONTEXT *VmPtr\r
84 );\r
85\r
86VOID\r
87EbcDebuggerHookCALLStart (\r
88 IN VM_CONTEXT *VmPtr\r
89 );\r
90\r
91VOID\r
92EbcDebuggerHookCALLEnd (\r
93 IN VM_CONTEXT *VmPtr\r
94 );\r
95\r
96VOID\r
97EbcDebuggerHookCALLEXStart (\r
98 IN VM_CONTEXT *VmPtr\r
99 );\r
100\r
101VOID\r
102EbcDebuggerHookCALLEXEnd (\r
103 IN VM_CONTEXT *VmPtr\r
104 );\r
105\r
106VOID\r
107EbcDebuggerHookRETStart (\r
108 IN VM_CONTEXT *VmPtr\r
109 );\r
110\r
111VOID\r
112EbcDebuggerHookRETEnd (\r
113 IN VM_CONTEXT *VmPtr\r
114 );\r
115\r
116VOID\r
117EbcDebuggerHookJMPStart (\r
118 IN VM_CONTEXT *VmPtr\r
119 );\r
120\r
121VOID\r
122EbcDebuggerHookJMPEnd (\r
123 IN VM_CONTEXT *VmPtr\r
124 );\r
125\r
126VOID\r
127EbcDebuggerHookJMP8Start (\r
128 IN VM_CONTEXT *VmPtr\r
129 );\r
130\r
131VOID\r
132EbcDebuggerHookJMP8End (\r
133 IN VM_CONTEXT *VmPtr\r
134 );\r
135\r
136#endif\r