efidebug.h revision 1.1.1.1.36.1 1 /* $NetBSD: efidebug.h,v 1.1.1.1.36.1 2019/06/10 22:08:35 christos Exp $ */
2
3 #ifndef _EFI_DEBUG_H
4 #define _EFI_DEBUG_H
5
6 /*++
7
8 Copyright (c) 1998 Intel Corporation
9
10 Module Name:
11
12 efidebug.h
13
14 Abstract:
15
16 EFI library debug functions
17
18
19
20 Revision History
21
22 --*/
23
24 extern UINTN EFIDebug;
25
26 #if EFI_DEBUG
27
28 #define DBGASSERT(a) DbgAssert(__FILE__, __LINE__, #a)
29 #define DEBUG(a) DbgPrint a
30
31 #else
32
33 #define DBGASSERT(a)
34 #define DEBUG(a)
35
36 #endif
37
38 #if EFI_DEBUG_CLEAR_MEMORY
39
40 #define DBGSETMEM(a,l) SetMem(a,l,(CHAR8)BAD_POINTER)
41
42 #else
43
44 #define DBGSETMEM(a,l)
45
46 #endif
47
48 #define D_INIT 0x00000001 // Initialization style messages
49 #define D_WARN 0x00000002 // Warnings
50 #define D_LOAD 0x00000004 // Load events
51 #define D_FS 0x00000008 // EFI File system
52 #define D_POOL 0x00000010 // Alloc & Free's
53 #define D_PAGE 0x00000020 // Alloc & Free's
54 #define D_INFO 0x00000040 // Verbose
55 #define D_VAR 0x00000100 // Variable
56 #define D_PARSE 0x00000200 // Command parsing
57 #define D_BM 0x00000400 // Boot manager
58 #define D_BLKIO 0x00001000 // BlkIo Driver
59 #define D_BLKIO_ULTRA 0x00002000 // BlkIo Driver
60 #define D_NET 0x00004000 // SNI Driver
61 #define D_NET_ULTRA 0x00008000 // SNI Driver
62 #define D_TXTIN 0x00010000 // Simple Input Driver
63 #define D_TXTOUT 0x00020000 // Simple Text Output Driver
64 #define D_ERROR_ATA 0x00040000 // ATA error messages
65 #define D_ERROR 0x80000000 // Error
66
67 #define D_RESERVED 0x7fffC880 // Bits not reserved above
68
69 //
70 // Current Debug level of the system, value of EFIDebug
71 //
72 //#define EFI_DBUG_MASK (D_ERROR | D_WARN | D_LOAD | D_BLKIO | D_INIT)
73 #define EFI_DBUG_MASK (D_ERROR)
74
75 //
76 //
77 //
78
79 #if EFI_DEBUG
80
81 #define ASSERT(a) if(!(a)) DBGASSERT(a)
82 #define ASSERT_LOCKED(l) if(!(l)->Lock) DBGASSERT(l not locked)
83 #define ASSERT_STRUCT(p,t) DBGASSERT(t not structure), p
84
85 #else
86
87 #define ASSERT(a)
88 #define ASSERT_LOCKED(l)
89 #define ASSERT_STRUCT(p,t)
90
91 #endif
92
93 //
94 // Prototypes
95 //
96
97 INTN
98 DbgAssert (
99 CONST CHAR8 *file,
100 INTN lineno,
101 CONST CHAR8 *string
102 );
103
104 INTN
105 DbgPrint (
106 INTN mask,
107 CONST CHAR8 *format,
108 ...
109 );
110
111 //
112 // Instruction Set Architectures definitions for debuggers
113 //
114
115 typedef INTN EFI_EXCEPTION_TYPE;
116
117 // IA32
118 #define EXCEPT_IA32_DIVIDE_ERROR 0
119 #define EXCEPT_IA32_DEBUG 1
120 #define EXCEPT_IA32_NMI 2
121 #define EXCEPT_IA32_BREAKPOINT 3
122 #define EXCEPT_IA32_OVERFLOW 4
123 #define EXCEPT_IA32_BOUND 5
124 #define EXCEPT_IA32_INVALID_OPCODE 6
125 #define EXCEPT_IA32_DOUBLE_FAULT 8
126 #define EXCEPT_IA32_INVALID_TSS 10
127 #define EXCEPT_IA32_SEG_NOT_PRESENT 11
128 #define EXCEPT_IA32_STACK_FAULT 12
129 #define EXCEPT_IA32_GP_FAULT 13
130 #define EXCEPT_IA32_PAGE_FAULT 14
131 #define EXCEPT_IA32_FP_ERROR 16
132 #define EXCEPT_IA32_ALIGNMENT_CHECK 17
133 #define EXCEPT_IA32_MACHINE_CHECK 18
134 #define EXCEPT_IA32_SIMD 19
135
136 typedef struct {
137 UINT16 Fcw;
138 UINT16 Fsw;
139 UINT16 Ftw;
140 UINT16 Opcode;
141 UINT32 Eip;
142 UINT16 Cs;
143 UINT16 Reserved1;
144 UINT32 DataOffset;
145 UINT16 Ds;
146 UINT8 Reserved2[10];
147 UINT8 St0Mm0[10], Reserved3[6];
148 UINT8 St1Mm1[10], Reserved4[6];
149 UINT8 St2Mm2[10], Reserved5[6];
150 UINT8 St3Mm3[10], Reserved6[6];
151 UINT8 St4Mm4[10], Reserved7[6];
152 UINT8 St5Mm5[10], Reserved8[6];
153 UINT8 St6Mm6[10], Reserved9[6];
154 UINT8 St7Mm7[10], Reserved10[6];
155 UINT8 Xmm0[16];
156 UINT8 Xmm1[16];
157 UINT8 Xmm2[16];
158 UINT8 Xmm3[16];
159 UINT8 Xmm4[16];
160 UINT8 Xmm5[16];
161 UINT8 Xmm6[16];
162 UINT8 Xmm7[16];
163 UINT8 Reserved11[14 * 16];
164 } EFI_FX_SAVE_STATE_IA32;
165
166 typedef struct {
167 UINT32 ExceptionData;
168 EFI_FX_SAVE_STATE_IA32 FxSaveState;
169 UINT32 Dr0;
170 UINT32 Dr1;
171 UINT32 Dr2;
172 UINT32 Dr3;
173 UINT32 Dr6;
174 UINT32 Dr7;
175 UINT32 Cr0;
176 UINT32 Cr1;
177 UINT32 Cr2;
178 UINT32 Cr3;
179 UINT32 Cr4;
180 UINT32 Eflags;
181 UINT32 Ldtr;
182 UINT32 Tr;
183 UINT32 Gdtr[2];
184 UINT32 Idtr[2];
185 UINT32 Eip;
186 UINT32 Gs;
187 UINT32 Fs;
188 UINT32 Es;
189 UINT32 Ds;
190 UINT32 Cs;
191 UINT32 Ss;
192 UINT32 Edi;
193 UINT32 Esi;
194 UINT32 Ebp;
195 UINT32 Esp;
196 UINT32 Ebx;
197 UINT32 Edx;
198 UINT32 Ecx;
199 UINT32 Eax;
200 } EFI_SYSTEM_CONTEXT_IA32;
201
202 // X64
203 #define EXCEPT_X64_DIVIDE_ERROR 0
204 #define EXCEPT_X64_DEBUG 1
205 #define EXCEPT_X64_NMI 2
206 #define EXCEPT_X64_BREAKPOINT 3
207 #define EXCEPT_X64_OVERFLOW 4
208 #define EXCEPT_X64_BOUND 5
209 #define EXCEPT_X64_INVALID_OPCODE 6
210 #define EXCEPT_X64_DOUBLE_FAULT 8
211 #define EXCEPT_X64_INVALID_TSS 10
212 #define EXCEPT_X64_SEG_NOT_PRESENT 11
213 #define EXCEPT_X64_STACK_FAULT 12
214 #define EXCEPT_X64_GP_FAULT 13
215 #define EXCEPT_X64_PAGE_FAULT 14
216 #define EXCEPT_X64_FP_ERROR 16
217 #define EXCEPT_X64_ALIGNMENT_CHECK 17
218 #define EXCEPT_X64_MACHINE_CHECK 18
219 #define EXCEPT_X64_SIMD 19
220
221 typedef struct {
222 UINT16 Fcw;
223 UINT16 Fsw;
224 UINT16 Ftw;
225 UINT16 Opcode;
226 UINT64 Rip;
227 UINT64 DataOffset;
228 UINT8 Reserved1[8];
229 UINT8 St0Mm0[10], Reserved2[6];
230 UINT8 St1Mm1[10], Reserved3[6];
231 UINT8 St2Mm2[10], Reserved4[6];
232 UINT8 St3Mm3[10], Reserved5[6];
233 UINT8 St4Mm4[10], Reserved6[6];
234 UINT8 St5Mm5[10], Reserved7[6];
235 UINT8 St6Mm6[10], Reserved8[6];
236 UINT8 St7Mm7[10], Reserved9[6];
237 UINT8 Xmm0[16];
238 UINT8 Xmm1[16];
239 UINT8 Xmm2[16];
240 UINT8 Xmm3[16];
241 UINT8 Xmm4[16];
242 UINT8 Xmm5[16];
243 UINT8 Xmm6[16];
244 UINT8 Xmm7[16];
245 UINT8 Reserved11[14 * 16];
246 } EFI_FX_SAVE_STATE_X64;
247
248 typedef struct {
249 UINT64 ExceptionData;
250 EFI_FX_SAVE_STATE_X64 FxSaveState;
251 UINT64 Dr0;
252 UINT64 Dr1;
253 UINT64 Dr2;
254 UINT64 Dr3;
255 UINT64 Dr6;
256 UINT64 Dr7;
257 UINT64 Cr0;
258 UINT64 Cr1;
259 UINT64 Cr2;
260 UINT64 Cr3;
261 UINT64 Cr4;
262 UINT64 Cr8;
263 UINT64 Rflags;
264 UINT64 Ldtr;
265 UINT64 Tr;
266 UINT64 Gdtr[2];
267 UINT64 Idtr[2];
268 UINT64 Rip;
269 UINT64 Gs;
270 UINT64 Fs;
271 UINT64 Es;
272 UINT64 Ds;
273 UINT64 Cs;
274 UINT64 Ss;
275 UINT64 Rdi;
276 UINT64 Rsi;
277 UINT64 Rbp;
278 UINT64 Rsp;
279 UINT64 Rbx;
280 UINT64 Rdx;
281 UINT64 Rcx;
282 UINT64 Rax;
283 UINT64 R8;
284 UINT64 R9;
285 UINT64 R10;
286 UINT64 R11;
287 UINT64 R12;
288 UINT64 R13;
289 UINT64 R14;
290 UINT64 R15;
291 } EFI_SYSTEM_CONTEXT_X64;
292
293 /// IA64
294 #define EXCEPT_IPF_VHTP_TRANSLATION 0
295 #define EXCEPT_IPF_INSTRUCTION_TLB 1
296 #define EXCEPT_IPF_DATA_TLB 2
297 #define EXCEPT_IPF_ALT_INSTRUCTION_TLB 3
298 #define EXCEPT_IPF_ALT_DATA_TLB 4
299 #define EXCEPT_IPF_DATA_NESTED_TLB 5
300 #define EXCEPT_IPF_INSTRUCTION_KEY_MISSED 6
301 #define EXCEPT_IPF_DATA_KEY_MISSED 7
302 #define EXCEPT_IPF_DIRTY_BIT 8
303 #define EXCEPT_IPF_INSTRUCTION_ACCESS_BIT 9
304 #define EXCEPT_IPF_DATA_ACCESS_BIT 10
305 #define EXCEPT_IPF_BREAKPOINT 11
306 #define EXCEPT_IPF_EXTERNAL_INTERRUPT 12
307 #define EXCEPT_IPF_PAGE_NOT_PRESENT 20
308 #define EXCEPT_IPF_KEY_PERMISSION 21
309 #define EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS 22
310 #define EXCEPT_IPF_DATA_ACCESS_RIGHTS 23
311 #define EXCEPT_IPF_GENERAL_EXCEPTION 24
312 #define EXCEPT_IPF_DISABLED_FP_REGISTER 25
313 #define EXCEPT_IPF_NAT_CONSUMPTION 26
314 #define EXCEPT_IPF_SPECULATION 27
315 #define EXCEPT_IPF_DEBUG 29
316 #define EXCEPT_IPF_UNALIGNED_REFERENCE 30
317 #define EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE 31
318 #define EXCEPT_IPF_FP_FAULT 32
319 #define EXCEPT_IPF_FP_TRAP 33
320 #define EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP 34
321 #define EXCEPT_IPF_TAKEN_BRANCH 35
322 #define EXCEPT_IPF_SINGLE_STEP 36
323 #define EXCEPT_IPF_IA32_EXCEPTION 45
324 #define EXCEPT_IPF_IA32_INTERCEPT 46
325 #define EXCEPT_IPF_IA32_INTERRUPT 47
326
327 typedef struct {
328 UINT64 Reserved;
329 UINT64 R1;
330 UINT64 R2;
331 UINT64 R3;
332 UINT64 R4;
333 UINT64 R5;
334 UINT64 R6;
335 UINT64 R7;
336 UINT64 R8;
337 UINT64 R9;
338 UINT64 R10;
339 UINT64 R11;
340 UINT64 R12;
341 UINT64 R13;
342 UINT64 R14;
343 UINT64 R15;
344 UINT64 R16;
345 UINT64 R17;
346 UINT64 R18;
347 UINT64 R19;
348 UINT64 R20;
349 UINT64 R21;
350 UINT64 R22;
351 UINT64 R23;
352 UINT64 R24;
353 UINT64 R25;
354 UINT64 R26;
355 UINT64 R27;
356 UINT64 R28;
357 UINT64 R29;
358 UINT64 R30;
359 UINT64 R31;
360 UINT64 F2[2];
361 UINT64 F3[2];
362 UINT64 F4[2];
363 UINT64 F5[2];
364 UINT64 F6[2];
365 UINT64 F7[2];
366 UINT64 F8[2];
367 UINT64 F9[2];
368 UINT64 F10[2];
369 UINT64 F11[2];
370 UINT64 F12[2];
371 UINT64 F13[2];
372 UINT64 F14[2];
373 UINT64 F15[2];
374 UINT64 F16[2];
375 UINT64 F17[2];
376 UINT64 F18[2];
377 UINT64 F19[2];
378 UINT64 F20[2];
379 UINT64 F21[2];
380 UINT64 F22[2];
381 UINT64 F23[2];
382 UINT64 F24[2];
383 UINT64 F25[2];
384 UINT64 F26[2];
385 UINT64 F27[2];
386 UINT64 F28[2];
387 UINT64 F29[2];
388 UINT64 F30[2];
389 UINT64 F31[2];
390 UINT64 Pr;
391 UINT64 B0;
392 UINT64 B1;
393 UINT64 B2;
394 UINT64 B3;
395 UINT64 B4;
396 UINT64 B5;
397 UINT64 B6;
398 UINT64 B7;
399 UINT64 ArRsc;
400 UINT64 ArBsp;
401 UINT64 ArBspstore;
402 UINT64 ArRnat;
403 UINT64 ArFcr;
404 UINT64 ArEflag;
405 UINT64 ArCsd;
406 UINT64 ArSsd;
407 UINT64 ArCflg;
408 UINT64 ArFsr;
409 UINT64 ArFir;
410 UINT64 ArFdr;
411 UINT64 ArCcv;
412 UINT64 ArUnat;
413 UINT64 ArFpsr;
414 UINT64 ArPfs;
415 UINT64 ArLc;
416 UINT64 ArEc;
417 UINT64 CrDcr;
418 UINT64 CrItm;
419 UINT64 CrIva;
420 UINT64 CrPta;
421 UINT64 CrIpsr;
422 UINT64 CrIsr;
423 UINT64 CrIip;
424 UINT64 CrIfa;
425 UINT64 CrItir;
426 UINT64 CrIipa;
427 UINT64 CrIfs;
428 UINT64 CrIim;
429 UINT64 CrIha;
430 UINT64 Dbr0;
431 UINT64 Dbr1;
432 UINT64 Dbr2;
433 UINT64 Dbr3;
434 UINT64 Dbr4;
435 UINT64 Dbr5;
436 UINT64 Dbr6;
437 UINT64 Dbr7;
438 UINT64 Ibr0;
439 UINT64 Ibr1;
440 UINT64 Ibr2;
441 UINT64 Ibr3;
442 UINT64 Ibr4;
443 UINT64 Ibr5;
444 UINT64 Ibr6;
445 UINT64 Ibr7;
446 UINT64 IntNat;
447 } EFI_SYSTEM_CONTEXT_IPF;
448
449 // EBC
450 #define EXCEPT_EBC_UNDEFINED 0
451 #define EXCEPT_EBC_DIVIDE_ERROR 1
452 #define EXCEPT_EBC_DEBUG 2
453 #define EXCEPT_EBC_BREAKPOINT 3
454 #define EXCEPT_EBC_OVERFLOW 4
455 #define EXCEPT_EBC_INVALID_OPCODE 5
456 #define EXCEPT_EBC_STACK_FAULT 6
457 #define EXCEPT_EBC_ALIGNMENT_CHECK 7
458 #define EXCEPT_EBC_INSTRUCTION_ENCODING 8
459 #define EXCEPT_EBC_BAD_BREAK 9
460 #define EXCEPT_EBC_STEP 10
461 #define MAX_EBC_EXCEPTION EXCEPT_EBC_STEP
462
463 typedef struct {
464 UINT64 R0;
465 UINT64 R1;
466 UINT64 R2;
467 UINT64 R3;
468 UINT64 R4;
469 UINT64 R5;
470 UINT64 R6;
471 UINT64 R7;
472 UINT64 Flags;
473 UINT64 ControlFlags;
474 UINT64 Ip;
475 } EFI_SYSTEM_CONTEXT_EBC;
476
477 // ARM
478 #define EXCEPT_ARM_RESET 0
479 #define EXCEPT_ARM_UNDEFINED_INSTRUCTION 1
480 #define EXCEPT_ARM_SOFTWARE_INTERRUPT 2
481 #define EXCEPT_ARM_PREFETCH_ABORT 3
482 #define EXCEPT_ARM_DATA_ABORT 4
483 #define EXCEPT_ARM_RESERVED 5
484 #define EXCEPT_ARM_IRQ 6
485 #define EXCEPT_ARM_FIQ 7
486 #define MAX_ARM_EXCEPTION EXCEPT_ARM_FIQ
487
488 typedef struct {
489 UINT32 R0;
490 UINT32 R1;
491 UINT32 R2;
492 UINT32 R3;
493 UINT32 R4;
494 UINT32 R5;
495 UINT32 R6;
496 UINT32 R7;
497 UINT32 R8;
498 UINT32 R9;
499 UINT32 R10;
500 UINT32 R11;
501 UINT32 R12;
502 UINT32 SP;
503 UINT32 LR;
504 UINT32 PC;
505 UINT32 CPSR;
506 UINT32 DFSR;
507 UINT32 DFAR;
508 UINT32 IFSR;
509 UINT32 IFAR;
510 } EFI_SYSTEM_CONTEXT_ARM;
511
512
513 typedef union {
514 EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc;
515 EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32;
516 EFI_SYSTEM_CONTEXT_X64 *SystemContextX64;
517 EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
518 EFI_SYSTEM_CONTEXT_ARM *SystemContextArm;
519 } EFI_SYSTEM_CONTEXT;
520
521 typedef
522 VOID
523 (EFIAPI *EFI_EXCEPTION_CALLBACK)(
524 IN EFI_EXCEPTION_TYPE ExceptionType,
525 IN OUT EFI_SYSTEM_CONTEXT SystemContext);
526
527 typedef
528 VOID
529 (EFIAPI *EFI_PERIODIC_CALLBACK)(
530 IN OUT EFI_SYSTEM_CONTEXT SystemContext);
531
532 typedef enum {
533 IsaIa32 = EFI_IMAGE_MACHINE_IA32,
534 IsaX64 = EFI_IMAGE_MACHINE_X64,
535 IsaIpf = EFI_IMAGE_MACHINE_IA64,
536 IsaEbc = EFI_IMAGE_MACHINE_EBC,
537 IsaArm = EFI_IMAGE_MACHINE_ARMTHUMB_MIXED,
538 // IsaArm64 = EFI_IMAGE_MACHINE_AARCH64
539 } EFI_INSTRUCTION_SET_ARCHITECTURE;
540
541 //
542 // DEBUG_IMAGE_INFO
543 //
544
545 #define EFI_DEBUG_IMAGE_INFO_TABLE_GUID \
546 { 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} }
547
548 #define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS 0x01
549 #define EFI_DEBUG_IMAGE_INFO_TABLE_MODIFIED 0x02
550 #define EFI_DEBUG_IMAGE_INFO_INITIAL_SIZE (EFI_PAGE_SIZE / sizeof (UINTN))
551 #define EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL 0x01
552
553 typedef struct {
554 UINT64 Signature;
555 EFI_PHYSICAL_ADDRESS EfiSystemTableBase;
556 UINT32 Crc32;
557 } EFI_SYSTEM_TABLE_POINTER;
558
559 typedef struct {
560 UINT32 ImageInfoType;
561 EFI_LOADED_IMAGE_PROTOCOL *LoadedImageProtocolInstance;
562 EFI_HANDLE *ImageHandle;
563 } EFI_DEBUG_IMAGE_INFO_NORMAL;
564
565 typedef union {
566 UINT32 *ImageInfoType;
567 EFI_DEBUG_IMAGE_INFO_NORMAL *NormalImage;
568 } EFI_DEBUG_IMAGE_INFO;
569
570 typedef struct {
571 volatile UINT32 UpdateStatus;
572 UINT32 TableSize;
573 EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable;
574 } EFI_DEBUG_IMAGE_INFO_TABLE_HEADER;
575
576 //
577 // EFI_DEBUGGER_PROTOCOL
578 //
579
580 #define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \
581 { 0x2755590c, 0x6f3c, 0x42fa, {0x9e, 0xa4, 0xa3, 0xba, 0x54, 0x3c, 0xda, 0x25} }
582
583 INTERFACE_DECL(_EFI_DEBUG_SUPPORT_PROTOCOL);
584
585 typedef
586 EFI_STATUS
587 (EFIAPI *EFI_GET_MAXIMUM_PROCESSOR_INDEX)(
588 IN struct _EFI_DEBUG_SUPPORT_PROTOCOL *This,
589 OUT UINTN *MaxProcessorIndex);
590
591 typedef
592 EFI_STATUS
593 (EFIAPI *EFI_REGISTER_PERIODIC_CALLBACK)(
594 IN struct _EFI_DEBUG_SUPPORT_PROTOCOL *This,
595 IN UINTN ProcessorIndex,
596 IN EFI_PERIODIC_CALLBACK PeriodicCallback);
597
598 typedef
599 EFI_STATUS
600 (EFIAPI *EFI_REGISTER_EXCEPTION_CALLBACK)(
601 IN struct _EFI_DEBUG_SUPPORT_PROTOCOL *This,
602 IN UINTN ProcessorIndex,
603 IN EFI_EXCEPTION_CALLBACK ExceptionCallback,
604 IN EFI_EXCEPTION_TYPE ExceptionType);
605
606 typedef
607 EFI_STATUS
608 (EFIAPI *EFI_INVALIDATE_INSTRUCTION_CACHE)(
609 IN struct _EFI_DEBUG_SUPPORT_PROTOCOL *This,
610 IN UINTN ProcessorIndex,
611 IN VOID *Start,
612 IN UINT64 Length);
613
614 typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL {
615 EFI_INSTRUCTION_SET_ARCHITECTURE Isa;
616 EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex;
617 EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback;
618 EFI_REGISTER_EXCEPTION_CALLBACK RegisterExceptionCallback;
619 EFI_INVALIDATE_INSTRUCTION_CACHE InvalidateInstructionCache;
620 } EFI_DEBUG_SUPPORT_PROTOCOL;
621
622 #endif
623