]> git.proxmox.com Git - mirror_edk2.git/blame - 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
e8a5ac7c 1/** @file\r
748edcd5 2\r
f42f22f5 3Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
9d510e61 4SPDX-License-Identifier: BSD-2-Clause-Patent\r
748edcd5 5\r
748edcd5 6\r
e8a5ac7c 7**/\r
748edcd5 8\r
e8a5ac7c 9#include "Edb.h"\r
748edcd5 10\r
e8a5ac7c 11/**\r
748edcd5 12\r
e8a5ac7c 13 DebuggerCommand - Register.\r
748edcd5 14\r
e8a5ac7c
DB
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
748edcd5 21\r
e8a5ac7c 22**/\r
748edcd5
PB
23EFI_DEBUG_STATUS\r
24DebuggerRegister (\r
1436aea4
MK
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
748edcd5 29 )\r
748edcd5
PB
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
1436aea4 83\r
748edcd5
PB
84 RegVal = LXtoi (RegValStr);\r
85\r
86 //\r
87 // Assign register value\r
88 //\r
89 if (StriCmp (RegName, L"R0") == 0) {\r
90 SystemContext.SystemContextEbc->R0 = RegVal;\r
91 } else if (StriCmp (RegName, L"R1") == 0) {\r
92 SystemContext.SystemContextEbc->R1 = RegVal;\r
93 } else if (StriCmp (RegName, L"R2") == 0) {\r
94 SystemContext.SystemContextEbc->R2 = RegVal;\r
95 } else if (StriCmp (RegName, L"R3") == 0) {\r
96 SystemContext.SystemContextEbc->R3 = RegVal;\r
97 } else if (StriCmp (RegName, L"R4") == 0) {\r
98 SystemContext.SystemContextEbc->R4 = RegVal;\r
99 } else if (StriCmp (RegName, L"R5") == 0) {\r
100 SystemContext.SystemContextEbc->R5 = RegVal;\r
101 } else if (StriCmp (RegName, L"R6") == 0) {\r
102 SystemContext.SystemContextEbc->R6 = RegVal;\r
103 } else if (StriCmp (RegName, L"R7") == 0) {\r
104 SystemContext.SystemContextEbc->R7 = RegVal;\r
105 } else if (StriCmp (RegName, L"Flags") == 0) {\r
106 SystemContext.SystemContextEbc->Flags = RegVal;\r
107 } else if (StriCmp (RegName, L"ControlFlags") == 0) {\r
108 SystemContext.SystemContextEbc->ControlFlags = RegVal;\r
109 } else if (StriCmp (RegName, L"Ip") == 0) {\r
110 SystemContext.SystemContextEbc->Ip = RegVal;\r
111 } else {\r
112 EDBPrint (L"Invalid Register - %s\n", RegName);\r
113 }\r
114\r
115 //\r
116 // Done\r
117 //\r
118 return EFI_DEBUG_CONTINUE;\r
119}\r