]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
MdeModulePkg/EbcDebugger: Compare ASCII char with '\0'
[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 // Hooks in EbcInt.c
43 //
44 VOID
45 EbcDebuggerHookInit (
46 IN EFI_HANDLE Handle,
47 IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol
48 );
49
50 VOID
51 EbcDebuggerHookUnload (
52 VOID
53 );
54
55 VOID
56 EbcDebuggerHookEbcUnloadImage (
57 IN EFI_HANDLE Handle
58 );
59
60 //
61 // Hooks in EbcSupport.c
62 //
63 VOID
64 EbcDebuggerHookExecuteEbcImageEntryPoint (
65 IN VM_CONTEXT *VmPtr
66 );
67
68 VOID
69 EbcDebuggerHookEbcInterpret (
70 IN VM_CONTEXT *VmPtr
71 );
72
73 //
74 // Hooks in EbcExecute.c
75 //
76 VOID
77 EbcDebuggerHookExecuteStart (
78 IN VM_CONTEXT *VmPtr
79 );
80
81 VOID
82 EbcDebuggerHookExecuteEnd (
83 IN VM_CONTEXT *VmPtr
84 );
85
86 VOID
87 EbcDebuggerHookCALLStart (
88 IN VM_CONTEXT *VmPtr
89 );
90
91 VOID
92 EbcDebuggerHookCALLEnd (
93 IN VM_CONTEXT *VmPtr
94 );
95
96 VOID
97 EbcDebuggerHookCALLEXStart (
98 IN VM_CONTEXT *VmPtr
99 );
100
101 VOID
102 EbcDebuggerHookCALLEXEnd (
103 IN VM_CONTEXT *VmPtr
104 );
105
106 VOID
107 EbcDebuggerHookRETStart (
108 IN VM_CONTEXT *VmPtr
109 );
110
111 VOID
112 EbcDebuggerHookRETEnd (
113 IN VM_CONTEXT *VmPtr
114 );
115
116 VOID
117 EbcDebuggerHookJMPStart (
118 IN VM_CONTEXT *VmPtr
119 );
120
121 VOID
122 EbcDebuggerHookJMPEnd (
123 IN VM_CONTEXT *VmPtr
124 );
125
126 VOID
127 EbcDebuggerHookJMP8Start (
128 IN VM_CONTEXT *VmPtr
129 );
130
131 VOID
132 EbcDebuggerHookJMP8End (
133 IN VM_CONTEXT *VmPtr
134 );
135
136 #endif