// *++
//
// (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>
// Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
// (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
//
// Module Name:
//
//   DpStrings.uni
//
// Abstract:
//
//   String definitions for the Shell dp command
//
// Revision History:
//
// --*/

/=#

#langdef   en-US "English"

#string STR_DP_UP                      #language en-US  "UP"
#string STR_DP_DOWN                    #language en-US  "DOWN"
#string STR_DP_DASHES                  #language en-US  "-------------------------------------------------------------------------------\n"
#string STR_DP_SECTION_HEADER          #language en-US  "\n==[ %s ]========\n"
#string STR_DP_INVALID_ARG             #language en-US  "Invalid argument(s)\n"
#string STR_DP_TOO_MANY                #language en-US  "Too many arguments\n"
#string STR_DP_TOO_FEW                 #language en-US  "Too few arguments\n"
#string STR_DP_INVALID_NUM_ARG         #language en-US  "Invalid argument(s), the value of %H%s%N must be numbers\n"
#string STR_DP_INVALID_RANGE           #language en-US  "Invalid argument(s), the value of %H%s%N must be between %H%d%N and %H%d%N\n"
#string STR_DP_CONFLICT_ARG            #language en-US  "Invalid argument(s), %H%s%N can not be used together with %H%s%N\n"
#string STR_DP_NO_RAW_ALL              #language en-US  "Invalid argument(s), -n flag must use with -A or -R\n"
#string STR_DP_HANDLES_ERROR           #language en-US  "Locate all handles error - %r\n"
#string STR_DP_ERROR_NAME              #language en-US  "Unknown driver name"
#string STR_PERF_PROPERTY_NOT_FOUND    #language en-US  "Performance property not found\n"
#string STR_DP_BUILD_REVISION          #language en-US  "\nDP Build Version:       %d.%d\n"
#string STR_DP_KHZ                     #language en-US  "System Performance Timer Frequency:   %,8d (KHz)\n"
#string STR_DP_TIMER_PROPERTIES        #language en-US  "System Performance Timer counts %s from 0x%Lx to 0x%Lx\n"
#string STR_DP_VERBOSE_THRESHOLD       #language en-US  "Measurements less than %,Ld microseconds are not displayed.\n"
#string STR_DP_SECTION_PHASES          #language en-US  "Major Phases"
#string STR_DP_RESET_END               #language en-US  "  Reset End:               %L8d (us)\n"
#string STR_DP_SEC_PHASE               #language en-US  "  SEC Phase Duration:      %L8d (us)\n"
#string STR_DP_PHASE_BDSTO             #language en-US  "         BDS Timeout:   %L8d (ms) included in BDS Duration\n"
#string STR_DP_PHASE_DURATION          #language en-US  "%5a Phase Duration:   %L8d (ms)\n"
#string STR_DP_TOTAL_DURATION          #language en-US  "Total       Duration:   %L8d (ms)\n"
#string STR_DP_SECTION_DRIVERS         #language en-US  "Drivers by Handle"
#string STR_DP_HANDLE_SECTION          #language en-US  "Index:  Handle                Driver Name               Description    Time(us)\n"
#string STR_DP_HANDLE_VARS             #language en-US  "%5d:  [%3x]   %36s    %11s    %L8d\n"
#string STR_DP_HANDLE_SECTION2         #language en-US  "Index: Handle               Driver Name             Description  Time(us)    ID\n"
#string STR_DP_HANDLE_VARS2            #language en-US  "%5d: [%3x]  %36s  %11s  %L8d %5d\n"
#string STR_DP_SECTION_PEIMS           #language en-US  "PEIMs"
#string STR_DP_PEIM_SECTION            #language en-US  "Index:                Instance GUID              Token    Time(us)\n"
#string STR_DP_PEIM_VARS               #language en-US  "%5d:    %g   PEIM    %L8d\n"
#string STR_DP_PEIM_SECTION2           #language en-US  "Index:               Instance GUID            Token  Time(us)    ID\n"
#string STR_DP_PEIM_VARS2              #language en-US  "%5d:   %g PEIM  %L8d %5d\n"
#string STR_DP_SECTION_GENERAL         #language en-US  "General"
#string STR_DP_GLOBAL_SECTION          #language en-US  "Index                      Name                         Description    Time(us)\n"
#string STR_DP_GLOBAL_VARS             #language en-US  "%5d:%25s     %31s    %L8d\n"
#string STR_DP_GLOBAL_SECTION2         #language en-US  "Index                      Name                     Description  Time(us)    ID\n"
#string STR_DP_GLOBAL_VARS2            #language en-US  "%5d:%25s %31s  %L8d %5d\n"
#string STR_DP_SECTION_CUMULATIVE      #language en-US  "Cumulative"
#string STR_DP_CUMULATIVE_SECT_1       #language en-US  "(Times in microsec.)     Cumulative   Average     Shortest    Longest\n"
#string STR_DP_CUMULATIVE_SECT_2       #language en-US  "   Name         Count     Duration    Duration    Duration    Duration\n"
#string STR_DP_CUMULATIVE_STATS        #language en-US  "%11a   %8d  %L10d  %L10d  %L10d  %L10d\n"
#string STR_DP_SECTION_STATISTICS      #language en-US  "Statistics"
#string STR_DP_STATS_NUMTRACE          #language en-US  "There were %d measurements taken, of which:\n"
#string STR_DP_STATS_NUMINCOMPLETE     #language en-US  "%,8d are incomplete.\n"
#string STR_DP_STATS_NUMPHASES         #language en-US  "%,8d are major execution phases.\n"
#string STR_DP_STATS_NUMHANDLES        #language en-US  "%,8d have non-NULL handles, %d are NULL.\n"
#string STR_DP_STATS_NUMPEIMS          #language en-US  "%,8d are PEIMs.\n"
#string STR_DP_STATS_NUMGLOBALS        #language en-US  "%,8d are general measurements.\n"
#string STR_DP_STATS_NUMPROFILE        #language en-US  "%,8d are profiling records.\n"
#string STR_DP_SECTION_ALL             #language en-US  "Sequential Trace Records"
#string STR_DP_ALL_HEADR               #language en-US  "\nIndex      Handle                 Module                      Token    Time(us)\n"
#string STR_DP_ALL_VARS                #language en-US  "%5d:%3s0x%08p %36s %13s %L8d\n"
#string STR_DP_ALL_DASHES2             #language en-US  "-------------------------------------------------------------------------------------\n"
#string STR_DP_ALL_HEADR2              #language en-US  "\nIndex      Handle                 Module                      Token    Time(us)    ID\n"
#string STR_DP_ALL_VARS2               #language en-US  "%5d:%3s0x%08p %36s %13s %L8d %5d\n"
#string STR_DP_SECTION_RAWTRACE        #language en-US  "RAW Trace"
#string STR_DP_RAW_DASHES              #language en-US  "---------------------------------------------------------------------------------------------------------------------------\n"
#string STR_DP_RAW_VARS                #language en-US  "%5d: %16LX %16LX %16LX  %31a  %31a\n"
#string STR_DP_RAW_HEADR               #language en-US  "\nIndex       Handle        Start Count       End Count                  Token                          Module\n"
#string STR_DP_RAW_DASHES2             #language en-US  "---------------------------------------------------------------------------------------------------------------------------------\n"
#string STR_DP_RAW_VARS2               #language en-US  "%5d: %16LX %16LX %16LX  %31a  %31a %5d\n"
#string STR_DP_RAW_HEADR2              #language en-US  "\nIndex       Handle        Start Count       End Count                  Token                          Module                   ID\n"
#string STR_DP_INCOMPLETE              #language en-US  " I "
#string STR_DP_COMPLETE                #language en-US  "   "
#string STR_ALIT_UNKNOWN               #language en-US  "Unknown"
#string STR_DP_GET_ACPI_FPDT_FAIL      #language en-US  "Fail to get Firmware Performance Data Table (FPDT) in ACPI Table\n"

#string STR_GET_HELP_DP         #language en-US ""
".TH dp 0 "Display performance metrics"\r\n"
".SH NAME\r\n"
"Displays performance metrics that are stored in memory.\r\n"
".SH SYNOPSIS\r\n"
"DP [-b] [-v] [-x] [-s | -A | -R] [-t value] [-n count] [-c [token]][-i] [-?]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b       - Displays on multiple pages\r\n"
"  -v       - Displays additional information\r\n"
"  -x       - Prevents display of individual measurements for cumulative items\r\n"
"  -s       - Displays summary information only\r\n"
"  -A       - Displays all measurements in a list\r\n"
"  -R       - Displays all measurements in raw format\r\n"
"  -t VALUE - Sets display threshold to VALUE microseconds\r\n"
"  -n COUNT - Limits display to COUNT lines in All and Raw modes\r\n"
"  -i       - Displays identifier\r\n"
"  -c TOKEN - Display pre-defined and custom cumulative data\r\n"
"             Pre-defined cumulative token are:\r\n"
"             1. LoadImage:\r\n"
"             2. StartImage:\r\n"
"             3. DB:Start:\r\n"
"             4. DB:Support:\r\n"
"  -?       - Displays DP help information\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. Displays Performance metrics that are stored in memory.\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS            The action was completed as requested.\r\n"
"  SHELL_NOT_FOUND          The requested option was not found.\r\n"
"  SHELL_INVALID_PARAMETER  One of the passed in parameters was incorrectly formatted or its value was out of bounds.\r\n"
"  SHELL_UNSUPPORTED        The action as requested was unsupported.\r\n"
"  SHELL_OUT_OF_RESOURCES   There was insufficient free space for the request to be completed.\r\n"
