1 /** @file
2 
3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
5 
6 
7 **/
8 
9 #ifndef _EFI_EDB_COMMAND_H_
10 #define _EFI_EDB_COMMAND_H_
11 
12 typedef enum {
13   EdbWidthUint8,
14   EdbWidthUint16,
15   EdbWidthUint32,
16   EdbWidthUint64,
17   EdbWidthMax
18 } EDB_DATA_WIDTH;
19 
20 /**
21 
22   Find the command according to name.
23 
24   @param  CommandName   - Command Name
25   @param  CommandArg    - Command Argument
26 
27   @return Not NULL        - The DebuggerCommand is found successfully
28   @return NULL            - not found
29 
30 **/
31 EFI_DEBUGGER_COMMAND
32 MatchDebuggerCommand (
33   IN CHAR16    *CommandName,
34   IN CHAR16    **CommandArg
35   );
36 
37 /**
38 
39   Find the command name according to the function key.
40 
41   @param  CommandKey    - Command Function Key
42 
43   @return Not NULL        - The DebuggerName is found successfully
44   @return NULL            - not found
45 
46 **/
47 CHAR16 *
48 GetCommandNameByKey (
49   IN EFI_INPUT_KEY CommandKey
50   );
51 
52 //
53 // Definition for Command Table
54 //
55 #define EDB_COMMAND_DEFINE(func) \
56 EFI_DEBUG_STATUS \
57 func ( \
58   IN     CHAR16                    *CommandArg, \
59   IN     EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, \
60   IN     EFI_EXCEPTION_TYPE        ExceptionType, \
61   IN OUT EFI_SYSTEM_CONTEXT        SystemContext \
62   )
63 
64 EDB_COMMAND_DEFINE (DebuggerCallStack);
65 EDB_COMMAND_DEFINE (DebuggerInstructionBranch);
66 EDB_COMMAND_DEFINE (DebuggerBreakOnCALL);
67 EDB_COMMAND_DEFINE (DebuggerBreakOnCALLEX);
68 EDB_COMMAND_DEFINE (DebuggerBreakOnRET);
69 EDB_COMMAND_DEFINE (DebuggerBreakOnEntrypoint);
70 EDB_COMMAND_DEFINE (DebuggerBreakOnThunk);
71 EDB_COMMAND_DEFINE (DebuggerBreakOnKey);
72 EDB_COMMAND_DEFINE (DebuggerBreakpointList);
73 EDB_COMMAND_DEFINE (DebuggerBreakpointSet);
74 EDB_COMMAND_DEFINE (DebuggerBreakpointClear);
75 EDB_COMMAND_DEFINE (DebuggerBreakpointDisable);
76 EDB_COMMAND_DEFINE (DebuggerBreakpointEnable);
77 EDB_COMMAND_DEFINE (DebuggerGo);
78 EDB_COMMAND_DEFINE (DebuggerHelp);
79 EDB_COMMAND_DEFINE (DebuggerMemoryDB);
80 EDB_COMMAND_DEFINE (DebuggerMemoryDW);
81 EDB_COMMAND_DEFINE (DebuggerMemoryDD);
82 EDB_COMMAND_DEFINE (DebuggerMemoryDQ);
83 EDB_COMMAND_DEFINE (DebuggerMemoryEB);
84 EDB_COMMAND_DEFINE (DebuggerMemoryEW);
85 EDB_COMMAND_DEFINE (DebuggerMemoryED);
86 EDB_COMMAND_DEFINE (DebuggerMemoryEQ);
87 EDB_COMMAND_DEFINE (DebuggerQuit);
88 EDB_COMMAND_DEFINE (DebuggerRegister);
89 EDB_COMMAND_DEFINE (DebuggerScope);
90 EDB_COMMAND_DEFINE (DebuggerList);
91 EDB_COMMAND_DEFINE (DebuggerStepInto);
92 EDB_COMMAND_DEFINE (DebuggerStepOver);
93 EDB_COMMAND_DEFINE (DebuggerStepOut);
94 EDB_COMMAND_DEFINE (DebuggerListSymbol);
95 EDB_COMMAND_DEFINE (DebuggerLoadSymbol);
96 EDB_COMMAND_DEFINE (DebuggerUnloadSymbol);
97 EDB_COMMAND_DEFINE (DebuggerDisplaySymbol);
98 EDB_COMMAND_DEFINE (DebuggerLoadCode);
99 EDB_COMMAND_DEFINE (DebuggerUnloadCode);
100 EDB_COMMAND_DEFINE (DebuggerDisplayCode);
101 EDB_COMMAND_DEFINE (DebuggerExtIoIB);
102 EDB_COMMAND_DEFINE (DebuggerExtIoIW);
103 EDB_COMMAND_DEFINE (DebuggerExtIoID);
104 EDB_COMMAND_DEFINE (DebuggerExtIoOB);
105 EDB_COMMAND_DEFINE (DebuggerExtIoOW);
106 EDB_COMMAND_DEFINE (DebuggerExtIoOD);
107 EDB_COMMAND_DEFINE (DebuggerExtPciPCIL);
108 EDB_COMMAND_DEFINE (DebuggerExtPciPCID);
109 EDB_COMMAND_DEFINE (DebuggerExtPciCFGB);
110 EDB_COMMAND_DEFINE (DebuggerExtPciCFGW);
111 EDB_COMMAND_DEFINE (DebuggerExtPciCFGD);
112 
113 extern EFI_DEBUGGER_COMMAND_SET  mDebuggerCommandSet[];
114 
115 #endif
116