ShellPkg: Add AcpiViewCommandLib

The UefiShellAcpiViewCommandLib is converted from NULL library to a
named library so that it may be used in modules other than shell.
The library interface exposes the main method for to AcpiView
functionality as well as a helper method to dump a buffer to a file.

The Shell module is still built by pulling UefiShellAcpiViewCommandLib
as a NULL library to preserve the modularity of shell builds.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Signed-off-by: Tomas Pilar <tomas.pilar@arm.com>
This commit is contained in:
Tomas Pilar
2020-06-19 12:59:54 +01:00
committed by mergify[bot]
parent d45cf5ffdf
commit db77d8f7ee
6 changed files with 16 additions and 12 deletions

View File

@ -1,12 +1,13 @@
/** @file /** @file
Header file for 'acpiview' Shell command functions. Library providing 'acpiview' functionality to display and
validate installed ACPI tables.
Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR> Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent SPDX-License-Identifier: BSD-2-Clause-Patent
**/ **/
#ifndef UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ #ifndef ACPI_VIEW_COMMAND_LIB_H_
#define UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ #define ACPI_VIEW_COMMAND_LIB_H_
/** /**
Dump a buffer to a file. Print error message if a file cannot be created. Dump a buffer to a file. Print error message if a file cannot be created.
@ -26,14 +27,14 @@ ShellDumpBufferToFile (
); );
/** /**
Function for 'acpiview' command. Display and validate ACPI tables.
@param[in] ImageHandle Handle to the Image (NULL if internal). @param[in] ImageHandle Handle to the Image (NULL if internal).
@param[in] SystemTable Pointer to the System Table (NULL if internal). @param[in] SystemTable Pointer to the System Table (NULL if internal).
@retval SHELL_INVALID_PARAMETER The command line invocation could not be parsed @retval SHELL_INVALID_PARAMETER The command line invocation could not be parsed.
@retval SHELL_NOT_FOUND The command failed @retval SHELL_NOT_FOUND The command failed.
@retval SHELL_SUCCESS The command was successful @retval SHELL_SUCCESS The command was successful.
**/ **/
SHELL_STATUS SHELL_STATUS
EFIAPI EFIAPI

View File

@ -17,11 +17,11 @@
#include <Library/BaseMemoryLib.h> #include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h> #include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h> #include <Library/MemoryAllocationLib.h>
#include <Library/AcpiViewCommandLib.h>
#include "AcpiParser.h" #include "AcpiParser.h"
#include "AcpiTableParser.h" #include "AcpiTableParser.h"
#include "AcpiView.h" #include "AcpiView.h"
#include "AcpiViewConfig.h" #include "AcpiViewConfig.h"
#include "UefiShellAcpiViewCommandLib.h"
#if defined(MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) #if defined(MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
#include "Arm/SbbrValidator.h" #include "Arm/SbbrValidator.h"

View File

@ -16,13 +16,13 @@
#include <Library/ShellLib.h> #include <Library/ShellLib.h>
#include <Library/UefiBootServicesTableLib.h> #include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h> #include <Library/UefiLib.h>
#include <Library/AcpiViewCommandLib.h>
#include <Uefi.h> #include <Uefi.h>
#include "AcpiParser.h" #include "AcpiParser.h"
#include "AcpiTableParser.h" #include "AcpiTableParser.h"
#include "AcpiView.h" #include "AcpiView.h"
#include "AcpiViewConfig.h" #include "AcpiViewConfig.h"
#include "UefiShellAcpiViewCommandLib.h"
CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand"; CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand";
EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL; EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL;

View File

@ -14,7 +14,7 @@
FILE_GUID = FB5B305E-84F5-461F-940D-82D345757AFA FILE_GUID = FB5B305E-84F5-461F-940D-82D345757AFA
MODULE_TYPE = UEFI_APPLICATION MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0 VERSION_STRING = 1.0
LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER LIBRARY_CLASS = AcpiViewCommandLib|UEFI_APPLICATION UEFI_DRIVER
CONSTRUCTOR = UefiShellAcpiViewCommandLibConstructor CONSTRUCTOR = UefiShellAcpiViewCommandLibConstructor
DESTRUCTOR = UefiShellAcpiViewCommandLibDestructor DESTRUCTOR = UefiShellAcpiViewCommandLibDestructor
@ -46,7 +46,6 @@
Parsers/Ssdt/SsdtParser.c Parsers/Ssdt/SsdtParser.c
Parsers/Xsdt/XsdtParser.c Parsers/Xsdt/XsdtParser.c
UefiShellAcpiViewCommandLib.c UefiShellAcpiViewCommandLib.c
UefiShellAcpiViewCommandLib.h
UefiShellAcpiViewCommandLib.uni UefiShellAcpiViewCommandLib.uni
[Sources.ARM, Sources.AARCH64] [Sources.ARM, Sources.AARCH64]

View File

@ -34,6 +34,9 @@
## @libraryclass provides BCFG command ## @libraryclass provides BCFG command
BcfgCommandLib|Include/Library/BcfgCommandLib.h BcfgCommandLib|Include/Library/BcfgCommandLib.h
## @libraryclass provides the AcpiView command
AcpiViewCommandLib|Include/Library/AcpiViewCommandLib.h
[Guids] [Guids]
gEfiShellEnvironment2ExtGuid = {0xd2c18636, 0x40e5, 0x4eb5, {0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87}} gEfiShellEnvironment2ExtGuid = {0xd2c18636, 0x40e5, 0x4eb5, {0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87}}
gEfiShellPkgTokenSpaceGuid = {0x171e9188, 0x31d3, 0x40f5, {0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}} gEfiShellPkgTokenSpaceGuid = {0x171e9188, 0x31d3, 0x40f5, {0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}}

View File

@ -2,7 +2,7 @@
# Shell Package # Shell Package
# #
# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR> # Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2018, Arm Limited. All rights reserved.<BR> # Copyright (c) 2018 - 2020, Arm Limited. All rights reserved.<BR>
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR> # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
# #
# SPDX-License-Identifier: BSD-2-Clause-Patent # SPDX-License-Identifier: BSD-2-Clause-Patent
@ -50,6 +50,7 @@
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
AcpiViewCommandLib|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf