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