/** @file | |
Main file for NULL named library for level 2 shell command functions. | |
these functions are: | |
attrib, cd, cp, date*, time*, rm, reset, | |
load, ls, map, mkdir, mv, parse, set, timezone* | |
* functions are non-interactive only | |
Copyright (c) 2009 - 2014, 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_LEVEL2_COMMANDS_LIB_H_ | |
#define _UEFI_SHELL_LEVEL2_COMMANDS_LIB_H_ | |
#include <Uefi.h> | |
#include <ShellBase.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 <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/UefiLib.h> | |
#include <Library/UefiRuntimeServicesTableLib.h> | |
#include <Library/UefiBootServicesTableLib.h> | |
#include <Library/HiiLib.h> | |
#include <Library/SortLib.h> | |
#include <Library/FileHandleLib.h> | |
extern CONST CHAR16 mFileName[]; | |
extern EFI_HANDLE gShellLevel2HiiHandle; | |
/** | |
Function for 'attrib' 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 | |
ShellCommandRunAttrib ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'date' 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 | |
ShellCommandRunDate ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'time' 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 | |
ShellCommandRunTime ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'load' 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 | |
ShellCommandRunLoad ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'ls' 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 | |
ShellCommandRunLs ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'map' 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 | |
ShellCommandRunMap ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'reset' 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 | |
ShellCommandRunReset ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'timezone' 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 | |
ShellCommandRunTimeZone ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'set' 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 | |
ShellCommandRunSet ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'mkdir' 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 | |
ShellCommandRunMkDir ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'cd' 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 | |
ShellCommandRunCd ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'cp' 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 | |
ShellCommandRunCp ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'parse' 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 | |
ShellCommandRunParse ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'rm' 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 | |
ShellCommandRunRm ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function for 'mv' 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 | |
ShellCommandRunMv ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
returns a fully qualified directory (contains a map drive at the begining) | |
path from a unknown directory path. | |
If Path is already fully qualified this will return a duplicat otherwise this | |
will use get the current directory and use that to build the fully qualified | |
version. | |
if the return value is not NULL it must be caller freed. | |
@param[in] Path The unknown Path Value | |
@retval NULL A memory allocation failed | |
@retval NULL a fully qualified path could not be discovered. | |
@retval other pointer to a fuly qualified path. | |
**/ | |
CHAR16* | |
EFIAPI | |
GetFullyQualifiedPath( | |
IN CONST CHAR16* Path | |
); | |
/** | |
Function to verify all intermediate directories in the path. | |
@param[in] Path The pointer to the path to fix. | |
@retval EFI_SUCCESS The operation was successful. | |
**/ | |
EFI_STATUS | |
EFIAPI | |
VerifyIntermediateDirectories ( | |
IN CONST CHAR16 *Path | |
); | |
/** | |
CaseInsensitive length limited string comparison. | |
@param[in] Source Pointer to first string. | |
@param[in] Target Pointer to second string. | |
@param[in] Count Number of characters to compare. | |
@retval 0 The strings are the same. | |
@return non-zero if the strings are different. | |
**/ | |
CONST CHAR16* | |
EFIAPI | |
StrniCmp( | |
IN CONST CHAR16 *Source, | |
IN CONST CHAR16 *Target, | |
IN CONST UINTN Count | |
); | |
/** | |
Cleans off all the quotes in the string. | |
@param[in] OriginalString pointer to the string to be cleaned. | |
@param[out] CleanString The new string with all quotes removed. | |
Memory allocated in the function and free | |
by caller. | |
@retval EFI_SUCCESS The operation was successful. | |
**/ | |
EFI_STATUS | |
EFIAPI | |
ShellLevel2StripQuotes ( | |
IN CONST CHAR16 *OriginalString, | |
OUT CHAR16 **CleanString | |
); | |
/** | |
Function for 'Vol' 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 | |
ShellCommandRunVol ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
); | |
/** | |
Function to Copy one file to another location | |
If the destination exists the user will be prompted and the result put into *resp | |
@param[in] Source pointer to source file name | |
@param[in] Dest pointer to destination file name | |
@param[out] Resp pointer to response from question. Pass back on looped calling | |
@param[in] SilentMode whether to run in quiet mode or not | |
@retval SHELL_SUCCESS The source file was copied to the destination | |
**/ | |
SHELL_STATUS | |
EFIAPI | |
CopySingleFile( | |
IN CONST CHAR16 *Source, | |
IN CONST CHAR16 *Dest, | |
OUT VOID **Resp, | |
IN BOOLEAN SilentMode | |
); | |
/** | |
Delete a node and all nodes under it (including sub directories). | |
@param[in] Node The node to start deleting with. | |
@param[in] Quiet TRUE to print no messages. | |
@retval SHELL_SUCCESS The operation was successful. | |
@retval SHELL_ACCESS_DENIED A file was read only. | |
@retval SHELL_ABORTED The abort message was received. | |
@retval SHELL_DEVICE_ERROR A device error occured reading this Node. | |
**/ | |
SHELL_STATUS | |
EFIAPI | |
CascadeDelete( | |
IN EFI_SHELL_FILE_INFO *Node, | |
IN CONST BOOLEAN Quiet | |
); | |
#endif | |