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