From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (EUR01-DB5-obe.outbound.protection.outlook.com [40.107.15.74]) by mx.groups.io with SMTP id smtpd.web11.7231.1592919814946042762 for ; Tue, 23 Jun 2020 06:43:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=MDjrFNGf; spf=pass (domain: arm.com, ip: 40.107.15.74, mailfrom: tomas.pilar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dvbj/omvUH6Dh3V+AMMYUXQC3NSoCGUez6AcOBt3LWA=; b=MDjrFNGfgKdYsgZ/mg8PPO/ogZU5kNEqZLslWVuD5u/EZhwiOZ0l1zO5kkE3TNgN6Vd3OlLy5Lljcdv9zlu4YiUIkB67LRI/srfl+Xc8Xz7ilA3AbEaUftQaHor+XNNdevl8kefc2A3gTpiX3oGnN2Pos8A+p2iPO/p7dLXqF1I= Received: from AM6P195CA0008.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::21) by AM6PR08MB5287.eurprd08.prod.outlook.com (2603:10a6:20b:b0::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.21; Tue, 23 Jun 2020 13:43:31 +0000 Received: from AM5EUR03FT042.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:81:cafe::98) by AM6P195CA0008.outlook.office365.com (2603:10a6:209:81::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.25 via Frontend Transport; Tue, 23 Jun 2020 13:43:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT042.mail.protection.outlook.com (10.152.17.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22 via Frontend Transport; Tue, 23 Jun 2020 13:43:31 +0000 Received: ("Tessian outbound 022d32fb9a40:v59"); Tue, 23 Jun 2020 13:43:31 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ecc6cd927fd46a66 X-CR-MTA-TID: 64aa7808 Received: from d2fba8881e24.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4934819E-6E47-419C-BF14-CB6C75887171.1; Tue, 23 Jun 2020 13:43:26 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d2fba8881e24.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 23 Jun 2020 13:43:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PRIUGeyAG9S4TPsxB2qpYbkxvB3u4pKOYHJkxIENALIwHOjxlDhTZyyEbJIr117rghHcfMYQio706xb1u8Q9yR/+oU6XrGhUTqKg43vSw9V0YCUpLn3vp3mPx878ndR7BGuNRyf17ZT0PPT8Tzdzbv+Rj8A2+5hfAu01TEkqYjxxbrhFiZ2myZVNQ/7l4tqLyclACv9mSw05JCPOsVs0hklPY5CV28wWowDDuK8r9LycCKRZjMO9lgUhBto0pGt4UZ1EvwQmgcisZV5VmLCZiNL1UNIDanWm8UDfaJgacPXVGAfhsAminwUFU3wtFmXJ+CTGztm3cP2oMjMP9HhQVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dvbj/omvUH6Dh3V+AMMYUXQC3NSoCGUez6AcOBt3LWA=; b=bfk9f4xC3phMQthVeHptq+v9yxfIi4X/zkkEtYS8cy6EKj7HhnGXbm+UFzIPUGpoX0KctY/HkeKPba6SuULjN+eNgwdkJULBaWcDPFGvcx7lfVm+2szv1AEmlXC274hj6Ink4vtJD77+55P3yINwfETXhCd6g9t5kNSWeiXXGlltF8oQqzYRWHoy1j/FedsZD3R8mymjKNrj/2ZLsJIkESk8o+PNUEW3D2xsQHk3J/cZzFx4c47ytI/0GkJcKdWk4M06RXuA5C8Iact8p6KkrHJY3vGq4m7MowunTSMf8nAAoNzOasfwSxKHqhi2kDuw1sHlAWvjhu6xQO408qhIwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=bestguesspass action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dvbj/omvUH6Dh3V+AMMYUXQC3NSoCGUez6AcOBt3LWA=; b=MDjrFNGfgKdYsgZ/mg8PPO/ogZU5kNEqZLslWVuD5u/EZhwiOZ0l1zO5kkE3TNgN6Vd3OlLy5Lljcdv9zlu4YiUIkB67LRI/srfl+Xc8Xz7ilA3AbEaUftQaHor+XNNdevl8kefc2A3gTpiX3oGnN2Pos8A+p2iPO/p7dLXqF1I= Received: from DB6PR0201CA0023.eurprd02.prod.outlook.com (2603:10a6:4:3f::33) by AM0PR08MB3892.eurprd08.prod.outlook.com (2603:10a6:208:106::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22; Tue, 23 Jun 2020 13:43:24 +0000 Received: from DB5EUR03FT003.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:3f:cafe::f4) by DB6PR0201CA0023.outlook.office365.com (2603:10a6:4:3f::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.22 via Frontend Transport; Tue, 23 Jun 2020 13:43:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by DB5EUR03FT003.mail.protection.outlook.com (10.152.20.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.3109.22 via Frontend Transport; Tue, 23 Jun 2020 13:43:24 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1415.2; Tue, 23 Jun 2020 13:43:22 +0000 Received: from localhost.localdomain (10.57.20.205) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.1415.2 via Frontend Transport; Tue, 23 Jun 2020 13:43:22 +0000 From: "Tomas Pilar (tpilar)" To: CC: , , Ray Ni , "Zhichao Gao" Subject: [PATCH v4 2/7] ShellPkg/AcpiView: Refactor configuration Date: Tue, 23 Jun 2020 14:42:59 +0100 Message-ID: <20200623134304.2619-3-Tomas.Pilar@arm.com> X-Mailer: git-send-email 2.24.1.windows.2 In-Reply-To: <20200623134304.2619-1-Tomas.Pilar@arm.com> References: <20200623134304.2619-1-Tomas.Pilar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFTY:;SFS:(4636009)(376002)(396003)(39860400002)(136003)(346002)(46966005)(82740400003)(186003)(26005)(478600001)(47076004)(316002)(30864003)(81166007)(8936002)(356005)(2616005)(82310400002)(19627235002)(1076003)(5660300002)(70206006)(6916009)(336012)(70586007)(2906002)(54906003)(8676002)(6666004)(426003)(36756003)(4326008)(86362001)(83380400001);DIR:OUT;SFP:1101; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7250b54a-770b-4491-67df-08d8177b6b0a X-MS-TrafficTypeDiagnostic: AM0PR08MB3892:|AM6PR08MB5287: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:5236;OLM:5236; X-Forefront-PRVS: 04433051BF X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: GInxzXN+vBlW30OK6XhJV3lFMdtzkDQmui71dbV/rpsTOCV7RQHnJrtPw8+OiY6wgO/Elm5cw6mTqTQfxXfYUuTDUDoEP7uhNBApqXYa80l/ACYxip1pxdcfTPjUx0BfkUGx90rHWH166mxBRP6ZCfGJByitrAZAepjeoy0qfZ4xZCIgQfG+NP/GCNm7/bZbLHF/rFg5ucdqMkl+C6oLNBy9IItue+ifKqWVbanU1sqWPH2C5Uebu450SM8kBefiTFSG3n3YkqVcb35XLE21ViCyP6F5R++kxmQI1UdgtOWKx7Hd7qV3CunNxaefjYYOhKEJDnnfaLpARa54uTNFT0r52N2gH8M7sECNUt6vr/SfUbZZv2pmYOd8m6Ipv08mS4Nfu6FqrKLTi0YZibDcyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3892 Return-Path: Tomas.Pilar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT042.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFTY:;SFS:(4636009)(136003)(396003)(39860400002)(346002)(376002)(46966005)(316002)(107886003)(36906005)(2616005)(4326008)(186003)(54906003)(6666004)(82310400002)(36756003)(70586007)(70206006)(426003)(1076003)(6916009)(81166007)(30864003)(8676002)(8936002)(86362001)(82740400003)(19627235002)(83380400001)(26005)(2906002)(336012)(5660300002)(47076004)(478600001);DIR:OUT;SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: aa42b787-8505-49fd-a94c-08d8177b669e X-Forefront-PRVS: 04433051BF X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uynjrWzzuxGLw5Cbw8PTz6zC2wRcY5uUYmw89QoPrBXeTqtginzm6X9mKYOldhUZe8ibvxvTjUeMOm7vLqe5HHtUgpVnm+O3vZA2fUwYZs4tGaUhGGWxXeEy+lwwXbdeUo7uHGiUO69imSwalf6czlO46H7EzRROLKKHhycX+HFLTkrHKkARX2QWbkcSe9nGGBhOIriSqb39PhyTxsMCiaGDeSATMymocqfeQRbug5Kpqf7bzLOQ7gYjwuVbFrcRn5MCJnJF83ewnroM9FxsTbyUStdLP+bCDcG+ef9VDAvl6NoZt+VDY3kRDEJem2QHsiSEaf393G0DqBTizAM46uwZVu8DZo67WZWvMeyuDd9ePKM2OSQaO9swWGLBXHYBpOm/Gr+o2eOTW9RL4OZyEw== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2020 13:43:31.6395 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7250b54a-770b-4491-67df-08d8177b6b0a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5287 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain A new file and header (AcpiViewConfig.[ch]) is created=0D that houses the user configuration. This declutters the=0D core code and improves modularity of the design.=0D =0D The module level symbols for verbosity, table selection, and=0D highlighting are refactored into the new file.=0D =0D Cc: Ray Ni =0D Cc: Zhichao Gao =0D Reviewed-by: Zhichao Gao =0D Signed-off-by: Tomas Pilar =0D ---=0D .../UefiShellAcpiViewCommandLib/AcpiParser.c | 1 +=0D .../AcpiTableParser.c | 1 +=0D .../UefiShellAcpiViewCommandLib/AcpiView.c | 237 +++--------------=0D .../UefiShellAcpiViewCommandLib/AcpiView.h | 95 -------=0D .../AcpiViewConfig.c | 246 ++++++++++++++++++=0D .../AcpiViewConfig.h | 177 +++++++++++++=0D .../Parsers/Gtdt/GtdtParser.c | 1 +=0D .../Parsers/Iort/IortParser.c | 1 +=0D .../Parsers/Madt/MadtParser.c | 1 +=0D .../Parsers/Pptt/PpttParser.c | 1 +=0D .../Parsers/Srat/SratParser.c | 1 +=0D .../UefiShellAcpiViewCommandLib.inf | 32 +--=0D 12 files changed, 479 insertions(+), 315 deletions(-)=0D create mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewCo= nfig.c=0D create mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewCo= nfig.h=0D =0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c b/Sh= ellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c=0D index 3f12a33050a4..02f6d771c7e1 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c=0D @@ -10,6 +10,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiView.h"=0D +#include "AcpiViewConfig.h"=0D =0D STATIC UINT32 gIndent;=0D STATIC UINT32 mTableErrorCount;=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c= b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c=0D index d5b9eee52323..4b618f131eac 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiTableParser.c=0D @@ -17,6 +17,7 @@=0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D #include "AcpiView.h"=0D +#include "AcpiViewConfig.h"=0D =0D #if defined(MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)=0D #include "Arm/SbbrValidator.h"=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c b/Shel= lPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c=0D index f1a95b7b8f03..b068dd4d2722 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c=0D @@ -20,6 +20,7 @@=0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D #include "AcpiView.h"=0D +#include "AcpiViewConfig.h"=0D #include "UefiShellAcpiViewCommandLib.h"=0D =0D #if defined(MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)=0D @@ -28,17 +29,8 @@=0D =0D EFI_HII_HANDLE gShellAcpiViewHiiHandle =3D NULL;=0D =0D -// Report variables=0D -STATIC UINT32 mSelectedAcpiTable;=0D -STATIC CONST CHAR16* mSelectedAcpiTableName;=0D -STATIC BOOLEAN mSelectedAcpiTableFound;=0D -STATIC EREPORT_OPTION mReportType;=0D STATIC UINT32 mTableCount;=0D STATIC UINT32 mBinTableCount;=0D -STATIC BOOLEAN mConsistencyCheck;=0D -STATIC BOOLEAN mColourHighlighting;=0D -STATIC BOOLEAN mMandatoryTableValidate;=0D -STATIC UINTN mMandatoryTableSpec;=0D =0D /**=0D An array of acpiview command line parameters.=0D @@ -53,142 +45,6 @@ STATIC CONST SHELL_PARAM_ITEM ParamList[] =3D {=0D {NULL, TypeMax}=0D };=0D =0D -/**=0D - This function returns the colour highlighting status.=0D -=0D - @retval TRUE if colour highlighting is enabled.=0D -**/=0D -BOOLEAN=0D -GetColourHighlighting (=0D - VOID=0D - )=0D -{=0D - return mColourHighlighting;=0D -}=0D -=0D -/**=0D - This function sets the colour highlighting status.=0D -=0D - @param Highlight The Highlight status.=0D -=0D -**/=0D -VOID=0D -SetColourHighlighting (=0D - BOOLEAN Highlight=0D - )=0D -{=0D - mColourHighlighting =3D Highlight;=0D -}=0D -=0D -/**=0D - This function returns the consistency checking status.=0D -=0D - @retval TRUE if consistency checking is enabled.=0D -**/=0D -BOOLEAN=0D -GetConsistencyChecking (=0D - VOID=0D - )=0D -{=0D - return mConsistencyCheck;=0D -}=0D -=0D -/**=0D - This function sets the consistency checking status.=0D -=0D - @param ConsistencyChecking The consistency checking status.=0D -=0D -**/=0D -VOID=0D -SetConsistencyChecking (=0D - BOOLEAN ConsistencyChecking=0D - )=0D -{=0D - mConsistencyCheck =3D ConsistencyChecking;=0D -}=0D -=0D -/**=0D - This function returns the ACPI table requirements validation flag.=0D -=0D - @retval TRUE if check for mandatory table presence should be performed.= =0D -**/=0D -BOOLEAN=0D -GetMandatoryTableValidate (=0D - VOID=0D - )=0D -{=0D - return mMandatoryTableValidate;=0D -}=0D -=0D -/**=0D - This function sets the ACPI table requirements validation flag.=0D -=0D - @param Validate Enable/Disable ACPI table requirements validation.=0D -**/=0D -VOID=0D -SetMandatoryTableValidate (=0D - BOOLEAN Validate=0D - )=0D -{=0D - mMandatoryTableValidate =3D Validate;=0D -}=0D -=0D -/**=0D - This function returns the identifier of specification to validate ACPI t= able=0D - requirements against.=0D -=0D - @return ID of specification listing mandatory tables.=0D -**/=0D -UINTN=0D -GetMandatoryTableSpec (=0D - VOID=0D - )=0D -{=0D - return mMandatoryTableSpec;=0D -}=0D -=0D -/**=0D - This function sets the identifier of specification to validate ACPI tabl= e=0D - requirements against.=0D -=0D - @param Spec ID of specification listing mandatory tables.=0D -**/=0D -VOID=0D -SetMandatoryTableSpec (=0D - UINTN Spec=0D - )=0D -{=0D - mMandatoryTableSpec =3D Spec;=0D -}=0D -=0D -/**=0D - This function returns the report options.=0D -=0D - @retval Returns the report option.=0D -**/=0D -STATIC=0D -EREPORT_OPTION=0D -GetReportOption (=0D - VOID=0D - )=0D -{=0D - return mReportType;=0D -}=0D -=0D -/**=0D - This function returns the selected ACPI table.=0D -=0D - @retval Returns signature of the selected ACPI table.=0D -**/=0D -STATIC=0D -UINT32=0D -GetSelectedAcpiTable (=0D - VOID=0D - )=0D -{=0D - return mSelectedAcpiTable;=0D -}=0D -=0D /**=0D This function dumps the ACPI table to a file.=0D =0D @@ -205,19 +61,21 @@ DumpAcpiTableToFile (=0D IN CONST UINTN Length=0D )=0D {=0D - EFI_STATUS Status;=0D - CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];=0D - SHELL_FILE_HANDLE DumpFileHandle;=0D - UINTN TransferBytes;=0D + EFI_STATUS Status;=0D + CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];=0D + SHELL_FILE_HANDLE DumpFileHandle;=0D + UINTN TransferBytes;=0D + SELECTED_ACPI_TABLE *SelectedTable;=0D =0D DumpFileHandle =3D NULL;=0D TransferBytes =3D Length;=0D + GetSelectedAcpiTable (&SelectedTable);=0D =0D UnicodeSPrint (=0D FileNameBuffer,=0D sizeof (FileNameBuffer),=0D L".\\%s%04d.bin",=0D - mSelectedAcpiTableName,=0D + SelectedTable->Name,=0D mBinTableCount++=0D );=0D =0D @@ -273,10 +131,11 @@ ProcessTableReportOptions (=0D IN CONST UINT32 Length=0D )=0D {=0D - UINTN OriginalAttribute;=0D - UINT8* SignaturePtr;=0D - BOOLEAN Log;=0D - BOOLEAN HighLight;=0D + UINTN OriginalAttribute;=0D + UINT8 *SignaturePtr;=0D + BOOLEAN Log;=0D + BOOLEAN HighLight;=0D + SELECTED_ACPI_TABLE *SelectedTable;=0D =0D //=0D // set local variables to suppress incorrect compiler/analyzer warnings= =0D @@ -285,15 +144,16 @@ ProcessTableReportOptions (=0D SignaturePtr =3D (UINT8*)(UINTN)&Signature;=0D Log =3D FALSE;=0D HighLight =3D GetColourHighlighting ();=0D + GetSelectedAcpiTable (&SelectedTable);=0D =0D switch (GetReportOption ()) {=0D case ReportAll:=0D Log =3D TRUE;=0D break;=0D case ReportSelected:=0D - if (Signature =3D=3D GetSelectedAcpiTable ()) {=0D + if (Signature =3D=3D SelectedTable->Type) {=0D Log =3D TRUE;=0D - mSelectedAcpiTableFound =3D TRUE;=0D + SelectedTable->Found =3D TRUE;=0D }=0D break;=0D case ReportTableList:=0D @@ -321,8 +181,8 @@ ProcessTableReportOptions (=0D );=0D break;=0D case ReportDumpBinFile:=0D - if (Signature =3D=3D GetSelectedAcpiTable ()) {=0D - mSelectedAcpiTableFound =3D TRUE;=0D + if (Signature =3D=3D SelectedTable->Type) {=0D + SelectedTable->Found =3D TRUE;=0D DumpAcpiTableToFile (TablePtr, Length);=0D }=0D break;=0D @@ -356,37 +216,7 @@ ProcessTableReportOptions (=0D return Log;=0D }=0D =0D -/**=0D - This function converts a string to ACPI table signature.=0D -=0D - @param [in] Str Pointer to the string to be converted to the=0D - ACPI table signature.=0D =0D - @retval The ACPI table signature.=0D -**/=0D -STATIC=0D -UINT32=0D -ConvertStrToAcpiSignature (=0D - IN CONST CHAR16* Str=0D - )=0D -{=0D - UINT8 Index;=0D - CHAR8 Ptr[4];=0D -=0D - ZeroMem (Ptr, sizeof (Ptr));=0D - Index =3D 0;=0D -=0D - // Convert to Upper case and convert to ASCII=0D - while ((Index < 4) && (Str[Index] !=3D 0)) {=0D - if (Str[Index] >=3D L'a' && Str[Index] <=3D L'z') {=0D - Ptr[Index] =3D (CHAR8)(Str[Index] - (L'a' - L'A'));=0D - } else {=0D - Ptr[Index] =3D (CHAR8)Str[Index];=0D - }=0D - Index++;=0D - }=0D - return *(UINT32*)Ptr;=0D -}=0D =0D /**=0D This function iterates the configuration table entries in the=0D @@ -417,6 +247,7 @@ AcpiView (=0D UINT8 RsdpRevision;=0D PARSE_ACPI_TABLE_PROC RsdpParserProc;=0D BOOLEAN Trace;=0D + SELECTED_ACPI_TABLE *SelectedTable;=0D =0D //=0D // set local variables to suppress incorrect compiler/analyzer warnings= =0D @@ -428,6 +259,9 @@ AcpiView (=0D ResetErrorCount ();=0D ResetWarningCount ();=0D =0D + // Retrieve the user selection of ACPI table to process=0D + GetSelectedAcpiTable (&SelectedTable);=0D +=0D // Search the table for an entry that matches the ACPI Table Guid=0D FoundAcpiTable =3D FALSE;=0D for (Index =3D 0; Index < SystemTable->NumberOfTableEntries; Index++) {= =0D @@ -496,7 +330,7 @@ AcpiView (=0D if (ReportTableList !=3D ReportOption) {=0D if (((ReportSelected =3D=3D ReportOption) ||=0D (ReportDumpBinFile =3D=3D ReportOption)) &&=0D - (!mSelectedAcpiTableFound)) {=0D + (!SelectedTable->Found)) {=0D Print (L"\nRequested ACPI Table not found.\n");=0D } else if (GetConsistencyChecking () &&=0D (ReportDumpBinFile !=3D ReportOption)) {=0D @@ -554,17 +388,12 @@ ShellCommandRunAcpiView (=0D CHAR16* ProblemParam;=0D SHELL_FILE_HANDLE TmpDumpFileHandle;=0D CONST CHAR16* MandatoryTableSpecStr;=0D + CONST CHAR16 *SelectedTableName;=0D =0D // Set Defaults=0D - mReportType =3D ReportAll;=0D mTableCount =3D 0;=0D mBinTableCount =3D 0;=0D - mSelectedAcpiTable =3D 0;=0D - mSelectedAcpiTableName =3D NULL;=0D - mSelectedAcpiTableFound =3D FALSE;=0D - mConsistencyCheck =3D TRUE;=0D - mMandatoryTableValidate =3D FALSE;=0D - mMandatoryTableSpec =3D 0;=0D + AcpiConfigSetDefaults ();=0D =0D ShellStatus =3D SHELL_SUCCESS;=0D Package =3D NULL;=0D @@ -671,25 +500,23 @@ ShellCommandRunAcpiView (=0D }=0D =0D if (ShellCommandLineGetFlag (Package, L"-l")) {=0D - mReportType =3D ReportTableList;=0D + SetReportOption (ReportTableList);=0D } else {=0D - mSelectedAcpiTableName =3D ShellCommandLineGetValue (Package, L"-s= ");=0D - if (mSelectedAcpiTableName !=3D NULL) {=0D - mSelectedAcpiTable =3D (UINT32)ConvertStrToAcpiSignature (=0D - mSelectedAcpiTableName=0D - );=0D - mReportType =3D ReportSelected;=0D + SelectedTableName =3D ShellCommandLineGetValue (Package, L"-s");=0D + if (SelectedTableName !=3D NULL) {=0D + SelectAcpiTable (SelectedTableName);=0D + SetReportOption (ReportSelected);=0D =0D if (ShellCommandLineGetFlag (Package, L"-d")) {=0D // Create a temporary file to check if the media is writable.= =0D CHAR16 FileNameBuffer[MAX_FILE_NAME_LEN];=0D - mReportType =3D ReportDumpBinFile;=0D + SetReportOption (ReportDumpBinFile);=0D =0D UnicodeSPrint (=0D FileNameBuffer,=0D sizeof (FileNameBuffer),=0D L".\\%s%04d.tmp",=0D - mSelectedAcpiTableName,=0D + SelectedTableName,=0D mBinTableCount=0D );=0D =0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h b/Shel= lPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h=0D index be65564c86a6..92d64a88814d 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.h=0D @@ -23,17 +23,6 @@=0D **/=0D #define RSDP_LENGTH_OFFSET 20=0D =0D -/**=0D - The EREPORT_OPTION enum describes ACPI table Reporting options.=0D -**/=0D -typedef enum ReportOption {=0D - ReportAll, ///< Report All tables.=0D - ReportSelected, ///< Report Selected table.=0D - ReportTableList, ///< Report List of tables.=0D - ReportDumpBinFile, ///< Dump selected table to a file.=0D - ReportMax,=0D -} EREPORT_OPTION;=0D -=0D /**=0D This function resets the ACPI table error counter to Zero.=0D **/=0D @@ -70,90 +59,6 @@ GetWarningCount (=0D VOID=0D );=0D =0D -/**=0D - This function returns the colour highlighting status.=0D -=0D - @retval TRUE if colour highlighting is enabled.=0D -**/=0D -BOOLEAN=0D -GetColourHighlighting (=0D - VOID=0D - );=0D -=0D -/**=0D - This function sets the colour highlighting status.=0D -=0D - @param Highlight The Highlight status.=0D -=0D -**/=0D -VOID=0D -SetColourHighlighting (=0D - BOOLEAN Highlight=0D - );=0D -=0D -/**=0D - This function returns the consistency checking status.=0D -=0D - @retval TRUE if consistency checking is enabled.=0D -**/=0D -BOOLEAN=0D -GetConsistencyChecking (=0D - VOID=0D - );=0D -=0D -/**=0D - This function sets the consistency checking status.=0D -=0D - @param ConsistencyChecking The consistency checking status.=0D -=0D -**/=0D -VOID=0D -SetConsistencyChecking (=0D - BOOLEAN ConsistencyChecking=0D - );=0D -=0D -/**=0D - This function returns the ACPI table requirements validation flag.=0D -=0D - @retval TRUE if check for mandatory table presence should be performed.= =0D -**/=0D -BOOLEAN=0D -GetMandatoryTableValidate (=0D - VOID=0D - );=0D -=0D -/**=0D - This function sets the ACPI table requirements validation flag.=0D -=0D - @param Validate Enable/Disable ACPI table requirements validation.=0D -**/=0D -VOID=0D -SetMandatoryTableValidate (=0D - BOOLEAN Validate=0D - );=0D -=0D -/**=0D - This function returns the identifier of specification to validate ACPI t= able=0D - requirements against.=0D -=0D - @return ID of specification listing mandatory tables.=0D -**/=0D -UINTN=0D -GetMandatoryTableSpec (=0D - VOID=0D - );=0D -=0D -/**=0D - This function sets the identifier of specification to validate ACPI tabl= e=0D - requirements against.=0D -=0D - @param Spec ID of specification listing mandatory tables.=0D -**/=0D -VOID=0D -SetMandatoryTableSpec (=0D - UINTN Spec=0D - );=0D -=0D /**=0D This function processes the table reporting options for the ACPI table.= =0D =0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.c = b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.c=0D new file mode 100644=0D index 000000000000..759a915928c7=0D --- /dev/null=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.c=0D @@ -0,0 +1,246 @@=0D +/** @file=0D + State and accessors for 'acpiview' configuration.=0D +=0D + Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +**/=0D +=0D +#include =0D +#include =0D +=0D +#include "AcpiViewConfig.h"=0D +=0D +// Report variables=0D +STATIC BOOLEAN mConsistencyCheck;=0D +STATIC BOOLEAN mColourHighlighting;=0D +STATIC EREPORT_OPTION mReportType;=0D +STATIC BOOLEAN mMandatoryTableValidate;=0D +STATIC UINTN mMandatoryTableSpec;=0D +=0D +// User selection of which ACPI table should be checked=0D +SELECTED_ACPI_TABLE mSelectedAcpiTable;=0D +=0D +/**=0D + Reset the AcpiView user configuration to defaults=0D +**/=0D +VOID=0D +EFIAPI=0D +AcpiConfigSetDefaults (=0D + VOID=0D + )=0D +{=0D + mReportType =3D ReportAll;=0D + mSelectedAcpiTable.Type =3D 0;=0D + mSelectedAcpiTable.Name =3D NULL;=0D + mSelectedAcpiTable.Found =3D FALSE;=0D + mConsistencyCheck =3D TRUE;=0D + mMandatoryTableValidate =3D FALSE;=0D + mMandatoryTableSpec =3D 0;=0D +}=0D +=0D +/**=0D + This function converts a string to ACPI table signature.=0D +=0D + @param [in] Str Pointer to the string to be converted to the=0D + ACPI table signature.=0D +=0D + @retval The ACPI table signature.=0D +**/=0D +STATIC=0D +UINT32=0D +ConvertStrToAcpiSignature (=0D + IN CONST CHAR16 *Str=0D + )=0D +{=0D + UINT8 Index;=0D + CHAR8 Ptr[4];=0D +=0D + ZeroMem (Ptr, sizeof (Ptr));=0D + Index =3D 0;=0D +=0D + // Convert to Upper case and convert to ASCII=0D + while ((Index < 4) && (Str[Index] !=3D 0)) {=0D + if (Str[Index] >=3D L'a' && Str[Index] <=3D L'z') {=0D + Ptr[Index] =3D (CHAR8)(Str[Index] - (L'a' - L'A'));=0D + } else {=0D + Ptr[Index] =3D (CHAR8)Str[Index];=0D + }=0D + Index++;=0D + }=0D + return *(UINT32 *) Ptr;=0D +}=0D +=0D +/**=0D + This function selects an ACPI table in current context.=0D + The string name of the table is converted into UINT32=0D + table signature.=0D +=0D + @param [in] TableName The name of the ACPI table to select.=0D +**/=0D +VOID=0D +EFIAPI=0D +SelectAcpiTable (=0D + IN CONST CHAR16 *TableName=0D + )=0D +{=0D + ASSERT (TableName !=3D NULL);=0D +=0D + mSelectedAcpiTable.Name =3D TableName;=0D + mSelectedAcpiTable.Type =3D ConvertStrToAcpiSignature (mSelectedAcpiTabl= e.Name);=0D +}=0D +=0D +/**=0D + This function returns the selected ACPI table.=0D +=0D + @param [out] SelectedAcpiTable Pointer that will contain the returned st= ruct.=0D +**/=0D +VOID=0D +EFIAPI=0D +GetSelectedAcpiTable (=0D + OUT SELECTED_ACPI_TABLE **SelectedAcpiTable=0D + )=0D +{=0D + *SelectedAcpiTable =3D &mSelectedAcpiTable;=0D +}=0D +=0D +/**=0D + This function returns the colour highlighting status.=0D +=0D + @retval TRUE Colour highlighting is enabled.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetColourHighlighting (=0D + VOID=0D + )=0D +{=0D + return mColourHighlighting;=0D +}=0D +=0D +/**=0D + This function sets the colour highlighting status.=0D +=0D + @param [in] Highlight The highlight status.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetColourHighlighting (=0D + BOOLEAN Highlight=0D + )=0D +{=0D + mColourHighlighting =3D Highlight;=0D +}=0D +=0D +/**=0D + This function returns the consistency checking status.=0D +=0D + @retval TRUE Consistency checking is enabled.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetConsistencyChecking (=0D + VOID=0D + )=0D +{=0D + return mConsistencyCheck;=0D +}=0D +=0D +/**=0D + This function sets the consistency checking status.=0D +=0D + @param [in] ConsistencyChecking The consistency checking status.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetConsistencyChecking (=0D + BOOLEAN ConsistencyChecking=0D + )=0D +{=0D + mConsistencyCheck =3D ConsistencyChecking;=0D +}=0D +=0D +/**=0D + This function returns the report options.=0D +=0D + @return The current report option.=0D +**/=0D +EREPORT_OPTION=0D +EFIAPI=0D +GetReportOption (=0D + VOID=0D + )=0D +{=0D + return mReportType;=0D +}=0D +=0D +/**=0D + This function sets the report options.=0D +=0D + @param [in] ReportType The report option to set.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetReportOption (=0D + EREPORT_OPTION ReportType=0D + )=0D +{=0D + mReportType =3D ReportType;=0D +}=0D +=0D +/**=0D + This function returns the ACPI table requirements validation flag.=0D +=0D + @retval TRUE Check for mandatory table presence should be performed.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetMandatoryTableValidate (=0D + VOID=0D + )=0D +{=0D + return mMandatoryTableValidate;=0D +}=0D +=0D +/**=0D + This function sets the ACPI table requirements validation flag.=0D +=0D + @param [in] Validate Enable/Disable ACPI table requirements validation.= =0D +**/=0D +VOID=0D +EFIAPI=0D +SetMandatoryTableValidate (=0D + BOOLEAN Validate=0D + )=0D +{=0D + mMandatoryTableValidate =3D Validate;=0D +}=0D +=0D +/**=0D + This function returns the identifier of specification to validate ACPI t= able=0D + requirements against.=0D +=0D + @return ID of specification listing mandatory tables.=0D +**/=0D +UINTN=0D +EFIAPI=0D +GetMandatoryTableSpec (=0D + VOID=0D + )=0D +{=0D + return mMandatoryTableSpec;=0D +}=0D +=0D +/**=0D + This function sets the identifier of specification to validate ACPI tabl= e=0D + requirements against.=0D +=0D + @param [in] Spec ID of specification listing mandatory tables.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetMandatoryTableSpec (=0D + UINTN Spec=0D + )=0D +{=0D + mMandatoryTableSpec =3D Spec;=0D +}=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.h = b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.h=0D new file mode 100644=0D index 000000000000..2db4a65415d8=0D --- /dev/null=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiViewConfig.h=0D @@ -0,0 +1,177 @@=0D +/** @file=0D + Header file for 'acpiview' configuration.=0D +=0D + Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +**/=0D +=0D +#ifndef ACPI_VIEW_CONFIG_H_=0D +#define ACPI_VIEW_CONFIG_H_=0D +=0D +/**=0D + This function returns the colour highlighting status.=0D +=0D + @retval TRUE Colour highlighting is enabled.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetColourHighlighting (=0D + VOID=0D + );=0D +=0D +/**=0D + This function sets the colour highlighting status.=0D +=0D + @param [in] Highlight The highlight status.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetColourHighlighting (=0D + BOOLEAN Highlight=0D + );=0D +=0D +/**=0D + This function returns the consistency checking status.=0D +=0D + @retval TRUE Consistency checking is enabled.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetConsistencyChecking (=0D + VOID=0D + );=0D +=0D +/**=0D + This function sets the consistency checking status.=0D +=0D + @param [in] ConsistencyChecking The consistency checking status.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetConsistencyChecking (=0D + BOOLEAN ConsistencyChecking=0D + );=0D +=0D +/**=0D + This function returns the ACPI table requirements validation flag.=0D +=0D + @retval TRUE Check for mandatory table presence should be performed.=0D +**/=0D +BOOLEAN=0D +EFIAPI=0D +GetMandatoryTableValidate (=0D + VOID=0D + );=0D +=0D +/**=0D + This function sets the ACPI table requirements validation flag.=0D +=0D + @param [in] Validate Enable/Disable ACPI table requirements validation.= =0D +**/=0D +VOID=0D +EFIAPI=0D +SetMandatoryTableValidate (=0D + BOOLEAN Validate=0D + );=0D +=0D +/**=0D + This function returns the identifier of specification to validate ACPI t= able=0D + requirements against.=0D +=0D + @return ID of specification listing mandatory tables.=0D +**/=0D +UINTN=0D +EFIAPI=0D +GetMandatoryTableSpec (=0D + VOID=0D + );=0D +=0D +/**=0D + This function sets the identifier of specification to validate ACPI tabl= e=0D + requirements against.=0D +=0D + @param [in] Spec ID of specification listing mandatory tables.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetMandatoryTableSpec (=0D + UINTN Spec=0D + );=0D +=0D +/**=0D + The EREPORT_OPTION enum describes ACPI table Reporting options.=0D +**/=0D +typedef enum {=0D + ReportAll, ///< Report All tables.=0D + ReportSelected, ///< Report Selected table.=0D + ReportTableList, ///< Report List of tables.=0D + ReportDumpBinFile, ///< Dump selected table to a file.=0D + ReportMax,=0D +} EREPORT_OPTION;=0D +=0D +/**=0D + This function returns the report options.=0D +=0D + @return The current report option.=0D +**/=0D +EREPORT_OPTION=0D +EFIAPI=0D +GetReportOption (=0D + VOID=0D + );=0D +=0D +/**=0D + This function sets the report options.=0D +=0D + @param [in] ReportType The report option to set.=0D +**/=0D +VOID=0D +EFIAPI=0D +SetReportOption (=0D + EREPORT_OPTION ReportType=0D + );=0D +=0D +/**=0D + A structure holding the user selection detailing which=0D + ACPI table is to be examined by the AcpiView code.=0D +**/=0D +typedef struct {=0D + UINT32 Type; ///< 32bit signature of the selected ACPI t= able.=0D + CONST CHAR16* Name; ///< User friendly name of the selected ACP= I table.=0D + BOOLEAN Found; ///< The selected table has been found in t= he system.=0D +} SELECTED_ACPI_TABLE;=0D +=0D +/**=0D + This function returns the selected ACPI table.=0D +=0D + @param [out] SelectedAcpiTable Pointer that will contain the returned st= ruct.=0D +**/=0D +VOID=0D +EFIAPI=0D +GetSelectedAcpiTable (=0D + OUT SELECTED_ACPI_TABLE** SelectedAcpiTable=0D + );=0D +=0D +/**=0D + This function selects an ACPI table in current context.=0D + The string name of the table is converted into UINT32=0D + table signature.=0D +=0D + @param [in] TableName The name of the ACPI table to select.=0D +**/=0D +VOID=0D +EFIAPI=0D +SelectAcpiTable (=0D + CONST CHAR16* TableName=0D + );=0D +=0D +/**=0D + Reset the AcpiView user configuration to defaults.=0D +**/=0D +VOID=0D +EFIAPI=0D +AcpiConfigSetDefaults (=0D + VOID=0D + );=0D +=0D +#endif // ACPI_VIEW_CONFIG_H_=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/Gtdt= Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtPa= rser.c=0D index bdd30ff45c61..d02fc4929d6f 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.= c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.= c=0D @@ -12,6 +12,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D +#include "AcpiViewConfig.h"=0D =0D // "The number of GT Block Timers must be less than or equal to 8"=0D #define GT_BLOCK_TIMER_COUNT_MAX 8=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/Iort= Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortPa= rser.c=0D index 9a006a01448b..f7447947b230 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.= c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.= c=0D @@ -13,6 +13,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D +#include "AcpiViewConfig.h"=0D =0D // Local variables=0D STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/Madt= Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPa= rser.c=0D index f85d2b36532c..15aa2392b60c 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.= c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.= c=0D @@ -15,6 +15,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D +#include "AcpiViewConfig.h"=0D #include "MadtParser.h"=0D =0D // Local Variables=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/Pptt= Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttPa= rser.c=0D index 0db272c16af0..acd2b81bb325 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.= c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.= c=0D @@ -13,6 +13,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiView.h"=0D +#include "AcpiViewConfig.h"=0D #include "PpttParser.h"=0D =0D // Local variables=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/Srat= Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratPa= rser.c=0D index 6f66be68cc0b..b9b67820b89f 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.= c=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.= c=0D @@ -13,6 +13,7 @@=0D #include =0D #include "AcpiParser.h"=0D #include "AcpiTableParser.h"=0D +#include "AcpiViewConfig.h"=0D =0D // Local Variables=0D STATIC CONST UINT8* SratRAType;=0D diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiView= CommandLib.inf b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpi= ViewCommandLib.inf=0D index d21ecd40a8cf..92de2391b09f 100644=0D --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommand= Lib.inf=0D +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommand= Lib.inf=0D @@ -19,15 +19,14 @@ [Defines]=0D DESTRUCTOR =3D UefiShellAcpiViewCommandLibDestructor= =0D =0D [Sources.common]=0D - UefiShellAcpiViewCommandLib.uni=0D - UefiShellAcpiViewCommandLib.c=0D - UefiShellAcpiViewCommandLib.h=0D - AcpiParser.h=0D - AcpiTableParser.h=0D - AcpiView.h=0D AcpiParser.c=0D + AcpiParser.h=0D AcpiTableParser.c=0D + AcpiTableParser.h=0D AcpiView.c=0D + AcpiView.h=0D + AcpiViewConfig.c=0D + AcpiViewConfig.h=0D Parsers/Bgrt/BgrtParser.c=0D Parsers/Dbg2/Dbg2Parser.c=0D Parsers/Dsdt/DsdtParser.c=0D @@ -36,40 +35,43 @@ [Sources.common]=0D Parsers/Gtdt/GtdtParser.c=0D Parsers/Iort/IortParser.c=0D Parsers/Madt/MadtParser.c=0D + Parsers/Madt/MadtParser.h=0D Parsers/Mcfg/McfgParser.c=0D Parsers/Pptt/PpttParser.c=0D + Parsers/Pptt/PpttParser.h=0D Parsers/Rsdp/RsdpParser.c=0D Parsers/Slit/SlitParser.c=0D Parsers/Spcr/SpcrParser.c=0D Parsers/Srat/SratParser.c=0D Parsers/Ssdt/SsdtParser.c=0D Parsers/Xsdt/XsdtParser.c=0D - Parsers/Madt/MadtParser.h=0D - Parsers/Pptt/PpttParser.h=0D + UefiShellAcpiViewCommandLib.c=0D + UefiShellAcpiViewCommandLib.h=0D + UefiShellAcpiViewCommandLib.uni=0D =0D [Sources.ARM, Sources.AARCH64]=0D Arm/SbbrValidator.h=0D Arm/SbbrValidator.c=0D =0D [Packages]=0D + MdeModulePkg/MdeModulePkg.dec=0D MdePkg/MdePkg.dec=0D ShellPkg/ShellPkg.dec=0D - MdeModulePkg/MdeModulePkg.dec=0D =0D [LibraryClasses]=0D - MemoryAllocationLib=0D BaseLib=0D BaseMemoryLib=0D DebugLib=0D + FileHandleLib=0D + HiiLib=0D + MemoryAllocationLib=0D + PcdLib=0D + PrintLib=0D ShellCommandLib=0D ShellLib=0D + UefiBootServicesTableLib=0D UefiLib=0D UefiRuntimeServicesTableLib=0D - UefiBootServicesTableLib=0D - PcdLib=0D - HiiLib=0D - PrintLib=0D - FileHandleLib=0D =0D =0D [FixedPcd]=0D -- =0D 2.24.1.windows.2=0D =0D