Member functions of EFI_SHELL_PARAMETERS_PROTOCOL and functions for creation,\r
manipulation, and initialization of EFI_SHELL_PARAMETERS_PROTOCOL.\r
\r
+ (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
Copyright (C) 2014, Red Hat, Inc.\r
(C) Copyright 2013 Hewlett-Packard Development Company, L.P.<BR>\r
- Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
@param[in] String the string to parse\r
**/\r
CONST CHAR16*\r
-EFIAPI\r
FindEndOfParameter(\r
IN CONST CHAR16 *String\r
)\r
@return EFI_NOT_FOUND A closing " could not be found on the specified string\r
**/\r
EFI_STATUS\r
-EFIAPI\r
GetNextParameter(\r
IN OUT CHAR16 **Walker,\r
IN OUT CHAR16 **TempParameter,\r
@return EFI_OUT_OF_RESOURCES a memory allocation failed.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
ParseCommandLineToArgs(\r
IN CONST CHAR16 *CommandLine,\r
IN BOOLEAN StripQuotation,\r
@sa ParseCommandLineToArgs\r
**/\r
EFI_STATUS\r
-EFIAPI\r
CreatePopulateInstallShellParametersProtocol (\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL **NewShellParameters,\r
IN OUT BOOLEAN *RootShellInstance\r
@sa UninstallProtocolInterface\r
**/\r
EFI_STATUS\r
-EFIAPI\r
CleanUpShellParametersProtocol (\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *NewShellParameters\r
)\r
@return An error upon failure.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
IsUnicodeFile(\r
IN CONST CHAR16 *FileName\r
)\r
@param[in, out] TheString A pointer to the string to update.\r
**/\r
VOID\r
-EFIAPI\r
StripQuotes (\r
IN OUT CHAR16 *TheString\r
)\r
@return The modified FileName.\r
**/\r
CHAR16*\r
-EFIAPI\r
FixFileName (\r
IN CHAR16 *FileName\r
)\r
@return The modified FileName.\r
**/\r
CHAR16*\r
-EFIAPI\r
FixVarName (\r
IN CHAR16 *FileName\r
)\r
@retval EFI_SUCCESS The unicode file tag has been moved successfully.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
RemoveFileTag(\r
IN SHELL_FILE_HANDLE *Handle\r
)\r
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
UpdateStdInStdOutStdErr(\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,\r
IN CHAR16 *NewCommandLine,\r
StrnCpyS(CommandLineCopy, StrSize(CommandLineCopy)/sizeof(CHAR16), NewCommandLine, StrLen(NewCommandLine));\r
\r
if (FirstLocation != CommandLineCopy + StrLen(CommandLineCopy)\r
- && ((UINTN)(FirstLocation - CommandLineCopy) < StrLen(NewCommandLine))\r
+ && (((UINTN)FirstLocation - (UINTN)CommandLineCopy)/sizeof(CHAR16) < StrLen(NewCommandLine))\r
){\r
- *(NewCommandLine + (UINTN)(FirstLocation - CommandLineCopy)) = CHAR_NULL;\r
+ *(NewCommandLine + ((UINTN)FirstLocation - (UINTN)CommandLineCopy)/sizeof(CHAR16)) = CHAR_NULL;\r
}\r
\r
if (!EFI_ERROR(Status)) {\r
if (TempHandle == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r
} else {\r
- if (StrStr(StdOutFileName, L"NUL")==StdOutFileName) {\r
+ if (gUnicodeCollation->MetaiMatch (gUnicodeCollation, StdOutFileName, L"NUL")) {\r
//no-op\r
} else if (!OutAppend && OutUnicode && !EFI_ERROR(Status)) {\r
Status = WriteFileTag (TempHandle);\r
@param[in] SystemTableInfo Pointer to old system table information.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
RestoreStdInStdOutStdErr (\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,\r
IN SHELL_FILE_HANDLE *OldStdIn,\r
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
UpdateArgcArgv(\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,\r
IN CONST CHAR16 *NewCommandLine,\r
@param[in] OldArgc pointer to old number of items in Argv list\r
**/\r
VOID\r
-EFIAPI\r
RestoreArgcArgv(\r
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,\r
IN CHAR16 ***OldArgv,\r