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

@ -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.<BR>
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_