Signed-off-by: lgao4 Reviewed-by: jcarsey git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12394 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			439 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			439 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Main file for NULL named library for Profile1 shell command functions.
 | |
| 
 | |
|   Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
 | |
|   This program and the accompanying materials
 | |
|   are licensed and made available under the terms and conditions of the BSD License
 | |
|   which accompanies this distribution.  The full text of the license may be found at
 | |
|   http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
|   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
|   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _UEFI_SHELL_DEBUG1_COMMANDS_LIB_H_
 | |
| #define _UEFI_SHELL_DEBUG1_COMMANDS_LIB_H_
 | |
| 
 | |
| #include <Uefi.h>
 | |
| #include <ShellBase.h>
 | |
| 
 | |
| #include <Guid/GlobalVariable.h>
 | |
| #include <Guid/ConsoleInDevice.h>
 | |
| #include <Guid/ConsoleOutDevice.h>
 | |
| #include <Guid/FileSystemInfo.h>
 | |
| #include <Guid/ShellLibHiiGuid.h>
 | |
| 
 | |
| #include <Protocol/EfiShell.h>
 | |
| #include <Protocol/EfiShellParameters.h>
 | |
| #include <Protocol/DevicePath.h>
 | |
| #include <Protocol/LoadedImage.h>
 | |
| #include <Protocol/UnicodeCollation.h>
 | |
| #include <Protocol/DevicePathToText.h>
 | |
| #include <Protocol/DriverDiagnostics2.h>
 | |
| #include <Protocol/DriverDiagnostics.h>
 | |
| #include <Protocol/PlatformDriverOverride.h>
 | |
| #include <Protocol/BusSpecificDriverOverride.h>
 | |
| #include <Protocol/PlatformToDriverConfiguration.h>
 | |
| #include <Protocol/DriverSupportedEfiVersion.h>
 | |
| #include <Protocol/DriverFamilyOverride.h>
 | |
| #include <Protocol/DriverHealth.h>
 | |
| #include <Protocol/DevicePathFromText.h>
 | |
| #include <Protocol/SimplePointer.h>
 | |
| #include <Protocol/PciRootBridgeIo.h>
 | |
| 
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| #include <Library/ShellCommandLib.h>
 | |
| #include <Library/ShellLib.h>
 | |
| #include <Library/SortLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/HiiLib.h>
 | |
| #include <Library/FileHandleLib.h>
 | |
| #include <Library/DevicePathLib.h>
 | |
| #include <Library/PrintLib.h>
 | |
| #include <Library/HandleParsingLib.h>
 | |
| 
 | |
| 
 | |
| extern        EFI_HANDLE                        gShellDebug1HiiHandle;
 | |
| 
 | |
| /**
 | |
|   Function printing hex output to the console.
 | |
| 
 | |
|   @param[in] Indent       Number of spaces to indent.
 | |
|   @param[in] Offset       Offset to start with.
 | |
|   @param[in] DataSize     Length of data.
 | |
|   @param[in] UserData     Pointer to some data.
 | |
| **/
 | |
| VOID
 | |
| DumpHex (
 | |
|   IN UINTN        Indent,
 | |
|   IN UINTN        Offset,
 | |
|   IN UINTN        DataSize,
 | |
|   IN VOID         *UserData
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function returns a system configuration table that is stored in the
 | |
|   EFI System Table based on the provided GUID.
 | |
| 
 | |
|   @param[in]   TableGuid    A pointer to the table's GUID type.
 | |
|   @param[in, out] Table     On exit, a pointer to a system configuration table.
 | |
| 
 | |
|   @retval EFI_SUCCESS      A configuration table matching TableGuid was found.
 | |
|   @retval EFI_NOT_FOUND    A configuration table matching TableGuid was not found.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GetSystemConfigurationTable (
 | |
|   IN EFI_GUID *TableGuid,
 | |
|   IN OUT VOID **Table
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Convert a string representation of a GUID to the GUID value.
 | |
| 
 | |
|   @param[in]  StringGuid   The pointer to the string containing a GUID printed.
 | |
|   @param[in, out] Guid     The pointer to the buffer to get the GUID value.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| ConvertStringToGuid (
 | |
|   IN CONST CHAR16 *StringGuid,
 | |
|   IN OUT EFI_GUID *Guid
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Convert a Unicode character to numerical value.
 | |
| 
 | |
|   This internal function only deal with Unicode character
 | |
|   which maps to a valid hexadecimal ASII character, i.e.
 | |
|   L'0' to L'9', L'a' to L'f' or L'A' to L'F'. For other
 | |
|   Unicode character, the value returned does not make sense.
 | |
| 
 | |
|   @param  Char  The character to convert.
 | |
| 
 | |
|   @return The numerical value converted.
 | |
| 
 | |
| **/
 | |
| UINTN
 | |
| EFIAPI
 | |
| HexCharToUintn (
 | |
|   IN      CHAR16                    Char
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'setsize' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunSetSize (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'comp' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunComp (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'mode' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunMode (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'memmap' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunMemMap (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'compress' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunEfiCompress (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'decompress' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunEfiDecompress (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'dmem' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunDmem (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'loadpcirom' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunLoadPciRom (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'mm' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunMm (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'setvar' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunSetVar (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'sermode' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunSerMode (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'bcfg' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunBcfg (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'pci' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunPci (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'smbiosview' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunSmbiosView (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'dmpstore' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunDmpStore (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'dblk' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunDblk (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'edit' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunEdit (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Function for 'hexedit' command.
 | |
| 
 | |
|   @param[in] ImageHandle  Handle to the Image (NULL if Internal).
 | |
|   @param[in] SystemTable  Pointer to the System Table (NULL if Internal).
 | |
| **/
 | |
| SHELL_STATUS
 | |
| EFIAPI
 | |
| ShellCommandRunHexEdit (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Clear the line at the specified Row.
 | |
|   
 | |
|   @param[in] Row                The row number to be cleared ( start from 1 )
 | |
|   @param[in] LastCol            The last printable column.
 | |
|   @param[in] LastRow            The last printable row.
 | |
| **/
 | |
| VOID
 | |
| EFIAPI
 | |
| EditorClearLine (
 | |
|   IN UINTN Row,
 | |
|   IN UINTN LastCol,
 | |
|   IN UINTN LastRow
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check if file name has illegal characters.
 | |
|   
 | |
|   @param Name       The filename to check.
 | |
| 
 | |
|   @retval TRUE      The filename is ok.
 | |
|   @retval FALSE     The filename is not ok.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| IsValidFileName (
 | |
|   IN CONST CHAR16 *Name
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Find a filename that is valid (not taken) with the given extension.
 | |
| 
 | |
|   @param[in] Extension      The file extension.
 | |
| 
 | |
|   @retval NULL  Something went wrong.
 | |
|   @return the valid filename.
 | |
| **/
 | |
| CHAR16 *
 | |
| EFIAPI
 | |
| EditGetDefaultFileName (
 | |
|   IN CONST CHAR16 *Extension
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Read a file into an allocated buffer.  The buffer is the responsibility 
 | |
|   of the caller to free.
 | |
| 
 | |
|   @param[in]  FileName          The filename of the file to open.
 | |
|   @param[out] Buffer            Upon successful return, the pointer to the 
 | |
|                                 address of the allocated buffer.                                  
 | |
|   @param[out] BufferSize        If not NULL, then the pointer to the size
 | |
|                                 of the allocated buffer.
 | |
|   @param[out] ReadOnly          Upon successful return TRUE if the file is
 | |
|                                 read only.  FALSE otherwise.
 | |
| 
 | |
|   @retval EFI_NOT_FOUND         The filename did not represent a file in the 
 | |
|                                 file system.  Directories cannot be read with
 | |
|                                 this method.
 | |
|   @retval EFI_SUCCESS           The file was read into the buffer.
 | |
|   @retval EFI_OUT_OF_RESOURCES  A memory allocation failed.
 | |
|   @retval EFI_LOAD_ERROR        The file read operation failed.
 | |
|   @retval EFI_INVALID_PARAMETER A parameter was invalid.
 | |
|   @retval EFI_INVALID_PARAMETER FileName was NULL.
 | |
|   @retval EFI_INVALID_PARAMETER FileName was a directory.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| ReadFileIntoBuffer (
 | |
|   IN CONST CHAR16 *FileName,
 | |
|   OUT VOID        **Buffer,
 | |
|   OUT UINTN       *BufferSize OPTIONAL,
 | |
|   OUT BOOLEAN     *ReadOnly
 | |
|   );
 | |
| 
 | |
| #endif
 |