From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../Universal/EbcDxe/EbcDebugger/EdbCmdGo.c | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 roms/edk2/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c (limited to 'roms/edk2/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c') diff --git a/roms/edk2/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c b/roms/edk2/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c new file mode 100644 index 000000000..e5cf857a2 --- /dev/null +++ b/roms/edk2/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c @@ -0,0 +1,76 @@ +/** @file + +Copyright (c) 2007, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + + + +**/ + +#include "Edb.h" + +/** + + DebuggerCommand - Go. + + @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_BREAK - formal return value + @retval EFI_DEBUG_CONTINUE - something wrong + +**/ +EFI_DEBUG_STATUS +DebuggerGo ( + IN CHAR16 *CommandArg, + IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, + IN EFI_EXCEPTION_TYPE ExceptionType, + IN OUT EFI_SYSTEM_CONTEXT SystemContext + ) +{ + UINTN Address; + CHAR16 *CommandStr; + EFI_STATUS Status; + + // + // Check argument + // + if (CommandArg != NULL) { + if (StriCmp (CommandArg, L"til") == 0) { + CommandStr = StrGetNextTokenLine (L" "); + if (CommandStr != NULL) { + // + // Enable GoTil break now + // set BreakAddress, and set feature flag. + // + Status = Symboltoi (CommandStr, &Address); + if (EFI_ERROR (Status)) { + if (Status == EFI_NOT_FOUND) { + Address = Xtoi(CommandStr); + } else { + // + // Something wrong, let Symboltoi print error info. + // + EDBPrint (L"Command Argument error!\n"); + return EFI_DEBUG_CONTINUE; + } + } + DebuggerPrivate->GoTilContext.BreakAddress = Address; + DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_GT; + } else { + EDBPrint (L"Command Argument error!\n"); + return EFI_DEBUG_CONTINUE; + } + } else { + EDBPrint (L"Command Argument error!\n"); + return EFI_DEBUG_CONTINUE; + } + } + + // + // Done + // + return EFI_DEBUG_BREAK; +} -- cgit