]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c
5cbed02f198277599ebe118ec296e5d4424da0c3
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbCmdHelp.c
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 #include "Edb.h"
16
17 /**
18
19 DebuggerCommand - Help.
20
21 @param CommandArg - The argument for this command
22 @param DebuggerPrivate - EBC Debugger private data structure
23 @param ExceptionType - Interrupt type.
24 @param SystemContext - EBC system context.
25
26 @retval EFI_DEBUG_CONTINUE - formal return value
27
28 **/
29 EFI_DEBUG_STATUS
30 DebuggerHelp (
31 IN CHAR16 *CommandArg,
32 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
33 IN EFI_EXCEPTION_TYPE ExceptionType,
34 IN OUT EFI_SYSTEM_CONTEXT SystemContext
35 )
36 {
37 UINTN Index;
38
39 //
40 // if no argument, print all the command title
41 //
42 if (CommandArg == NULL) {
43 for (Index = 0; DebuggerPrivate->DebuggerCommandSet[Index].CommandName != NULL; Index++) {
44 EDBPrint (DebuggerPrivate->DebuggerCommandSet[Index].ClassName);
45 if (StrCmp (DebuggerPrivate->DebuggerCommandSet[Index].CommandTitle, L"") != 0) {
46 EDBPrint (L" ");
47 EDBPrint (DebuggerPrivate->DebuggerCommandSet[Index].CommandTitle);
48 }
49 }
50 return EFI_DEBUG_CONTINUE;
51 }
52
53 //
54 // If there is argument, the argument should be command name.
55 // Find the command and print the detail information.
56 //
57 for (Index = 0; DebuggerPrivate->DebuggerCommandSet[Index].CommandName != NULL; Index++) {
58 if (StriCmp (CommandArg, DebuggerPrivate->DebuggerCommandSet[Index].CommandName) == 0) {
59 EDBPrint (DebuggerPrivate->DebuggerCommandSet[Index].CommandHelp);
60 EDBPrint (DebuggerPrivate->DebuggerCommandSet[Index].CommandSyntax);
61 return EFI_DEBUG_CONTINUE;
62 }
63 }
64
65 //
66 // Command not found.
67 //
68 EDBPrint (L"No help info for this command\n");
69
70 //
71 // Done
72 //
73 return EFI_DEBUG_CONTINUE;
74 }