Make the -h command line option a binary flag. Now, colour highlighting is enabled whenever this flag is set (stateless), instead of being dependent on previous acpiview command invocations. By removing the parameter required with the -h flag the command line parsing logic becomes simpler. Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
		
			
				
	
	
		
			128 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
// /**
 | 
						|
//
 | 
						|
// Copyright (c) 2016 - 2019, ARM Limited. All rights reserved.<BR>
 | 
						|
// SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
//
 | 
						|
// Module Name:
 | 
						|
//
 | 
						|
// UefiShellAcpiViewCommandLib.uni
 | 
						|
//
 | 
						|
// Abstract:
 | 
						|
//
 | 
						|
// String definitions for UEFI Shell acpiview command
 | 
						|
//
 | 
						|
//
 | 
						|
// */
 | 
						|
 | 
						|
/=#
 | 
						|
 | 
						|
#langdef   en-US "english"
 | 
						|
 | 
						|
#string STR_GEN_PROBLEM           #language en-US "%H%s%N: Unknown 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_MANY          #language en-US "%H%s%N: Too many arguments.\r\n"
 | 
						|
#string STR_GEN_MISSING_OPTION    #language en-US "%H%s%N: Missing option '%H%s%N' required by flag - '%H%s%N'\r\n"
 | 
						|
#string STR_GEN_READONLY_MEDIA    #language en-US "%H%s%N: Unable to write to the current directory, check if media is writable.\r\n"
 | 
						|
 | 
						|
#string STR_GET_HELP_ACPIVIEW   #language en-US ""
 | 
						|
".TH acpiview 0 "Display ACPI information."\r\n"
 | 
						|
".SH NAME\r\n"
 | 
						|
"Display ACPI Table information.\r\n"
 | 
						|
".SH SYNOPSIS\r\n"
 | 
						|
" \r\n"
 | 
						|
"ACPIVIEW [[-?] | [[-l] | [-s AcpiTable [-d]]] [-q] [-h]]\r\n"
 | 
						|
" \r\n"
 | 
						|
".SH OPTIONS\r\n"
 | 
						|
" \r\n"
 | 
						|
"  -l - Display list of installed ACPI Tables.\r\n"
 | 
						|
"  -s - Display only the specified AcpiTable type and only support single\r\n"
 | 
						|
"       invocation option.\r\n"
 | 
						|
"         AcpiTable    : The required ACPI Table type.\r\n"
 | 
						|
"  -d - Generate a binary file dump of the specified AcpiTable.\r\n"
 | 
						|
"  -q - Quiet. Suppress errors and warnings. Disables consistency checks.\r\n"
 | 
						|
"  -h - Enable colour highlighting.\r\n"
 | 
						|
"  -? - Show help.\r\n"
 | 
						|
" \r\n"
 | 
						|
".SH DESCRIPTION\r\n"
 | 
						|
" \r\n"
 | 
						|
"  This program is provided to allow examination of ACPI table values from the\r\n"
 | 
						|
"  UEFI Shell.  This can help with investigations, especially at that stage\r\n"
 | 
						|
"  where the tables are not enabling an OS to boot.\r\n"
 | 
						|
"  The program is not exhaustive, and only encapsulates detailed knowledge of a\r\n"
 | 
						|
"  limited number of table types.\r\n"
 | 
						|
" \r\n"
 | 
						|
"  Default behaviour is to display the content of all tables installed.\r\n"
 | 
						|
"  'Known' table types (listed in NOTES below) will be parsed and displayed\r\n"
 | 
						|
"  with descriptions and field values.  Where appropriate a degree of\r\n"
 | 
						|
"  consistency checking is done and errors may be reported in the output.\r\n"
 | 
						|
"  Other table types will be displayed as an array of Hexadecimal bytes.\r\n"
 | 
						|
" \r\n"
 | 
						|
"  To facilitate debugging, the -s and -d options can be used to generate a\r\n"
 | 
						|
"  binary file image of a table that can be copied elsewhere for investigation\r\n"
 | 
						|
"  using tools such as those provided by acpica.org.  This is especially\r\n"
 | 
						|
"  relevant for AML type tables like DSDT and SSDT.\r\n"
 | 
						|
" \r\n"
 | 
						|
"NOTES:\r\n"
 | 
						|
"  1. The AcpiTable parameter can match any installed table type.\r\n"
 | 
						|
"     Tables without specific handling will be displayed as a raw hex dump (or\r\n"
 | 
						|
"     dumped to a file if -d is used).\r\n"
 | 
						|
"  2. -s option supports to display the specified AcpiTable type that is present\r\n"
 | 
						|
"     in the system. For normal type AcpiTable, it would display the data of the\r\n"
 | 
						|
"     AcpiTable and AcpiTable header. The following type may contain header type\r\n"
 | 
						|
"     other than AcpiTable header. The actual header can refer to the ACPI spec\r\n"
 | 
						|
"     6.2\r\n"
 | 
						|
"     Extra A. Particular types:\r\n"
 | 
						|
"       APIC  - Multiple APIC Description Table (MADT)\r\n"
 | 
						|
"       BGRT  - Boot Graphics Resource Table\r\n"
 | 
						|
"       DBG2  - Debug Port Table 2\r\n"
 | 
						|
"       DSDT  - Differentiated System Description Table\r\n"
 | 
						|
"       FACP  - Fixed ACPI Description Table (FADT)\r\n"
 | 
						|
"       GTDT  - Generic Timer Description Table\r\n"
 | 
						|
"       IORT  - IO Remapping Table\r\n"
 | 
						|
"       MCFG  - Memory Mapped Config Space Base Address Description Table\r\n"
 | 
						|
"       PPTT  - Processor Properties Topology Table\r\n"
 | 
						|
"       RSDP  - Root System Description Pointer\r\n"
 | 
						|
"       SLIT  - System Locality Information Table\r\n"
 | 
						|
"       SPCR  - Serial Port Console Redirection Table\r\n"
 | 
						|
"       SRAT  - System Resource Affinity Table\r\n"
 | 
						|
"       SSDT  - Secondary SystemDescription Table\r\n"
 | 
						|
"       XSDT  - Extended System Description Table\r\n"
 | 
						|
" \r\n"
 | 
						|
".SH STANDARDS\r\n"
 | 
						|
" \r\n"
 | 
						|
"  Table details correspond to those in 'Advanced Configuration and Power\r\n"
 | 
						|
"  Interface Specification' Version 6.2 Errata A, [September 2017]\r\n"
 | 
						|
"  (http://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf)\r\n"
 | 
						|
" \r\n"
 | 
						|
"  NOTE: The nature of the ACPI standard means that almost all tables in 6.1\r\n"
 | 
						|
"        will be 'backwards compatible' with prior version of the specification\r\n"
 | 
						|
"        in terms of structure, so formatted output should be correct.  The main\r\n"
 | 
						|
"        exception will be that previously 'reserved' fields will be reported\r\n"
 | 
						|
"        with new names, where they have been added in later versions of the\r\n"
 | 
						|
"        specification.\r\n"
 | 
						|
" \r\n"
 | 
						|
".SH EXAMPLES\r\n"
 | 
						|
" \r\n"
 | 
						|
" \r\n"
 | 
						|
"EXAMPLES:\r\n"
 | 
						|
"  * To display a list of the installed table types:\r\n"
 | 
						|
"    fs0:\> acpiview -l\r\n"
 | 
						|
" \r\n"
 | 
						|
"  * To parse and display a specific table type:\r\n"
 | 
						|
"    fs0:\> acpiview -s GTDT\r\n"
 | 
						|
" \r\n"
 | 
						|
"  * To save a binary dump of the contents of a table to a file\r\n"
 | 
						|
"    in the current working directory:\r\n"
 | 
						|
"    fs0:\> acpiview -s DSDT -d\r\n"
 | 
						|
" \r\n"
 | 
						|
"  * To display contents of all ACPI tables:\r\n"
 | 
						|
"    fs0:\> acpiview\r\n"
 | 
						|
" \r\n"
 | 
						|
".SH RETURNVALUES\r\n"
 | 
						|
" \r\n"
 | 
						|
"RETURN VALUES:\r\n"
 | 
						|
"  SHELL_SUCCESS             Data was displayed as requested.\r\n"
 | 
						|
"  SHELL_INVALID_PARAMETER   ACPI Table parsing failed.\r\n"
 | 
						|
" \r\n"
 | 
						|
 |