From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D09A281EEC for ; Thu, 24 Nov 2016 04:40:50 -0800 (PST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP; 24 Nov 2016 04:40:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,543,1473145200"; d="scan'208";a="1072991085" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga001.fm.intel.com with ESMTP; 24 Nov 2016 04:40:50 -0800 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 24 Nov 2016 04:40:49 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 24 Nov 2016 04:40:49 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.239]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.96]) with mapi id 14.03.0248.002; Thu, 24 Nov 2016 20:40:47 +0800 From: "Yao, Jiewen" To: Pete Batard , "edk2-devel@lists.01.org" Thread-Topic: [PATCH 1/1] MdeModulePkg/EbcDxe: add EBC Debugger configuration application Thread-Index: AQHSRkYpa0S4JqG2QUWo7ABgR1dRDqDoDwJw Date: Thu, 24 Nov 2016 12:40:46 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C50386DA4D5@shsmsx102.ccr.corp.intel.com> References: <20161124112956.3960-1-pete@akeo.ie> <20161124112956.3960-2-pete@akeo.ie> In-Reply-To: <20161124112956.3960-2-pete@akeo.ie> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 1/1] MdeModulePkg/EbcDxe: add EBC Debugger configuration application X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Nov 2016 12:40:50 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thank you Peter. I like this porting work. One comment is that we have special restriction on package dependency. -- The MdeModulePkg should not depend upon ShellPkg. -- The MdeModulePkg can only depend upon MdePkg. I know you want to parse the shell argument, such as Argc and Argv. If an application has ShellPkg dependency issue, the recommended way is to = use EFI_SHELL_PARAMETERS_PROTOCOL, which is defined in UEFI SHELL 2.x speci= fication. -- It is located in MdePkg\Include\Protocol\ShellParameters.h An application may use ShellLib, if and only if it can depend upon ShellPkg= , such as a platform Package, or ShellPkg itself. You can refer to MdeModulePkg\Application\CapsuleApp\AppSupport.c, GetArg()= to see how to get Argv and Argc via EFI_SHELL_PARAMETERS_PROTOCOL. :-) Other part looks good to me. Thank you Yao Jiewen > -----Original Message----- > From: Pete Batard [mailto:pete@akeo.ie] > Sent: Thursday, November 24, 2016 7:30 PM > To: edk2-devel@lists.01.org > Cc: Yao, Jiewen ; Pete Batard > Subject: [PATCH 1/1] MdeModulePkg/EbcDxe: add EBC Debugger > configuration application >=20 > * Introduce a generic Debugger Configuration protocol. > * Add private configuration data in the EBC Debugger and make it > register the Debugger Configuration protocol on initialization. > * Add a shell application that uses the protocol above to access > the private data in order to configure the EBC debugger. >=20 > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Pete Batard > --- > .../Include/Protocol/DebuggerConfiguration.h | 32 ++++ > MdeModulePkg/MdeModulePkg.dec | 4 + > MdeModulePkg/MdeModulePkg.dsc | 4 + > MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf | 1 + > .../EbcDxe/EbcDebugger/EbcDebuggerConfig.c | 207 > +++++++++++++++++++++ > MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c | 4 + > .../Universal/EbcDxe/EbcDebugger/EdbCommon.h | 3 + > .../Universal/EbcDxe/EbcDebugger/EdbHook.c | 11 ++ > .../Universal/EbcDxe/EbcDebuggerConfig.inf | 57 ++++++ > .../Universal/EbcDxe/EbcDebuggerConfig.uni | 18 ++ > .../Universal/EbcDxe/EbcDebuggerConfigExtra.uni | 17 ++ > 11 files changed, 358 insertions(+) > create mode 100644 > MdeModulePkg/Include/Protocol/DebuggerConfiguration.h > create mode 100644 > MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c > create mode 100644 > MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf > create mode 100644 > MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.uni > create mode 100644 > MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfigExtra.uni >=20 > diff --git a/MdeModulePkg/Include/Protocol/DebuggerConfiguration.h > b/MdeModulePkg/Include/Protocol/DebuggerConfiguration.h > new file mode 100644 > index 000000000000..eaaa6b925fad > --- /dev/null > +++ b/MdeModulePkg/Include/Protocol/DebuggerConfiguration.h > @@ -0,0 +1,32 @@ > +/** @file > + EBC Debugger configuration protocol. > + > + Copyright (c) 2007-2016, Intel Corporation. All rights reserved.
> + > + This program and the accompanying materials > + are licensed and made available under the terms and conditions > + of the BSD License which accompanies this distribution. The > + full text of the license may be found at > + http://opensource.org/licenses/bsd-license.php > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > +**/ > + > +#ifndef __EFI_DEBUGGER_CONFIGURATION_H__ > +#define __EFI_DEBUGGER_CONFIGURATION_H__ > + > +#define EFI_DEBUGGER_CONFIGURATION_PROTOCOL_GUID \ > + { 0x577d959c, 0xe967, 0x4546, 0x86, 0x20, 0xc7, 0x78, 0xfa, 0xe5, 0xda= , > 0x5 } > + > +#define EFI_DEBUGGER_CONFIGURATION_VERSION 0x00000001 > + > +typedef struct _EFI_DEBUGGER_CONFIGURATION_PROTOCOL { > + UINT32 DebuggerConfigurationRevision; > + VOID *DebuggerPrivateData; > +} EFI_DEBUGGER_CONFIGURATION_PROTOCOL; > + > +extern EFI_GUID gEfiDebuggerConfigurationProtocolGuid; > + > +#endif > diff --git a/MdeModulePkg/MdeModulePkg.dec > b/MdeModulePkg/MdeModulePkg.dec > index 22898e3f7487..08c3e40e930c 100644 > --- a/MdeModulePkg/MdeModulePkg.dec > +++ b/MdeModulePkg/MdeModulePkg.dec > @@ -420,6 +420,10 @@ [Protocols] > # Include/Protocol/GenericMemoryTest.h > gEfiGenericMemTestProtocolGuid =3D { 0x309DE7F1, 0x7F5E, 0x4ACE, > { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }} >=20 > + ## This protocol defines the Debugger Configuration protocol. > + # Include/Protocol/DebuggerConfiguration.h > + gEfiDebuggerConfigurationProtocolGuid =3D { 0x577d959c, 0xe967, 0x4546= , > { 0x86, 0x20, 0xc7, 0x78, 0xfa, 0xe5, 0xda, 0x05 }} > + > ## Include/Protocol/Dpc.h > gEfiDpcProtocolGuid =3D {0x480f8ae9, 0xc46, 0x4aa9, > { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }} >=20 > diff --git a/MdeModulePkg/MdeModulePkg.dsc > b/MdeModulePkg/MdeModulePkg.dsc > index bfecb3078737..60202d65600c 100644 > --- a/MdeModulePkg/MdeModulePkg.dsc > +++ b/MdeModulePkg/MdeModulePkg.dsc > @@ -163,6 +163,9 @@ [LibraryClasses.common.UEFI_APPLICATION] > HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf >=20 > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMem > oryAllocationLib.inf > DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf > + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf > + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf > + > ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf >=20 > [LibraryClasses.ARM, LibraryClasses.AARCH64] > ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf > @@ -432,6 +435,7 @@ [Components.IA32, Components.X64, > Components.IPF, Components.AARCH64] > MdeModulePkg/Universal/DebugSupportDxe/DebugSupportDxe.inf > MdeModulePkg/Universal/EbcDxe/EbcDxe.inf > MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > + MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf >=20 > [Components.IA32, Components.X64, Components.Ebc] > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > { > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > index 7e0166672b99..ce413c0b25f6 100644 > --- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger.inf > @@ -102,6 +102,7 @@ [LibraryClasses] > [Protocols] > gEfiDebugSupportProtocolGuid ## PRODUCES > gEfiEbcProtocolGuid ## PRODUCES > + gEfiDebuggerConfigurationProtocolGuid ## PRODUCES > gEfiEbcVmTestProtocolGuid ## > SOMETIMES_PRODUCES > gEfiEbcSimpleDebuggerProtocolGuid ## > SOMETIMES_CONSUMES > gEfiPciRootBridgeIoProtocolGuid ## > SOMETIMES_CONSUMES > diff --git > a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c > new file mode 100644 > index 000000000000..8e9fca9d3ef8 > --- /dev/null > +++ > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c > @@ -0,0 +1,207 @@ > +/** @file > + Configuration application for the EBC Debugger. > + > + Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
> + This program and the accompanying materials > + are licensed and made available under the terms and conditions of the > BSD License > + which accompanies this distribution. The full text of the license may= be > found at > + http://opensource.org/licenses/bsd-license.php > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > +**/ > + > +#include > +#include > +#include > + > +#include "EdbCommon.h" > +#include "EdbSupport.h" > + > +VOID > +PrintUsage ( > + VOID > + ) > +{ > + Print ( > + L"EbcDebuggerConfig Version 0.2\n" > + L"Copyright (C) Intel Corp 2007-2016. All rights reserved.\n" > + L"\n" > + L"Configure EbcDebugger in EFI Shell Environment.\n" > + L"\n" > + L"usage: EdbCfg \n" > + L" CommandList:\n" > + L" BO[C|CX|R|E|T|K] - Enable/Disable > BOC/BOCX/BOR/BOE/BOT/BOK.\n" > +// L" SHOWINFO - Show Debugger > Information.\n" > + L"\n" > + ); > + return; > +} > + > +VOID > +EdbShowInfo ( > + EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration > + ) > +{ > + Print (L"Not supported!\n"); > + return ; > +} > + > +VOID > +EdbConfigBreak ( > + EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration, > + CHAR16 *Command, > + CHAR16 *CommandArg > + ) > +{ > + EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate; > + > + DebuggerPrivate =3D (EFI_DEBUGGER_PRIVATE_DATA > *)DebuggerConfiguration->DebuggerPrivateData; > + > + if (StriCmp (Command, L"BOC") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOC) > =3D=3D EFI_DEBUG_FLAG_EBC_BOC) { > + Print (L"BOC on\n"); > + } else { > + Print (L"BOC off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOC; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOC; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } else if (StriCmp (Command, L"BOCX") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOCX) > =3D=3D EFI_DEBUG_FLAG_EBC_BOCX) { > + Print (L"BOCX on\n"); > + } else { > + Print (L"BOCX off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOCX; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOCX; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } else if (StriCmp (Command, L"BOR") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOR) > =3D=3D EFI_DEBUG_FLAG_EBC_BOR) { > + Print (L"BOR on\n"); > + } else { > + Print (L"BOR off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOR; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOR; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } else if (StriCmp (Command, L"BOE") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOE) > =3D=3D EFI_DEBUG_FLAG_EBC_BOE) { > + Print (L"BOE on\n"); > + } else { > + Print (L"BOE off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOE; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOE; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } else if (StriCmp (Command, L"BOT") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOT) > =3D=3D EFI_DEBUG_FLAG_EBC_BOT) { > + Print (L"BOT on\n"); > + } else { > + Print (L"BOT off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOT; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOT; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } else if (StriCmp (Command, L"BOK") =3D=3D 0) { > + if (CommandArg =3D=3D NULL) { > + if ((DebuggerPrivate->FeatureFlags & EFI_DEBUG_FLAG_EBC_BOK) > =3D=3D EFI_DEBUG_FLAG_EBC_BOK) { > + Print (L"BOK on\n"); > + } else { > + Print (L"BOK off\n"); > + } > + } else if (StriCmp (CommandArg, L"ON") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags |=3D EFI_DEBUG_FLAG_EBC_BOK; > + } else if (StriCmp (CommandArg, L"OFF") =3D=3D 0) { > + DebuggerPrivate->FeatureFlags &=3D > ~EFI_DEBUG_FLAG_EBC_B_BOK; > + } else { > + Print (L"Invalid parameter\n"); > + } > + } > + return ; > +} > + > +INTN > +EFIAPI > +ShellAppMain ( > + IN UINTN Argc, > + IN CHAR16 **Argv > + ) > +{ > + EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration; > + EFI_STATUS Status; > + > + if (Argc < 2) { > + PrintUsage (); > + return SHELL_INVALID_PARAMETER; > + } > + > + if (Argc =3D=3D 2) { > + if ((StrCmp (Argv[1], L"/?") =3D=3D 0) || > + (StrCmp (Argv[1], L"-?") =3D=3D 0) || > + (StrCmp (Argv[1], L"-h") =3D=3D 0) || > + (StrCmp (Argv[1], L"-H") =3D=3D 0) ) { > + PrintUsage (); > + return SHELL_SUCCESS; > + } > + } > + > + Status =3D gBS->LocateProtocol ( > + &gEfiDebuggerConfigurationProtocolGuid, > + NULL, > + &DebuggerConfiguration > + ); > + if (EFI_ERROR(Status)) { > + Print (L"Error: DebuggerConfiguration Protocol not found!\n"); > + return SHELL_SUCCESS; > + } > + > + if (StriCmp (Argv[1], L"SHOWINFO") =3D=3D 0) { > + EdbShowInfo (DebuggerConfiguration); > + return SHELL_SUCCESS; > + } > + > + if (((Argc =3D=3D 2) || (Argc =3D=3D 3)) && > + ((StriCmp (Argv[1], L"BOC") =3D=3D 0) || > + (StriCmp (Argv[1], L"BOCX") =3D=3D 0) || > + (StriCmp (Argv[1], L"BOR") =3D=3D 0) || > + (StriCmp (Argv[1], L"BOE") =3D=3D 0) || > + (StriCmp (Argv[1], L"BOT") =3D=3D 0) || > + (StriCmp (Argv[1], L"BOK") =3D=3D 0))) { > + if (Argc =3D=3D 3) { > + EdbConfigBreak (DebuggerConfiguration, Argv[1], Argv[2]); > + } else { > + EdbConfigBreak (DebuggerConfiguration, Argv[1], NULL); > + } > + return SHELL_SUCCESS; > + } > + > + Print (L"Error: Invalid Command!\n"); > + return SHELL_INVALID_PARAMETER; > +} > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c > index e0b85c70eff5..189b88357758 100644 > --- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c > @@ -27,6 +27,10 @@ EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate =3D { > EBC_DEBUGGER_MINOR_VERSION, // > EfiDebuggerRevision > (VM_MAJOR_VERSION << 16) | > VM_MINOR_VERSION, // EbcVmRevision > + { > + EFI_DEBUGGER_CONFIGURATION_VERSION, > + &mDebuggerPrivate, > + }, // > DebuggerConfiguration > NULL, // > DebugImageInfoTableHeader > NULL, // Vol > NULL, // PciRootBridgeIo > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h > index 45634af9ce39..616c369253b8 100644 > --- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h > @@ -30,9 +30,11 @@ Abstract: > #include > #include > #include > +#include > #include > #include > #include > +#include > #include > #include > #include > @@ -227,6 +229,7 @@ typedef struct _EFI_DEBUGGER_PRIVATE_DATA { > EFI_INSTRUCTION_SET_ARCHITECTURE Isa; > UINT32 > EfiDebuggerRevision; > UINT32 EbcVmRevision; > + EFI_DEBUGGER_CONFIGURATION_PROTOCOL > DebuggerConfiguration; > EFI_DEBUG_IMAGE_INFO_TABLE_HEADER > *DebugImageInfoTableHeader; > EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol; > EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL > *PciRootBridgeIo; > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c > b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c > index 9196adb74ba3..3bfee927e227 100644 > --- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c > @@ -448,6 +448,17 @@ Returns: > ); >=20 > // > + // Register Debugger Configuration Protocol, for config in shell > + // > + Status =3D gBS->InstallProtocolInterface ( > + &Handle, > + &gEfiDebuggerConfigurationProtocolGuid, > + EFI_NATIVE_INTERFACE, > + &mDebuggerPrivate.DebuggerConfiguration > + ); > + > + // > + // > // Create break event > // > Status =3D gBS->CreateEvent ( > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf > b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf > new file mode 100644 > index 000000000000..db21f301d87c > --- /dev/null > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.inf > @@ -0,0 +1,57 @@ > +## @file > +# EBC Debugger configuration application. > +# > +# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved. > +# > +# This program and the accompanying materials > +# are licensed and made available under the terms and conditions of the > BSD License > +# which accompanies this distribution. The full text of the license may= be > found at > +# http://opensource.org/licenses/bsd-license.php > +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS > IS" BASIS, > +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > +# > +# > +## > + > +[Defines] > + INF_VERSION =3D 0x00010005 > + BASE_NAME =3D EdbCfg > + MODULE_UNI_FILE =3D EbcDebuggerConfig.uni > + FILE_GUID =3D > 8CFC5233-23C6-49e3-8A2D-7E581AB305BA > + MODULE_TYPE =3D UEFI_APPLICATION > + VERSION_STRING =3D 1.0 > + ENTRY_POINT =3D ShellCEntryLib > + > +# > +# The following information is for reference only and not required by th= e > build tools. > +# > +# VALID_ARCHITECTURES =3D IA32 X64 IPF AARCH64 > +# > + > +[Sources] > + EbcDebugger/EbcDebuggerConfig.c > + EbcDebugger/EdbCommon.h > + EbcDebugger/EdbSupportString.c > + EbcDebugger/EdbSupport.h > + > +[Packages] > + AppPkg/AppPkg.dec > + MdePkg/MdePkg.dec > + ShellPkg/ShellPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + UefiLib > + BaseLib > + DebugLib > + ShellLib > + ShellCEntryLib > + > +[Protocols] > + gEfiDebuggerConfigurationProtocolGuid ## CONSUMES > + > +[Depex] > + TRUE > + > +[UserExtensions.TianoCore."ExtraFiles"] > + EbcDebuggerConfigExtra.uni > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.uni > b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.uni > new file mode 100644 > index 000000000000..5201b9358346 > --- /dev/null > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfig.uni > @@ -0,0 +1,18 @@ > +// /** @file > +// EBC Debugger configuration application. > +// > +// Copyright (c) 2016, Intel Corporation. All rights reserved.
> +// > +// This program and the accompanying materials > +// are licensed and made available under the terms and conditions of the > BSD License > +// which accompanies this distribution. The full text of the license may= be > found at > +// http://opensource.org/licenses/bsd-license.php > +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > +// > +// **/ > + > + > +#string STR_MODULE_ABSTRACT #language en-US "EBC > Debugger configuration application" > + > +#string STR_MODULE_DESCRIPTION #language en-US "This > application allows configuring the EBC Debugger." > diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfigExtra.uni > b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfigExtra.uni > new file mode 100644 > index 000000000000..b3ad472c4c44 > --- /dev/null > +++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerConfigExtra.uni > @@ -0,0 +1,17 @@ > +// /** @file > +// EBC Debugger configuration application. > +// > +// Copyright (c) 2016, Intel Corporation. All rights reserved.
> +// > +// This program and the accompanying materials > +// are licensed and made available under the terms and conditions of the > BSD License > +// which accompanies this distribution. The full text of the license may= be > found at > +// http://opensource.org/licenses/bsd-license.php > +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > +// > +// **/ > + > +#string STR_PROPERTIES_MODULE_NAME > +#language en-US > +"EBC Debugger Config" > -- > 2.9.3.windows.2