summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c')
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c1168
1 files changed, 584 insertions, 584 deletions
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
index f0e0d9802f..0396e31d82 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
@@ -1,584 +1,584 @@
-/** @file
-
-Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-
-**/
-
-#include "Edb.h"
-
-/**
-
- Display memory unit.
-
- @param Address - Memory Address
- @param Width - Memory Width
-
- @return Length of the memory unit
-
-**/
-UINTN
-EdbDisplayMemoryUnit (
- IN UINTN Address,
- IN EDB_DATA_WIDTH Width
- )
-{
- UINT8 Data8;
- UINT16 Data16;
- UINT32 Data32;
- UINT64 Data64;
-
- //
- // Print according to width
- //
- switch (Width) {
- case EdbWidthUint8:
- CopyMem (&Data8, (VOID *)Address, sizeof (UINT8));
- EDBPrint (L"%02x ", Data8);
- return sizeof (UINT8);
- case EdbWidthUint16:
- CopyMem (&Data16, (VOID *)Address, sizeof (UINT16));
- EDBPrint (L"%04x ", Data16);
- return sizeof (UINT16);
- case EdbWidthUint32:
- CopyMem (&Data32, (VOID *)Address, sizeof (UINT32));
- EDBPrint (L"%08x ", Data32);
- return sizeof (UINT32);
- case EdbWidthUint64:
- CopyMem (&Data64, (VOID *)Address, sizeof (UINT64));
- EDBPrint (L"%016lx ", Data64);
- return sizeof (UINT64);
- default:
- ASSERT (FALSE);
- break;
- }
-
- //
- // something wrong
- //
- return 0;
-}
-
-/**
-
- Display memory.
-
- @param Address - Memory Address
- @param Count - Memory Count
- @param Width - Memory Width
-
-**/
-VOID
-EdbDisplayMemory (
- IN UINTN Address,
- IN UINTN Count,
- IN EDB_DATA_WIDTH Width
- )
-{
- UINTN LineNumber;
- UINTN ByteNumber;
- UINTN LineIndex;
- UINTN ByteIndex;
- UINTN NumberInLine;
-
- if (Count == 0) {
- return;
- }
-
- //
- // Get line number and byte number
- //
- switch (Width) {
- case EdbWidthUint8:
- NumberInLine = 16;
- break;
- case EdbWidthUint16:
- NumberInLine = 8;
- break;
- case EdbWidthUint32:
- NumberInLine = 4;
- break;
- case EdbWidthUint64:
- NumberInLine = 2;
- break;
- default:
- return;
- }
-
- LineNumber = Count / NumberInLine;
- ByteNumber = Count % NumberInLine;
- if (ByteNumber == 0) {
- LineNumber -= 1;
- ByteNumber = NumberInLine;
- }
-
- //
- // Print each line
- //
- for (LineIndex = 0; LineIndex < LineNumber; LineIndex++) {
- //
- // Break check
- //
- if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (LineIndex != 0))
- {
- if (SetPageBreak ()) {
- break;
- }
- }
-
- EDBPrint (EDB_PRINT_ADDRESS_FORMAT, (UINTN)Address);
- for (ByteIndex = 0; ByteIndex < NumberInLine; ByteIndex++) {
- Address += EdbDisplayMemoryUnit (Address, Width);
- }
-
- EDBPrint (L"\n");
- }
-
- //
- // Break check
- //
- if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (LineIndex != 0))
- {
- if (SetPageBreak ()) {
- return;
- }
- }
-
- //
- // Print last line
- //
- EDBPrint (EDB_PRINT_ADDRESS_FORMAT, (UINTN)Address);
- for (ByteIndex = 0; ByteIndex < ByteNumber; ByteIndex++) {
- Address += EdbDisplayMemoryUnit (Address, Width);
- }
-
- return;
-}
-
-/**
-
- Entry memory.
-
- @param Address - Memory Address
- @param Value - Memory Value
- @param Width - Memory Width
-
-**/
-VOID
-EdbEnterMemory (
- IN UINTN Address,
- IN VOID *Value,
- IN EDB_DATA_WIDTH Width
- )
-{
- switch (Width) {
- case EdbWidthUint8:
- CopyMem ((VOID *)Address, Value, sizeof (UINT8));
- break;
- case EdbWidthUint16:
- CopyMem ((VOID *)Address, Value, sizeof (UINT16));
- break;
- case EdbWidthUint32:
- CopyMem ((VOID *)Address, Value, sizeof (UINT32));
- break;
- case EdbWidthUint64:
- CopyMem ((VOID *)Address, Value, sizeof (UINT64));
- break;
- default:
- break;
- }
-
- return;
-}
-
-/**
-
- Get memory address and count.
-
- @param CommandArg - The argument for this command
- @param Address - Memory Address
- @param Count - Memory Count
-
- @retval EFI_SUCCESS - memory address and count are got
- @retval EFI_INVALID_PARAMETER - something wrong
-
-**/
-EFI_STATUS
-EdbGetMemoryAddressCount (
- IN CHAR16 *CommandArg,
- IN UINTN *Address,
- IN UINTN *Count
- )
-{
- CHAR16 *CommandStr;
- UINTN MemAddress;
- EFI_STATUS Status;
-
- //
- // Get Address
- //
- CommandStr = CommandArg;
- if (CommandStr == NULL) {
- EDBPrint (L"Memory: Address error!\n");
- return EFI_INVALID_PARAMETER;
- }
-
- Status = Symboltoi (CommandStr, &MemAddress);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND) {
- MemAddress = Xtoi (CommandStr);
- } else {
- //
- // Something wrong, let Symboltoi print error info.
- //
- EDBPrint (L"Command Argument error!\n");
- return EFI_INVALID_PARAMETER;
- }
- }
-
- *Address = MemAddress;
-
- //
- // Get Count
- //
- CommandStr = StrGetNextTokenLine (L" ");
- if (CommandStr == NULL) {
- *Count = 1;
- } else {
- *Count = Xtoi (CommandStr);
- }
-
- //
- // Done
- //
- return EFI_SUCCESS;
-}
-
-/**
-
- Get memory address and value.
-
- @param CommandArg - The argument for this command
- @param Address - Memory Address
- @param Value - Memory Value
-
- @retval EFI_SUCCESS - memory address and value are got
- @retval EFI_INVALID_PARAMETER - something wrong
-
-**/
-EFI_STATUS
-EdbGetMemoryAddressValue (
- IN CHAR16 *CommandArg,
- IN UINTN *Address,
- IN UINT64 *Value
- )
-{
- CHAR16 *CommandStr;
- UINTN MemAddress;
- EFI_STATUS Status;
-
- //
- // Get Address
- //
- CommandStr = CommandArg;
- if (CommandStr == NULL) {
- EDBPrint (L"Memory: Address error!\n");
- return EFI_INVALID_PARAMETER;
- }
-
- Status = Symboltoi (CommandStr, &MemAddress);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND) {
- MemAddress = Xtoi (CommandStr);
- } else {
- //
- // Something wrong, let Symboltoi print error info.
- //
- EDBPrint (L"Command Argument error!\n");
- return EFI_INVALID_PARAMETER;
- }
- }
-
- *Address = MemAddress;
-
- //
- // Get Value
- //
- CommandStr = StrGetNextTokenLine (L" ");
- if (CommandStr == NULL) {
- EDBPrint (L"Memory: Value error!\n");
- return EFI_INVALID_PARAMETER;
- }
-
- *Value = LXtoi (CommandStr);
-
- //
- // Done
- //
- return EFI_SUCCESS;
-}
-
-/**
-
- Display memory.
-
- @param CommandArg - The argument for this command
- @param Width - Memory Width
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryDisplay (
- IN CHAR16 *CommandArg,
- IN EDB_DATA_WIDTH Width
- )
-{
- EFI_STATUS Status;
- UINTN Address;
- UINTN Count;
-
- //
- // Get memory address and count
- //
- Status = EdbGetMemoryAddressCount (CommandArg, &Address, &Count);
- if (EFI_ERROR (Status)) {
- return EFI_DEBUG_CONTINUE;
- }
-
- //
- // Display memory
- //
- EdbDisplayMemory (Address, Count, Width);
-
- //
- // Done
- //
- return EFI_DEBUG_CONTINUE;
-}
-
-/**
-
- Enter memory.
-
- @param CommandArg - The argument for this command
- @param Width - Memory Width
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryEnter (
- IN CHAR16 *CommandArg,
- IN EDB_DATA_WIDTH Width
- )
-{
- EFI_STATUS Status;
- UINTN Address;
- UINT64 Value;
-
- //
- // Get memory address and value
- //
- Status = EdbGetMemoryAddressValue (CommandArg, &Address, &Value);
- if (EFI_ERROR (Status)) {
- return EFI_DEBUG_CONTINUE;
- }
-
- //
- // Enter memory
- //
- EdbEnterMemory (Address, &Value, Width);
-
- //
- // Done
- //
- return EFI_DEBUG_CONTINUE;
-}
-
-/**
-
- DebuggerCommand - DB.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Interrupt type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryDB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryDisplay (CommandArg, EdbWidthUint8);
-}
-
-/**
-
- DebuggerCommand - DW.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Interrupt type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryDW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryDisplay (CommandArg, EdbWidthUint16);
-}
-
-/**
-
- DebuggerCommand - DD.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Interrupt type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryDD (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryDisplay (CommandArg, EdbWidthUint32);
-}
-
-/**
-
- DebuggerCommand - DQ.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Exception type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryDQ (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryDisplay (CommandArg, EdbWidthUint64);
-}
-
-/**
-
- DebuggerCommand - EB.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Exception type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryEB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryEnter (CommandArg, EdbWidthUint8);
-}
-
-/**
-
- DebuggerCommand - EW.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Interrupt type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryEW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryEnter (CommandArg, EdbWidthUint16);
-}
-
-/**
-
- DebuggerCommand - ED.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Exception type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryED (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryEnter (CommandArg, EdbWidthUint32);
-}
-
-/**
-
- DebuggerCommand - EQ.
-
- @param CommandArg - The argument for this command
- @param DebuggerPrivate - EBC Debugger private data structure
- @param ExceptionType - Exception type.
- @param SystemContext - EBC system context.
-
- @retval EFI_DEBUG_RETURN - formal return value
-
-**/
-EFI_DEBUG_STATUS
-DebuggerMemoryEQ (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- return DebuggerMemoryEnter (CommandArg, EdbWidthUint64);
-}
+/** @file
+
+Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+
+**/
+
+#include "Edb.h"
+
+/**
+
+ Display memory unit.
+
+ @param Address - Memory Address
+ @param Width - Memory Width
+
+ @return Length of the memory unit
+
+**/
+UINTN
+EdbDisplayMemoryUnit (
+ IN UINTN Address,
+ IN EDB_DATA_WIDTH Width
+ )
+{
+ UINT8 Data8;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINT64 Data64;
+
+ //
+ // Print according to width
+ //
+ switch (Width) {
+ case EdbWidthUint8:
+ CopyMem (&Data8, (VOID *)Address, sizeof (UINT8));
+ EDBPrint (L"%02x ", Data8);
+ return sizeof (UINT8);
+ case EdbWidthUint16:
+ CopyMem (&Data16, (VOID *)Address, sizeof (UINT16));
+ EDBPrint (L"%04x ", Data16);
+ return sizeof (UINT16);
+ case EdbWidthUint32:
+ CopyMem (&Data32, (VOID *)Address, sizeof (UINT32));
+ EDBPrint (L"%08x ", Data32);
+ return sizeof (UINT32);
+ case EdbWidthUint64:
+ CopyMem (&Data64, (VOID *)Address, sizeof (UINT64));
+ EDBPrint (L"%016lx ", Data64);
+ return sizeof (UINT64);
+ default:
+ ASSERT (FALSE);
+ break;
+ }
+
+ //
+ // something wrong
+ //
+ return 0;
+}
+
+/**
+
+ Display memory.
+
+ @param Address - Memory Address
+ @param Count - Memory Count
+ @param Width - Memory Width
+
+**/
+VOID
+EdbDisplayMemory (
+ IN UINTN Address,
+ IN UINTN Count,
+ IN EDB_DATA_WIDTH Width
+ )
+{
+ UINTN LineNumber;
+ UINTN ByteNumber;
+ UINTN LineIndex;
+ UINTN ByteIndex;
+ UINTN NumberInLine;
+
+ if (Count == 0) {
+ return;
+ }
+
+ //
+ // Get line number and byte number
+ //
+ switch (Width) {
+ case EdbWidthUint8:
+ NumberInLine = 16;
+ break;
+ case EdbWidthUint16:
+ NumberInLine = 8;
+ break;
+ case EdbWidthUint32:
+ NumberInLine = 4;
+ break;
+ case EdbWidthUint64:
+ NumberInLine = 2;
+ break;
+ default:
+ return;
+ }
+
+ LineNumber = Count / NumberInLine;
+ ByteNumber = Count % NumberInLine;
+ if (ByteNumber == 0) {
+ LineNumber -= 1;
+ ByteNumber = NumberInLine;
+ }
+
+ //
+ // Print each line
+ //
+ for (LineIndex = 0; LineIndex < LineNumber; LineIndex++) {
+ //
+ // Break check
+ //
+ if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
+ (LineIndex != 0))
+ {
+ if (SetPageBreak ()) {
+ break;
+ }
+ }
+
+ EDBPrint (EDB_PRINT_ADDRESS_FORMAT, (UINTN)Address);
+ for (ByteIndex = 0; ByteIndex < NumberInLine; ByteIndex++) {
+ Address += EdbDisplayMemoryUnit (Address, Width);
+ }
+
+ EDBPrint (L"\n");
+ }
+
+ //
+ // Break check
+ //
+ if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
+ (LineIndex != 0))
+ {
+ if (SetPageBreak ()) {
+ return;
+ }
+ }
+
+ //
+ // Print last line
+ //
+ EDBPrint (EDB_PRINT_ADDRESS_FORMAT, (UINTN)Address);
+ for (ByteIndex = 0; ByteIndex < ByteNumber; ByteIndex++) {
+ Address += EdbDisplayMemoryUnit (Address, Width);
+ }
+
+ return;
+}
+
+/**
+
+ Entry memory.
+
+ @param Address - Memory Address
+ @param Value - Memory Value
+ @param Width - Memory Width
+
+**/
+VOID
+EdbEnterMemory (
+ IN UINTN Address,
+ IN VOID *Value,
+ IN EDB_DATA_WIDTH Width
+ )
+{
+ switch (Width) {
+ case EdbWidthUint8:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT8));
+ break;
+ case EdbWidthUint16:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT16));
+ break;
+ case EdbWidthUint32:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT32));
+ break;
+ case EdbWidthUint64:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT64));
+ break;
+ default:
+ break;
+ }
+
+ return;
+}
+
+/**
+
+ Get memory address and count.
+
+ @param CommandArg - The argument for this command
+ @param Address - Memory Address
+ @param Count - Memory Count
+
+ @retval EFI_SUCCESS - memory address and count are got
+ @retval EFI_INVALID_PARAMETER - something wrong
+
+**/
+EFI_STATUS
+EdbGetMemoryAddressCount (
+ IN CHAR16 *CommandArg,
+ IN UINTN *Address,
+ IN UINTN *Count
+ )
+{
+ CHAR16 *CommandStr;
+ UINTN MemAddress;
+ EFI_STATUS Status;
+
+ //
+ // Get Address
+ //
+ CommandStr = CommandArg;
+ if (CommandStr == NULL) {
+ EDBPrint (L"Memory: Address error!\n");
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = Symboltoi (CommandStr, &MemAddress);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ MemAddress = Xtoi (CommandStr);
+ } else {
+ //
+ // Something wrong, let Symboltoi print error info.
+ //
+ EDBPrint (L"Command Argument error!\n");
+ return EFI_INVALID_PARAMETER;
+ }
+ }
+
+ *Address = MemAddress;
+
+ //
+ // Get Count
+ //
+ CommandStr = StrGetNextTokenLine (L" ");
+ if (CommandStr == NULL) {
+ *Count = 1;
+ } else {
+ *Count = Xtoi (CommandStr);
+ }
+
+ //
+ // Done
+ //
+ return EFI_SUCCESS;
+}
+
+/**
+
+ Get memory address and value.
+
+ @param CommandArg - The argument for this command
+ @param Address - Memory Address
+ @param Value - Memory Value
+
+ @retval EFI_SUCCESS - memory address and value are got
+ @retval EFI_INVALID_PARAMETER - something wrong
+
+**/
+EFI_STATUS
+EdbGetMemoryAddressValue (
+ IN CHAR16 *CommandArg,
+ IN UINTN *Address,
+ IN UINT64 *Value
+ )
+{
+ CHAR16 *CommandStr;
+ UINTN MemAddress;
+ EFI_STATUS Status;
+
+ //
+ // Get Address
+ //
+ CommandStr = CommandArg;
+ if (CommandStr == NULL) {
+ EDBPrint (L"Memory: Address error!\n");
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = Symboltoi (CommandStr, &MemAddress);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ MemAddress = Xtoi (CommandStr);
+ } else {
+ //
+ // Something wrong, let Symboltoi print error info.
+ //
+ EDBPrint (L"Command Argument error!\n");
+ return EFI_INVALID_PARAMETER;
+ }
+ }
+
+ *Address = MemAddress;
+
+ //
+ // Get Value
+ //
+ CommandStr = StrGetNextTokenLine (L" ");
+ if (CommandStr == NULL) {
+ EDBPrint (L"Memory: Value error!\n");
+ return EFI_INVALID_PARAMETER;
+ }
+
+ *Value = LXtoi (CommandStr);
+
+ //
+ // Done
+ //
+ return EFI_SUCCESS;
+}
+
+/**
+
+ Display memory.
+
+ @param CommandArg - The argument for this command
+ @param Width - Memory Width
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryDisplay (
+ IN CHAR16 *CommandArg,
+ IN EDB_DATA_WIDTH Width
+ )
+{
+ EFI_STATUS Status;
+ UINTN Address;
+ UINTN Count;
+
+ //
+ // Get memory address and count
+ //
+ Status = EdbGetMemoryAddressCount (CommandArg, &Address, &Count);
+ if (EFI_ERROR (Status)) {
+ return EFI_DEBUG_CONTINUE;
+ }
+
+ //
+ // Display memory
+ //
+ EdbDisplayMemory (Address, Count, Width);
+
+ //
+ // Done
+ //
+ return EFI_DEBUG_CONTINUE;
+}
+
+/**
+
+ Enter memory.
+
+ @param CommandArg - The argument for this command
+ @param Width - Memory Width
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryEnter (
+ IN CHAR16 *CommandArg,
+ IN EDB_DATA_WIDTH Width
+ )
+{
+ EFI_STATUS Status;
+ UINTN Address;
+ UINT64 Value;
+
+ //
+ // Get memory address and value
+ //
+ Status = EdbGetMemoryAddressValue (CommandArg, &Address, &Value);
+ if (EFI_ERROR (Status)) {
+ return EFI_DEBUG_CONTINUE;
+ }
+
+ //
+ // Enter memory
+ //
+ EdbEnterMemory (Address, &Value, Width);
+
+ //
+ // Done
+ //
+ return EFI_DEBUG_CONTINUE;
+}
+
+/**
+
+ DebuggerCommand - DB.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Interrupt type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryDB (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryDisplay (CommandArg, EdbWidthUint8);
+}
+
+/**
+
+ DebuggerCommand - DW.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Interrupt type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryDW (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryDisplay (CommandArg, EdbWidthUint16);
+}
+
+/**
+
+ DebuggerCommand - DD.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Interrupt type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryDD (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryDisplay (CommandArg, EdbWidthUint32);
+}
+
+/**
+
+ DebuggerCommand - DQ.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Exception type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryDQ (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryDisplay (CommandArg, EdbWidthUint64);
+}
+
+/**
+
+ DebuggerCommand - EB.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Exception type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryEB (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryEnter (CommandArg, EdbWidthUint8);
+}
+
+/**
+
+ DebuggerCommand - EW.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Interrupt type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryEW (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryEnter (CommandArg, EdbWidthUint16);
+}
+
+/**
+
+ DebuggerCommand - ED.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Exception type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryED (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryEnter (CommandArg, EdbWidthUint32);
+}
+
+/**
+
+ DebuggerCommand - EQ.
+
+ @param CommandArg - The argument for this command
+ @param DebuggerPrivate - EBC Debugger private data structure
+ @param ExceptionType - Exception type.
+ @param SystemContext - EBC system context.
+
+ @retval EFI_DEBUG_RETURN - formal return value
+
+**/
+EFI_DEBUG_STATUS
+DebuggerMemoryEQ (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ )
+{
+ return DebuggerMemoryEnter (CommandArg, EdbWidthUint64);
+}