From db77d8f7ee9490138d853c4fb06e7a1e14a49148 Mon Sep 17 00:00:00 2001 From: Tomas Pilar Date: Fri, 19 Jun 2020 12:59:54 +0100 Subject: 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 Cc: Zhichao Gao Reviewed-by: Zhichao Gao Signed-off-by: Tomas Pilar --- ShellPkg/Include/Library/AcpiViewCommandLib.h | 46 ++++++++++++++++++++++ .../Library/UefiShellAcpiViewCommandLib/AcpiView.c | 2 +- .../UefiShellAcpiViewCommandLib.c | 2 +- .../UefiShellAcpiViewCommandLib.h | 45 --------------------- .../UefiShellAcpiViewCommandLib.inf | 3 +- ShellPkg/ShellPkg.dec | 3 ++ ShellPkg/ShellPkg.dsc | 3 +- 7 files changed, 54 insertions(+), 50 deletions(-) create mode 100644 ShellPkg/Include/Library/AcpiViewCommandLib.h delete mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h (limited to 'ShellPkg') diff --git a/ShellPkg/Include/Library/AcpiViewCommandLib.h b/ShellPkg/Include/Library/AcpiViewCommandLib.h new file mode 100644 index 0000000000..11cf96c6e0 --- /dev/null +++ b/ShellPkg/Include/Library/AcpiViewCommandLib.h @@ -0,0 +1,46 @@ +/** @file + Library providing 'acpiview' functionality to display and + validate installed ACPI tables. + + Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef ACPI_VIEW_COMMAND_LIB_H_ +#define ACPI_VIEW_COMMAND_LIB_H_ + +/** + Dump a buffer to a file. Print error message if a file cannot be created. + + @param[in] FileName The filename that shall be created to contain the buffer. + @param[in] Buffer Pointer to buffer that shall be dumped. + @param[in] BufferSize The size of buffer to be dumped in bytes. + + @return The number of bytes that were written +**/ +UINTN +EFIAPI +ShellDumpBufferToFile ( + IN CONST CHAR16* FileNameBuffer, + IN CONST VOID* Buffer, + IN CONST UINTN BufferSize + ); + +/** + Display and validate ACPI tables. + + @param[in] ImageHandle Handle to the Image (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_NOT_FOUND The command failed. + @retval SHELL_SUCCESS The command was successful. +**/ +SHELL_STATUS +EFIAPI +ShellCommandRunAcpiView ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ); + +#endif // UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c index d2240b2e89..9a5b013fb2 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiView.c @@ -17,11 +17,11 @@ #include #include #include +#include #include "AcpiParser.h" #include "AcpiTableParser.h" #include "AcpiView.h" #include "AcpiViewConfig.h" -#include "UefiShellAcpiViewCommandLib.h" #if defined(MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) #include "Arm/SbbrValidator.h" diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c index e6a65d5bc5..d2f26ff89f 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c @@ -16,13 +16,13 @@ #include #include #include +#include #include #include "AcpiParser.h" #include "AcpiTableParser.h" #include "AcpiView.h" #include "AcpiViewConfig.h" -#include "UefiShellAcpiViewCommandLib.h" CONST CHAR16 gShellAcpiViewFileName[] = L"ShellCommand"; EFI_HII_HANDLE gShellAcpiViewHiiHandle = NULL; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h deleted file mode 100644 index b1b1ffe63e..0000000000 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.h +++ /dev/null @@ -1,45 +0,0 @@ -/** @file - Header file for 'acpiview' Shell command functions. - - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent -**/ - -#ifndef UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ -#define UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ - -/** - Dump a buffer to a file. Print error message if a file cannot be created. - - @param[in] FileName The filename that shall be created to contain the buffer. - @param[in] Buffer Pointer to buffer that shall be dumped. - @param[in] BufferSize The size of buffer to be dumped in bytes. - - @return The number of bytes that were written -**/ -UINTN -EFIAPI -ShellDumpBufferToFile ( - IN CONST CHAR16* FileNameBuffer, - IN CONST VOID* Buffer, - IN CONST UINTN BufferSize - ); - -/** - Function for 'acpiview' command. - - @param[in] ImageHandle Handle to the Image (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_NOT_FOUND The command failed - @retval SHELL_SUCCESS The command was successful -**/ -SHELL_STATUS -EFIAPI -ShellCommandRunAcpiView ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ); - -#endif // UEFI_SHELL_ACPIVIEW_COMMAND_LIB_H_ diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf index 92de2391b0..91459f9ec6 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf @@ -14,7 +14,7 @@ FILE_GUID = FB5B305E-84F5-461F-940D-82D345757AFA MODULE_TYPE = UEFI_APPLICATION VERSION_STRING = 1.0 - LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER + LIBRARY_CLASS = AcpiViewCommandLib|UEFI_APPLICATION UEFI_DRIVER CONSTRUCTOR = UefiShellAcpiViewCommandLibConstructor DESTRUCTOR = UefiShellAcpiViewCommandLibDestructor @@ -46,7 +46,6 @@ Parsers/Ssdt/SsdtParser.c Parsers/Xsdt/XsdtParser.c UefiShellAcpiViewCommandLib.c - UefiShellAcpiViewCommandLib.h UefiShellAcpiViewCommandLib.uni [Sources.ARM, Sources.AARCH64] diff --git a/ShellPkg/ShellPkg.dec b/ShellPkg/ShellPkg.dec index c17e358d15..d0843d3381 100644 --- a/ShellPkg/ShellPkg.dec +++ b/ShellPkg/ShellPkg.dec @@ -34,6 +34,9 @@ ## @libraryclass provides BCFG command BcfgCommandLib|Include/Library/BcfgCommandLib.h + ## @libraryclass provides the AcpiView command + AcpiViewCommandLib|Include/Library/AcpiViewCommandLib.h + [Guids] gEfiShellEnvironment2ExtGuid = {0xd2c18636, 0x40e5, 0x4eb5, {0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87}} gEfiShellPkgTokenSpaceGuid = {0x171e9188, 0x31d3, 0x40f5, {0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}} diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc index b7ee856b3a..5d2d96ab07 100644 --- a/ShellPkg/ShellPkg.dsc +++ b/ShellPkg/ShellPkg.dsc @@ -2,7 +2,7 @@ # Shell Package # # Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.
-# Copyright (c) 2018, Arm Limited. All rights reserved.
+# Copyright (c) 2018 - 2020, Arm Limited. All rights reserved.
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent @@ -50,6 +50,7 @@ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + AcpiViewCommandLib|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf -- cgit v1.2.3