]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h
MdeModulePkg/EbcDxe: add EBC Debugger
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbDisasmSupport.h
1 /*++
2
3 Copyright (c) 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 EdbDisasmSupport.h
15
16 Abstract:
17
18
19 --*/
20
21 #ifndef _EFI_EDB_DISASM_SUPPORT_H_
22 #define _EFI_EDB_DISASM_SUPPORT_H_
23
24 #include <Uefi.h>
25
26 #define EDB_BYTECODE_NUMBER_IN_LINE 5
27
28 #ifdef EFI32
29 #define EDB_PRINT_ADDRESS_FORMAT L"%08x: "
30 #else
31 // To use 012l instead of 016l because space is not enough
32 #define EDB_PRINT_ADDRESS_FORMAT L"%012lx: "
33 #endif
34
35 #define OPCODE_MAX 0x40
36
37 #define EDB_INSTRUCTION_NAME_MAX_LENGTH 10
38 #define EDB_INSTRUCTION_NAME_MAX_SIZE (EDB_INSTRUCTION_NAME_MAX_LENGTH * sizeof(CHAR16))
39 #define EDB_INSTRUCTION_CONTENT_MAX_LENGTH 30
40 #define EDB_INSTRUCTION_CONTENT_MAX_SIZE (EDB_INSTRUCTION_CONTENT_MAX_LENGTH * sizeof(CHAR16))
41
42 VOID
43 EdbSetOffset (
44 IN UINTN InstructionNameOffset,
45 IN UINTN InstructionContentOffset
46 );
47
48 CHAR16 *
49 EdbPreInstructionString (
50 VOID
51 );
52
53 CHAR16 *
54 EdbPostInstructionString (
55 VOID
56 );
57
58 UINTN
59 EdbPrintInstructionName (
60 IN CHAR16 *Name
61 );
62
63 BOOLEAN
64 EdbGetNaturalIndex16 (
65 IN UINT16 Data16,
66 OUT UINTN *NaturalUnits,
67 OUT UINTN *ConstantUnits
68 );
69
70 BOOLEAN
71 EdbGetNaturalIndex32 (
72 IN UINT32 Data32,
73 OUT UINTN *NaturalUnits,
74 OUT UINTN *ConstantUnits
75 );
76
77 BOOLEAN
78 EdbGetNaturalIndex64 (
79 IN UINT64 Data64,
80 OUT UINT64 *NaturalUnits,
81 OUT UINT64 *ConstantUnits
82 );
83
84 UINTN
85 EdbPrintRawIndexData16 (
86 IN UINT16 Data16
87 );
88
89 UINTN
90 EdbPrintRawIndexData32 (
91 IN UINT32 Data32
92 );
93
94 UINTN
95 EdbPrintRawIndexData64 (
96 IN UINT64 Data64
97 );
98
99 UINTN
100 EdbPrintRegister1 (
101 IN UINT8 Operands
102 );
103
104 UINTN
105 EdbPrintRegister2 (
106 IN UINT8 Operands
107 );
108
109 UINTN
110 EdbPrintDedicatedRegister1 (
111 IN UINT8 Operands
112 );
113
114 UINTN
115 EdbPrintDedicatedRegister2 (
116 IN UINT8 Operands
117 );
118
119 UINTN
120 EdbPrintIndexData (
121 IN BOOLEAN Sign,
122 IN UINTN NaturalUnits,
123 IN UINTN ConstantUnits
124 );
125
126 UINTN
127 EdbPrintIndexData64 (
128 IN BOOLEAN Sign,
129 IN UINT64 NaturalUnits,
130 IN UINT64 ConstantUnits
131 );
132
133 UINTN
134 EdbPrintImmData8 (
135 IN UINT8 Data
136 );
137
138 UINTN
139 EdbPrintImmData16 (
140 IN UINT16 Data
141 );
142
143 UINTN
144 EdbPrintImmData32 (
145 IN UINT32 Data
146 );
147
148 UINTN
149 EdbPrintImmData64 (
150 IN UINT64 Data
151 );
152
153 UINTN
154 EdbPrintImmDatan (
155 IN UINTN Data
156 );
157
158 UINTN
159 EdbPrintImmData64n (
160 IN UINT64 Data64
161 );
162
163 UINTN
164 EdbPrintData8 (
165 IN UINT8 Data8
166 );
167
168 UINTN
169 EdbPrintData16 (
170 IN UINT16 Data16
171 );
172
173 UINTN
174 EdbPrintData32 (
175 IN UINT32 Data32
176 );
177
178 UINTN
179 EdbPrintData64 (
180 IN UINT64 Data64
181 );
182
183 UINTN
184 EdbPrintDatan (
185 IN UINTN Data
186 );
187
188 UINTN
189 EdbPrintData64n (
190 IN UINT64 Data64
191 );
192
193 UINTN
194 EdbPrintData8s (
195 IN UINT8 Data8
196 );
197
198 UINTN
199 EdbPrintData16s (
200 IN UINT16 Data16
201 );
202
203 UINTN
204 EdbPrintData32s (
205 IN UINT32 Data32
206 );
207
208 UINTN
209 EdbPrintData64s (
210 IN UINT64 Data64
211 );
212
213 UINTN
214 EdbPrintComma (
215 VOID
216 );
217
218 UINTN
219 EdbFindAndPrintSymbol (
220 IN UINTN Address
221 );
222
223 VOID
224 EdbPrintRaw (
225 IN EFI_PHYSICAL_ADDRESS InstructionAddress,
226 IN UINTN InstructionNumber
227 );
228
229 EFI_STATUS
230 EdbShowDisasm (
231 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
232 IN EFI_SYSTEM_CONTEXT SystemContext
233 );
234
235 UINT64
236 GetRegisterValue (
237 IN EFI_SYSTEM_CONTEXT SystemContext,
238 IN UINT8 Index
239 );
240
241 #endif