// /**
//
// Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
// (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<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.
//
// Module Name:
//
// UefiShellDebug1CommandsLib.uni
//
// Abstract:
//
// String definitions for UEFI Shell 2.0 Debug1 profile commands
//
//
// **/

/=#

#langdef   en-US "english"

#string STR_GEN_NO_MEM            #language en-US "%H%s%N: Memory is not available.\r\n"
#string STR_GEN_BOOT_ONLY         #language en-US "%H%s%N: Boot must be selected for hot key options.\r\n"
#string STR_GEN_FIND_FAIL         #language en-US "%H%s%N: File not found - '%H%s%N'\r\n"

#string STR_GEN_PROBLEM           #language en-US "%H%s%N: Unknown flag - '%H%s%N'\r\n"
#string STR_GEN_PROBLEM_VAL       #language en-US "%H%s%N: Bad value - '%H%s%N' for flag - '%H%s%N'\r\n"
#string STR_GEN_NO_VALUE          #language en-US "%H%s%N: Missing argument for flag - '%H%s%N'\r\n"
#string STR_GEN_TOO_FEW           #language en-US "%H%s%N: Too few arguments.\r\n"
#string STR_GEN_TOO_MANY          #language en-US "%H%s%N: Too many arguments.\r\n"
#string STR_GEN_NO_DRIVER_BOOT    #language en-US "%H%s%N: Driver or Boot must be selected.\r\n"
#string STR_GEN_PCIRBIO_NF        #language en-US "%H%s%N: Protocol - PciRootBridgeIo not found.\r\n"
#string STR_GEN_PCIRBIO_ER        #language en-US "%H%s%N: Problem accessing the data using Protocol - PciRootBridgeIo\r\n"
#string STR_GEN_PARAM_INV         #language en-US "%H%s%N: Invalid argument - '%H%s%N'\r\n"
#string STR_GEN_PARAM_INV_HEX     #language en-US "%H%s%N: Invalid parameter - '%H%s%N'. Must be hexadecimal.\r\n"
#string STR_GEN_PARAM_CONFLICT    #language en-US "%H%s%N: Flags conflict with - '%H%s%N' and '%H%s%N'\r\n"
#string STR_GEN_OUT_MEM           #language en-US "%H%s%N: Memory allocation was not successful.\r\n"
#string STR_GEN_MAP_PROTOCOL      #language en-US "%H%s%N: Mapped device '%B%s%N' does not have protocol %B%s%N\r\n"
#string STR_GEN_FILE_OPEN_FAIL    #language en-US "%H%s%N: Cannot open file - '%H%s%N'\r\n"
#string STR_GEN_FILE_DELETE_FAIL  #language en-US "%H%s%N: Cannot delete file - '%H%s%N'\r\n"
#string STR_GEN_NO_CWD            #language en-US "%H%s%N: Current directory not specified.\r\n"
#string STR_GEN_FILE_IS_DIRECTORY #language en-US "%H%s%N: The file '%H%s%N' is a directory.\r\n"
#string STR_GEN_SFO_HEADER        #language en-US "ShellCommand,"%s"\r\n"


#string STR_FILE_OPEN_FAIL        #language en-US "Unable to open file on '%B%s%N' with: %r.\r\n"
#string STR_FILE_FIND_FAIL        #language en-US "%H%s%N: File not found - '%H%s%N'\r\n"
#string STR_FILE_NOT_DIR          #language en-US "%H%s%N: Directories are not permitted - '%H%s%N'\r\n"
#string STR_SIZE_NOT_SPEC         #language en-US "%H%s%N: A valid size must be specified\r\n"
#string STR_FILE_NOT_SPEC         #language en-US "%H%s%N: File not specified\r\n"
#string STR_FILE_WRITE_FAIL       #language en-US "%H%s%N: Write file error - '%H%s%N'\r\n"
#string STR_FILE_READ_FAIL        #language en-US "%H%s%N: Read file error - '%H%s%N'\r\n"
#string STR_VOLUME_FULL           #language en-US "%H%s%N: The volume is full\r\n"

#string STR_SET_SIZE_FAIL         #language en-US "%H%s%N: Unable to change size on '%B%s%N'\r\n"
#string STR_SET_SIZE_DONE         #language en-US "Size changed on '%B%s%N'.\r\n"

#string STR_DBLK_HEADER           #language en-US "LBA %016LX Size %08x bytes BlkIo %0x\r\n"

#string STR_COMP_HEADER           #language en-US "Compare %s to %s.\r\n"
#string STR_COMP_DIFFERENCE_POINT #language en-US "Difference #% 2u:\r\n"
#string STR_COMP_END_OF_FILE      #language en-US " <EOF>"

#string STR_COMP_FOOTER_FAIL      #language en-US "[difference(s) encountered] \r\n"
#string STR_COMP_FOOTER_PASS      #language en-US "[no differences encountered]\r\n"

#string STR_MODE_SET_FAIL         #language en-US "%H%s%N: Unable to change the mode.\r\n"
#string STR_MODE_NO_MATCH         #language en-US "%H%s%N: No matching mode found to set\r\n"
#string STR_MODE_LIST_HEAD        #language en-US "Available modes for console output device.\r\n"
#string STR_MODE_LIST_ITEM        #language en-US "  Col % 5d Row % 5d  %c\r\n"

#string STR_MEMMAP_GET_FAILED     #language en-US "%H%s%N: Unable to get memory map\r\n"
#string STR_MEMMAP_LIST_HEAD      #language en-US "Type       Start            End              # Pages          Attributes\r\n"
#string STR_MEMMAP_LIST_ITEM      #language en-US "% -10s %016LX-%016LX %016LX %016LX\r\n"
#string STR_MEMMAP_LIST_ITEM_OTHER #language en-US "%08x   %016LX-%016LX %016LX %016LX\r\n"
#string STR_MEMMAP_LIST_SUMM      #language en-US " \r\n"
                                                  "  Reserved  : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  LoaderCode: %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  LoaderData: %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  BS_Code   : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  BS_Data   : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  RT_Code   : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  RT_Data   : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  ACPI_Recl : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  ACPI_NVS  : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  MMIO      : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  MMIO_Port : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  PalCode   : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  Available : %,14ld Pages (%,ld Bytes)\r\n"
                                                  "  Persistent: %,14ld Pages (%,ld Bytes)\r\n"
#string STR_MEMMAP_LIST_SUMM_OTHER #language en-US    "  %08x  : %,14ld Pages (%,ld Bytes)\r\n"
#string STR_MEMMAP_LIST_SUMM2     #language en-US "              -------------- \r\n"
                                                  "Total Memory: %,14ld MB (%,ld Bytes)\r\n"
#string STR_MEMMAP_LIST_ITEM_SFO  #language en-US "MemoryMap,"%s","%LX","%LX","%LX","%LX"\r\n"
#string STR_MEMMAP_LIST_SUMM_SFO  #language en-US "MemoryMapSummary,"%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld","%Ld"\r\n"

#string STR_EFI_COMPRESS_FAIL     #language en-US "Unable to compress: %r.\r\n"
#string STR_EFI_DECOMPRESS_FAIL   #language en-US "Unable to decompress: %r.\r\n"
#string STR_EFI_DECOMPRESS_NOPE   #language en-US "The file does not appear to be a compressed file.  Cannot continue. \"%H%s%N\"\r\n"

#string STR_DMEM_HEADER_ROW       #language en-US "Memory Address %016LX %X Bytes\r\n"
#string STR_DMEM_MMIO_HEADER_ROW  #language en-US "Memory Mapped IO Address %016LX %X Bytes\r\n"
#string STR_DMEM_DATA_ROW         #language en-US "%08X: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x *%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c*\r\n"
#string STR_DMEM_SYSTEM_TABLE     #language en-US "\r\nValid EFI Header at Address %016Lx\r\n"
                                                  "---------------------------------------------\r\n"
                                                  "System: Table Structure size %08x revision %08x\r\n"
                                                  "ConIn (%016LX) ConOut (%016LX) StdErr (%016LX)\r\n"
                                                  "Runtime Services %016LX\r\n"
                                                  "Boot Services    %016LX\r\n"
                                                  "SAL System Table %016LX\r\n"
                                                  "ACPI Table       %016LX\r\n"
                                                  "ACPI 2.0 Table   %016LX\r\n"
                                                  "MPS Table        %016LX\r\n"
                                                  "SMBIOS Table     %016LX\r\n"

#string STR_LOAD_PCI_ROM_RES      #language en-US "Image '%B%s%N' load result: %r\r\n"
#string STR_LOADPCIROM_CORRUPT    #language en-US "%H%s%N: File '%B%s%N' Image %d is corrupt.\r\n"
#string STR_LOADPCIROM_LOAD_FAIL  #language en-US "%H%s%N: File '%B%s%N' Image %d unable to load.\r\n"
#string STR_LOADPCIROM_START_FAIL #language en-US "%H%s%N: File '%B%s%N' Image %d unable to start.\r\n"

#string STR_MM_NOT_ALIGNED        #language en-US "%H%s%N: Address parameter %016LX is not aligned.\r\n"
#string STR_MM_PCIE_ADDRESS_RANGE #language en-US "%H%s%N: Address parameter %016LX is not a valid PCI/PCIE address.\r\n"
#string STR_MM_IO_ADDRESS_RANGE   #language en-US "%H%s%N: IO address out of range 0 - 0xFFFF\r\n"
#string STR_MM_MMIO               #language en-US "%HMMIO%N"
#string STR_MM_IO                 #language en-US "%HIO%N"
#string STR_MM_PCI                #language en-US "%HPCI%N"
#string STR_MM_MEM                #language en-US "%HMEM%N"
#string STR_MM_PCIE               #language en-US "%HPCIE%N"
#string STR_MM_ADDRESS            #language en-US "  0x%016lx : "
#string STR_MM_BUF                #language en-US "0x%0*lx"
#string STR_MM_ADDRESS_RANGE2     #language en-US "%H%s%N: IO address out of range\r\n"
#string STR_MM_ERROR              #language en-US "%H%s%N: Input had incorrect format\r\n"

#string STR_SETVAR_PRINT          #language en-US "%g - %s - %04x Bytes\r\n"
#string STR_SETVAR_ERROR_SET      #language en-US "%H%s%N: Unable to set - %H%g%N - %H%s%N\r\n"
#string STR_SETVAR_ERROR_GET      #language en-US "%H%s%N: Unable to get - %H%g%N - %H%s%N\r\n"
#string STR_SETVAR_ERROR_DPFT     #language en-US "%H%s%N: DevicePathFromText conversion was not successful.\r\n"

#string STR_SERMODE_NO_FOUND      #language en-US "%H%s%N: No serial ports found.\r\n"
#string STR_SERMODE_NOT_FOUND     #language en-US "%H%s%N: No serial port or specified serial port found.\r\n"
#string STR_SERMODE_BAD_HANDLE    #language en-US "%H%s%N: Handle %H%02x%N is not a serial device handle.\r\n"
#string STR_SERMODE_SET_HANDLE    #language en-US "Mode set on handle %H%02x%N successfully.\r\n"
#string STR_SERMODE_SET_FAIL      #language en-US "%H%s%N: Mode change on handle %H%02x%N was not successful.\r\n"
#string STR_SERMODE_DISPLAY       #language en-US "%x(%08x) - (%ld, %c, %d, %s)\r\n"
#string STR_SERMODE_SET_UNSUPPORTED #language en-US "%H%s%N: One or more of the new settings is not supported on handle %H%02x%N.\r\n"
#string STR_SERMODE_SET_DEV_ERROR  #language en-US "%H%s%N: The serial device on handle %H%02x%N is not functioning correctly.\r\n"

#string STR_PCI_HANDLE_CFG_ERR    #language en-US "%H%s%N: Handle protocol or configuration error.\r\n"
#string STR_PCI_BUS_RANGE_ERR     #language en-US "%H%s%N: Get next bus range error.\r\n"
#string STR_PCI_NO_FIND           #language en-US "%H%s%N: Cannot find protocol interface for segment %x, bus %x.\r\n"
#string STR_PCI_NO_CFG            #language en-US "%H%s%N: Cannot read configuration data.\r\n"
#string STR_PCI_INFO              #language en-US "%H  PCI Segment %02x Bus %02x Device %02x Func %02x%N [EFI %02x%02x%02x%02x00]\r\n"
#string STR_PCI_TITLE             #language en-US "   Seg  Bus  Dev  Func\r\n"
                                                  "   ---  ---  ---  ----\r\n"
#string STR_PCI_LINE_P1           #language en-US "    %E%02x   %02x   %02x    %02x ==> %N"
#string STR_PCI_LINE_P2           #language en-US "\r\n             Vendor %04x Device %04x Prog Interface %x\r\n"
#string STR_PCIEX_CAPABILITY_CAPID     #language en-US "CapID(%2x):          %E%02x%N"
#string STR_PCIEX_NEXTCAP_PTR          #language en-US "            NextCap Ptr(%2x):    %E%02x%N\r\n"
#string STR_PCIEX_CAP_REGISTER         #language en-US "Cap Register(%2x):             %E%04x%N\r\n"
#string STR_PCIEX_DEVICE_CAP           #language en-US "Device Capabilities(%2x):      %E%08x%N\r\n"
#string STR_PCIEX_DEVICE_CONTROL       #language en-US "Device Control(%2x):           %E%04x%N\r\n"
#string STR_PCIEX_DEVICE_STATUS        #language en-US "Device Status(%2x):            %E%04x%N\r\n"
#string STR_PCIEX_LINK_CAPABILITIES    #language en-US "Link Capabilities(%2x):        %E%08x%N\r\n"
#string STR_PCIEX_LINK_CONTROL         #language en-US "Link Control(%2x):             %E%04x%N\r\n"
#string STR_PCIEX_LINK_STATUS          #language en-US "Link Status(%2x):              %E%04x%N\r\n"
#string STR_PCIEX_SLOT_CAPABILITIES    #language en-US "Slot Capabilities(%2x):        %E%08x%N\r\n"
#string STR_PCIEX_SLOT_CONTROL         #language en-US "Slot Control(%2x):             %E%04x%N\r\n"
#string STR_PCIEX_SLOT_STATUS          #language en-US "Slot Status(%2x):              %E%04x%N\r\n"
#string STR_PCIEX_ROOT_CONTROL         #language en-US "Root Control(%2x):             %E%04x%N\r\n"
#string STR_PCIEX_RSVDP                #language en-US "Root Capabilities(%2x):        %E%04x%N\r\n"
#string STR_PCIEX_ROOT_STATUS          #language en-US "Root Status(%2x):              %E%08x%N\r\n"
#string STR_PCI_LINE_VID_DID      #language en-US "Vendor ID(%x): %E%04x%N     Device ID(%x): %E%04x%N\r\n"
#string STR_PCI_LINE_RID          #language en-US "Revision ID(%x): %E%02x%N "
#string STR_PCI_LINE_BIST         #language en-US "BIST(%02x): "
#string STR_PCI_LINE_CAP          #language en-US "Capable,Return: %E%02x%N\r\n"
#string STR_PCI_LINE_CAP_NO       #language en-US " Incapable\r\n"
#string STR_PCI2_CACHE_LINE_SIZE       #language en-US "Cache Line Size(%x): %E%02x%N                 "
#string STR_PCI2_LATENCY_TIMER         #language en-US "Latency Timer(%x): %E%02x%N\r\n"
#string STR_PCI2_HEADER_TYPE           #language en-US "Header Type(%02x):    %E%02x%N, "
#string STR_PCI2_MULTI_FUNCTION        #language en-US "Multi-function, "
#string STR_PCI2_SINGLE_FUNCTION       #language en-US "Single function, "
#string STR_PCI2_PCI_DEVICE            #language en-US "PCI device\r\n"
#string STR_PCI2_P2P_BRIDGE            #language en-US "P2P bridge\r\n"
#string STR_PCI2_CARDBUS_BRIDGE        #language en-US "CardBus bridge\r\n"
#string STR_PCI2_RESERVED              #language en-US "Reserved\r\n"
#string STR_PCI2_CLASS                 #language en-US "Class: "
#string STR_PCI2_BASE_ADDR             #language en-US "Base Address Registers(%x):\r\n"
#string STR_PCI2_START_TYPE            #language en-US "     Start_Address  Type  Space    Prefetchable?     Size             Limit\r\n"
#string STR_PCI2_NONE                  #language en-US "  (None)"
#string STR_PCI2_EXPANSION_ROM_DISABLED #language en-US "\r\nExpansion ROM Disabled(%x)\r\n\r\n"
#string STR_PCI2_EXPANSION_ROM_BASE    #language en-US "\r\nExpansion ROM Base Address(%x): %E%08x%N\r\n\r\n"
#string STR_PCI2_CARDBUS_CIS           #language en-US "Cardbus CIS ptr(%x):   %E%08x%N\r\n"
#string STR_PCI2_SUB_VENDOR_ID         #language en-US "Sub VendorID(%x):          %E%04x%N      "
#string STR_PCI2_SUBSYSTEM_ID          #language en-US "Subsystem ID(%x):      %E%04x%N\r\n"
#string STR_PCI2_CAPABILITIES_PTR      #language en-US "Capabilities Ptr(%x):        %E%02x%N\r\n"
#string STR_PCI2_INTERRUPT_LINE        #language en-US "Interrupt Line(%x):          %E%02x%N      "
#string STR_PCI2_INTERRUPT_PIN         #language en-US "Interrupt Pin(%x):       %E%02x%N\r\n"
#string STR_PCI2_MIN_GNT               #language en-US "Min_Gnt(%x):                 %E%02x%N      "
#string STR_PCI2_MAX_LAT               #language en-US "Max_Lat(%x):             %E%02x%N\r\n"
#string STR_PCI2_BASE_ADDRESS          #language en-US "Base Address Registers(%x):"
#string STR_PCI2_START_TYPE_2          #language en-US "     Start_Address  Type  Space    Prefetchable?     Size             Limit\r\n"
#string STR_PCI2_NO_EXPANSION_ROM      #language en-US "\r\nNo Expansion ROM(%x)    "
#string STR_PCI2_EXPANSION_ROM_BASE_2  #language en-US "\r\nExpansion ROM Base Address(%x): %E%08x%N\r\n"
#string STR_PCI2_BUS_NUMBERS           #language en-US "\r\n\r\n(Bus Numbers)  Primary(%x)     Secondary(%x)   Subordinate(%x)\r\n"
#string STR_PCI2_BRIDGE                #language en-US "               %E%02x%N"
#string STR_PCI2_SECONDARY_TIMER       #language en-US "\r\nSecondary Latency Timer(%x):       %E%02x%N\n\n"
#string STR_PCI2_CARDBUS_LATENCY       #language en-US "\r\nCardBus Latency Timer(%x):         %E%02x%N\r\n"
#string STR_PCI2_RESOURCE_TYPE_2       #language en-US "\r\nResource Type              Type              Base                Limit\r\n"
#string STR_PCI2_MEM_3                 #language en-US "Mem(%x)      %s          %E%08x%N             %E%08x%N\r\n"
#string STR_PCI2_IO_2                  #language en-US "I/O(%x)      %s          %E%08x%N             %E%08x%N\r\n"
#string STR_PCI2_INTERRUPT_LINE_3      #language en-US "\r\nInterrupt Line(%x):     %E%02x%N             Interrupt Pin(%x):       %E%02x%N\r\n"
#string STR_PCI2_SUB_VENDOR_ID_2       #language en-US "\r\nSub VendorID(%x):     %E%04x%N             Subsystem ID(%x):      %E%04x%N\r\n"
#string STR_PCI2_OPTIONAL              #language en-US "Optional 16-Bit PC Card legacy Mode Base Address(%x): %E%08x%N\r\n"
#string STR_PCI2_STATUS                #language en-US "Status(%x): %E%04x%N\r\n"
#string STR_PCI2_SECONDARY_STATUS      #language en-US "Secondary Status(%2x): %E%4x%N\r\n"
#string STR_PCI2_NEW_CAPABILITIES      #language en-US "  (04)New Capabilities linked list:   %E%d%N"
#string STR_PCI2_66_CAPABLE            #language en-US "  (05)66MHz Capable:                %EN/A%N\r\n"
#string STR_PCI2_66_CAPABLE_2          #language en-US "  (05)66MHz Capable:                  %E%d%N\r\n"
#string STR_PCI2_FAST_BACK             #language en-US "  (07)Fast Back-to-Back Capable:      %E%d%N"
#string STR_PCI2_NO                    #language en-US "No     "
#string STR_PCI2_YES                   #language en-US "YES    "
#string STR_PCI2_ONE_VAR_4             #language en-US "\r\n              %E%04x%N  "
#string STR_PCI2_NEWBAR_32             #language en-US "        %08x  "
#string STR_PCI2_NEWBAR_32_2           #language en-US "        %08x"
#string STR_PCI2_RSHIFT                #language en-US "%08x"
#string STR_PCI2_NEWBAR_32_3           #language en-US "%04x              "
#string STR_PCI2_NEWBAR_32_4           #language en-US "%04x"
#string STR_PCI2_CARDBUS_SOCKET        #language en-US "\r\nCardBus Socket Registers/ExCA Base Address Register(%x): %E%8x%N\r\n\r\n"
#string STR_PCI2_BUS_NUMBERS_2         #language en-US "\r\n(Bus Numbers)  Pci(%x)         CardBus(%x)     Subordinate(%x)\r\n"
#string STR_PCI2_CARDBUS               #language en-US "               %E%02x%N"
#string STR_PCI2_CARDBUS_2             #language en-US "                %E%02x%N"
#string STR_PCI2_CARDBUS_3             #language en-US "                %E%02x%N\r\n"
#string STR_PCI2_MASTER_DATA           #language en-US "  (08)Master Data Parity Error:       %E%d%N\r\n"
#string STR_PCI2_DEVSEL_TIMING         #language en-US "  (09)DEVSEL timing:           "
#string STR_PCI2_FAST                  #language en-US "%E    Fast%N"
#string STR_PCI2_MEDIUM                #language en-US "%E  Medium%N"
#string STR_PCI2_SLOW                  #language en-US "%E    Slow%N"
#string STR_PCI2_RESERVED_2            #language en-US "%EReserved%N"
#string STR_PCI2_SIGNALED_TARGET       #language en-US "  (11)Signaled Target Abort:          %E%d%N\r\n"
#string STR_PCI2_RECEIVED_TARGET       #language en-US "  (12)Received Target Abort:          %E%d%N"
#string STR_PCI2_RECEIVED_MASTER       #language en-US "  (13)Received Master Abort:          %E%d%N\r\n"
#string STR_PCI2_SIGNALED_ERROR        #language en-US "  (14)Signaled System Error:          %E%d%N"
#string STR_PCI2_RECEIVED_ERROR        #language en-US "  (14)Received System Error:          %E%d%N"
#string STR_PCI2_DETECTED_ERROR        #language en-US "  (15)Detected Parity Error:          %E%d%N\r\n"
#string STR_PCI2_COMMAND               #language en-US "Command(%x): %E%04x%N\r\n"
#string STR_PCI2_SPACE_ACCESS_DENIED   #language en-US "  (00)I/O space access enabled:       %E%d%N"
#string STR_PCI2_MEMORY_SPACE          #language en-US "  (01)Memory space access enabled:    %E%d%N\r\n"
#string STR_PCI2_BEHAVE_BUS_MASTER     #language en-US "  (02)Behave as bus master:           %E%d%N"
#string STR_PCI2_MONITOR_SPECIAL_CYCLE #language en-US "  (03)Monitor special cycle enabled:  %E%d%N\r\n"
#string STR_PCI2_MEM_WRITE_INVALIDATE  #language en-US "  (04)Mem Write & Invalidate enabled: %E%d%N"
#string STR_PCI2_PALETTE_SNOOPING      #language en-US "  (05)Palette snooping is enabled:    %E%d%N\r\n"
#string STR_PCI2_ASSERT_PERR           #language en-US "  (06)Assert PERR# when parity error: %E%d%N"
#string STR_PCI2_DO_ADDR_STEPPING      #language en-US "  (07)Do address/data stepping:       %E%d%N\r\n"
#string STR_PCI2_SERR_DRIVER           #language en-US "  (08)SERR# driver enabled:           %E%d%N"
#string STR_PCI2_FAST_BACK_2           #language en-US "  (09)Fast back-to-back transact...:  %E%d%N\r\n\r\n"
#string STR_PCI2_BRIDGE_CONTROL        #language en-US "Bridge Control(%x)     %E%04x%N\r\n"
#string STR_PCI2_PARITY_ERROR          #language en-US "  (00)Parity Error Response:          %E%d%N"
#string STR_PCI2_SERR_ENABLE           #language en-US "  (01)SERR# Enable:                   %E%d%N\r\n"
#string STR_PCI2_ISA_ENABLE            #language en-US "  (02)ISA Enable:                     %E%d%N"
#string STR_PCI2_RESOURCE_TYPE         #language en-US "\r\nResource Type                            Base                    Limit\r\n"
#string STR_PCI2_TWO_VARS              #language en-US "I/O(%x)                            %E%08x%N"
#string STR_PCI2_ONE_VAR               #language en-US "                 %E%08x%N\r\n"
#string STR_PCI2_MEMORY                #language en-US "Memory(%x)                         %E%08x%N"
#string STR_PCI2_PREFETCHABLE          #language en-US "Prefetchable Memory(%x)    %E%08x%08x%N"
#string STR_PCI2_TWO_VARS_2            #language en-US "         %E%08x%08x%N\r\n"
#string STR_PCI2_CAPABILITIES_PTR_2    #language en-US "\r\nCapabilities Ptr(%x):   %E%02x%N             \r\n\r\n"
#string STR_PCI2_INTERRUPT_LINE_2      #language en-US "\r\nInterrupt Line(%x)      %E%02x%N             "
#string STR_PCI2_BAR                   #language en-US "\r\n          %E%08x%N  "
#string STR_PCI2_MEM                   #language en-US "Mem   "
#string STR_PCI2_32_BITS               #language en-US "32 bits  "
#string STR_PCI2_ONE_VAR_2             #language en-US "\r\n  %E%08x"
#string STR_PCI2_ONE_VAR_3             #language en-US "%08x%N  "
#string STR_PCI2_64_BITS               #language en-US "64 bits  "
#string STR_PCI2_MEM_2                 #language en-US "Mem            "
#string STR_PCI2_VGA_ENABLE            #language en-US "  (03)VGA Enable:                     %E%d%N\r\n"
#string STR_PCI2_MASTER_ABORT          #language en-US "  (05)Master Abort Mode:              %E%d%N"
#string STR_PCI2_SECONDARY_BUS_RESET   #language en-US "  (06)Secondary Bus Reset:            %E%d%N\r\n"
#string STR_PCI2_FAST_ENABLE           #language en-US "  (07)Fast Back-to-Back Enable:       %E%d%N"
#string STR_PCI2_PRIMARY_DISCARD_TIMER #language en-US "  (08)Primary Discard Timer:       %E%s%N\r\n"
#string STR_PCI2_SECONDARY_DISCARD_TIMER #language en-US "  (09)Secondary Discard Timer:     %E%s%N"
#string STR_PCI2_DISCARD_TIMER_STATUS  #language en-US "  (10)Discard Timer Status:           %E%d%N\r\n"
#string STR_PCI2_DISCARD_TIMER_SERR    #language en-US "  (11)Discard Timer SERR# Enable:     %E%d%N\r\n"
#string STR_PCI2_CARDBUS_RESET         #language en-US "  (06)CardBus Reset:                  %E%d%N\r\n"
#string STR_PCI2_IREQ_ENABLE           #language en-US "  (07)IREQ/INT Enable:                %E%d%N"
#string STR_PCI2_WRITE_POSTING_ENABLE  #language en-US "  (10)Write Posting Enable:           %E%d%N\r\n"
#string STR_PCI_EXT_CAP_AER            #language en-US "  Advanced Error Reporting\r\n"
                                                       "    UncorrectableErrorStatus       %08x\r\n"
                                                       "    UncorrectableErrorMask         %08x\r\n"
                                                       "    UncorrectableErrorSeverity     %08x\r\n"
                                                       "    CorrectableErrorStatus         %08x\r\n"
                                                       "    CorrectableErrorMask           %08x\r\n"
                                                       "    AdvancedErrorCapAndControl     %08x\r\n"
                                                       "    HeaderLog1                     %08x\r\n"
                                                       "    HeaderLog2                     %08x\r\n"
                                                       "    HeaderLog3                     %08x\r\n"
                                                       "    HeaderLog4                     %08x\r\n"
                                                       "    RootErrorCommand               %08x\r\n"
                                                       "    RootErrorStatus                %08x\r\n"
                                                       "    ErrorSourceIdentification      %04x\r\n"
                                                       "    CorrectableErrorSourceIden     %04x\r\n"
                                                       "    TlpPrefixLog1                  %08x\r\n"
                                                       "    TlpPrefixLog2                  %08x\r\n"
                                                       "    TlpPrefixLog3                  %08x\r\n"
                                                       "    TlpPrefixLog4                  %08x\r\n"
#string STR_PCI_EXT_CAP_LINK_CONTROL   #language en-US "  Link Control\r\n"
                                                       "    RootComplexLinkCapabilities    %08x\r\n"
                                                       "    RootComplexLinkControl         %04x\r\n"
                                                       "    RootComplexLinkStatus          %04x\r\n"
#string STR_PCI_EXT_CAP_LINK_DECLAR    #language en-US "  Link Declaration\r\n"
                                                       "    ElementSelfDescription         %08x\r\n"
#string STR_PCI_EXT_CAP_LINK_DECLAR2   #language en-US "    LinkEntry[%x]                  %08x\r\n"
#string STR_PCI_EXT_CAP_SN             #language en-US "  Serial Number\r\n"
                                                       "    SerialNumber                   %L16x\r\n"
#string STR_PCI_EXT_CAP_POWER          #language en-US "  Power Budgeting\r\n"
                                                       "    DataSelect                     %02x\r\n"
                                                       "    Data                           %08x\r\n"
                                                       "    PowerBudgetCapability          %02x\r\n"
#string STR_PCI_EXT_CAP_ACS            #language en-US "  ACS\r\n"
                                                       "    CapabilityRegister             %04x\r\n"
                                                       "    ControlRegister                %04x\r\n"
#string STR_PCI_EXT_CAP_ACS2           #language en-US "    EgressControlVectorByte[%x]    %02x\r\n"
#string STR_PCI_EXT_CAP_LAT            #language en-US "  Latency Tolerance Reporting\r\n"
                                                       "    MaxSnoopLatency                %04x\r\n"
                                                       "    MaxNoSnoopLatency              %04x\r\n"
#string STR_PCI_EXT_CAP_ARI            #language en-US "  ARI\r\n"
                                                       "    AriCapability                  %04x\r\n"
                                                       "    AriControl                     %04x\r\n"
#string STR_PCI_EXT_CAP_RCRB           #language en-US "  RCRB\r\n"
                                                       "    VendorId                       %04x\r\n"
                                                       "    DeviceId                       %04x\r\n"
                                                       "    RcrbCapabilities               %04x\r\n"
                                                       "    RcrbControl                    %04x\r\n"
#string STR_PCI_EXT_CAP_VEN            #language en-US "  VendorSpecific\r\n"
                                                       "    VendorSpecificHeader           %04x\r\n"
#string STR_PCI_EXT_CAP_DPA            #language en-US "  DPA\r\n"
                                                       "    DpaCapability                  %04x\r\n"
                                                       "    DpaLatencyIndicator            %04x\r\n"
                                                       "    DpaStatus                      %04x\r\n"
                                                       "    DpaControl                     %04x\r\n"
#string STR_PCI_EXT_CAP_DPA2           #language en-US "    DpaPowerAllocationArray[%x]    %02x\r\n"
#string STR_PCI_EXT_CAP_ECEA           #language en-US "  Event Collector Endpoint Association\r\n"
                                                       "    AssociationBitmap              %04x\r\n"
#string STR_PCI_EXT_CAP_VC_BASE        #language en-US "  Virtual (Multi) Channel Capability\r\n"
                                                       "    ExtendedVcCount                %08x\r\n"
                                                       "    PortCapability1                %08x\r\n"
                                                       "    PortCapability2                %08x\r\n"
                                                       "    ArbitrationTableOffset         %08x\r\n"
                                                       "    PortVcControl                  %04x\r\n"
                                                       "    PortVcStatus                   %04x\r\n"
#string STR_PCI_EXT_CAP_VC_ITEM        #language en-US "  Virtual Channel Capability Extended Item[%x]\r\n"
                                                       "    ResourceCapability             %08x\r\n"
                                                       "    ArbitrationTableOffset         %08x\r\n"
                                                       "    ResourceControl                %08x\r\n"
                                                       "    ResourceStatus                 %04x\r\n"
#string STR_PCI_EXT_CAP_MULTICAST      #language en-US "  MultiCast Capability\r\n"
                                                       "    MultiCastCapability            %04x\r\n"
                                                       "    MulticastControl               %04x\r\n"
                                                       "    McBaseAddress                  %L16x\r\n"
                                                       "    McReceiveAddress               %L16x\r\n"
                                                       "    McBlockAll                     %L16x\r\n"
                                                       "    McBlockUntranslated            %L16x\r\n"
                                                       "    McOverlayBar                   %L16x\r\n"
#string STR_PCI_EXT_CAP_RESIZE_BAR     #language en-US "  Resizeable Bar Capability [%x]\r\n"
                                                       "    ResizableBarCapability         %08x\r\n"
                                                       "    ResizableBarControl            %04x\r\n"
#string STR_PCI_EXT_CAP_TPH            #language en-US "  TPH\r\n"
                                                       "    TphRequesterCapability         %08x\r\n"
                                                       "    TphRequesterControl            %04x\r\n"
                                                       "    TphTable (optional):\r\n"
#string STR_PCI_EXT_CAP_SECONDARY      #language en-US "  Secondary PCI Express Extended Capability\r\n"
                                                       "    LinkControl3                   %08x\r\n"
                                                       "    LaneErrorStatus                %08x\r\n"
                                                       "    EqualizationControl:\r\n"

#string STR_DMPSTORE_SAVE              #language en-US "Save variable to file: %H%s%N.\r\n"
#string STR_DMPSTORE_LOAD              #language en-US "Load and set variables from file: %H%s%N.\r\n"
#string STR_DMPSTORE_LOAD_GEN_FAIL     #language en-US "%H%s%N: Failed to set variable %H%s%N: %r.\r\n"
#string STR_DMPSTORE_LOAD_BAD_FILE     #language en-US "%H%s%N: Incorrect file format.\r\n"
#string STR_DMPSTORE_HEADER_LINE       #language en-US "Variable %H%s%N '%H%g%N:%H%s%N' DataSize = 0x%02x\r\n"
#string STR_DMPSTORE_DELETE_LINE       #language en-US "Delete variable '%H%g%N:%H%s%N': %r\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND      #language en-US "%H%s%N: No matching variables found.\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_SFO  #language en-US "VariableInfo,\"\",\"\",\"\",\"\",\"\"\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_GN   #language en-US "%H%s%N: No matching variables found. Guid %g, Name %s\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_NG_SFO #language en-US "VariableInfo,\"%s\",\"%g\",\"\",\"\",\"\"\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_N    #language en-US "%H%s%N: No matching variables found. Name %s\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_N_SFO #language en-US #language en-US "VariableInfo,\"%s\",\"\",\"\",\"\",\"\"\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_G    #language en-US "%H%s%N: No matching variables found. Guid %g\r\n"
#string STR_DMPSTORE_NO_VAR_FOUND_G_SFO #language en-US "VariableInfo,\"\",\"%g\",\"\",\"\",\"\"\r\n"
#string STR_DMPSTORE_VAR_SFO           #language en-US "VariableInfo,\"%s\",\"%g\",\"0x%x\",\"0x%x\",\"%s\"\r\n"

#string STR_GET_HELP_COMP         #language en-US ""
".TH comp 0 "Compare 2 files"\r\n"
".SH NAME\r\n"
"Compares the contents of two files on a byte-for-byte basis.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"COMP [-b] file1 file2\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b    - Displays one screen at a time.\r\n"
"  file1 - Specifies a first file name  (directory name or wildcards not permitted).\r\n"
"  file2 - Specifies a second file name (directory name or wildcards not permitted).\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command compares the contents of two files in binary mode.\r\n"
"  2. It displays up to 10 differences between the two files. For each\r\n"
"     difference, up to 32 bytes from the location where the difference starts\r\n"
"     is dumped.\r\n"
"  3. It will exit immediately if the lengths of the compared files are\r\n"
"     different.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To compare two files with the same length but different contents:\r\n"
"    fs0:\> comp bios.inf bios2.inf\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS              The function operated as expected.\r\n"
"  SHELL_NOT_EQUAL            The files were not identical.\r\n"
"  SHELL_INVALID_PARAMETER    One of the passed in parameters was incorrectly\r\n"
"                             formatted or its value was out of bounds.\r\n"
"  SHELL_SECURITY_VIOLATION   This function was not performed due to a security\r\n"
"                             violation.\r\n"
"  SHELL_NOT_FOUND            The requested file was not found.\r\n"

#string STR_GET_HELP_SETSIZE      #language en-US ""
".TH setsize 0 "Set file size"\r\n"
".SH NAME\r\n"
"Adjusts the size of a file.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"SETSIZE size file [file...]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  size - Specifies the size of the file after it is adjusted.\r\n"
"  file - Specifies the file or files to be adjusted.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. Setting the size smaller than the actual data contained in this file will\r\n"
"     truncate its data.\r\n"
"  2. This command adjusts the size of a particular target file.\r\n"
"  3. This command automatically truncates or extends the size of a file based on the passed-in\r\n"
"     parameters. If the file does not exist, it is created.\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS             The action was completed as requested.\r\n"
"  SHELL_VOLUME_FULL         The media has insufficient space to complete the\r\n"
"                            request.\r\n"
"  SHELL_INVALID_PARAMETER   One of the passed in parameters was incorrectly\r\n"
"                            formatted or its value was out of bounds.\r\n"

#string STR_GET_HELP_MODE         #language en-US ""
".TH mode 0 "Shows or changes ConOut mode."\r\n"
".SH NAME\r\n"
"Displays or changes the console output device mode.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"MODE [col row]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  col - Specifies the number of columns.\r\n"
"  row - Specifies the number of rows.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command changes the display mode for the console output\r\n"
"     device.\r\n"
"  2. When this command is used without any parameters, it shows the list of\r\n"
"     modes that the standard output device currently supports.\r\n"
"  3. When used with the row and col parameter, this command\r\n"
"     changes the number of rows and columns on the standard output device.\r\n"
"  4. The current selected mode is indicated by a '*'. \r\n"
"  5. The display is cleared every time this command is used to change the\r\n"
"     currently selected display mode.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display all available modes on standard output:\r\n"
"    Shell> mode\r\n"
" \r\n"
"  * To change the current mode setting:\r\n"
"    Shell> mode 80 50\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS              The action was completed as requested.\r\n"
"  SHELL_SECURITY_VIOLATION   This function was not performed due to a security\r\n"
"                             violation.\r\n"
"  SHELL_INVALID_PARAMETER    One of the passed-in parameters was incorrectly\r\n"
"                             formatted or its value was out of bounds.\r\n"

#string STR_GET_HELP_MEMMAP       #language en-US ""
".TH memmap 0 "Displays the memory map."\r\n"
".SH NAME\r\n"
"Displays the memory map maintained by the UEFI environment.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"MEMMAP [-b] [-sfo]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b   - Displays one screen at a time\r\n"
"  -sfo - Displays information as described in Standard-Format Output.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. The UEFI environment keeps track of all the physical memory in the system\r\n"
"     and how it is currently being used.\r\n"
"  2. Total Memory is the physical memory size excluding Reserved, Unusable,\r\n"
"     MemoryMappedIO, and MemoryMappedIOPortSpace memory types.\r\n"
"  3. Refer to the UEFI specification for memory type definitions.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display the system memory map:\r\n"
"    Shell> memmap\r\n"
" \r\n"

#string STR_GET_HELP_EFICOMPRESS  #language en-US ""
".TH eficompress 0 "compresses a file."\r\n"
".SH NAME\r\n"
"Compresses a file using UEFI Compression Algorithm.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"EFICOMPRESS infile outfile\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  infile  - Specifies the file name of the uncompressed input file.\r\n"
"  outfile - Specifies the file name of the compressed output file.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command compresses a file using UEFI Compression Algorithm\r\n"
"     and writes the compressed form out to a new file.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To compress a file named 'uncompressed' to a file named 'compressed':\r\n"
"    fs0:\> eficompress uncompressed compressed\r\n"

#string STR_GET_HELP_EFIDCOMPRESS #language en-US ""
".TH efidecompress 0 "Decompresses a file."\r\n"
".SH NAME\r\n"
"Decompresses a file using UEFI Decompression Algorithm.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"EFIDECOMPRESS infile outfile\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  infile  - Specifies the file name of the compressed input file.\r\n"
"  outfile - Specifies the file name of the decompressed output file.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This decompresses a file using UEFI Decompression\r\n"
"     Algorithm and writes the decompressed form out to a new file.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To decompress a file named 'compressed' to a file named 'uncompressed':\r\n"
"    fs0:\> efidecompress compressed uncompressed\r\n"

#string STR_GET_HELP_DMEM         #language en-US ""
".TH dmem 0 "Displays memory."\r\n"
".SH NAME\r\n"
"Displays the contents of system or device memory.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"DMEM [-b] [address] [size] [-MMIO]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b      - Displays one screen at a time.\r\n"
"  -MMIO   - Forces address cycles to the PCI bus.\r\n"
"  address - Specifies a starting address in hexadecimal format.\r\n"
"  size    - Specifies the number of bytes to display in hexadecimal format.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command displays the contents of system memory or device memory.\r\n"
"  2. Enter address and size in hexadecimal format.\r\n"
"  3. If address is not specified, the contents of the UEFI System Table\r\n"
"     are displayed. Otherwise, memory starting at the specified address is displayed.\r\n"
"  4. Size specifies the number of bytes to display. If size is not specified,\r\n"
"     512 bytes are displayed.\r\n"
"  5. If MMIO is not specified, main system memory is displayed. Otherwise,\r\n"
"     device memory is displayed through the use of the\r\n"
"     EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display the UEFI system table pointer entries:\r\n"
"    fs0:\> dmem\r\n"
" \r\n"
"  * To display memory contents from 1af3088 with size of 16 bytes:\r\n"
"    Shell> dmem 1af3088 16\r\n"
" \r\n"
"  * To display memory mapped IO contents from 1af3088 with a size of 16 bytes:\r\n"
"    Shell> dmem 1af3088 16 -MMIO\r\n"

#string STR_GET_HELP_MM           #language en-US ""
".TH mm 0 "Displays or modifies address space memory."\r\n"
".SH NAME\r\n"
"Displays or modifies MEM/MMIO/IO/PCI/PCIE address space.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"MM Address [Value] [-w 1|2|4|8] [-MEM | -MMIO | -IO | -PCI | -PCIE] [-n]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  Address - Starting address in hexadecimal format.\r\n"
"  Value   - The value to write in hexadecimal format.\r\n"
"  -MEM    - Memory Address type\r\n"
"  -MMIO   - Memory Mapped IO Address type\r\n"
"  -IO     - IO Address type\r\n"
"  -PCI    - PCI Configuration Space Address type:\r\n"
"            Address format: ssssbbddffrr\r\n"
"              ssss - Segment\r\n"
"              bb   - Bus\r\n"
"              dd   - Device\r\n"
"              ff   - Function\r\n"
"              rr   - Register\r\n"
"  -PCIE   - PCIE Configuration Space Address type:\r\n"
"            Address format: ssssbbddffrrr\r\n"
"              ssss - Segment\r\n"
"              bb   - Bus\r\n"
"              dd   - Device\r\n"
"              ff   - Function\r\n"
"              rrr  - Register\r\n"
"  -w      - Unit size accessed in bytes:\r\n"
"              1    - 1 byte\r\n"
"              2    - 2 bytes\r\n"
"              4    - 4 bytes\r\n"
"              8    - 8 bytes\r\n"
"  -n      - Non-interactive mode\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1.  If the address type parameter is not specified, address type defaults\r\n"
"      to the 'MEM' type.\r\n"
"  2.  If the 'Value' parameter is specified, the '-n' option is used and\r\n"
"      the command writes the value to the\r\n"
"      specified address in non-interactive mode. If the 'Value' parameter is\r\n"
"      not specified, only the current contents in the address are displayed.\r\n"
"  3.  If the '-w' option is not specified, unit size defaults to 1 byte.\r\n"
"  4.  If the PCI address type is specified, the 'Address' parameter must\r\n"
"      follow the PCI Configuration Space Address format above. The 'PCI'\r\n"
"      command can be used to determine the address for a specified device.\r\n"
"      It is listed in the PCI configuration space dump information in the\r\n"
"      following format: "[EFI ssbbddffxx]".\r\n"
"  5.  If the PCIE address type is specified, the 'Address' parameter must\r\n"
"      follow the PCIE Configuration Space Address format above.\r\n"
"  6.  In interactive mode, type a hex value to modify, 'q' or '.' to exit.\r\n"
"      If the '-n' option is specified, it runs in non-interactive mode,\r\n"
"      which supports batch file operation without user intervention.\r\n"
"  7.  Not all PCI configuration register locations are writable.\r\n"
"  8.  MM will only write the specified value. Read-modify-write operations\r\n"
"      are not supported.\r\n"
"  9.  The 'Address' parameter must be aligned on a boundary of the\r\n"
"      specified width.\r\n"
"  10. Not all addresses are safe to access. Access to any improper address\r\n"
"      can bring unexpected results.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display or modify memory:\r\n"
"    Address 0x1b07288, default width=1 byte:\r\n"
"    fs0:\> mm 1b07288\r\n"
"    MEM  0x0000000001B07288 : 0x6D >\r\n"
"    MEM  0x0000000001B07289 : 0x6D >\r\n"
"    MEM  0x0000000001B0728A : 0x61 > 80\r\n"
"    MEM  0x0000000001B0728B : 0x70 > q\r\n"
"    fs0:\> mm 1b07288\r\n"
"    MEM  0x0000000001B07288 : 0x6D >\r\n"
"    MEM  0x0000000001B07289 : 0x6D >\r\n"
"    MEM  0x0000000001B0728A : 0x80 >        *Modified\r\n"
"    MEM  0x0000000001B0728B : 0x70 > q\r\n"
" \r\n"
"  * To modify memory: Address 0x1b07288, width = 2 bytes:\r\n"
"    Shell> mm 1b07288 -w 2\r\n"
"    MEM  0x0000000001B07288 : 0x6D6D >\r\n"
"    MEM  0x0000000001B0728A : 0x7061 > 55aa\r\n"
"    MEM  0x0000000001B0728C : 0x358C > q\r\n"
"    Shell> mm 1b07288 -w 2\r\n"
"    MEM  0x0000000001B07288 : 0x6D6D >\r\n"
"    MEM  0x0000000001B0728A : 0x55AA >      *Modified\r\n"
"    MEM  0x0000000001B0728C : 0x358C > q\r\n"
" \r\n"
"  * To display IO space:   Address 80h, width = 4 bytes:\r\n"
"    Shell> mm 80 -w 4 -IO\r\n"
"    IO  0x0000000000000080 : 0x000000FE >\r\n"
"    IO  0x0000000000000084 : 0x00FF5E6D > q\r\n"
" \r\n"
"  * To modify IO space using non-interactive mode:\r\n"
"    Shell> mm 80 52 -w 1 -IO\r\n"
"    Shell> mm 80 -w 1 -IO\r\n"
"    IO  0x0000000000000080 : 0x52 > FE      *Modified\r\n"
"    IO  0x0000000000000081 : 0xFF >\r\n"
"    IO  0x0000000000000082 : 0x00 >\r\n"
"    IO  0x0000000000000083 : 0x00 >\r\n"
"    IO  0x0000000000000084 : 0x6D >\r\n"
"    IO  0x0000000000000085 : 0x5E >\r\n"
"    IO  0x0000000000000086 : 0xFF >\r\n"
"    IO  0x0000000000000087 : 0x00 > q\r\n"
" \r\n"
"  * To display PCI configuration space, ss=0000, bb=00, dd=00, ff=00, rr=00:\r\n"
"    Shell> mm 000000000000 -PCI\r\n"
"    PCI  0x0000000000000000 : 0x86 >\r\n"
"    PCI  0x0000000000000001 : 0x80 >\r\n"
"    PCI  0x0000000000000002 : 0x30 >\r\n"
"    PCI  0x0000000000000003 : 0x11 >\r\n"
"    PCI  0x0000000000000004 : 0x06 >\r\n"
"    PCI  0x0000000000000005 : 0x00 > q\r\n"
"    These contents can also be displayed by 'PCI 00 00 00'.\r\n"
" \r\n"
"  * To display PCIE configuration space, ss=0000, bb=06, dd=00, ff=00, rrr=000:\r\n"
"    Shell> mm 0000060000000 -PCIE\r\n"
"    PCIE  0x0000000060000000 : 0xAB >\r\n"
"    PCIE  0x0000000060000001 : 0x11 >\r\n"
"    PCIE  0x0000000060000002 : 0x61 >\r\n"
"    PCIE  0x0000000060000003 : 0x43 >\r\n"
" \r\n"

#string STR_GET_HELP_LOAD_PCI_ROM #language en-US ""
".TH loadpcirom 0 "Loads a PCI option ROM file."\r\n"
".SH NAME\r\n"
"Loads a PCI Option ROM.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"LoadPciRom [-nc] romfile [romfile...]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -nc     - Loads the ROM image(s) but does not connect drivers.\r\n"
"  romfile - Specifies the PCI option ROM image file (wildcards are permitted).\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command loads PCI option ROM images into memory for\r\n"
"     execution.\r\n"
"  2. The file can contain legacy images and multiple PE32 images, in which case\r\n"
"     all PE32 images are loaded.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To load a rom file 'rom.bin':\r\n"
"    fs0:\> LoadPciRom rom.bin\r\n"
" \r\n"
"  * To load '*.bin' files without connecting drivers:\r\n"
"    fs0:\> LoadPciRom -nc *.bin\r\n"

#string STR_GET_HELP_SETVAR       #language en-US ""
".TH setvar 0 "Displays or modifies a UEFI variable."\r\n"
".SH NAME\r\n"
"Displays or modifies a UEFI variable.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"SETVAR variable-name [-guid guid][-bs][-rt][-nv] [=data]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  variable-name - Specifies the name of the UEFI variable to modify or display.\r\n"
"  -guid         - Specifies the GUID of the UEFI variable to modify or display.\r\n"
"                  If not present, GUID EFI_GLOBAL_VARIABLE is assumed.\r\n"
"  -bs           - Indicates that the variable is a boot variable. Applies to a new variable;\r\n"
"                  otherwise, it is ignored. \r\n"
"  -rt           - Indicates that the variable is a runtime variable. Applies to a new variable;\r\n"
"                  otherwise, it is ignored. \r\n"
"  -nv           - Indicates that the variable is non-volatile. If not present,\r\n"
"                  then the variable is assumed to be volatile. Applies to a new variable;\r\n"
"                  otherwise, it is ignored. \r\n"
"  =data         - Specifies there is new data for the variable. If there is nothing after the '='\r\n"
"                  then the variable is deleted. If '=' is not present, then the\r\n"
"                  current value of the variable is dumped as hex bytes.\r\n"
"                  The data can consist of zero or more of the following:\r\n"
"                    xx[xx]         - Hexadecimal bytes\r\n"
"                    ^"ascii-string^" - ASCII-string with no null-terminator\r\n"
"                    L^"UCS2-string^" - UCS-2 encoded string with no\r\n"
"                                     null-terminator\r\n"
"                    --device       - Device path text format\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command changes the UEFI variable specified by name and GUID.\r\n"
"  2. If = is specified, but data is not, the variable is deleted, if it exists.\r\n"
"  3. If = is not specified, then the current variable contents are displayed.\r\n"
"  4. If =data is specified, then the variable's value is changed to the value\r\n"
"     specified by data.\r\n"
"  5. -bs, -rt and -nv are only useful if the variable does not exist.\r\n"
"  6. If the variable already exists, the attributes cannot be changed, and the"
"     flags will be ignored.\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS             The shell has stored the variable and its data with\r\n"
"                            the defined attributes.\r\n"
"  SHELL_INVALID_PARAMETER   Incorrect attributes were used.\r\n"
"  SHELL_OUT_OF_RESOURCES    Insufficient resources were available for storing\r\n"
"                            the variable and its data.\r\n"
"  SHELL_DEVICE_ERROR The    Variable could not be saved due to a hardware\r\n"
"                            error.\r\n"
"  SHELL_WRITE_PROTECTED     The variable in question is read-only.\r\n"
"  SHELL_WRITE_PROTECTED     The variable in question cannot be deleted.\r\n"
"  SHELL_NOT_FOUND           The variable could not be found.\r\n"

#string STR_GET_HELP_SERMODE      #language en-US ""
".TH sermode 0 "configure serial port"\r\n"
".SH NAME\r\n"
"Sets serial port attributes.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"SERMODE [handle [baudrate parity databits stopbits]]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  handle   - Specifies a device handle for a serial port in hexadecimal format.\r\n"
"  baudrate - Specifies a baud rate for specified serial port.\r\n"
"  parity   - Sets parity bit settings for specified serial port. Valid values\r\n"
"             are:\r\n"
"               d   - Default parity\r\n"
"               n   - No parity\r\n"
"               e   - Even parity\r\n"
"               o   - Odd parity\r\n"
"               m   - Mark parity\r\n"
"               s   - Space parity\r\n"
"  databits - Sets the data bits for the specified serial port.\r\n"
"  stopbits - Sets the stop bits for the specified serial port.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. The 'handle' parameter is the device handle of the desired serial port.\r\n"
"     The 'DH' command can be used to retrieve this information.\r\n"
"  2. The 'stopbits' parameter supports the following settings:\r\n"
"       0  (0 stop bits - default setting)\r\n"
"       1  (1 stop bit)\r\n"
"       2  (2 stop bits)\r\n"
"       15 (1.5 stop bits)\r\n"
"     All other settings are invalid.\r\n"
"  3. The 'baudrate' parameter supports the following settings:\r\n"
"     50, 75, 110, 150, 300, 600, 1200, 1800, 2000, 2400, 3600, 4800,\r\n"
"     7200, 9600(default), 19200, 38400, 57600, 115200, 230400, 460800\r\n"
"     All other values will be converted to the next highest setting.\r\n"
"  4. The 'databits' parameter supports the following settings:\r\n"
"       4\r\n"
"       7\r\n"
"       8 (default)\r\n"
"     All other settings are invalid.\r\n"
"  5. Parity attributes are mutually exclusive.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display the settings for all serial port devices:\r\n"
"    Shell> sermode\r\n"
" \r\n"
"  * To display the settings for the serial port device whose handle is 0x6B:\r\n"
"    Shell> sermode 6B\r\n"
" \r\n"
"  * To configure the serial port settings for handle 0x6B to 9600bps, even\r\n"
"    parity, 8 data bits, and 1 stop bit:\r\n"
"    Shell> sermode 6B 9600 e 8 1\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS             The new attributes were set on the serial device.\r\n"
"  SHELL_INVALID_PARAMETER   One or more of the attributes has an unsupported\r\n"
"                            value.\r\n"
"  SHELL_DEVICE_ERROR        The serial device is not functioning correctly.\r\n"

#string STR_GET_HELP_PCI          #language en-US ""
".TH pci 0 "Displays PCI device information."\r\n"
".SH NAME\r\n"
"Displays PCI device list or PCI function configuration space and PCIe extended\r\n"
"configuration space.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"PCI [Bus Dev [Func] [-s Seg] [-i [-ec ID]]]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -s   - Specifies optional segment number (hexadecimal number).\r\n"
"  -i   - Displays interpreted information.\r\n"
"  -ec  - Displays detailed interpretation of specified PCIe extended capability\r\n"
"         ID (hexadecimal number).\r\n"
"  Bus  - Specifies a bus number (hexadecimal number).\r\n"
"  Dev  - Specifies a device number (hexadecimal number).\r\n"
"  Func - Specifies a function number (hexadecimal number).\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command displays a list of all the PCI devices found in the system. It\r\n"
"     also displays the configuration space of a PCI device according to the\r\n"
"     specified bus (Bus), device (Dev), and function (Func) addresses. If the\r\n"
"     function address is not specified, it defaults to 0.\r\n"
"  2. The -i option displays verbose information for the specified PCI\r\n"
"     device. The PCI configuration space for the device is displayed with\r\n"
"     a detailed interpretation.\r\n"
"  3. If no parameters are specified, all PCI devices are listed.\r\n"
"  4. If the 'Bus' and 'Dev' parameters are specified but the 'Func' or\r\n"
"     'Seg' parameters are not, Function or Seg are set to the default value of 0.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display all PCI devices in the system:\r\n"
"    Shell> pci\r\n"
" \r\n"
"  * To display the configuration space of Bus 0, Device 0, Function 0:\r\n"
"    Shell> pci 00 00 00 -i\r\n"
" \r\n"
"  * To display configuration space of Segment 0, Bus 0, Device 0, Function 0:\r\n"
"    Shell> pci 00 00 00 -s 0\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS        Data was displayed as requested.\r\n"
"  SHELL_DEVICE_ERROR   The specified device parameters did not match a physical\r\n"
"                       device in the system.\r\n"

#string STR_GET_HELP_SMBIOSVIEW   #language en-US ""
".TH smbiosview 0 "Displays SMBIOS information."\r\n"
".SH NAME\r\n"
"Displays SMBIOS information.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"SMBIOSVIEW [-t SmbiosType]|[-h SmbiosHandle]|[-s]|[-a]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -t            - Displays all structures of SmbiosType.\r\n"
"  -h            - Displays structure of SmbiosHandle.\r\n"
"  -s            - Displays a statistics table.\r\n"
"  -a            - Displays all information.\r\n"
"  SmbiosType    - Specifies a SMBIOS structure type.\r\n"
"  SmbiosHandle  - Specifies a SMBIOS structure unique 16-bit handle.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. The SmbiosType parameter supports the following types:\n"
"       0  - BIOS Information\r\n"
"       1  - System Information\r\n"
"       2  - Baseboard Information\r\n"
"       3  - System Enclosure\r\n"
"       4  - Processor Information\r\n"
"       5  - Memory Controller Information\r\n"
"       6  - Memory Module Information\r\n"
"       7  - Cache Information\r\n"
"       8  - Port Connector Information\r\n"
"       9  - System Slots\r\n"
"       10 - On Board Devices Information\r\n"
"       11 - OEM Strings\r\n"
"       12 - System Configuration Options\r\n"
"       13 - BIOS Language Information\r\n"
"       14 - Group Associations\r\n"
"       15 - System Event Log\r\n"
"       16 - Physical Memory Array\r\n"
"       17 - Memory Device\r\n"
"       18 - 32-bit Memory Error Information\r\n"
"       19 - Memory Array Mapped Address\r\n"
"       20 - Memory Device Mapped Address\r\n"
"       21 - Built-in Pointing Device\r\n"
"       22 - Portable Battery\r\n"
"       23 - System Reset\r\n"
"       24 - Hardware Security\r\n"
"       25 - System Power Controls\r\n"
"       26 - Voltage Probe\r\n"
"       27 - Cooling Device\r\n"
"       28 - Temperature Probe\r\n"
"       29 - Electrical Current Probe\r\n"
"       30 - Out-Of-Band Remote Access\r\n"
"       31 - Boot Integrity Services (BIS) Entry Point\r\n"
"       32 - System Boot Information\r\n"
"       33 - 64-Bit Memory Error Information\r\n"
"       34 - Management Device\r\n"
"       35 - Management Device Component\r\n"
"       36 - Management Device Threshold Data\r\n"
"       37 - Memory Channel\r\n"
"       38 - IPMI Device Information\r\n"
"       39 - System Power Supply\r\n"
"       40 - Additional Information\r\n"
"       41 - Onboard Devices Extended Information\r\n"
"       42 - Management Controller Host Interface\r\n"
"       43 - TPM Device\r\n"
"  2. Enter the SmbiosHandle parameter in hexadecimal format.\r\n"
"     Do not use the '0x' prefix format for hexadecimal values.\r\n"
"  3. Internal commands:\r\n"
"       :q --------  quit smbiosview\r\n"
"       :0 --------  Change smbiosview display NONE info\r\n"
"       :1 --------  Change smbiosview display OUTLINE info\r\n"
"       :2 --------  Change smbiosview display NORMAL info\r\n"
"       :3 --------  Change smbiosview display DETAIL info\r\n"
"       /? --------  Show help\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS        Data was displayed as requested.\r\n"
"  SHELL_DEVICE_ERROR   The requested structure was not found.\r\n"

#string STR_GET_HELP_DMPSTORE     #language en-US ""
".TH dmpstore 0 "Manages all UEFI variables."\r\n"
".SH NAME\r\n"
"Manages all UEFI variables.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"DMPSTORE [-b] [-d] [-all | ([variable] [-guid guid])] [-sfo]\r\n"
"DMPSTORE [-all | ([variable] [-guid guid])] [-s file]\r\n"
"DMPSTORE [-all | ([variable] [-guid guid])] [-l file]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b       - Displays one screen at a time.\r\n"
"  -guid    - Specifies the GUID of the variables to be displayed in\r\n"
"             standard text format. If not specified and -all is not\r\n"
"             specified, the EFI_GLOBAL_VARIABLE GUID is assumed.\r\n"
"  -sfo     - Displays information as described in Standard-Format Output.\r\n"
"  -all     - Dumps all variables, including those\r\n"
"             with a different GUID than EFI_GLOBAL_VARIABLE.\r\n"
"  -d       - Delete variables.\r\n"
"  -s       - Saves variables to a file.\r\n"
"  -l       - Loads and sets variables from a file.\r\n"
"  variable - Specifies a variable name. This can be a literal name or\r\n"
"             a pattern as specified in the MetaiMatch() function of the\r\n"
"             EFI_UNICODE_COLLATION2_PROCOOL.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command manages the UEFI variables. The variables\r\n"
"     displayed or deleted depend on the command line options, as specified in\r\n"
"     the following table:\r\n"
"     Variable GUID  -all  Description\r\n"
"     ---      ---   ---   All variables with the GUID EFI_GLOBAL_VARIABLE will\r\n"
"                          be operated on.\r\n"
"     ---      ---    X    All variables (regardless of GUID or name) will be\r\n"
"                          operated on.\r\n"
"     ---       X    ---   All variables with the specified GUID will be\r\n"
"                          operated on.\r\n"
"      X       ---   ---   The variable with the GUID EFI_GLOBAL_VARIABLE and\r\n"
"                          the name Variable will be operated on.\r\n"
"      X        X    ---   The variable with the specified GUID and name\r\n"
"                          Variable will be operated on.\r\n"
"  2. The variable value is printed as a hexadecimal dump.\r\n"
"  3. Option -d is used to delete variables. Option -s and -l are used to save\r\n"
"     and load variables to and from a file. The variable name can be specified\r\n"
"     when using these flags so that the operation only takes effect on\r\n" 
"     that variable.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To dump all variables with the GUID EFI_GLOBAL_VARIABLE:\r\n"
"    Shell> dmpstore\r\n"
" \r\n"
"  * To dump all variables (regardless of GUID or name):\r\n"
"    Shell> dmpstore -all\r\n"
" \r\n"
"  * To dump the 'path' variable with the GUID '158DEF5A-F656-419C-B027-\r\n"
"    7A3192C079D2':\r\n"
"    Shell> dmpstore path -guid 158DEF5A-F656-419C-B027-7A3192C079D2\r\n"
" \r\n"
"  * To save all variables (regardless of GUID or name) to a file 'VarDump.txt':\r\n"
"    fs0:\> dmpstore -all -s VarDump.txt\r\n"
" \r\n"
"  * To delete the 'BootOrder' variable with the GUID EFI_GLOBAL_VARIABLE:\r\n"
"    Shell> dmpstore -d BootOrder\r\n"
".SH RETURNVALUES\r\n"
" \r\n"
"RETURN VALUES:\r\n"
"  SHELL_SUCCESS             The action was completed as requested.\r\n"
"  SHELL_INVALID_PARAMETER   One of the passed-in parameters was incorrectly\r\n"
"                            formatted or its value was out of bounds.\r\n"

#string STR_GET_HELP_DBLK         #language en-US ""
".TH dblk 0 "Displays one or more blocks from a block device."\r\n"
".SH NAME\r\n"
"Displays one or more blocks from a block device.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"DBLK device [lba] [blocks] [-b]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -b     - Displays one screen at a time.\r\n"
"  device - Blocks the device name.\r\n"
"  lba    - Specifies the index of the first block to be displayed (a hexadecimal number).\r\n"
"           The default is 0.\r\n"
"  blocks - Specifies the number of blocks to display (a hexadecimal number). The default\r\n"
"           is 1. If larger than 0x10, then only 0x10 are displayed.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command displays the contents of one or more blocks from a block\r\n"
"     device. Enter a hexidecimal value for the lba and blocks variables.  If lba is not\r\n"
"     specified, block #0 is assumed. If blocks is not specified, on1y one\r\n"
"     block is displayed. The maximum number of blocks that can be\r\n"
"     displayed at one time is 0x10.\r\n"
"  2. If an MBR is found on the block, the partition information is displayed\r\n"
"     after all the block contents are displayed.\r\n"
"  3. If the block is a FAT partition, some FAT parameters are displayed\r\n"
"     (label, systemid, oemid, sectorsize, clustersize, media, and so forth) after all the\r\n"
"     blocks are displayed.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To display one block of blk0, beginning from block 0:\r\n"
"    Shell> dblk blk0\r\n"
" \r\n"
"  * To display one block of fs0, beginning from block 0x2:\r\n"
"    Shell> dblk fs0 2\r\n"
" \r\n"
"  * To display 0x5 blocks of fs0, beginning from block 0x12:\r\n"
"    Shell> dblk fs0 12 5\r\n"
" \r\n"
"  * To display 0x10 blocks of fs0, beginning from block 0x12:\r\n"
"    Shell> dblk fs0 12 10\r\n"
" \r\n"
"  * To attempt to display more than 0x10 blocks, resulting in only 0x10\r\n"
"    blocks being displayed:\r\n"
"    Shell> dblk fs0 12 20\r\n"
" \r\n"
"  * To display one block of blk2, beginning from the first block (blk0):\r\n"
"    fs1:\tmps1> dblk blk2 0 1\r\n"
" \r\n"

#string STR_GET_HELP_EDIT         #language en-US ""
".TH edit 0 "Provides a full screen text editor for ASCII or UCS-2 files."\r\n"
".SH NAME\r\n"
"Provides a full screen text editor for ASCII or UCS-2 files.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"EDIT [file]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  file - Specifies the name of file to be edited. If none is specified, an empty file\r\n"
"         is created with a default file name.\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command enables full screen file editing.\r\n"
"  2. The editor supports both UCS-2 and ASCII file types.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To edit the 'shell.log' file:\r\n"
"    fs0:\> edit shell.log\r\n"

#string STR_GET_HELP_HEXEDIT      #language en-US ""
".TH hexedit 0 "Provides a full screen hex editor for files, block devices, or memory."\r\n"
".SH NAME\r\n"
"Provides a full screen hex editor for files, block devices, or memory.\r\n"
".SH SYNOPSIS\r\n"
" \r\n"
"HEXEDIT [[-f] filename| [-d diskname offset size] | [-m address size]]\r\n"
".SH OPTIONS\r\n"
" \r\n"
"  -f - Specifies the name of the file to edit.\r\n"
"  -d - Specifies the disk block to edit:\r\n"
"         DiskName - Name of the disk to edit (for example fs0)\r\n"
"         Offset   - Starting block number (beginning from 0)\r\n"
"         Size     - Number of blocks to edit\r\n"
"  -m - Specifies the memory region to edit:\r\n"
"         Address  - Starting 32-bit memory address (beginning from 0)\r\n"
"         Size     - Size of memory region to edit in bytes\r\n"
".SH DESCRIPTION\r\n"
" \r\n"
"NOTES:\r\n"
"  1. This command enables you to edit a file, block device, or memory region.\r\n"
"  2. The region being edited is displayed as hexadecimal bytes. The\r\n"
"     contents can be modified and saved.\r\n"
".SH EXAMPLES\r\n"
" \r\n"
"EXAMPLES:\r\n"
"  * To edit a file in hex mode:\r\n"
"    fs0:\> hexedit test.bin\r\n"
" \r\n"
"  * To edit block device fs0 starting at block 0 with size of 2 blocks:\r\n"
"    fs0:\> hexedit -d fs0 0 2\r\n"
" \r\n"
"  * To edit memory region starting at address 0x00000000 with size of 2 bytes:\r\n"
"    fs0:\> hexedit -m 0 2\r\n"

