/** @file Copyright (c) 2007, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "Edb.h" /** DebuggerCommand - BreakOnCALL. @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_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnCALL ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOC) == EFI_DEBUG_FLAG_EBC_BOC) { EDBPrint (L"BOC on\n"); } else { EDBPrint (L"BOC off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOC; EDBPrint (L"BOC on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOC; EDBPrint (L"BOC off\n"); } else { EDBPrint (L"BOC - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand BreakOnCALLEX. @param CommandArg The argument for this command @param DebuggerPrivate EBC Debugger private data structure @param ExceptionType Exceptiont type. @param SystemContext EBC system context. @retval EFI_DEBUG_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnCALLEX ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOCX) == EFI_DEBUG_FLAG_EBC_BOCX) { EDBPrint (L"BOCX on\n"); } else { EDBPrint (L"BOCX off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOCX; EDBPrint (L"BOCX on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOCX; EDBPrint (L"BOCX off\n"); } else { EDBPrint (L"BOCX - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand - BreakOnRET. @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_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnRET ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOR) == EFI_DEBUG_FLAG_EBC_BOR) { EDBPrint (L"BOR on\n"); } else { EDBPrint (L"BOR off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOR; EDBPrint (L"BOR on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOR; EDBPrint (L"BOR off\n"); } else { EDBPrint (L"BOR - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand - BreakOnEntrypoint. @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_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnEntrypoint ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOE) == EFI_DEBUG_FLAG_EBC_BOE) { EDBPrint (L"BOE on\n"); } else { EDBPrint (L"BOE off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOE; EDBPrint (L"BOE on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOE; EDBPrint (L"BOE off\n"); } else { EDBPrint (L"BOE - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand - BreakOnThunk. @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_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnThunk ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOT) == EFI_DEBUG_FLAG_EBC_BOT) { EDBPrint (L"BOT on\n"); } else { EDBPrint (L"BOT off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOT; EDBPrint (L"BOT on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOT; EDBPrint (L"BOT off\n"); } else { EDBPrint (L"BOT - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand - BreakOnKey. @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_CONTINUE formal return value **/ EFI_DEBUG_STATUS DebuggerBreakOnKey ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { // // Check argument // if (CommandArg == NULL) { if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOK) == EFI_DEBUG_FLAG_EBC_BOK) { EDBPrint (L"BOK on\n"); } else { EDBPrint (L"BOK off\n"); } } else if (StriCmp (CommandArg, L"on") == 0) { DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_BOK; EDBPrint (L"BOK on\n"); } else if (StriCmp (CommandArg, L"off") == 0) { DebuggerPrivate->FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOK; EDBPrint (L"BOK off\n"); } else { EDBPrint (L"BOK - argument error\n"); } // // Done // return EFI_DEBUG_CONTINUE; }