Reviewed-by: Jaben Carsey <jaben.car...@intel.com> > -----Original Message----- > From: Ni, Ruiyu > Sent: Sunday, November 26, 2017 9:56 PM > To: edk2-devel@lists.01.org > Cc: Carsey, Jaben <jaben.car...@intel.com>; Kinney, Michael D > <michael.d.kin...@intel.com> > Subject: [PATCH v2 3/3] ShellPkg/dp: Convert from NULL class library to > Dynamic Command > Importance: High > > UEFI Shell spec defines Shell Dynamic Command protocol which is just > for the purpose to extend internal command. > So dp command is changed from NULL class library to be a driver > producing DynamicCommand protocol. > > The guideline is: > 1. Only use NULL class library for Shell spec defined commands. > 2. New commands can be provided as not only a standalone application > but also a dynamic command. So it can be used either as an > internal command, but also as a standalone application. > > DpApp.inf is to provide a standalone application. > DpDynamicCommand.inf is to provide a standalone driver producing > Dynamic Command protocol. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ruiyu Ni <ruiyu...@intel.com> > Cc: Jaben Carsey <jaben.car...@intel.com> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > --- > .../DpDynamicCommand}/Dp.c | 100 +++++++---- > .../DpDynamicCommand}/Dp.h | 63 ++++++- > .../DpDynamicCommand/Dp.uni} | 0 > ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.c | 53 ++++++ > ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf | 73 > +++++++++ > .../DpDynamicCommand/DpDynamicCommand.c | 130 > +++++++++++++++ > .../DpDynamicCommand/DpDynamicCommand.inf | 78 +++++++++ > .../DpDynamicCommand}/DpInternal.h | 2 +- > .../DpDynamicCommand}/DpProfile.c | 34 ++-- > .../DpDynamicCommand}/DpTrace.c | 182 > ++++++++++----------- > .../DpDynamicCommand}/DpUtilities.c | 44 +++-- > .../DpDynamicCommand}/Literals.c | 0 > .../DpDynamicCommand}/Literals.h | 0 > .../DpDynamicCommand}/PerformanceTokens.h | 0 > ShellPkg/Library/UefiDpLib/Readme.txt | 2 - > ShellPkg/Library/UefiDpLib/UefiDpLib.c | 101 ------------ > ShellPkg/Library/UefiDpLib/UefiDpLib.h | 64 -------- > ShellPkg/Library/UefiDpLib/UefiDpLib.inf | 77 --------- > ShellPkg/ShellPkg.dsc | 17 +- > 19 files changed, 605 insertions(+), 415 deletions(-) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/Dp.c (84%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/Dp.h (70%) > rename ShellPkg/{Library/UefiDpLib/UefiDpLib.uni => > DynamicCommand/DpDynamicCommand/Dp.uni} (100%) > create mode 100644 > ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.c > create mode 100644 > ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf > create mode 100644 > ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.c > create mode 100644 > ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/DpInternal.h (96%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/DpProfile.c (87%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/DpTrace.c (89%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/DpUtilities.c (87%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/Literals.c (100%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/Literals.h (100%) > rename ShellPkg/{Library/UefiDpLib => > DynamicCommand/DpDynamicCommand}/PerformanceTokens.h (100%) > delete mode 100644 ShellPkg/Library/UefiDpLib/Readme.txt > delete mode 100644 ShellPkg/Library/UefiDpLib/UefiDpLib.c > delete mode 100644 ShellPkg/Library/UefiDpLib/UefiDpLib.h > delete mode 100644 ShellPkg/Library/UefiDpLib/UefiDpLib.inf > > diff --git a/ShellPkg/Library/UefiDpLib/Dp.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c > similarity index 84% > rename from ShellPkg/Library/UefiDpLib/Dp.c > rename to ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c > index 94fa61c710..3ecc753d0c 100644 > --- a/ShellPkg/Library/UefiDpLib/Dp.c > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c > @@ -24,20 +24,13 @@ > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > **/ > > -#include "UefiDpLib.h" > -#include <Library/ShellLib.h> > -#include <Library/BaseLib.h> > -#include <Library/MemoryAllocationLib.h> > -#include <Library/DebugLib.h> > -#include <Library/UefiLib.h> > - > -#include <Guid/Performance.h> > - > #include "PerformanceTokens.h" > #include "Dp.h" > #include "Literals.h" > #include "DpInternal.h" > > +EFI_HANDLE mDpHiiHandle; > + > // > /// Module-Global Variables > ///@{ > @@ -89,18 +82,18 @@ DumpStatistics( void ) > { > EFI_STRING StringPtr; > EFI_STRING StringPtrUnknown; > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_STATISTICS), NULL); > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_STATISTICS), NULL); > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown : StringPtr); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_STATS_NUMTRACE), > gDpHiiHandle, SummaryData.NumTrace); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMINCOMPLETE), gDpHiiHandle, > SummaryData.NumIncomplete); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMPHASES), gDpHiiHandle, > SummaryData.NumSummary); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMHANDLES), gDpHiiHandle, > SummaryData.NumHandles, SummaryData.NumTrace - > SummaryData.NumHandles); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_STATS_NUMPEIMS), > gDpHiiHandle, SummaryData.NumPEIMs); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMGLOBALS), gDpHiiHandle, > SummaryData.NumGlobal); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMTRACE), mDpHiiHandle, SummaryData.NumTrace); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMINCOMPLETE), mDpHiiHandle, > SummaryData.NumIncomplete); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMPHASES), mDpHiiHandle, > SummaryData.NumSummary); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMHANDLES), mDpHiiHandle, > SummaryData.NumHandles, SummaryData.NumTrace - > SummaryData.NumHandles); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMPEIMS), mDpHiiHandle, SummaryData.NumPEIMs); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMGLOBALS), mDpHiiHandle, > SummaryData.NumGlobal); > #if PROFILING_IMPLEMENTED > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMPROFILE), gDpHiiHandle, SummaryData.NumProfile); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_STATS_NUMPROFILE), mDpHiiHandle, > SummaryData.NumProfile); > #endif // PROFILING_IMPLEMENTED > SHELL_FREE_NON_NULL (StringPtr); > SHELL_FREE_NON_NULL (StringPtrUnknown); > @@ -137,8 +130,7 @@ InitCumulativeData ( > @retval value Unknown error. > **/ > SHELL_STATUS > -EFIAPI > -ShellCommandRunDp ( > +RunDp ( > IN EFI_HANDLE ImageHandle, > IN EFI_SYSTEM_TABLE *SystemTable > ) > @@ -182,15 +174,12 @@ ShellCommandRunDp ( > Status = ShellInitialize(); > ASSERT_EFI_ERROR(Status); > > - Status = CommandInit(); > - ASSERT_EFI_ERROR(Status); > - > // > // Process Command Line arguments > // > Status = ShellCommandLineParse (ParamList, &ParamPackage, NULL, > TRUE); > if (EFI_ERROR(Status)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_INVALID_ARG), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_INVALID_ARG), > mDpHiiHandle); > return SHELL_INVALID_PARAMETER; > } > > @@ -273,7 +262,7 @@ ShellCommandRunDp ( > // > Status = EfiGetSystemConfigurationTable (&gPerformanceProtocolGuid, > (VOID **) &PerformanceProperty); > if (EFI_ERROR (Status) || (PerformanceProperty == NULL)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_PERF_PROPERTY_NOT_FOUND), gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_PERF_PROPERTY_NOT_FOUND), mDpHiiHandle); > goto Done; > } > > @@ -288,22 +277,22 @@ ShellCommandRunDp ( > // Print header > // > // print DP's build version > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_BUILD_REVISION), > gDpHiiHandle, DP_MAJOR_VERSION, DP_MINOR_VERSION); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_BUILD_REVISION), > mDpHiiHandle, DP_MAJOR_VERSION, DP_MINOR_VERSION); > > // print performance timer characteristics > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_KHZ), gDpHiiHandle, > TimerInfo.Frequency); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_KHZ), > mDpHiiHandle, TimerInfo.Frequency); > > if (VerboseMode && !RawMode) { > - StringPtr = HiiGetString (gDpHiiHandle, > + StringPtr = HiiGetString (mDpHiiHandle, > (EFI_STRING_ID) (TimerInfo.CountUp ? STRING_TOKEN > (STR_DP_UP) : STRING_TOKEN (STR_DP_DOWN)), NULL); > ASSERT (StringPtr != NULL); > // Print Timer count range and direction > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_TIMER_PROPERTIES), gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_TIMER_PROPERTIES), mDpHiiHandle, > StringPtr, > TimerInfo.StartCount, > TimerInfo.EndCount > ); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_VERBOSE_THRESHOLD), gDpHiiHandle, mInterestThreshold); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_VERBOSE_THRESHOLD), mDpHiiHandle, mInterestThreshold); > } > > > /********************************************************** > ****************** > @@ -398,3 +387,52 @@ Done: > > return ShellStatus; > } > + > + > +/** > + Retrive HII package list from ImageHandle and publish to HII database. > + > + @param ImageHandle The image handle of the process. > + > + @return HII handle. > +**/ > +EFI_HANDLE > +InitializeHiiPackage ( > + EFI_HANDLE ImageHandle > + ) > +{ > + EFI_STATUS Status; > + EFI_HII_PACKAGE_LIST_HEADER *PackageList; > + EFI_HANDLE HiiHandle; > + > + // > + // Retrieve HII package list from ImageHandle > + // > + Status = gBS->OpenProtocol ( > + ImageHandle, > + &gEfiHiiPackageListProtocolGuid, > + (VOID **)&PackageList, > + ImageHandle, > + NULL, > + EFI_OPEN_PROTOCOL_GET_PROTOCOL > + ); > + ASSERT_EFI_ERROR (Status); > + if (EFI_ERROR (Status)) { > + return NULL; > + } > + > + // > + // Publish HII package list to HII Database. > + // > + Status = gHiiDatabase->NewPackageList ( > + gHiiDatabase, > + PackageList, > + NULL, > + &HiiHandle > + ); > + ASSERT_EFI_ERROR (Status); > + if (EFI_ERROR (Status)) { > + return NULL; > + } > + return HiiHandle; > +} > diff --git a/ShellPkg/Library/UefiDpLib/Dp.h > b/ShellPkg/DynamicCommand/DpDynamicCommand/Dp.h > similarity index 70% > rename from ShellPkg/Library/UefiDpLib/Dp.h > rename to ShellPkg/DynamicCommand/DpDynamicCommand/Dp.h > index 06fee3bcf4..4027b6b84e 100644 > --- a/ShellPkg/Library/UefiDpLib/Dp.h > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/Dp.h > @@ -1,7 +1,7 @@ > /** @file > - Common declarations for the Dp Performance Reporting Utility. > + Header file for 'dp' command functions. > > - Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved. > + Copyright (c) 2009 - 2017, 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 > @@ -9,12 +9,37 @@ > > 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_APP_DP_H_ > -#define _EFI_APP_DP_H_ > +#ifndef _DP_H_ > +#define _DP_H_ > + > + > +#include <Uefi.h> > + > +#include <Guid/Performance.h> > > +#include <Protocol/HiiPackageList.h> > +#include <Protocol/DevicePath.h> > +#include <Protocol/LoadedImage.h> > +#include <Protocol/UnicodeCollation.h> > + > +#include <Library/BaseLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/DebugLib.h> > +#include <Library/MemoryAllocationLib.h> > #include <Library/ShellLib.h> > +#include <Library/UefiLib.h> > +#include <Library/UefiRuntimeServicesTableLib.h> > +#include <Library/UefiBootServicesTableLib.h> > +#include <Library/PcdLib.h> > +#include <Library/SortLib.h> > +#include <Library/HiiLib.h> > +#include <Library/FileHandleLib.h> > +#include <Library/UefiHiiServicesLib.h> > + > +extern EFI_HANDLE mDpHiiHandle; > > #define DP_MAJOR_VERSION 2 > #define DP_MINOR_VERSION 4 > @@ -94,4 +119,32 @@ typedef struct { > UINT32 Count; ///< Number of measurements > accumulated. > } PROFILE_RECORD; > > -#endif // _EFI_APP_DP_H_ > +/** > + Dump performance data. > + > + @param[in] ImageHandle The image handle. > + @param[in] SystemTable The system table. > + > + @retval SHELL_SUCCESS Command completed successfully. > + @retval SHELL_INVALID_PARAMETER Command usage error. > + @retval SHELL_ABORTED The user aborts the operation. > + @retval value Unknown error. > +**/ > +SHELL_STATUS > +RunDp ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ); > + > +/** > + Retrive HII package list from ImageHandle and publish to HII database. > + > + @param ImageHandle The image handle of the process. > + > + @return HII handle. > +**/ > +EFI_HANDLE > +InitializeHiiPackage ( > + EFI_HANDLE ImageHandle > + ); > +#endif // _DP_H_ > diff --git a/ShellPkg/Library/UefiDpLib/UefiDpLib.uni > b/ShellPkg/DynamicCommand/DpDynamicCommand/Dp.uni > similarity index 100% > rename from ShellPkg/Library/UefiDpLib/UefiDpLib.uni > rename to ShellPkg/DynamicCommand/DpDynamicCommand/Dp.uni > diff --git a/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.c > new file mode 100644 > index 0000000000..f96209b27a > --- /dev/null > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.c > @@ -0,0 +1,53 @@ > +/** @file > + Entrypoint of "dp" shell standalone application. > + > + Copyright (c) 2017, Intel Corporation. All rights reserved. <BR> > + > + 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 "Dp.h" > + > +// > +// String token ID of help message text. > +// Shell supports to find help message in the resource section of an > application image if > +// .MAN file is not found. This global variable is added to make build tool > recognizes > +// that the help string is consumed by user and then build tool will add the > string into > +// the resource section. Thus the application can use '-?' option to show > help message in > +// Shell. > +// > +GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringHelpTokenId > = STRING_TOKEN (STR_GET_HELP_DP); > + > +/** > + Entry point of Tftp standalone application. > + > + @param ImageHandle The image handle of the process. > + @param SystemTable The EFI System Table pointer. > + > + @retval EFI_SUCCESS Tftp command is executed sucessfully. > + @retval EFI_ABORTED HII package was failed to initialize. > + @retval others Other errors when executing tftp command. > +**/ > +EFI_STATUS > +EFIAPI > +DpAppInitialize ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + EFI_STATUS Status; > + mDpHiiHandle = InitializeHiiPackage (ImageHandle); > + if (mDpHiiHandle == NULL) { > + return EFI_ABORTED; > + } > + > + Status = (EFI_STATUS)RunDp (ImageHandle, SystemTable); > + HiiRemovePackages (mDpHiiHandle); > + return Status; > +} > diff --git a/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf > new file mode 100644 > index 0000000000..b0ed229b49 > --- /dev/null > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf > @@ -0,0 +1,73 @@ > +## @file > +# Provides Shell 'dp' standalone application. > +# > +# Copyright (c) 2009 - 2017, 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 = 0x00010006 > + BASE_NAME = dp > + FILE_GUID = 1831A379-2D48-45BD-9744-D4059D93815D > + MODULE_TYPE = UEFI_APPLICATION > + VERSION_STRING = 1.0 > + ENTRY_POINT = DpAppInitialize > +# > +# This flag specifies whether HII resource section is generated into PE > image. > +# > + UEFI_HII_RESOURCE_SECTION = TRUE > + > +[Sources.common] > + PerformanceTokens.h > + Dp.uni > + Dp.c > + Dp.h > + Literals.h > + Literals.c > + DpInternal.h > + DpUtilities.c > + DpTrace.c > + DpProfile.c > + DpApp.c > + > +[Packages] > + MdePkg/MdePkg.dec > + ShellPkg/ShellPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + MemoryAllocationLib > + BaseLib > + BaseMemoryLib > + DebugLib > + ShellLib > + UefiLib > + UefiRuntimeServicesTableLib > + UefiBootServicesTableLib > + UefiApplicationEntryPoint > + SortLib > + PrintLib > + DevicePathLib > + PerformanceLib > + DxeServicesLib > + PeCoffGetEntryPointLib > + > +[Guids] > + gPerformanceProtocolGuid ## CONSUMES ## > SystemTable > + > +[Protocols] > + gEfiLoadedImageProtocolGuid ## CONSUMES > + gEfiDriverBindingProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiComponentName2ProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiLoadedImageDevicePathProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiHiiPackageListProtocolGuid ## CONSUMES > + > +[Pcd] > + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize ## > CONSUMES > diff --git > a/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand. > c > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand. > c > new file mode 100644 > index 0000000000..6f3997fff4 > --- /dev/null > +++ > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand. > c > @@ -0,0 +1,130 @@ > +/** @file > + Produce "dp" shell dynamic command. > + > + Copyright (c) 2017, Intel Corporation. All rights reserved. <BR> > + > + 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 "Dp.h" > +#include <Protocol/ShellDynamicCommand.h> > + > +/** > + This is the shell command handler function pointer callback type. This > + function handles the command when it is invoked in the shell. > + > + @param[in] This The instance of the > EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. > + @param[in] SystemTable The pointer to the system table. > + @param[in] ShellParameters The parameters associated with the > command. > + @param[in] Shell The instance of the shell protocol used > in the > context > + of processing this command. > + > + @return EFI_SUCCESS the operation was sucessful > + @return other the operation failed. > +**/ > +SHELL_STATUS > +EFIAPI > +DpCommandHandler ( > + IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, > + IN EFI_SYSTEM_TABLE *SystemTable, > + IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters, > + IN EFI_SHELL_PROTOCOL *Shell > + ) > +{ > + gEfiShellParametersProtocol = ShellParameters; > + return RunDp (gImageHandle, SystemTable); > +} > + > +/** > + This is the command help handler function pointer callback type. This > + function is responsible for displaying help information for the associated > + command. > + > + @param[in] This The instance of the > EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. > + @param[in] Language The pointer to the language string to > use. > + > + @return string Pool allocated help string, must be > freed by caller > +**/ > +CHAR16 * > +EFIAPI > +DpCommandGetHelp ( > + IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, > + IN CONST CHAR8 *Language > + ) > +{ > + return HiiGetString (mDpHiiHandle, STRING_TOKEN (STR_GET_HELP_DP), > Language); > +} > + > +EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL mDpDynamicCommand = { > + L"dp", > + DpCommandHandler, > + DpCommandGetHelp > +}; > + > +/** > + Entry point of Tftp Dynamic Command. > + > + Produce the DynamicCommand protocol to handle "tftp" command. > + > + @param ImageHandle The image handle of the process. > + @param SystemTable The EFI System Table pointer. > + > + @retval EFI_SUCCESS Tftp command is executed sucessfully. > + @retval EFI_ABORTED HII package was failed to initialize. > + @retval others Other errors when executing tftp command. > +**/ > +EFI_STATUS > +EFIAPI > +DpCommandInitialize ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + EFI_STATUS Status; > + mDpHiiHandle = InitializeHiiPackage (ImageHandle); > + if (mDpHiiHandle == NULL) { > + return EFI_ABORTED; > + } > + > + Status = gBS->InstallProtocolInterface ( > + &ImageHandle, > + &gEfiShellDynamicCommandProtocolGuid, > + EFI_NATIVE_INTERFACE, > + &mDpDynamicCommand > + ); > + ASSERT_EFI_ERROR (Status); > + return Status; > +} > + > +/** > + Tftp driver unload handler. > + > + @param ImageHandle The image handle of the process. > + > + @retval EFI_SUCCESS The image is unloaded. > + @retval Others Failed to unload the image. > +**/ > +EFI_STATUS > +EFIAPI > +DpUnload ( > + IN EFI_HANDLE ImageHandle > +) > +{ > + EFI_STATUS Status; > + Status = gBS->UninstallProtocolInterface ( > + ImageHandle, > + &gEfiShellDynamicCommandProtocolGuid, > + &mDpDynamicCommand > + ); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + HiiRemovePackages (mDpHiiHandle); > + return EFI_SUCCESS; > +} > diff --git > a/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.i > nf > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.i > nf > new file mode 100644 > index 0000000000..3164561958 > --- /dev/null > +++ > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.i > nf > @@ -0,0 +1,78 @@ > +## @file > +# Provides Shell 'dp' dynamic command. > +# > +# Copyright (c) 2009 - 2017, 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 = 0x00010006 > + BASE_NAME = dpDynamicCommand > + FILE_GUID = 0253F9FA-129A-4A8D-B12E-7DC2B6376302 > + MODULE_TYPE = DXE_DRIVER > + VERSION_STRING = 1.0 > + ENTRY_POINT = DpCommandInitialize > + UNLOAD_IMAGE = DpUnload > +# > +# This flag specifies whether HII resource section is generated into PE > image. > +# > + UEFI_HII_RESOURCE_SECTION = TRUE > + > +[Sources.common] > + PerformanceTokens.h > + Dp.uni > + Dp.c > + Dp.h > + Literals.h > + Literals.c > + DpInternal.h > + DpUtilities.c > + DpTrace.c > + DpProfile.c > + DpDynamicCommand.c > + > +[Packages] > + MdePkg/MdePkg.dec > + ShellPkg/ShellPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + MemoryAllocationLib > + BaseLib > + BaseMemoryLib > + DebugLib > + ShellLib > + UefiLib > + UefiRuntimeServicesTableLib > + UefiBootServicesTableLib > + UefiDriverEntryPoint > + SortLib > + PrintLib > + DevicePathLib > + PerformanceLib > + DxeServicesLib > + PeCoffGetEntryPointLib > + > +[Guids] > + gPerformanceProtocolGuid ## CONSUMES ## > SystemTable > + > +[Protocols] > + gEfiLoadedImageProtocolGuid ## CONSUMES > + gEfiDriverBindingProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiComponentName2ProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiLoadedImageDevicePathProtocolGuid ## > SOMETIMES_CONSUMES > + gEfiHiiPackageListProtocolGuid ## CONSUMES > + gEfiShellDynamicCommandProtocolGuid ## PRODUCES > + > +[Pcd] > + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize ## > CONSUMES > + > +[DEPEX] > + TRUE > diff --git a/ShellPkg/Library/UefiDpLib/DpInternal.h > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpInternal.h > similarity index 96% > rename from ShellPkg/Library/UefiDpLib/DpInternal.h > rename to ShellPkg/DynamicCommand/DpDynamicCommand/DpInternal.h > index 6de194aaaa..ece1c23aaf 100644 > --- a/ShellPkg/Library/UefiDpLib/DpInternal.h > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpInternal.h > @@ -24,7 +24,7 @@ > // > /// Module-Global Variables > ///@{ > -extern EFI_HII_HANDLE gDpHiiHandle; > +extern EFI_HII_HANDLE mDpHiiHandle; > extern CHAR16 mGaugeString[DP_GAUGE_STRING_LENGTH + 1]; > extern CHAR16 mUnicodeToken[DXE_PERFORMANCE_STRING_SIZE]; > extern UINT64 mInterestThreshold; > diff --git a/ShellPkg/Library/UefiDpLib/DpProfile.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpProfile.c > similarity index 87% > rename from ShellPkg/Library/UefiDpLib/DpProfile.c > rename to ShellPkg/DynamicCommand/DpDynamicCommand/DpProfile.c > index e4434034c6..af25217dae 100644 > --- a/ShellPkg/Library/UefiDpLib/DpProfile.c > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpProfile.c > @@ -28,23 +28,23 @@ > #include "Literals.h" > #include "DpInternal.h" > > -/** > +/** > Gather and print ALL Profiling Records. > - > + > Displays all "interesting" Profile measurements in order. > The number of records displayed is controlled by: > - records with a duration less than mInterestThreshold microseconds are > not displayed. > - No more than Limit records are displayed. A Limit of zero will not > limit > the output. > - If the ExcludeFlag is TRUE, records matching entries in the CumData > array > are not > displayed. > - > + > @pre The mInterestThreshold global variable is set to the shortest > duration to be printed. > The mGaugeString and mUnicodeToken global arrays are used for > temporary string storage. > They must not be in use by a calling function. > - > + > @param[in] Limit The number of records to print. Zero is ALL. > @param[in] ExcludeFlag TRUE to exclude individual Cumulative items > from display. > - > + > **/ > VOID > DumpAllProfile( > @@ -55,32 +55,32 @@ DumpAllProfile( > EFI_STRING StringPtr; > EFI_STRING StringPtrUnknown; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PROFILE), NULL); > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PROFILE), NULL); > > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown: StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > } > > -/** > +/** > Gather and print Raw Profile Records. > - > + > All Profile measurements with a duration greater than or equal to > mInterestThreshold are printed without interpretation. > - > + > The number of records displayed is controlled by: > - records with a duration less than mInterestThreshold microseconds are > not displayed. > - No more than Limit records are displayed. A Limit of zero will not > limit > the output. > - If the ExcludeFlag is TRUE, records matching entries in the CumData > array > are not > displayed. > - > + > @pre The mInterestThreshold global variable is set to the shortest > duration to be printed. > - > + > @param[in] Limit The number of records to print. Zero is ALL. > @param[in] ExcludeFlag TRUE to exclude individual Cumulative items > from display. > - > + > **/ > VOID > DumpRawProfile( > @@ -91,9 +91,9 @@ DumpRawProfile( > EFI_STRING StringPtr; > EFI_STRING StringPtrUnknown; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_RAWPROFILE), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_RAWPROFILE), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown: StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > diff --git a/ShellPkg/Library/UefiDpLib/DpTrace.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpTrace.c > similarity index 89% > rename from ShellPkg/Library/UefiDpLib/DpTrace.c > rename to ShellPkg/DynamicCommand/DpDynamicCommand/DpTrace.c > index 90a71ad91b..bc882be622 100644 > --- a/ShellPkg/Library/UefiDpLib/DpTrace.c > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpTrace.c > @@ -29,17 +29,17 @@ > #include "Literals.h" > #include "DpInternal.h" > > -/** > +/** > Collect verbose statistics about the logged performance measurements. > - > + > General Summary information for all Trace measurements is gathered and > stored within the SummaryData structure. This information is both > used internally by subsequent reporting functions, and displayed > at the end of verbose reports. > - > + > @pre The SummaryData and CumData structures must be initialized > prior to calling this function. > - > + > @post The SummaryData and CumData structures contain statistics for the > current performance logs. > > @@ -118,23 +118,23 @@ GatherStatistics( > } > } > > -/** > +/** > Gather and print ALL Trace Records. > - > + > Displays all "interesting" Trace measurements in order.<BR> > The number of records displayed is controlled by: > - records with a duration less than mInterestThreshold microseconds are > not displayed. > - No more than Limit records are displayed. A Limit of zero will not > limit > the output. > - If the ExcludeFlag is TRUE, records matching entries in the CumData > array > are not > displayed. > - > + > @pre The mInterestThreshold global variable is set to the shortest > duration to be printed. > The mGaugeString and mUnicodeToken global arrays are used for > temporary string storage. > They must not be in use by a calling function. > - > + > @param[in] Limit The number of records to print. Zero is ALL. > @param[in] ExcludeFlag TRUE to exclude individual Cumulative items from > display. > - > + > @retval EFI_SUCCESS The operation was successful. > @retval EFI_ABORTED The user aborts the operation. > @return Others from a call to gBS->LocateHandleBuffer(). > @@ -159,9 +159,9 @@ DumpAllTrace( > EFI_STATUS Status; > EFI_STRING StringPtrUnknown; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - IncFlag = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_ALL), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + IncFlag = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_ALL), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (IncFlag == NULL) ? StringPtrUnknown : IncFlag); > FreePool (StringPtrUnknown); > > @@ -169,7 +169,7 @@ DumpAllTrace( > // > Status = gBS->LocateHandleBuffer (AllHandles, NULL, NULL, > &HandleCount, &HandleBuffer); > if (EFI_ERROR (Status)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLES_ERROR), > gDpHiiHandle, Status); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLES_ERROR), > mDpHiiHandle, Status); > } > else { > // We have successfully populated the HandleBuffer > @@ -179,11 +179,11 @@ DumpAllTrace( > // Display driver names in Module field for records with Handles. > // > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_HEADR2), > gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_DASHES2), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_HEADR2), > mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_DASHES2), > mDpHiiHandle); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_HEADR), > gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_HEADR), > mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > mDpHiiHandle); > } > > LogEntryKey = 0; > @@ -206,10 +206,10 @@ DumpAllTrace( > if (Measurement.EndTimeStamp != 0) { > Duration = GetDuration (&Measurement); > ElapsedTime = DurationInMicroSeconds ( Duration ); > - IncFlag = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_COMPLETE), NULL); > + IncFlag = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_COMPLETE), NULL); > } > else { > - IncFlag = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_INCOMPLETE), NULL); // Mark incomplete records > + IncFlag = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_INCOMPLETE), NULL); // Mark incomplete records > } > if (((Measurement.EndTimeStamp != 0) && (ElapsedTime < > mInterestThreshold)) || > ((ExcludeFlag) && (GetCumulativeItem(&Measurement) >= 0)) > @@ -240,7 +240,7 @@ DumpAllTrace( > mUnicodeToken[13] = 0; > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_VARS2), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_VARS2), > mDpHiiHandle, > Index, // 1 based, Which measurement record is being printed > IncFlag, > Measurement.Handle, > @@ -250,7 +250,7 @@ DumpAllTrace( > Measurement.Identifier > ); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_VARS), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_ALL_VARS), > mDpHiiHandle, > Index, // 1 based, Which measurement record is being printed > IncFlag, > Measurement.Handle, > @@ -273,20 +273,20 @@ DumpAllTrace( > return Status; > } > > -/** > +/** > Gather and print Raw Trace Records. > - > + > All Trace measurements with a duration greater than or equal to > mInterestThreshold are printed without interpretation. > - > + > The number of records displayed is controlled by: > - records with a duration less than mInterestThreshold microseconds are > not displayed. > - No more than Limit records are displayed. A Limit of zero will not > limit > the output. > - If the ExcludeFlag is TRUE, records matching entries in the CumData > array > are not > displayed. > - > + > @pre The mInterestThreshold global variable is set to the shortest > duration to be printed. > - > + > @param[in] Limit The number of records to print. Zero is ALL. > @param[in] ExcludeFlag TRUE to exclude individual Cumulative items from > display. > > @@ -312,19 +312,19 @@ DumpRawTrace( > > Status = EFI_SUCCESS; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_RAWTRACE), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_RAWTRACE), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown : StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_HEADR2), > gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_DASHES2), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_HEADR2), > mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_DASHES2), > mDpHiiHandle); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_HEADR), > gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_HEADR), > mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_DASHES), > mDpHiiHandle); > } > > LogEntryKey = 0; > @@ -355,7 +355,7 @@ DumpRawTrace( > ++Count; // Count the number of records printed > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_VARS2), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_VARS2), > mDpHiiHandle, > Index, // 1 based, Which measurement record is being printed > Measurement.Handle, > Measurement.StartTimeStamp, > @@ -365,7 +365,7 @@ DumpRawTrace( > Measurement.Identifier > ); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_VARS), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_RAW_VARS), > mDpHiiHandle, > Index, // 1 based, Which measurement record is being printed > Measurement.Handle, > Measurement.StartTimeStamp, > @@ -382,9 +382,9 @@ DumpRawTrace( > return Status; > } > > -/** > +/** > Gather and print Major Phase metrics. > - > + > **/ > VOID > ProcessPhases( > @@ -412,9 +412,9 @@ ProcessPhases( > // > // Get Execution Phase Statistics > // > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PHASES), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PHASES), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown : StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > @@ -456,7 +456,7 @@ ProcessPhases( > if (SecTime > 0) { > ElapsedTime = DurationInMicroSeconds ( SecTime ); // Calculate > elapsed > time in microseconds > Total += DivU64x32 (ElapsedTime, 1000); // Accumulate time in > milliseconds > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SEC_PHASE), > gDpHiiHandle, ElapsedTime); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SEC_PHASE), > mDpHiiHandle, ElapsedTime); > } > > // print PEI phase duration time > @@ -467,7 +467,7 @@ ProcessPhases( > (UINT32)TimerInfo.Frequency > ); > Total += ElapsedTime; > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), gDpHiiHandle, ALit_PEI, ElapsedTime); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), mDpHiiHandle, ALit_PEI, ElapsedTime); > } > > // print DXE phase duration time > @@ -478,7 +478,7 @@ ProcessPhases( > (UINT32)TimerInfo.Frequency > ); > Total += ElapsedTime; > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), gDpHiiHandle, ALit_DXE, ElapsedTime); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), mDpHiiHandle, ALit_DXE, ElapsedTime); > } > > // print BDS phase duration time > @@ -489,7 +489,7 @@ ProcessPhases( > (UINT32)TimerInfo.Frequency > ); > Total += ElapsedTime; > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), gDpHiiHandle, ALit_BDS, ElapsedTime); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_PHASE_DURATION), mDpHiiHandle, ALit_BDS, ElapsedTime); > } > > if (BdsTimeoutValue > 0) { > @@ -497,17 +497,17 @@ ProcessPhases( > BdsTimeoutValue, > (UINT32)TimerInfo.Frequency > ); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PHASE_BDSTO), > gDpHiiHandle, ALit_BdsTO, ElapsedTime); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PHASE_BDSTO), > mDpHiiHandle, ALit_BdsTO, ElapsedTime); > } > > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_TOTAL_DURATION), > gDpHiiHandle, Total); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_TOTAL_DURATION), > mDpHiiHandle, Total); > } > > -/** > +/** > Gather and print Handle data. > - > + > @param[in] ExcludeFlag TRUE to exclude individual Cumulative items > from display. > - > + > @retval EFI_SUCCESS The operation was successful. > @retval EFI_ABORTED The user aborts the operation. > @return Others from a call to gBS->LocateHandleBuffer(). > @@ -529,16 +529,16 @@ ProcessHandles( > EFI_STATUS Status; > EFI_STRING StringPtrUnknown; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_DRIVERS), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_DRIVERS), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown : StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > > Status = gBS->LocateHandleBuffer (AllHandles, NULL, NULL, &HandleCount, > &HandleBuffer); > if (EFI_ERROR (Status)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLES_ERROR), > gDpHiiHandle, Status); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLES_ERROR), > mDpHiiHandle, Status); > } > else { > #if DP_DEBUG == 2 > @@ -546,11 +546,11 @@ ProcessHandles( > #endif > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_SECTION2), gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_SECTION2), mDpHiiHandle); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_SECTION), gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_SECTION), mDpHiiHandle); > } > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > mDpHiiHandle); > > LogEntryKey = 0; > Count = 0; > @@ -588,7 +588,7 @@ ProcessHandles( > if (mGaugeString[0] != 0) { > // Display the record if it has a valid handle. > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_VARS2), gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_HANDLE_VARS2), mDpHiiHandle, > Count, // 1 based, Which measurement record is being printed > Index + 1, // 1 based, Which handle is being printed > mGaugeString, > @@ -597,7 +597,7 @@ ProcessHandles( > Measurement.Identifier > ); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLE_VARS), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_HANDLE_VARS), > mDpHiiHandle, > Count, // 1 based, Which measurement record is being printed > Index + 1, // 1 based, Which handle is being printed > mGaugeString, > @@ -618,11 +618,11 @@ ProcessHandles( > return Status; > } > > -/** > +/** > Gather and print PEIM data. > - > + > Only prints complete PEIM records > - > + > @retval EFI_SUCCESS The operation was successful. > @retval EFI_ABORTED The user aborts the operation. > **/ > @@ -642,19 +642,19 @@ ProcessPeims( > > Status = EFI_SUCCESS; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PEIMS), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_PEIMS), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown : StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_SECTION2), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_SECTION2), > mDpHiiHandle); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_SECTION), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_SECTION), > mDpHiiHandle); > } > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > mDpHiiHandle); > TIndex = 0; > LogEntryKey = 0; > while ((LogEntryKey = GetPerformanceMeasurementEx ( > @@ -678,7 +678,7 @@ ProcessPeims( > if (ElapsedTime >= mInterestThreshold) { > // PEIM FILE Handle is the start address of its FFS file that contains > its file > guid. > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_VARS2), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_VARS2), > mDpHiiHandle, > TIndex, // 1 based, Which measurement record is being printed > Measurement.Handle, // base address > Measurement.Handle, // file guid > @@ -686,7 +686,7 @@ ProcessPeims( > Measurement.Identifier > ); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_VARS), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_PEIM_VARS), > mDpHiiHandle, > TIndex, // 1 based, Which measurement record is being printed > Measurement.Handle, // base address > Measurement.Handle, // file guid > @@ -702,14 +702,14 @@ ProcessPeims( > return Status; > } > > -/** > +/** > Gather and print global data. > - > + > Strips out incomplete or "Execution Phase" records > Only prints records where Handle is NULL > Increment TIndex for every record, even skipped ones, so that we have an > indication of every measurement record taken. > - > + > @retval EFI_SUCCESS The operation was successful. > @retval EFI_ABORTED The user aborts the operation. > **/ > @@ -729,19 +729,19 @@ ProcessGlobal( > > Status = EFI_SUCCESS; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_GENERAL), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_GENERAL), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown: StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_GLOBAL_SECTION2), gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_GLOBAL_SECTION2), mDpHiiHandle); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_GLOBAL_SECTION), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_GLOBAL_SECTION), > mDpHiiHandle); > } > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > mDpHiiHandle); > > Index = 1; > LogEntryKey = 0; > @@ -768,7 +768,7 @@ ProcessGlobal( > ElapsedTime = DurationInMicroSeconds ( Duration ); > if (ElapsedTime >= mInterestThreshold) { > if (mShowId) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_GLOBAL_VARS2), gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_GLOBAL_VARS2), mDpHiiHandle, > Index, > mGaugeString, > mUnicodeToken, > @@ -776,7 +776,7 @@ ProcessGlobal( > Measurement.Identifier > ); > } else { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_GLOBAL_VARS), > gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_GLOBAL_VARS), mDpHiiHandle, > Index, > mGaugeString, > mUnicodeToken, > @@ -794,9 +794,9 @@ ProcessGlobal( > return Status; > } > > -/** > +/** > Gather and print cumulative data. > - > + > Traverse the measurement records and:<BR> > For each record with a Token listed in the CumData array:<BR> > - Update the instance count and the total, minimum, and maximum > durations. > @@ -818,16 +818,16 @@ ProcessCumulative( > UINTN TIndex; > EFI_STRING StringPtrUnknown; > > - StringPtrUnknown = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_CUMULATIVE), NULL); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > gDpHiiHandle, > + StringPtrUnknown = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_ALIT_UNKNOWN), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_SECTION_CUMULATIVE), NULL); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_SECTION_HEADER), > mDpHiiHandle, > (StringPtr == NULL) ? StringPtrUnknown: StringPtr); > FreePool (StringPtr); > FreePool (StringPtrUnknown); > > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_SECT_1), gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_SECT_2), gDpHiiHandle); > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > gDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_SECT_1), mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_SECT_2), mDpHiiHandle); > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_DASHES), > mDpHiiHandle); > > for ( TIndex = 0; TIndex < NumCum; ++TIndex) { > if (CumData[TIndex].Count != 0) { > @@ -836,8 +836,8 @@ ProcessCumulative( > Dur = DurationInMicroSeconds(CumData[TIndex].Duration); > MaxDur = DurationInMicroSeconds(CumData[TIndex].MaxDur); > MinDur = DurationInMicroSeconds(CumData[TIndex].MinDur); > - > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_STATS), gDpHiiHandle, > + > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_STATS), mDpHiiHandle, > CumData[TIndex].Name, > CumData[TIndex].Count, > Dur, > @@ -864,7 +864,7 @@ ProcessCumulative( > MaxDur = 0; > MinDur = 0; > } > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_STATS), gDpHiiHandle, > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_DP_CUMULATIVE_STATS), mDpHiiHandle, > CustomCumulativeData->Name, > CustomCumulativeData->Count, > Dur, > diff --git a/ShellPkg/Library/UefiDpLib/DpUtilities.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/DpUtilities.c > similarity index 87% > rename from ShellPkg/Library/UefiDpLib/DpUtilities.c > rename to ShellPkg/DynamicCommand/DpDynamicCommand/DpUtilities.c > index c60d27d861..b98ec4b5bd 100644 > --- a/ShellPkg/Library/UefiDpLib/DpUtilities.c > +++ b/ShellPkg/DynamicCommand/DpDynamicCommand/DpUtilities.c > @@ -196,18 +196,19 @@ DpGetNameFromHandle ( > IN EFI_HANDLE Handle > ) > { > - EFI_STATUS Status; > - EFI_LOADED_IMAGE_PROTOCOL *Image; > - CHAR8 *PdbFileName; > - EFI_DRIVER_BINDING_PROTOCOL *DriverBinding; > - EFI_STRING StringPtr; > - EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath; > - EFI_DEVICE_PATH_PROTOCOL *DevicePath; > - EFI_GUID *NameGuid; > - CHAR16 *NameString; > - UINTN StringSize; > - CHAR8 *PlatformLanguage; > - EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2; > + EFI_STATUS Status; > + EFI_LOADED_IMAGE_PROTOCOL *Image; > + CHAR8 *PdbFileName; > + EFI_DRIVER_BINDING_PROTOCOL *DriverBinding; > + EFI_STRING StringPtr; > + EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath; > + EFI_DEVICE_PATH_PROTOCOL *DevicePath; > + EFI_GUID *NameGuid; > + CHAR16 *NameString; > + UINTN StringSize; > + CHAR8 *PlatformLanguage; > + CHAR8 *BestLanguage; > + EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2; > > Image = NULL; > LoadedImageDevicePath = NULL; > @@ -259,16 +260,25 @@ DpGetNameFromHandle ( > ); > if (!EFI_ERROR (Status)) { > // > - // Get the current platform language setting > + // Firstly use platform language setting, secondly use driver's first > supported language. > // > - PlatformLanguage = GetBestLanguageForDriver(ComponentName2- > >SupportedLanguages, NULL, FALSE); > + GetVariable2 (L"PlatformLang", &gEfiGlobalVariableGuid, > (VOID**)&PlatformLanguage, NULL); > + BestLanguage = GetBestLanguage( > + ComponentName2->SupportedLanguages, > + FALSE, > + (PlatformLanguage != NULL) ? PlatformLanguage : "", > + ComponentName2->SupportedLanguages, > + NULL > + ); > + SHELL_FREE_NON_NULL (PlatformLanguage); > + > Status = ComponentName2->GetDriverName ( > ComponentName2, > - PlatformLanguage != NULL ? PlatformLanguage : > "en-US", > + BestLanguage != NULL ? BestLanguage : "en-US", > &StringPtr > ); > if (!EFI_ERROR (Status)) { > - SHELL_FREE_NON_NULL (PlatformLanguage); > + SHELL_FREE_NON_NULL (BestLanguage); > StrnCpyS (mGaugeString, DP_GAUGE_STRING_LENGTH + 1, StringPtr, > DP_GAUGE_STRING_LENGTH); > mGaugeString[DP_GAUGE_STRING_LENGTH] = 0; > return; > @@ -344,7 +354,7 @@ DpGetNameFromHandle ( > // > // Method 6: Unknown Driver Name > // > - StringPtr = HiiGetString (gDpHiiHandle, STRING_TOKEN > (STR_DP_ERROR_NAME), NULL); > + StringPtr = HiiGetString (mDpHiiHandle, STRING_TOKEN > (STR_DP_ERROR_NAME), NULL); > ASSERT (StringPtr != NULL); > StrnCpyS (mGaugeString, DP_GAUGE_STRING_LENGTH + 1, StringPtr, > DP_GAUGE_STRING_LENGTH); > FreePool (StringPtr); > diff --git a/ShellPkg/Library/UefiDpLib/Literals.c > b/ShellPkg/DynamicCommand/DpDynamicCommand/Literals.c > similarity index 100% > rename from ShellPkg/Library/UefiDpLib/Literals.c > rename to ShellPkg/DynamicCommand/DpDynamicCommand/Literals.c > diff --git a/ShellPkg/Library/UefiDpLib/Literals.h > b/ShellPkg/DynamicCommand/DpDynamicCommand/Literals.h > similarity index 100% > rename from ShellPkg/Library/UefiDpLib/Literals.h > rename to ShellPkg/DynamicCommand/DpDynamicCommand/Literals.h > diff --git a/ShellPkg/Library/UefiDpLib/PerformanceTokens.h > b/ShellPkg/DynamicCommand/DpDynamicCommand/PerformanceTokens.h > similarity index 100% > rename from ShellPkg/Library/UefiDpLib/PerformanceTokens.h > rename to > ShellPkg/DynamicCommand/DpDynamicCommand/PerformanceTokens.h > diff --git a/ShellPkg/Library/UefiDpLib/Readme.txt > b/ShellPkg/Library/UefiDpLib/Readme.txt > deleted file mode 100644 > index 849efa4360..0000000000 > --- a/ShellPkg/Library/UefiDpLib/Readme.txt > +++ /dev/null > @@ -1,2 +0,0 @@ > -from PerformancePkg\Dp_App > -SVN 13406 > diff --git a/ShellPkg/Library/UefiDpLib/UefiDpLib.c > b/ShellPkg/Library/UefiDpLib/UefiDpLib.c > deleted file mode 100644 > index f3ecfeac7f..0000000000 > --- a/ShellPkg/Library/UefiDpLib/UefiDpLib.c > +++ /dev/null > @@ -1,101 +0,0 @@ > -/** @file > - Main file for NULL named library for install1 shell command functions. > - > - Copyright (c) 2010 - 2013, 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 "UefiDpLib.h" > - > -STATIC CONST CHAR16 mFileName[] = L"ShellCommands"; > -EFI_HANDLE gDpHiiHandle = NULL; > - > -#define DP_HII_GUID \ > - { \ > - 0xeb832fd9, 0x9089, 0x4898, { 0x83, 0xc9, 0x41, 0x61, 0x8f, 0x5c, 0x48, > 0xb9 > } \ > - } > - > -EFI_GUID gDpHiiGuid = DP_HII_GUID; > - > -/** > - Function to get the filename with help context if HII will not be used. > - > - @return The filename with help text in it. > -**/ > -CONST CHAR16* > -EFIAPI > -UefiDpLibGetManFileName ( > - VOID > - ) > -{ > - return (mFileName); > -} > - > -/** > - Constructor for the Shell Level 1 Commands library. > - > - Install the handlers for level 1 UEFI Shell 2.0 commands. > - > - @param ImageHandle the image handle of the process > - @param SystemTable the EFI System Table pointer > - > - @retval EFI_SUCCESS the shell command handlers were installed > sucessfully > - @retval EFI_UNSUPPORTED the shell level required was not found. > -**/ > -EFI_STATUS > -EFIAPI > -UefiDpLibConstructor ( > - IN EFI_HANDLE ImageHandle, > - IN EFI_SYSTEM_TABLE *SystemTable > - ) > -{ > - // > - // check our bit of the profiles mask > - // > - if ((PcdGet8(PcdShellProfileMask) & BIT2) == 0) { > - return (EFI_SUCCESS); > - } > - > - // > - // 3rd parameter 'HII strings array' must be name of .uni strings file > followed by 'Strings', e.g. mycommands.uni must be > - // specified as 'mycommandsStrings' because the build Autogen process > defines this as a string array for the strings in your > - // .uni file. Examine your Build folder under your package's DEBUG folder > and you will find it defined in a xxxStrDefs.h file. > - // > - gDpHiiHandle = HiiAddPackages (&gDpHiiGuid, gImageHandle, > UefiDpLibStrings, NULL); > - if (gDpHiiHandle == NULL) { > - return (EFI_DEVICE_ERROR); > - } > - > - // > - // install our shell command handlers that are always installed > - // > - ShellCommandRegisterCommandName(L"dp", ShellCommandRunDp , > UefiDpLibGetManFileName, 0, L"", FALSE, gDpHiiHandle, > STRING_TOKEN(STR_GET_HELP_DP)); > - > - return (EFI_SUCCESS); > -} > - > -/** > - Destructor for the library. free any resources. > - > - @param ImageHandle The image handle of the process. > - @param SystemTable The EFI System Table pointer. > -**/ > -EFI_STATUS > -EFIAPI > -UefiDpLibDestructor ( > - IN EFI_HANDLE ImageHandle, > - IN EFI_SYSTEM_TABLE *SystemTable > - ) > -{ > - if (gDpHiiHandle != NULL) { > - HiiRemovePackages(gDpHiiHandle); > - } > - return (EFI_SUCCESS); > -} > diff --git a/ShellPkg/Library/UefiDpLib/UefiDpLib.h > b/ShellPkg/Library/UefiDpLib/UefiDpLib.h > deleted file mode 100644 > index 283f8337ff..0000000000 > --- a/ShellPkg/Library/UefiDpLib/UefiDpLib.h > +++ /dev/null > @@ -1,64 +0,0 @@ > -/** @file > - Main file for NULL named library for dp command functions. > - > - Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR> > - (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > - 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 _UEFI_DP_LIB_H_ > -#define _UEFI_DP_LIB_H_ > - > -#include <Uefi.h> > - > -extern EFI_GUID gDpHiiGuid; > - > -#include <Protocol/Shell.h> > -#include <Protocol/ShellParameters.h> > -#include <Protocol/DevicePath.h> > -#include <Protocol/LoadedImage.h> > -#include <Protocol/UnicodeCollation.h> > - > -#include <Library/BaseLib.h> > -#include <Library/BaseMemoryLib.h> > -#include <Library/DebugLib.h> > -#include <Library/MemoryAllocationLib.h> > -#include <Library/PcdLib.h> > -#include <Library/ShellCommandLib.h> > -#include <Library/ShellLib.h> > -#include <Library/SortLib.h> > -#include <Library/UefiLib.h> > -#include <Library/UefiRuntimeServicesTableLib.h> > -#include <Library/UefiBootServicesTableLib.h> > -#include <Library/HiiLib.h> > -#include <Library/FileHandleLib.h> > - > -extern EFI_HANDLE gDpHiiHandle; > - > -/** > - Function for 'dp' command. > - > - @param[in] ImageHandle Handle to the Image (NULL if Internal). > - @param[in] SystemTable Pointer to the System Table (NULL if Internal). > - > - @retval SHELL_SUCCESS Command completed successfully. > - @retval SHELL_INVALID_PARAMETER Command usage error. > - @retval SHELL_ABORTED The user aborts the operation. > - @retval value Unknown error. > -**/ > -SHELL_STATUS > -EFIAPI > -ShellCommandRunDp ( > - IN EFI_HANDLE ImageHandle, > - IN EFI_SYSTEM_TABLE *SystemTable > - ); > - > -#endif > - > diff --git a/ShellPkg/Library/UefiDpLib/UefiDpLib.inf > b/ShellPkg/Library/UefiDpLib/UefiDpLib.inf > deleted file mode 100644 > index 0bce0ce6c9..0000000000 > --- a/ShellPkg/Library/UefiDpLib/UefiDpLib.inf > +++ /dev/null > @@ -1,77 +0,0 @@ > -## @file > -# Display Performance Application, Module information file. > -# > -# Copyright (c) 2009 - 2017, 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 = 0x00010006 > - BASE_NAME = UefiDpLib > - FILE_GUID = 9DF262F7-CF81-4294-B5A5-B2E3CAFE5618 > - MODULE_TYPE = UEFI_DRIVER > - VERSION_STRING = 1.0 > - LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER > - CONSTRUCTOR = UefiDpLibConstructor > - DESTRUCTOR = UefiDpLibDestructor > - > -# > -# The following information is for reference only and not required by the > build tools. > -# > -# VALID_ARCHITECTURES = IA32 X64 IPF EBC > -# > - > -[Sources.common] > - PerformanceTokens.h > - UefiDpLib.c > - UefiDpLib.h > - UefiDpLib.uni > - Dp.c > - Dp.h > - Literals.h > - Literals.c > - DpInternal.h > - DpUtilities.c > - DpTrace.c > - DpProfile.c > - > -[Packages] > - MdePkg/MdePkg.dec > - ShellPkg/ShellPkg.dec > - MdeModulePkg/MdeModulePkg.dec > - > -[LibraryClasses] > - PerformanceLib > - DxeServicesLib > - MemoryAllocationLib > - BaseLib > - BaseMemoryLib > - DebugLib > - ShellCommandLib > - ShellLib > - UefiLib > - UefiRuntimeServicesTableLib > - UefiBootServicesTableLib > - SortLib > - PrintLib > - DevicePathLib > - > -[Guids] > - gPerformanceProtocolGuid ## CONSUMES ## > SystemTable > - > -[Protocols] > - gEfiLoadedImageProtocolGuid ## CONSUMES > - gEfiDriverBindingProtocolGuid ## > SOMETIMES_CONSUMES > - gEfiComponentName2ProtocolGuid ## > SOMETIMES_CONSUMES > - gEfiLoadedImageDevicePathProtocolGuid ## > SOMETIMES_CONSUMES > - > -[Pcd] > - gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize ## > UNDEFINED > - gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask ## CONSUMES > diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc > index 8fc20709f4..65e8959455 100644 > --- a/ShellPkg/ShellPkg.dsc > +++ b/ShellPkg/ShellPkg.dsc > @@ -104,12 +104,6 @@ [Components] > > ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Comm > andsLib.inf > > ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2Comm > andsLib.inf > > - ShellPkg/Library/UefiDpLib/UefiDpLib.inf { > - <LibraryClasses> > - > PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmm > PerformanceLib.inf > - DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf > - } > - > ShellPkg/Application/Shell/Shell.inf { > <PcdsFixedAtBuild> > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > @@ -123,14 +117,19 @@ [Components] > > NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com > mandsLib.inf > > NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1 > CommandsLib.inf > > NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2 > CommandsLib.inf > -!ifdef $(INCLUDE_DP) > - NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf > -!endif #$(INCLUDE_DP) > !endif #$(NO_SHELL_PROFILES) > } > > > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand. > inf > ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf > + > ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf > { > + <LibraryClasses> > + > PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmm > PerformanceLib.inf > + } > + ShellPkg/DynamicCommand/DpDynamicCommand/DpApp.inf { > + <LibraryClasses> > + > PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmm > PerformanceLib.inf > + } > > [BuildOptions] > *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES > -- > 2.15.0.gvfs.1.preview.4
_______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel