]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbCmdRegister.c
... / ...
CommitLineData
1/** @file\r
2\r
3Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
4SPDX-License-Identifier: BSD-2-Clause-Patent\r
5\r
6\r
7**/\r
8\r
9#include "Edb.h"\r
10\r
11/**\r
12\r
13 DebuggerCommand - Register.\r
14\r
15 @param CommandArg - The argument for this command\r
16 @param DebuggerPrivate - EBC Debugger private data structure\r
17 @param ExceptionType - Exception type.\r
18 @param SystemContext - EBC system context.\r
19\r
20 @retval EFI_DEBUG_CONTINUE - formal return value\r
21\r
22**/\r
23EFI_DEBUG_STATUS\r
24DebuggerRegister (\r
25 IN CHAR16 *CommandArg,\r
26 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
27 IN EFI_EXCEPTION_TYPE ExceptionType,\r
28 IN OUT EFI_SYSTEM_CONTEXT SystemContext\r
29 )\r
30{\r
31 CHAR16 *RegName;\r
32 CHAR16 *RegValStr;\r
33 UINT64 RegVal;\r
34\r
35 //\r
36 // Check Argument, NULL means print all register\r
37 //\r
38 if (CommandArg == 0) {\r
39 EDBPrint (\r
40 L" R0 - 0x%016lx, R1 - 0x%016lx\n",\r
41 SystemContext.SystemContextEbc->R0,\r
42 SystemContext.SystemContextEbc->R1\r
43 );\r
44 EDBPrint (\r
45 L" R2 - 0x%016lx, R3 - 0x%016lx\n",\r
46 SystemContext.SystemContextEbc->R2,\r
47 SystemContext.SystemContextEbc->R3\r
48 );\r
49 EDBPrint (\r
50 L" R4 - 0x%016lx, R5 - 0x%016lx\n",\r
51 SystemContext.SystemContextEbc->R4,\r
52 SystemContext.SystemContextEbc->R5\r
53 );\r
54 EDBPrint (\r
55 L" R6 - 0x%016lx, R7 - 0x%016lx\n",\r
56 SystemContext.SystemContextEbc->R6,\r
57 SystemContext.SystemContextEbc->R7\r
58 );\r
59 EDBPrint (\r
60 L" Flags - 0x%016lx, ControlFlags - 0x%016lx\n",\r
61 SystemContext.SystemContextEbc->Flags,\r
62 SystemContext.SystemContextEbc->ControlFlags\r
63 );\r
64 EDBPrint (\r
65 L" Ip - 0x%016lx\n",\r
66 SystemContext.SystemContextEbc->Ip\r
67 );\r
68 return EFI_DEBUG_CONTINUE;\r
69 }\r
70\r
71 //\r
72 // Get register name\r
73 //\r
74 RegName = CommandArg;\r
75 //\r
76 // Get register value\r
77 //\r
78 RegValStr = StrGetNextTokenLine (L" ");\r
79 if (RegValStr == NULL) {\r
80 EDBPrint (L"Invalid Register Value\n");\r
81 return EFI_DEBUG_CONTINUE;\r
82 }\r
83 RegVal = LXtoi (RegValStr);\r
84\r
85 //\r
86 // Assign register value\r
87 //\r
88 if (StriCmp (RegName, L"R0") == 0) {\r
89 SystemContext.SystemContextEbc->R0 = RegVal;\r
90 } else if (StriCmp (RegName, L"R1") == 0) {\r
91 SystemContext.SystemContextEbc->R1 = RegVal;\r
92 } else if (StriCmp (RegName, L"R2") == 0) {\r
93 SystemContext.SystemContextEbc->R2 = RegVal;\r
94 } else if (StriCmp (RegName, L"R3") == 0) {\r
95 SystemContext.SystemContextEbc->R3 = RegVal;\r
96 } else if (StriCmp (RegName, L"R4") == 0) {\r
97 SystemContext.SystemContextEbc->R4 = RegVal;\r
98 } else if (StriCmp (RegName, L"R5") == 0) {\r
99 SystemContext.SystemContextEbc->R5 = RegVal;\r
100 } else if (StriCmp (RegName, L"R6") == 0) {\r
101 SystemContext.SystemContextEbc->R6 = RegVal;\r
102 } else if (StriCmp (RegName, L"R7") == 0) {\r
103 SystemContext.SystemContextEbc->R7 = RegVal;\r
104 } else if (StriCmp (RegName, L"Flags") == 0) {\r
105 SystemContext.SystemContextEbc->Flags = RegVal;\r
106 } else if (StriCmp (RegName, L"ControlFlags") == 0) {\r
107 SystemContext.SystemContextEbc->ControlFlags = RegVal;\r
108 } else if (StriCmp (RegName, L"Ip") == 0) {\r
109 SystemContext.SystemContextEbc->Ip = RegVal;\r
110 } else {\r
111 EDBPrint (L"Invalid Register - %s\n", RegName);\r
112 }\r
113\r
114 //\r
115 // Done\r
116 //\r
117 return EFI_DEBUG_CONTINUE;\r
118}\r