ShellPkg: acpiview: Allow disabling consistency checks (-q flag)

The current documentation for the acpiview UEFI shell tool states
that the '-c' flag enables consistency checks on ACPI table data.
However, these checks are enabled anyway by default.

This patch keeps ACPI table validation as a default option, but it
makes it possible to turn ACPI table validation off by setting the
newly-introduced '-q' flag. Consequently, the '-c' flag is removed.

The remaining code changes in this patch make a number of consistency
checks optional (but enabled by default):
1. ACPI table field offset mismatch.
2. ACPI table field validation functions provided in the ACPI_PARSER
   arrays.
3. Table checksum computation.

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>
This commit is contained in:
Krzysztof Koch
2019-06-28 16:56:58 +08:00
committed by Ray Ni
parent 3d31443502
commit f73843d56d
5 changed files with 65 additions and 9 deletions

View File

@ -506,7 +506,8 @@ ParseAcpi (
break;
}
if (Offset != Parser[Index].Offset) {
if (GetConsistencyChecking () &&
(Offset != Parser[Index].Offset)) {
IncrementErrorCount ();
Print (
L"\nERROR: %a: Offset Mismatch for %s\n"
@ -549,7 +550,8 @@ ParseAcpi (
// Validating only makes sense if we are tracing
// the parsed table entries, to report by table name.
if (Parser[Index].FieldValidator != NULL) {
if (GetConsistencyChecking () &&
(Parser[Index].FieldValidator != NULL)) {
Parser[Index].FieldValidator (Ptr, Parser[Index].Context);
}
}