ShellPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the ShellPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
c411b485b6
commit
47d20b54f9
File diff suppressed because it is too large
Load Diff
@ -12,31 +12,31 @@
|
||||
|
||||
#define CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('c', 'o', 'P', 'D')
|
||||
|
||||
typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{
|
||||
UINTN Signature;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL OurConOut; ///< the protocol we installed onto the system table
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OldConOut; ///< old protocol to reinstall upon exiting
|
||||
EFI_HANDLE OldConHandle; ///< old protocol handle
|
||||
UINTN ScreenCount; ///< How many screens worth of data to save
|
||||
CHAR16 *Buffer; ///< Buffer to save data
|
||||
UINTN BufferSize; ///< size of buffer in bytes
|
||||
typedef struct _CONSOLE_LOGGER_PRIVATE_DATA {
|
||||
UINTN Signature;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL OurConOut; ///< the protocol we installed onto the system table
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OldConOut; ///< old protocol to reinstall upon exiting
|
||||
EFI_HANDLE OldConHandle; ///< old protocol handle
|
||||
UINTN ScreenCount; ///< How many screens worth of data to save
|
||||
CHAR16 *Buffer; ///< Buffer to save data
|
||||
UINTN BufferSize; ///< size of buffer in bytes
|
||||
|
||||
// start row is the top of the screen
|
||||
UINTN OriginalStartRow; ///< What the originally visible start row was
|
||||
UINTN CurrentStartRow; ///< what the currently visible start row is
|
||||
// start row is the top of the screen
|
||||
UINTN OriginalStartRow; ///< What the originally visible start row was
|
||||
UINTN CurrentStartRow; ///< what the currently visible start row is
|
||||
|
||||
UINTN RowsPerScreen; ///< how many rows the screen can display
|
||||
UINTN ColsPerScreen; ///< how many columns the screen can display
|
||||
UINTN RowsPerScreen; ///< how many rows the screen can display
|
||||
UINTN ColsPerScreen; ///< how many columns the screen can display
|
||||
|
||||
INT32 *Attributes; ///< Buffer for Attribute to be saved for each character
|
||||
UINTN AttribSize; ///< Size of Attributes in bytes
|
||||
INT32 *Attributes; ///< Buffer for Attribute to be saved for each character
|
||||
UINTN AttribSize; ///< Size of Attributes in bytes
|
||||
|
||||
EFI_SIMPLE_TEXT_OUTPUT_MODE HistoryMode; ///< mode of the history log
|
||||
BOOLEAN Enabled; ///< Set to FALSE when a break is requested.
|
||||
UINTN RowCounter; ///< Initial row of each print job.
|
||||
EFI_SIMPLE_TEXT_OUTPUT_MODE HistoryMode; ///< mode of the history log
|
||||
BOOLEAN Enabled; ///< Set to FALSE when a break is requested.
|
||||
UINTN RowCounter; ///< Initial row of each print job.
|
||||
} CONSOLE_LOGGER_PRIVATE_DATA;
|
||||
|
||||
#define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE)
|
||||
#define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE)
|
||||
|
||||
/**
|
||||
Install our intermediate ConOut into the system table to
|
||||
@ -52,9 +52,9 @@ typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{
|
||||
@sa InstallProtocolInterface
|
||||
**/
|
||||
EFI_STATUS
|
||||
ConsoleLoggerInstall(
|
||||
IN CONST UINTN ScreensToSave,
|
||||
OUT CONSOLE_LOGGER_PRIVATE_DATA **ConsoleInfo
|
||||
ConsoleLoggerInstall (
|
||||
IN CONST UINTN ScreensToSave,
|
||||
OUT CONSOLE_LOGGER_PRIVATE_DATA **ConsoleInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -67,8 +67,8 @@ ConsoleLoggerInstall(
|
||||
@return other The operation failed. This was from UninstallProtocolInterface.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ConsoleLoggerUninstall(
|
||||
IN OUT CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
ConsoleLoggerUninstall (
|
||||
IN OUT CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -84,10 +84,10 @@ ConsoleLoggerUninstall(
|
||||
@param[in] ConsoleInfo The pointer to the instance of the console logger information.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ConsoleLoggerDisplayHistory(
|
||||
IN CONST BOOLEAN Forward,
|
||||
IN CONST UINTN Rows,
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
ConsoleLoggerDisplayHistory (
|
||||
IN CONST BOOLEAN Forward,
|
||||
IN CONST UINTN Rows,
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -100,8 +100,8 @@ ConsoleLoggerDisplayHistory(
|
||||
@sa UpdateDisplayFromHistory
|
||||
**/
|
||||
EFI_STATUS
|
||||
ConsoleLoggerStopHistory(
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
ConsoleLoggerStopHistory (
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -112,8 +112,8 @@ ConsoleLoggerStopHistory(
|
||||
@return other The operation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
UpdateDisplayFromHistory(
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
UpdateDisplayFromHistory (
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -129,8 +129,8 @@ UpdateDisplayFromHistory(
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConsoleLoggerReset (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
/**
|
||||
@ -151,9 +151,9 @@ ConsoleLoggerReset (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConsoleLoggerOutputString(
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
ConsoleLoggerOutputString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
);
|
||||
|
||||
/**
|
||||
@ -173,8 +173,8 @@ ConsoleLoggerOutputString(
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConsoleLoggerTestString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
);
|
||||
|
||||
/**
|
||||
@ -237,8 +237,8 @@ ConsoleLoggerSetMode (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConsoleLoggerSetAttribute (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Attribute
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Attribute
|
||||
);
|
||||
|
||||
/**
|
||||
@ -275,8 +275,8 @@ EFI_STATUS
|
||||
EFIAPI
|
||||
ConsoleLoggerSetCursorPosition (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Column,
|
||||
IN UINTN Row
|
||||
IN UINTN Column,
|
||||
IN UINTN Row
|
||||
);
|
||||
|
||||
/**
|
||||
@ -309,9 +309,8 @@ ConsoleLoggerEnableCursor (
|
||||
history buffers.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ConsoleLoggerResetBuffers(
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
ConsoleLoggerResetBuffers (
|
||||
IN CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo
|
||||
);
|
||||
|
||||
#endif //_CONSOLE_LOGGER_HEADER_
|
||||
|
||||
|
@ -9,20 +9,20 @@
|
||||
|
||||
#include "Shell.h"
|
||||
|
||||
extern BOOLEAN AsciiRedirection;
|
||||
extern BOOLEAN AsciiRedirection;
|
||||
|
||||
typedef struct {
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE TheHandle;
|
||||
UINT64 RemainingBytesOfInputFile;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE TheHandle;
|
||||
UINT64 RemainingBytesOfInputFile;
|
||||
} SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
|
||||
|
||||
typedef struct {
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOut;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE TheHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalSimpleTextOut;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOut;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE TheHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalSimpleTextOut;
|
||||
} SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
|
||||
|
||||
/**
|
||||
@ -36,8 +36,8 @@ typedef struct {
|
||||
VOID
|
||||
EFIAPI
|
||||
ConInWaitForKey (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
gBS->SignalEvent (Event);
|
||||
@ -53,9 +53,9 @@ ConInWaitForKey (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextInReset(
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
FileBasedSimpleTextInReset (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -71,18 +71,18 @@ FileBasedSimpleTextInReset(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextInReadKeyStroke(
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
|
||||
IN OUT EFI_INPUT_KEY *Key
|
||||
FileBasedSimpleTextInReadKeyStroke (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
|
||||
IN OUT EFI_INPUT_KEY *Key
|
||||
)
|
||||
{
|
||||
UINTN Size;
|
||||
UINTN CharSize;
|
||||
UINTN Size;
|
||||
UINTN CharSize;
|
||||
|
||||
//
|
||||
// Verify the parameters
|
||||
//
|
||||
if (Key == NULL || This == NULL) {
|
||||
if ((Key == NULL) || (This == NULL)) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
@ -93,13 +93,14 @@ FileBasedSimpleTextInReadKeyStroke(
|
||||
return (EFI_NOT_READY);
|
||||
}
|
||||
|
||||
Size = sizeof(CHAR16);
|
||||
Size = sizeof (CHAR16);
|
||||
|
||||
if(!AsciiRedirection) {
|
||||
CharSize = sizeof(CHAR16);
|
||||
if (!AsciiRedirection) {
|
||||
CharSize = sizeof (CHAR16);
|
||||
} else {
|
||||
CharSize = sizeof(CHAR8);
|
||||
CharSize = sizeof (CHAR8);
|
||||
}
|
||||
|
||||
//
|
||||
// Decrement the amount of free space by Size or set to zero (for odd length files)
|
||||
//
|
||||
@ -110,10 +111,11 @@ FileBasedSimpleTextInReadKeyStroke(
|
||||
}
|
||||
|
||||
Key->ScanCode = 0;
|
||||
return (ShellInfoObject.NewEfiShellProtocol->ReadFile(
|
||||
((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)This)->FileHandle,
|
||||
&Size,
|
||||
&Key->UnicodeChar));
|
||||
return (ShellInfoObject.NewEfiShellProtocol->ReadFile (
|
||||
((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)This)->FileHandle,
|
||||
&Size,
|
||||
&Key->UnicodeChar
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,8 +128,8 @@ FileBasedSimpleTextInReadKeyStroke(
|
||||
@retval NULL There was insufficient memory available.
|
||||
@return A pointer to the allocated protocol structure;
|
||||
**/
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL*
|
||||
CreateSimpleTextInOnFile(
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *
|
||||
CreateSimpleTextInOnFile (
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation
|
||||
)
|
||||
@ -137,17 +139,17 @@ CreateSimpleTextInOnFile(
|
||||
UINT64 CurrentPosition;
|
||||
UINT64 FileSize;
|
||||
|
||||
if (HandleLocation == NULL || FileHandleToUse == NULL) {
|
||||
if ((HandleLocation == NULL) || (FileHandleToUse == NULL)) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ProtocolToReturn = AllocateZeroPool(sizeof(SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL));
|
||||
ProtocolToReturn = AllocateZeroPool (sizeof (SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL));
|
||||
if (ProtocolToReturn == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ShellGetFileSize (FileHandleToUse, &FileSize);
|
||||
ShellGetFilePosition(FileHandleToUse, &CurrentPosition);
|
||||
ShellGetFileSize (FileHandleToUse, &FileSize);
|
||||
ShellGetFilePosition (FileHandleToUse, &CurrentPosition);
|
||||
|
||||
//
|
||||
// Initialize the protocol members
|
||||
@ -165,21 +167,23 @@ CreateSimpleTextInOnFile(
|
||||
&ProtocolToReturn->SimpleTextIn.WaitForKey
|
||||
);
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreePool(ProtocolToReturn);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreePool (ProtocolToReturn);
|
||||
return (NULL);
|
||||
}
|
||||
///@todo possibly also install SimpleTextInputEx on the handle at this point.
|
||||
Status = gBS->InstallProtocolInterface(
|
||||
&(ProtocolToReturn->TheHandle),
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&(ProtocolToReturn->SimpleTextIn));
|
||||
if (!EFI_ERROR(Status)) {
|
||||
|
||||
/// @todo possibly also install SimpleTextInputEx on the handle at this point.
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&(ProtocolToReturn->TheHandle),
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&(ProtocolToReturn->SimpleTextIn)
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
*HandleLocation = ProtocolToReturn->TheHandle;
|
||||
return ((EFI_SIMPLE_TEXT_INPUT_PROTOCOL*)ProtocolToReturn);
|
||||
return ((EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)ProtocolToReturn);
|
||||
} else {
|
||||
FreePool(ProtocolToReturn);
|
||||
FreePool (ProtocolToReturn);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
@ -193,26 +197,27 @@ CreateSimpleTextInOnFile(
|
||||
@retval EFI_SUCCESS The object was closed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
CloseSimpleTextInOnFile(
|
||||
CloseSimpleTextInOnFile (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *SimpleTextIn
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status1;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status1;
|
||||
|
||||
if (SimpleTextIn == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
Status = gBS->CloseEvent(((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)SimpleTextIn)->SimpleTextIn.WaitForKey);
|
||||
Status = gBS->CloseEvent (((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)SimpleTextIn)->SimpleTextIn.WaitForKey);
|
||||
|
||||
Status1 = gBS->UninstallProtocolInterface(
|
||||
((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL*)SimpleTextIn)->TheHandle,
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
&(((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL*)SimpleTextIn)->SimpleTextIn));
|
||||
Status1 = gBS->UninstallProtocolInterface (
|
||||
((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)SimpleTextIn)->TheHandle,
|
||||
&gEfiSimpleTextInProtocolGuid,
|
||||
&(((SHELL_EFI_SIMPLE_TEXT_INPUT_PROTOCOL *)SimpleTextIn)->SimpleTextIn)
|
||||
);
|
||||
|
||||
FreePool(SimpleTextIn);
|
||||
if (!EFI_ERROR(Status)) {
|
||||
FreePool (SimpleTextIn);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
return (Status1);
|
||||
} else {
|
||||
return (Status);
|
||||
@ -230,8 +235,8 @@ CloseSimpleTextInOnFile(
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutReset (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -249,8 +254,8 @@ FileBasedSimpleTextOutReset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutTestString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -270,22 +275,23 @@ FileBasedSimpleTextOutTestString (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutQueryMode (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN ModeNumber,
|
||||
OUT UINTN *Columns,
|
||||
OUT UINTN *Rows
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN ModeNumber,
|
||||
OUT UINTN *Columns,
|
||||
OUT UINTN *Rows
|
||||
)
|
||||
{
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *PassThruProtocol;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *PassThruProtocol;
|
||||
|
||||
PassThruProtocol = ((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)This)->OriginalSimpleTextOut;
|
||||
|
||||
// Pass the QueryMode call thru to the original SimpleTextOutProtocol
|
||||
return (PassThruProtocol->QueryMode(
|
||||
PassThruProtocol,
|
||||
ModeNumber,
|
||||
Columns,
|
||||
Rows));
|
||||
return (PassThruProtocol->QueryMode (
|
||||
PassThruProtocol,
|
||||
ModeNumber,
|
||||
Columns,
|
||||
Rows
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -300,7 +306,7 @@ EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutSetMode (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN ModeNumber
|
||||
IN UINTN ModeNumber
|
||||
)
|
||||
{
|
||||
return (EFI_UNSUPPORTED);
|
||||
@ -320,8 +326,8 @@ FileBasedSimpleTextOutSetMode (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutSetAttribute (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Attribute
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Attribute
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -357,8 +363,8 @@ EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutSetCursorPosition (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Column,
|
||||
IN UINTN Row
|
||||
IN UINTN Column,
|
||||
IN UINTN Row
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -377,7 +383,7 @@ EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutEnableCursor (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN Visible
|
||||
IN BOOLEAN Visible
|
||||
)
|
||||
{
|
||||
return (EFI_SUCCESS);
|
||||
@ -402,16 +408,18 @@ FileBasedSimpleTextOutEnableCursor (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBasedSimpleTextOutOutputString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
)
|
||||
{
|
||||
UINTN Size;
|
||||
Size = StrLen(WString) * sizeof(CHAR16);
|
||||
return (ShellInfoObject.NewEfiShellProtocol->WriteFile(
|
||||
((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)This)->FileHandle,
|
||||
&Size,
|
||||
WString));
|
||||
UINTN Size;
|
||||
|
||||
Size = StrLen (WString) * sizeof (CHAR16);
|
||||
return (ShellInfoObject.NewEfiShellProtocol->WriteFile (
|
||||
((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)This)->FileHandle,
|
||||
&Size,
|
||||
WString
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -425,24 +433,25 @@ FileBasedSimpleTextOutOutputString (
|
||||
@retval NULL There was insufficient memory available.
|
||||
@return A pointer to the allocated protocol structure;
|
||||
**/
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*
|
||||
CreateSimpleTextOutOnFile(
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation,
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalProtocol
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *
|
||||
CreateSimpleTextOutOnFile (
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation,
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalProtocol
|
||||
)
|
||||
{
|
||||
SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ProtocolToReturn;
|
||||
EFI_STATUS Status;
|
||||
SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ProtocolToReturn;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (HandleLocation == NULL || FileHandleToUse == NULL) {
|
||||
if ((HandleLocation == NULL) || (FileHandleToUse == NULL)) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ProtocolToReturn = AllocateZeroPool(sizeof(SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL));
|
||||
ProtocolToReturn = AllocateZeroPool (sizeof (SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL));
|
||||
if (ProtocolToReturn == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ProtocolToReturn->FileHandle = FileHandleToUse;
|
||||
ProtocolToReturn->OriginalSimpleTextOut = OriginalProtocol;
|
||||
ProtocolToReturn->SimpleTextOut.Reset = FileBasedSimpleTextOutReset;
|
||||
@ -454,11 +463,12 @@ CreateSimpleTextOutOnFile(
|
||||
ProtocolToReturn->SimpleTextOut.SetCursorPosition = FileBasedSimpleTextOutSetCursorPosition;
|
||||
ProtocolToReturn->SimpleTextOut.EnableCursor = FileBasedSimpleTextOutEnableCursor;
|
||||
ProtocolToReturn->SimpleTextOut.OutputString = FileBasedSimpleTextOutOutputString;
|
||||
ProtocolToReturn->SimpleTextOut.Mode = AllocateZeroPool(sizeof(EFI_SIMPLE_TEXT_OUTPUT_MODE));
|
||||
ProtocolToReturn->SimpleTextOut.Mode = AllocateZeroPool (sizeof (EFI_SIMPLE_TEXT_OUTPUT_MODE));
|
||||
if (ProtocolToReturn->SimpleTextOut.Mode == NULL) {
|
||||
FreePool(ProtocolToReturn);
|
||||
FreePool (ProtocolToReturn);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ProtocolToReturn->SimpleTextOut.Mode->MaxMode = OriginalProtocol->Mode->MaxMode;
|
||||
ProtocolToReturn->SimpleTextOut.Mode->Mode = OriginalProtocol->Mode->Mode;
|
||||
ProtocolToReturn->SimpleTextOut.Mode->Attribute = OriginalProtocol->Mode->Attribute;
|
||||
@ -466,17 +476,18 @@ CreateSimpleTextOutOnFile(
|
||||
ProtocolToReturn->SimpleTextOut.Mode->CursorRow = OriginalProtocol->Mode->CursorRow;
|
||||
ProtocolToReturn->SimpleTextOut.Mode->CursorVisible = OriginalProtocol->Mode->CursorVisible;
|
||||
|
||||
Status = gBS->InstallProtocolInterface(
|
||||
&(ProtocolToReturn->TheHandle),
|
||||
&gEfiSimpleTextOutProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&(ProtocolToReturn->SimpleTextOut));
|
||||
if (!EFI_ERROR(Status)) {
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&(ProtocolToReturn->TheHandle),
|
||||
&gEfiSimpleTextOutProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&(ProtocolToReturn->SimpleTextOut)
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
*HandleLocation = ProtocolToReturn->TheHandle;
|
||||
return ((EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*)ProtocolToReturn);
|
||||
return ((EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)ProtocolToReturn);
|
||||
} else {
|
||||
SHELL_FREE_NON_NULL(ProtocolToReturn->SimpleTextOut.Mode);
|
||||
SHELL_FREE_NON_NULL(ProtocolToReturn);
|
||||
SHELL_FREE_NON_NULL (ProtocolToReturn->SimpleTextOut.Mode);
|
||||
SHELL_FREE_NON_NULL (ProtocolToReturn);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
@ -490,19 +501,22 @@ CreateSimpleTextOutOnFile(
|
||||
@retval EFI_SUCCESS The object was closed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
CloseSimpleTextOutOnFile(
|
||||
CloseSimpleTextOutOnFile (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (SimpleTextOut == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
Status = gBS->UninstallProtocolInterface(
|
||||
((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*)SimpleTextOut)->TheHandle,
|
||||
&gEfiSimpleTextOutProtocolGuid,
|
||||
&(((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*)SimpleTextOut)->SimpleTextOut));
|
||||
FreePool(SimpleTextOut->Mode);
|
||||
FreePool(SimpleTextOut);
|
||||
|
||||
Status = gBS->UninstallProtocolInterface (
|
||||
((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)SimpleTextOut)->TheHandle,
|
||||
&gEfiSimpleTextOutProtocolGuid,
|
||||
&(((SHELL_EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *)SimpleTextOut)->SimpleTextOut)
|
||||
);
|
||||
FreePool (SimpleTextOut->Mode);
|
||||
FreePool (SimpleTextOut);
|
||||
return (Status);
|
||||
}
|
||||
|
@ -20,8 +20,8 @@
|
||||
@retval NULL There was insufficient memory available.
|
||||
@return A pointer to the allocated protocol structure;
|
||||
**/
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL*
|
||||
CreateSimpleTextInOnFile(
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *
|
||||
CreateSimpleTextInOnFile (
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation
|
||||
);
|
||||
@ -35,7 +35,7 @@ CreateSimpleTextInOnFile(
|
||||
@retval EFI_SUCCESS The object was closed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
CloseSimpleTextInOnFile(
|
||||
CloseSimpleTextInOnFile (
|
||||
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *SimpleTextIn
|
||||
);
|
||||
|
||||
@ -50,11 +50,11 @@ CloseSimpleTextInOnFile(
|
||||
@retval NULL There was insufficient memory available.
|
||||
@return A pointer to the allocated protocol structure;
|
||||
**/
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL*
|
||||
CreateSimpleTextOutOnFile(
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation,
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalProtocol
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *
|
||||
CreateSimpleTextOutOnFile (
|
||||
IN SHELL_FILE_HANDLE FileHandleToUse,
|
||||
IN EFI_HANDLE *HandleLocation,
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *OriginalProtocol
|
||||
);
|
||||
|
||||
/**
|
||||
@ -66,9 +66,8 @@ CreateSimpleTextOutOnFile(
|
||||
@retval EFI_SUCCESS The object was closed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
CloseSimpleTextOutOnFile(
|
||||
CloseSimpleTextOutOnFile (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut
|
||||
);
|
||||
|
||||
#endif //_SHELL_CONSOLE_WRAPPERS_HEADER_
|
||||
|
||||
|
@ -18,9 +18,9 @@
|
||||
**/
|
||||
VOID
|
||||
MoveCursorBackward (
|
||||
IN UINTN LineLength,
|
||||
IN OUT UINTN *Column,
|
||||
IN OUT UINTN *Row
|
||||
IN UINTN LineLength,
|
||||
IN OUT UINTN *Column,
|
||||
IN OUT UINTN *Row
|
||||
);
|
||||
|
||||
/**
|
||||
@ -33,10 +33,10 @@ MoveCursorBackward (
|
||||
**/
|
||||
VOID
|
||||
MoveCursorForward (
|
||||
IN UINTN LineLength,
|
||||
IN UINTN TotalRow,
|
||||
IN OUT UINTN *Column,
|
||||
IN OUT UINTN *Row
|
||||
IN UINTN LineLength,
|
||||
IN UINTN TotalRow,
|
||||
IN OUT UINTN *Column,
|
||||
IN OUT UINTN *Row
|
||||
);
|
||||
|
||||
/**
|
||||
@ -50,10 +50,9 @@ MoveCursorForward (
|
||||
**/
|
||||
VOID
|
||||
PrintCommandHistory (
|
||||
IN CONST UINTN TotalCols,
|
||||
IN CONST UINTN TotalRows,
|
||||
IN CONST UINTN StartColumn
|
||||
IN CONST UINTN TotalCols,
|
||||
IN CONST UINTN TotalRows,
|
||||
IN CONST UINTN StartColumn
|
||||
);
|
||||
|
||||
#endif //_FILE_HANDLE_INTERNAL_HEADER_
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,34 +10,34 @@
|
||||
#define _SHELL_FILE_HANDLE_WRAPPERS_HEADER_
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY Link;
|
||||
CHAR16* Buffer;
|
||||
LIST_ENTRY Link;
|
||||
CHAR16 *Buffer;
|
||||
} SHELL_LINE_LIST;
|
||||
|
||||
typedef struct {
|
||||
UINTN LogCount;
|
||||
SHELL_LINE_LIST *Log;
|
||||
UINTN LogCount;
|
||||
SHELL_LINE_LIST *Log;
|
||||
} SHELL_LINE_LOG;
|
||||
|
||||
///
|
||||
/// FILE styte interfaces for StdIn.
|
||||
///
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdIn;
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdIn;
|
||||
|
||||
///
|
||||
/// FILE styte interfaces for StdOut.
|
||||
///
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdOut;
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdOut;
|
||||
|
||||
///
|
||||
/// FILE styte interfaces for StdErr.
|
||||
///
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdErr;
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceStdErr;
|
||||
|
||||
///
|
||||
/// FILE style interface for NUL file.
|
||||
///
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceNulFile;
|
||||
extern EFI_FILE_PROTOCOL FileInterfaceNulFile;
|
||||
|
||||
/**
|
||||
Creates a EFI_FILE_PROTOCOL (almost) object for using to access
|
||||
@ -48,9 +48,9 @@ extern EFI_FILE_PROTOCOL FileInterfaceNulFile;
|
||||
@retval NULL Memory could not be allocated.
|
||||
@return other a pointer to an EFI_FILE_PROTOCOL structure
|
||||
**/
|
||||
EFI_FILE_PROTOCOL*
|
||||
CreateFileInterfaceEnv(
|
||||
CONST CHAR16 *EnvName
|
||||
EFI_FILE_PROTOCOL *
|
||||
CreateFileInterfaceEnv (
|
||||
CONST CHAR16 *EnvName
|
||||
);
|
||||
|
||||
/**
|
||||
@ -62,9 +62,9 @@ CreateFileInterfaceEnv(
|
||||
@retval NULL Memory could not be allocated.
|
||||
@return other a pointer to an EFI_FILE_PROTOCOL structure
|
||||
**/
|
||||
EFI_FILE_PROTOCOL*
|
||||
CreateFileInterfaceMem(
|
||||
IN CONST BOOLEAN Unicode
|
||||
EFI_FILE_PROTOCOL *
|
||||
CreateFileInterfaceMem (
|
||||
IN CONST BOOLEAN Unicode
|
||||
);
|
||||
|
||||
/**
|
||||
@ -77,11 +77,10 @@ CreateFileInterfaceMem(
|
||||
@retval NULL Memory could not be allocated.
|
||||
@return other a pointer to an EFI_FILE_PROTOCOL structure
|
||||
**/
|
||||
EFI_FILE_PROTOCOL*
|
||||
CreateFileInterfaceFile(
|
||||
EFI_FILE_PROTOCOL *
|
||||
CreateFileInterfaceFile (
|
||||
IN CONST EFI_FILE_PROTOCOL *Template,
|
||||
IN CONST BOOLEAN Unicode
|
||||
);
|
||||
|
||||
#endif //_SHELL_FILE_HANDLE_WRAPPERS_HEADER_
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -51,75 +51,75 @@
|
||||
#include "ConsoleWrappers.h"
|
||||
#include "FileHandleWrappers.h"
|
||||
|
||||
extern CONST CHAR16 mNoNestingEnvVarName[];
|
||||
extern CONST CHAR16 mNoNestingTrue[];
|
||||
extern CONST CHAR16 mNoNestingFalse[];
|
||||
extern CONST CHAR16 mNoNestingEnvVarName[];
|
||||
extern CONST CHAR16 mNoNestingTrue[];
|
||||
extern CONST CHAR16 mNoNestingFalse[];
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY Link; ///< Standard linked list handler.
|
||||
SHELL_FILE_HANDLE SplitStdOut; ///< ConsoleOut for use in the split.
|
||||
SHELL_FILE_HANDLE SplitStdIn; ///< ConsoleIn for use in the split.
|
||||
LIST_ENTRY Link; ///< Standard linked list handler.
|
||||
SHELL_FILE_HANDLE SplitStdOut; ///< ConsoleOut for use in the split.
|
||||
SHELL_FILE_HANDLE SplitStdIn; ///< ConsoleIn for use in the split.
|
||||
} SPLIT_LIST;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Startup:1; ///< Was "-startup" found on command line.
|
||||
UINT32 NoStartup:1; ///< Was "-nostartup" found on command line.
|
||||
UINT32 NoConsoleOut:1; ///< Was "-noconsoleout" found on command line.
|
||||
UINT32 NoConsoleIn:1; ///< Was "-noconsolein" found on command line.
|
||||
UINT32 NoInterrupt:1; ///< Was "-nointerrupt" found on command line.
|
||||
UINT32 NoMap:1; ///< Was "-nomap" found on command line.
|
||||
UINT32 NoVersion:1; ///< Was "-noversion" found on command line.
|
||||
UINT32 Delay:1; ///< Was "-delay[:n] found on command line
|
||||
UINT32 Exit:1; ///< Was "-_exit" found on command line
|
||||
UINT32 NoNest:1; ///< Was "-nonest" found on command line
|
||||
UINT32 Reserved:7; ///< Extra bits
|
||||
UINT32 Startup : 1; ///< Was "-startup" found on command line.
|
||||
UINT32 NoStartup : 1; ///< Was "-nostartup" found on command line.
|
||||
UINT32 NoConsoleOut : 1; ///< Was "-noconsoleout" found on command line.
|
||||
UINT32 NoConsoleIn : 1; ///< Was "-noconsolein" found on command line.
|
||||
UINT32 NoInterrupt : 1; ///< Was "-nointerrupt" found on command line.
|
||||
UINT32 NoMap : 1; ///< Was "-nomap" found on command line.
|
||||
UINT32 NoVersion : 1; ///< Was "-noversion" found on command line.
|
||||
UINT32 Delay : 1; ///< Was "-delay[:n] found on command line
|
||||
UINT32 Exit : 1; ///< Was "-_exit" found on command line
|
||||
UINT32 NoNest : 1; ///< Was "-nonest" found on command line
|
||||
UINT32 Reserved : 7; ///< Extra bits
|
||||
} SHELL_BITS;
|
||||
|
||||
typedef union {
|
||||
SHELL_BITS Bits;
|
||||
UINT16 AllBits;
|
||||
SHELL_BITS Bits;
|
||||
UINT16 AllBits;
|
||||
} SHELL_BIT_UNION;
|
||||
|
||||
typedef struct {
|
||||
SHELL_BIT_UNION BitUnion;
|
||||
UINTN Delay; ///< Seconds of delay default:5.
|
||||
CHAR16 *FileName; ///< Filename to run upon successful initialization.
|
||||
CHAR16 *FileOptions; ///< Options to pass to FileName.
|
||||
SHELL_BIT_UNION BitUnion;
|
||||
UINTN Delay; ///< Seconds of delay default:5.
|
||||
CHAR16 *FileName; ///< Filename to run upon successful initialization.
|
||||
CHAR16 *FileOptions; ///< Options to pass to FileName.
|
||||
} SHELL_INIT_SETTINGS;
|
||||
|
||||
typedef struct {
|
||||
BUFFER_LIST CommandHistory;
|
||||
UINTN VisibleRowNumber;
|
||||
UINTN OriginalVisibleRowNumber;
|
||||
BOOLEAN InsertMode; ///< Is the current typing mode insert (FALSE = overwrite).
|
||||
BUFFER_LIST CommandHistory;
|
||||
UINTN VisibleRowNumber;
|
||||
UINTN OriginalVisibleRowNumber;
|
||||
BOOLEAN InsertMode; ///< Is the current typing mode insert (FALSE = overwrite).
|
||||
} SHELL_VIEWING_SETTINGS;
|
||||
|
||||
typedef struct {
|
||||
EFI_SHELL_PARAMETERS_PROTOCOL *NewShellParametersProtocol;
|
||||
EFI_SHELL_PROTOCOL *NewEfiShellProtocol;
|
||||
BOOLEAN PageBreakEnabled;
|
||||
BOOLEAN RootShellInstance;
|
||||
SHELL_INIT_SETTINGS ShellInitSettings;
|
||||
BUFFER_LIST BufferToFreeList; ///< List of buffers that were returned to the user to free.
|
||||
SHELL_VIEWING_SETTINGS ViewingSettings;
|
||||
EFI_HII_HANDLE HiiHandle; ///< Handle from HiiLib.
|
||||
UINTN LogScreenCount; ///< How many screens of log information to save.
|
||||
EFI_EVENT UserBreakTimer; ///< Timer event for polling for CTRL-C.
|
||||
EFI_DEVICE_PATH_PROTOCOL *ImageDevPath; ///< DevicePath for ourselves.
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath; ///< DevicePath for ourselves.
|
||||
CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo; ///< Pointer for ConsoleInformation.
|
||||
EFI_SHELL_PARAMETERS_PROTOCOL *OldShellParameters; ///< old shell parameters to reinstall upon exiting.
|
||||
SHELL_PROTOCOL_HANDLE_LIST OldShellList; ///< List of other instances to reinstall when closing.
|
||||
SPLIT_LIST SplitList; ///< List of Splits in FILO stack.
|
||||
VOID *CtrlCNotifyHandle1; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle2; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle3; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle4; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle1; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle2; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle3; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle4; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
BOOLEAN HaltOutput; ///< TRUE to start a CTRL-S halt.
|
||||
EFI_SHELL_PARAMETERS_PROTOCOL *NewShellParametersProtocol;
|
||||
EFI_SHELL_PROTOCOL *NewEfiShellProtocol;
|
||||
BOOLEAN PageBreakEnabled;
|
||||
BOOLEAN RootShellInstance;
|
||||
SHELL_INIT_SETTINGS ShellInitSettings;
|
||||
BUFFER_LIST BufferToFreeList; ///< List of buffers that were returned to the user to free.
|
||||
SHELL_VIEWING_SETTINGS ViewingSettings;
|
||||
EFI_HII_HANDLE HiiHandle; ///< Handle from HiiLib.
|
||||
UINTN LogScreenCount; ///< How many screens of log information to save.
|
||||
EFI_EVENT UserBreakTimer; ///< Timer event for polling for CTRL-C.
|
||||
EFI_DEVICE_PATH_PROTOCOL *ImageDevPath; ///< DevicePath for ourselves.
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath; ///< DevicePath for ourselves.
|
||||
CONSOLE_LOGGER_PRIVATE_DATA *ConsoleInfo; ///< Pointer for ConsoleInformation.
|
||||
EFI_SHELL_PARAMETERS_PROTOCOL *OldShellParameters; ///< old shell parameters to reinstall upon exiting.
|
||||
SHELL_PROTOCOL_HANDLE_LIST OldShellList; ///< List of other instances to reinstall when closing.
|
||||
SPLIT_LIST SplitList; ///< List of Splits in FILO stack.
|
||||
VOID *CtrlCNotifyHandle1; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle2; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle3; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlCNotifyHandle4; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle1; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle2; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle3; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
VOID *CtrlSNotifyHandle4; ///< The NotifyHandle returned from SimpleTextInputEx.RegisterKeyNotify.
|
||||
BOOLEAN HaltOutput; ///< TRUE to start a CTRL-S halt.
|
||||
} SHELL_INFO;
|
||||
|
||||
#pragma pack(1)
|
||||
@ -127,12 +127,12 @@ typedef struct {
|
||||
/// HII specific Vendor Device Path definition.
|
||||
///
|
||||
typedef struct {
|
||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL End;
|
||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL End;
|
||||
} SHELL_MAN_HII_VENDOR_DEVICE_PATH;
|
||||
#pragma pack()
|
||||
|
||||
extern SHELL_INFO ShellInfoObject;
|
||||
extern SHELL_INFO ShellInfoObject;
|
||||
|
||||
/**
|
||||
Converts the command line to its post-processed form. this replaces variables and alias' per UEFI Shell spec.
|
||||
@ -144,8 +144,8 @@ extern SHELL_INFO ShellInfoObject;
|
||||
@return some other error occurred
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessCommandLineToFinal(
|
||||
IN OUT CHAR16 **CmdLine
|
||||
ProcessCommandLineToFinal (
|
||||
IN OUT CHAR16 **CmdLine
|
||||
);
|
||||
|
||||
/**
|
||||
@ -154,8 +154,8 @@ ProcessCommandLineToFinal(
|
||||
@param[in] ErrorCode the error code to put into lasterror
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetLastError(
|
||||
IN CONST SHELL_STATUS ErrorCode
|
||||
SetLastError (
|
||||
IN CONST SHELL_STATUS ErrorCode
|
||||
);
|
||||
|
||||
/**
|
||||
@ -164,7 +164,7 @@ SetLastError(
|
||||
@retval EFI_SUCCESS all init commands were run successfully.
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetBuiltInAlias(
|
||||
SetBuiltInAlias (
|
||||
VOID
|
||||
);
|
||||
|
||||
@ -184,8 +184,8 @@ SetBuiltInAlias(
|
||||
**/
|
||||
EFI_STATUS
|
||||
GetDevicePathsForImageAndFile (
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevPath,
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevPath,
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath
|
||||
);
|
||||
|
||||
/**
|
||||
@ -216,7 +216,7 @@ GetDevicePathsForImageAndFile (
|
||||
@retval EFI_SUCCESS the variable is initialized.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessCommandLine(
|
||||
ProcessCommandLine (
|
||||
VOID
|
||||
);
|
||||
|
||||
@ -231,9 +231,9 @@ ProcessCommandLine(
|
||||
@retval EFI_SUCCESS The variable is initialized.
|
||||
**/
|
||||
EFI_STATUS
|
||||
DoStartupScript(
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *ImagePath,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
|
||||
DoStartupScript (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *ImagePath,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
|
||||
);
|
||||
|
||||
/**
|
||||
@ -255,9 +255,9 @@ DoShellPrompt (
|
||||
|
||||
@param Buffer Something to pass to FreePool when the shell is exiting.
|
||||
**/
|
||||
VOID*
|
||||
AddBufferToFreeList(
|
||||
VOID *Buffer
|
||||
VOID *
|
||||
AddBufferToFreeList (
|
||||
VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -266,8 +266,8 @@ AddBufferToFreeList(
|
||||
@param Buffer[in] The line buffer to add.
|
||||
**/
|
||||
VOID
|
||||
AddLineToCommandHistory(
|
||||
IN CONST CHAR16 *Buffer
|
||||
AddLineToCommandHistory (
|
||||
IN CONST CHAR16 *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -281,8 +281,8 @@ AddLineToCommandHistory(
|
||||
@retval EFI_ABORTED the command's operation was aborted
|
||||
**/
|
||||
EFI_STATUS
|
||||
RunCommand(
|
||||
IN CONST CHAR16 *CmdLine
|
||||
RunCommand (
|
||||
IN CONST CHAR16 *CmdLine
|
||||
);
|
||||
|
||||
/**
|
||||
@ -298,12 +298,11 @@ RunCommand(
|
||||
@retval EFI_ABORTED The command's operation was aborted.
|
||||
**/
|
||||
EFI_STATUS
|
||||
RunShellCommand(
|
||||
IN CONST CHAR16 *CmdLine,
|
||||
OUT EFI_STATUS *CommandStatus
|
||||
RunShellCommand (
|
||||
IN CONST CHAR16 *CmdLine,
|
||||
OUT EFI_STATUS *CommandStatus
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Function to process a NSH script file via SHELL_FILE_HANDLE.
|
||||
|
||||
@ -346,11 +345,11 @@ RunScriptFile (
|
||||
@return the location of the first character in the string
|
||||
@retval CHAR_NULL no instance of any character in CharacterList was found in String
|
||||
**/
|
||||
CONST CHAR16*
|
||||
FindFirstCharacter(
|
||||
IN CONST CHAR16 *String,
|
||||
IN CONST CHAR16 *CharacterList,
|
||||
IN CONST CHAR16 EscapeCharacter
|
||||
CONST CHAR16 *
|
||||
FindFirstCharacter (
|
||||
IN CONST CHAR16 *String,
|
||||
IN CONST CHAR16 *CharacterList,
|
||||
IN CONST CHAR16 EscapeCharacter
|
||||
);
|
||||
|
||||
/**
|
||||
@ -359,8 +358,8 @@ FindFirstCharacter(
|
||||
@param[in] String pointer to the string to trim them off.
|
||||
**/
|
||||
EFI_STATUS
|
||||
TrimSpaces(
|
||||
IN CHAR16 **String
|
||||
TrimSpaces (
|
||||
IN CHAR16 **String
|
||||
);
|
||||
|
||||
/**
|
||||
@ -371,7 +370,7 @@ TrimSpaces(
|
||||
**/
|
||||
VOID
|
||||
SaveBufferList (
|
||||
OUT LIST_ENTRY *OldBufferList
|
||||
OUT LIST_ENTRY *OldBufferList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -381,10 +380,7 @@ SaveBufferList (
|
||||
**/
|
||||
VOID
|
||||
RestoreBufferList (
|
||||
IN OUT LIST_ENTRY *OldBufferList
|
||||
IN OUT LIST_ENTRY *OldBufferList
|
||||
);
|
||||
|
||||
|
||||
|
||||
#endif //_SHELL_INTERNAL_HEADER_
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
//
|
||||
// The list is used to cache the environment variables.
|
||||
//
|
||||
ENV_VAR_LIST gShellEnvVarList;
|
||||
ENV_VAR_LIST gShellEnvVarList;
|
||||
|
||||
/**
|
||||
Reports whether an environment variable is Volatile or Non-Volatile.
|
||||
@ -27,8 +27,8 @@ ENV_VAR_LIST gShellEnvVarList;
|
||||
**/
|
||||
EFI_STATUS
|
||||
IsVolatileEnv (
|
||||
IN CONST CHAR16 *EnvVarName,
|
||||
OUT BOOLEAN *Volatile
|
||||
IN CONST CHAR16 *EnvVarName,
|
||||
OUT BOOLEAN *Volatile
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@ -38,29 +38,35 @@ IsVolatileEnv (
|
||||
|
||||
ASSERT (Volatile != NULL);
|
||||
|
||||
Size = 0;
|
||||
Size = 0;
|
||||
Buffer = NULL;
|
||||
|
||||
//
|
||||
// get the variable
|
||||
//
|
||||
Status = gRT->GetVariable((CHAR16*)EnvVarName,
|
||||
&gShellVariableGuid,
|
||||
&Attribs,
|
||||
&Size,
|
||||
Buffer);
|
||||
Status = gRT->GetVariable (
|
||||
(CHAR16 *)EnvVarName,
|
||||
&gShellVariableGuid,
|
||||
&Attribs,
|
||||
&Size,
|
||||
Buffer
|
||||
);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Buffer = AllocateZeroPool(Size);
|
||||
Buffer = AllocateZeroPool (Size);
|
||||
if (Buffer == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
Status = gRT->GetVariable((CHAR16*)EnvVarName,
|
||||
&gShellVariableGuid,
|
||||
&Attribs,
|
||||
&Size,
|
||||
Buffer);
|
||||
FreePool(Buffer);
|
||||
|
||||
Status = gRT->GetVariable (
|
||||
(CHAR16 *)EnvVarName,
|
||||
&gShellVariableGuid,
|
||||
&Attribs,
|
||||
&Size,
|
||||
Buffer
|
||||
);
|
||||
FreePool (Buffer);
|
||||
}
|
||||
|
||||
//
|
||||
// not found means volatile
|
||||
//
|
||||
@ -68,6 +74,7 @@ IsVolatileEnv (
|
||||
*Volatile = TRUE;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
@ -75,7 +82,7 @@ IsVolatileEnv (
|
||||
//
|
||||
// check for the Non Volatile bit
|
||||
//
|
||||
*Volatile = !(BOOLEAN) ((Attribs & EFI_VARIABLE_NON_VOLATILE) == EFI_VARIABLE_NON_VOLATILE);
|
||||
*Volatile = !(BOOLEAN)((Attribs & EFI_VARIABLE_NON_VOLATILE) == EFI_VARIABLE_NON_VOLATILE);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
@ -85,30 +92,33 @@ IsVolatileEnv (
|
||||
@param[in] List The pointer to pointer to list.
|
||||
**/
|
||||
VOID
|
||||
FreeEnvironmentVariableList(
|
||||
IN LIST_ENTRY *List
|
||||
FreeEnvironmentVariableList (
|
||||
IN LIST_ENTRY *List
|
||||
)
|
||||
{
|
||||
ENV_VAR_LIST *Node;
|
||||
ENV_VAR_LIST *Node;
|
||||
|
||||
ASSERT (List != NULL);
|
||||
if (List == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(List)
|
||||
; !IsListEmpty(List)
|
||||
; Node = (ENV_VAR_LIST*)GetFirstNode(List)
|
||||
){
|
||||
ASSERT(Node != NULL);
|
||||
RemoveEntryList(&Node->Link);
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (List)
|
||||
; !IsListEmpty (List)
|
||||
; Node = (ENV_VAR_LIST *)GetFirstNode (List)
|
||||
)
|
||||
{
|
||||
ASSERT (Node != NULL);
|
||||
RemoveEntryList (&Node->Link);
|
||||
if (Node->Key != NULL) {
|
||||
FreePool(Node->Key);
|
||||
FreePool (Node->Key);
|
||||
}
|
||||
|
||||
if (Node->Val != NULL) {
|
||||
FreePool(Node->Val);
|
||||
FreePool (Node->Val);
|
||||
}
|
||||
FreePool(Node);
|
||||
|
||||
FreePool (Node);
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,18 +131,18 @@ FreeEnvironmentVariableList(
|
||||
@retval EFI_SUCCESS the list was created successfully.
|
||||
**/
|
||||
EFI_STATUS
|
||||
GetEnvironmentVariableList(
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
GetEnvironmentVariableList (
|
||||
IN OUT LIST_ENTRY *ListHead
|
||||
)
|
||||
{
|
||||
CHAR16 *VariableName;
|
||||
UINTN NameSize;
|
||||
UINTN NameBufferSize;
|
||||
EFI_STATUS Status;
|
||||
EFI_GUID Guid;
|
||||
UINTN ValSize;
|
||||
UINTN ValBufferSize;
|
||||
ENV_VAR_LIST *VarList;
|
||||
CHAR16 *VariableName;
|
||||
UINTN NameSize;
|
||||
UINTN NameBufferSize;
|
||||
EFI_STATUS Status;
|
||||
EFI_GUID Guid;
|
||||
UINTN ValSize;
|
||||
UINTN ValBufferSize;
|
||||
ENV_VAR_LIST *VarList;
|
||||
|
||||
if (ListHead == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
@ -140,34 +150,36 @@ GetEnvironmentVariableList(
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
ValBufferSize = INIT_DATA_BUFFER_SIZE;
|
||||
ValBufferSize = INIT_DATA_BUFFER_SIZE;
|
||||
NameBufferSize = INIT_NAME_BUFFER_SIZE;
|
||||
VariableName = AllocateZeroPool(NameBufferSize);
|
||||
VariableName = AllocateZeroPool (NameBufferSize);
|
||||
if (VariableName == NULL) {
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
*VariableName = CHAR_NULL;
|
||||
|
||||
while (!EFI_ERROR(Status)) {
|
||||
while (!EFI_ERROR (Status)) {
|
||||
NameSize = NameBufferSize;
|
||||
Status = gRT->GetNextVariableName(&NameSize, VariableName, &Guid);
|
||||
if (Status == EFI_NOT_FOUND){
|
||||
Status = gRT->GetNextVariableName (&NameSize, VariableName, &Guid);
|
||||
if (Status == EFI_NOT_FOUND) {
|
||||
Status = EFI_SUCCESS;
|
||||
break;
|
||||
} else if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
NameBufferSize = NameSize > NameBufferSize * 2 ? NameSize : NameBufferSize * 2;
|
||||
SHELL_FREE_NON_NULL(VariableName);
|
||||
VariableName = AllocateZeroPool(NameBufferSize);
|
||||
SHELL_FREE_NON_NULL (VariableName);
|
||||
VariableName = AllocateZeroPool (NameBufferSize);
|
||||
if (VariableName == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
break;
|
||||
}
|
||||
|
||||
NameSize = NameBufferSize;
|
||||
Status = gRT->GetNextVariableName(&NameSize, VariableName, &Guid);
|
||||
Status = gRT->GetNextVariableName (&NameSize, VariableName, &Guid);
|
||||
}
|
||||
|
||||
if (!EFI_ERROR(Status) && CompareGuid(&Guid, &gShellVariableGuid)){
|
||||
VarList = AllocateZeroPool(sizeof(ENV_VAR_LIST));
|
||||
if (!EFI_ERROR (Status) && CompareGuid (&Guid, &gShellVariableGuid)) {
|
||||
VarList = AllocateZeroPool (sizeof (ENV_VAR_LIST));
|
||||
if (VarList == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
} else {
|
||||
@ -177,12 +189,13 @@ GetEnvironmentVariableList(
|
||||
//
|
||||
VarList->Val = AllocateZeroPool (ValSize + sizeof (CHAR16));
|
||||
if (VarList->Val == NULL) {
|
||||
SHELL_FREE_NON_NULL(VarList);
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
break;
|
||||
SHELL_FREE_NON_NULL (VarList);
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
break;
|
||||
}
|
||||
Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(VariableName, &VarList->Atts, &ValSize, VarList->Val);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL){
|
||||
|
||||
Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES (VariableName, &VarList->Atts, &ValSize, VarList->Val);
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
ValBufferSize = ValSize > ValBufferSize * 2 ? ValSize : ValBufferSize * 2;
|
||||
SHELL_FREE_NON_NULL (VarList->Val);
|
||||
//
|
||||
@ -190,34 +203,36 @@ GetEnvironmentVariableList(
|
||||
//
|
||||
VarList->Val = AllocateZeroPool (ValBufferSize + sizeof (CHAR16));
|
||||
if (VarList->Val == NULL) {
|
||||
SHELL_FREE_NON_NULL(VarList);
|
||||
SHELL_FREE_NON_NULL (VarList);
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
break;
|
||||
}
|
||||
|
||||
ValSize = ValBufferSize;
|
||||
Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(VariableName, &VarList->Atts, &ValSize, VarList->Val);
|
||||
Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES (VariableName, &VarList->Atts, &ValSize, VarList->Val);
|
||||
}
|
||||
if (!EFI_ERROR(Status)) {
|
||||
VarList->Key = AllocateCopyPool(StrSize(VariableName), VariableName);
|
||||
|
||||
if (!EFI_ERROR (Status)) {
|
||||
VarList->Key = AllocateCopyPool (StrSize (VariableName), VariableName);
|
||||
if (VarList->Key == NULL) {
|
||||
SHELL_FREE_NON_NULL(VarList->Val);
|
||||
SHELL_FREE_NON_NULL(VarList);
|
||||
SHELL_FREE_NON_NULL (VarList->Val);
|
||||
SHELL_FREE_NON_NULL (VarList);
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
} else {
|
||||
InsertTailList(ListHead, &VarList->Link);
|
||||
InsertTailList (ListHead, &VarList->Link);
|
||||
}
|
||||
} else {
|
||||
SHELL_FREE_NON_NULL(VarList->Val);
|
||||
SHELL_FREE_NON_NULL(VarList);
|
||||
SHELL_FREE_NON_NULL (VarList->Val);
|
||||
SHELL_FREE_NON_NULL (VarList);
|
||||
}
|
||||
} // if (VarList == NULL) ... else ...
|
||||
} // compare guid
|
||||
} // while
|
||||
|
||||
SHELL_FREE_NON_NULL (VariableName);
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreeEnvironmentVariableList(ListHead);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreeEnvironmentVariableList (ListHead);
|
||||
}
|
||||
|
||||
return (Status);
|
||||
@ -236,51 +251,56 @@ GetEnvironmentVariableList(
|
||||
@retval EFI_SUCCESS the list was Set successfully.
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetEnvironmentVariableList(
|
||||
IN LIST_ENTRY *ListHead
|
||||
SetEnvironmentVariableList (
|
||||
IN LIST_ENTRY *ListHead
|
||||
)
|
||||
{
|
||||
ENV_VAR_LIST VarList;
|
||||
ENV_VAR_LIST *Node;
|
||||
EFI_STATUS Status;
|
||||
UINTN Size;
|
||||
ENV_VAR_LIST VarList;
|
||||
ENV_VAR_LIST *Node;
|
||||
EFI_STATUS Status;
|
||||
UINTN Size;
|
||||
|
||||
InitializeListHead(&VarList.Link);
|
||||
InitializeListHead (&VarList.Link);
|
||||
|
||||
//
|
||||
// Delete all the current environment variables
|
||||
//
|
||||
Status = GetEnvironmentVariableList(&VarList.Link);
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
Status = GetEnvironmentVariableList (&VarList.Link);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(&VarList.Link)
|
||||
; !IsNull(&VarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST*)GetNextNode(&VarList.Link, &Node->Link)
|
||||
){
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (&VarList.Link)
|
||||
; !IsNull (&VarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST *)GetNextNode (&VarList.Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
if (Node->Key != NULL) {
|
||||
Status = SHELL_DELETE_ENVIRONMENT_VARIABLE(Node->Key);
|
||||
Status = SHELL_DELETE_ENVIRONMENT_VARIABLE (Node->Key);
|
||||
}
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
|
||||
FreeEnvironmentVariableList(&VarList.Link);
|
||||
FreeEnvironmentVariableList (&VarList.Link);
|
||||
|
||||
//
|
||||
// set all the variables from the list
|
||||
//
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(ListHead)
|
||||
; !IsNull(ListHead, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST*)GetNextNode(ListHead, &Node->Link)
|
||||
){
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (ListHead)
|
||||
; !IsNull (ListHead, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST *)GetNextNode (ListHead, &Node->Link)
|
||||
)
|
||||
{
|
||||
Size = StrSize (Node->Val) - sizeof (CHAR16);
|
||||
if (Node->Atts & EFI_VARIABLE_NON_VOLATILE) {
|
||||
Status = SHELL_SET_ENVIRONMENT_VARIABLE_NV(Node->Key, Size, Node->Val);
|
||||
Status = SHELL_SET_ENVIRONMENT_VARIABLE_NV (Node->Key, Size, Node->Val);
|
||||
} else {
|
||||
Status = SHELL_SET_ENVIRONMENT_VARIABLE_V (Node->Key, Size, Node->Val);
|
||||
}
|
||||
ASSERT_EFI_ERROR(Status);
|
||||
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
FreeEnvironmentVariableList(ListHead);
|
||||
|
||||
FreeEnvironmentVariableList (ListHead);
|
||||
|
||||
return (Status);
|
||||
}
|
||||
@ -299,8 +319,8 @@ SetEnvironmentVariableList(
|
||||
@sa SetEnvironmentVariableList
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetEnvironmentVariables(
|
||||
IN CONST CHAR16 **Environment
|
||||
SetEnvironmentVariables (
|
||||
IN CONST CHAR16 **Environment
|
||||
)
|
||||
{
|
||||
CONST CHAR16 *CurrentString;
|
||||
@ -318,61 +338,65 @@ SetEnvironmentVariables(
|
||||
// Build a list identical to the ones used for get/set list functions above
|
||||
//
|
||||
for ( CurrentCount = 0
|
||||
;
|
||||
; CurrentCount++
|
||||
){
|
||||
;
|
||||
; CurrentCount++
|
||||
)
|
||||
{
|
||||
CurrentString = Environment[CurrentCount];
|
||||
if (CurrentString == NULL) {
|
||||
break;
|
||||
}
|
||||
ASSERT(StrStr(CurrentString, L"=") != NULL);
|
||||
Node = AllocateZeroPool(sizeof(ENV_VAR_LIST));
|
||||
|
||||
ASSERT (StrStr (CurrentString, L"=") != NULL);
|
||||
Node = AllocateZeroPool (sizeof (ENV_VAR_LIST));
|
||||
if (Node == NULL) {
|
||||
SetEnvironmentVariableList(&VarList->Link);
|
||||
SetEnvironmentVariableList (&VarList->Link);
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
Node->Key = AllocateZeroPool((StrStr(CurrentString, L"=") - CurrentString + 1) * sizeof(CHAR16));
|
||||
Node->Key = AllocateZeroPool ((StrStr (CurrentString, L"=") - CurrentString + 1) * sizeof (CHAR16));
|
||||
if (Node->Key == NULL) {
|
||||
SHELL_FREE_NON_NULL(Node);
|
||||
SetEnvironmentVariableList(&VarList->Link);
|
||||
SHELL_FREE_NON_NULL (Node);
|
||||
SetEnvironmentVariableList (&VarList->Link);
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
//
|
||||
// Copy the string into the Key, leaving the last character allocated as NULL to terminate
|
||||
//
|
||||
StrnCpyS( Node->Key,
|
||||
StrStr(CurrentString, L"=") - CurrentString + 1,
|
||||
CurrentString,
|
||||
StrStr(CurrentString, L"=") - CurrentString
|
||||
);
|
||||
StrnCpyS (
|
||||
Node->Key,
|
||||
StrStr (CurrentString, L"=") - CurrentString + 1,
|
||||
CurrentString,
|
||||
StrStr (CurrentString, L"=") - CurrentString
|
||||
);
|
||||
|
||||
//
|
||||
// ValueSize = TotalSize - already removed size - size for '=' + size for terminator (the last 2 items cancel each other)
|
||||
//
|
||||
Node->Val = AllocateCopyPool(StrSize(CurrentString) - StrSize(Node->Key), CurrentString + StrLen(Node->Key) + 1);
|
||||
Node->Val = AllocateCopyPool (StrSize (CurrentString) - StrSize (Node->Key), CurrentString + StrLen (Node->Key) + 1);
|
||||
if (Node->Val == NULL) {
|
||||
SHELL_FREE_NON_NULL(Node->Key);
|
||||
SHELL_FREE_NON_NULL(Node);
|
||||
SetEnvironmentVariableList(&VarList->Link);
|
||||
SHELL_FREE_NON_NULL (Node->Key);
|
||||
SHELL_FREE_NON_NULL (Node);
|
||||
SetEnvironmentVariableList (&VarList->Link);
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
Node->Atts = EFI_VARIABLE_BOOTSERVICE_ACCESS;
|
||||
|
||||
if (VarList == NULL) {
|
||||
VarList = AllocateZeroPool(sizeof(ENV_VAR_LIST));
|
||||
VarList = AllocateZeroPool (sizeof (ENV_VAR_LIST));
|
||||
if (VarList == NULL) {
|
||||
SHELL_FREE_NON_NULL(Node->Key);
|
||||
SHELL_FREE_NON_NULL(Node->Val);
|
||||
SHELL_FREE_NON_NULL(Node);
|
||||
SHELL_FREE_NON_NULL (Node->Key);
|
||||
SHELL_FREE_NON_NULL (Node->Val);
|
||||
SHELL_FREE_NON_NULL (Node);
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
InitializeListHead(&VarList->Link);
|
||||
}
|
||||
InsertTailList(&VarList->Link, &Node->Link);
|
||||
|
||||
InitializeListHead (&VarList->Link);
|
||||
}
|
||||
|
||||
InsertTailList (&VarList->Link, &Node->Link);
|
||||
} // for loop
|
||||
|
||||
//
|
||||
@ -380,7 +404,7 @@ SetEnvironmentVariables(
|
||||
// this function also frees the memory and deletes all pre-existing
|
||||
// shell-guid based environment variables.
|
||||
//
|
||||
return (SetEnvironmentVariableList(&VarList->Link));
|
||||
return (SetEnvironmentVariableList (&VarList->Link));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -400,28 +424,30 @@ SetEnvironmentVariables(
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellFindEnvVarInList (
|
||||
IN CONST CHAR16 *Key,
|
||||
OUT CHAR16 **Value,
|
||||
OUT UINTN *ValueSize,
|
||||
OUT UINT32 *Atts OPTIONAL
|
||||
IN CONST CHAR16 *Key,
|
||||
OUT CHAR16 **Value,
|
||||
OUT UINTN *ValueSize,
|
||||
OUT UINT32 *Atts OPTIONAL
|
||||
)
|
||||
{
|
||||
ENV_VAR_LIST *Node;
|
||||
ENV_VAR_LIST *Node;
|
||||
|
||||
if (Key == NULL || Value == NULL || ValueSize == NULL) {
|
||||
if ((Key == NULL) || (Value == NULL) || (ValueSize == NULL)) {
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
|
||||
; !IsNull(&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
|
||||
){
|
||||
if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
|
||||
*Value = AllocateCopyPool(StrSize(Node->Val), Node->Val);
|
||||
*ValueSize = StrSize(Node->Val);
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
|
||||
; !IsNull (&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
|
||||
*Value = AllocateCopyPool (StrSize (Node->Val), Node->Val);
|
||||
*ValueSize = StrSize (Node->Val);
|
||||
if (Atts != NULL) {
|
||||
*Atts = Node->Atts;
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
@ -444,17 +470,17 @@ ShellFindEnvVarInList (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellAddEnvVarToList (
|
||||
IN CONST CHAR16 *Key,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN UINTN ValueSize,
|
||||
IN UINT32 Atts
|
||||
IN CONST CHAR16 *Key,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN UINTN ValueSize,
|
||||
IN UINT32 Atts
|
||||
)
|
||||
{
|
||||
ENV_VAR_LIST *Node;
|
||||
CHAR16 *LocalKey;
|
||||
CHAR16 *LocalValue;
|
||||
ENV_VAR_LIST *Node;
|
||||
CHAR16 *LocalKey;
|
||||
CHAR16 *LocalValue;
|
||||
|
||||
if (Key == NULL || Value == NULL || ValueSize == 0) {
|
||||
if ((Key == NULL) || (Value == NULL) || (ValueSize == 0)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
@ -466,14 +492,15 @@ ShellAddEnvVarToList (
|
||||
//
|
||||
// Update the variable value if it exists in gShellEnvVarList.
|
||||
//
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
|
||||
; !IsNull(&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
|
||||
){
|
||||
if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
|
||||
; !IsNull (&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
|
||||
Node->Atts = Atts;
|
||||
SHELL_FREE_NON_NULL(Node->Val);
|
||||
Node->Val = LocalValue;
|
||||
SHELL_FREE_NON_NULL (Node->Val);
|
||||
Node->Val = LocalValue;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
@ -482,21 +509,23 @@ ShellAddEnvVarToList (
|
||||
// If the environment variable key doesn't exist in list just insert
|
||||
// a new node.
|
||||
//
|
||||
LocalKey = AllocateCopyPool (StrSize(Key), Key);
|
||||
LocalKey = AllocateCopyPool (StrSize (Key), Key);
|
||||
if (LocalKey == NULL) {
|
||||
FreePool (LocalValue);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
Node = (ENV_VAR_LIST*)AllocateZeroPool (sizeof(ENV_VAR_LIST));
|
||||
|
||||
Node = (ENV_VAR_LIST *)AllocateZeroPool (sizeof (ENV_VAR_LIST));
|
||||
if (Node == NULL) {
|
||||
FreePool (LocalKey);
|
||||
FreePool (LocalValue);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
Node->Key = LocalKey;
|
||||
Node->Val = LocalValue;
|
||||
|
||||
Node->Key = LocalKey;
|
||||
Node->Val = LocalValue;
|
||||
Node->Atts = Atts;
|
||||
InsertTailList(&gShellEnvVarList.Link, &Node->Link);
|
||||
InsertTailList (&gShellEnvVarList.Link, &Node->Link);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@ -512,24 +541,25 @@ ShellAddEnvVarToList (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellRemvoeEnvVarFromList (
|
||||
IN CONST CHAR16 *Key
|
||||
IN CONST CHAR16 *Key
|
||||
)
|
||||
{
|
||||
ENV_VAR_LIST *Node;
|
||||
ENV_VAR_LIST *Node;
|
||||
|
||||
if (Key == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
|
||||
; !IsNull(&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
|
||||
){
|
||||
if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
|
||||
SHELL_FREE_NON_NULL(Node->Key);
|
||||
SHELL_FREE_NON_NULL(Node->Val);
|
||||
RemoveEntryList(&Node->Link);
|
||||
SHELL_FREE_NON_NULL(Node);
|
||||
for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
|
||||
; !IsNull (&gShellEnvVarList.Link, &Node->Link)
|
||||
; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
|
||||
)
|
||||
{
|
||||
if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
|
||||
SHELL_FREE_NON_NULL (Node->Key);
|
||||
SHELL_FREE_NON_NULL (Node->Val);
|
||||
RemoveEntryList (&Node->Link);
|
||||
SHELL_FREE_NON_NULL (Node);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
@ -547,9 +577,9 @@ ShellInitEnvVarList (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
InitializeListHead(&gShellEnvVarList.Link);
|
||||
InitializeListHead (&gShellEnvVarList.Link);
|
||||
Status = GetEnvironmentVariableList (&gShellEnvVarList.Link);
|
||||
|
||||
return Status;
|
||||
@ -565,8 +595,7 @@ ShellFreeEnvVarList (
|
||||
)
|
||||
{
|
||||
FreeEnvironmentVariableList (&gShellEnvVarList.Link);
|
||||
InitializeListHead(&gShellEnvVarList.Link);
|
||||
InitializeListHead (&gShellEnvVarList.Link);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -15,17 +15,16 @@
|
||||
#define _SHELL_ENVIRONMENT_VARIABLE_HEADER_
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY Link;
|
||||
CHAR16 *Key;
|
||||
CHAR16 *Val;
|
||||
UINT32 Atts;
|
||||
LIST_ENTRY Link;
|
||||
CHAR16 *Key;
|
||||
CHAR16 *Val;
|
||||
UINT32 Atts;
|
||||
} ENV_VAR_LIST;
|
||||
|
||||
//
|
||||
// The list is used to cache the environment variables.
|
||||
//
|
||||
extern ENV_VAR_LIST gShellEnvVarList;
|
||||
|
||||
extern ENV_VAR_LIST gShellEnvVarList;
|
||||
|
||||
/**
|
||||
Reports whether an environment variable is Volatile or Non-Volatile.
|
||||
@ -38,8 +37,8 @@ extern ENV_VAR_LIST gShellEnvVarList;
|
||||
**/
|
||||
EFI_STATUS
|
||||
IsVolatileEnv (
|
||||
IN CONST CHAR16 *EnvVarName,
|
||||
OUT BOOLEAN *Volatile
|
||||
IN CONST CHAR16 *EnvVarName,
|
||||
OUT BOOLEAN *Volatile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -73,7 +72,7 @@ IsVolatileEnv (
|
||||
@retval other An error occurred
|
||||
@sa SetVariable
|
||||
**/
|
||||
#define SHELL_SET_ENVIRONMENT_VARIABLE_NV(EnvVarName,BufferSize,Buffer) \
|
||||
#define SHELL_SET_ENVIRONMENT_VARIABLE_NV(EnvVarName, BufferSize, Buffer) \
|
||||
(gRT->SetVariable((CHAR16*)EnvVarName, \
|
||||
&gShellVariableGuid, \
|
||||
EFI_VARIABLE_NON_VOLATILE|EFI_VARIABLE_BOOTSERVICE_ACCESS, \
|
||||
@ -93,7 +92,7 @@ IsVolatileEnv (
|
||||
@retval other An error occurred
|
||||
@sa SetVariable
|
||||
**/
|
||||
#define SHELL_GET_ENVIRONMENT_VARIABLE(EnvVarName,BufferSize,Buffer) \
|
||||
#define SHELL_GET_ENVIRONMENT_VARIABLE(EnvVarName, BufferSize, Buffer) \
|
||||
(gRT->GetVariable((CHAR16*)EnvVarName, \
|
||||
&gShellVariableGuid, \
|
||||
0, \
|
||||
@ -114,7 +113,7 @@ IsVolatileEnv (
|
||||
@retval other An error occurred
|
||||
@sa SetVariable
|
||||
**/
|
||||
#define SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(EnvVarName,Atts,BufferSize,Buffer) \
|
||||
#define SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(EnvVarName, Atts, BufferSize, Buffer) \
|
||||
(gRT->GetVariable((CHAR16*)EnvVarName, \
|
||||
&gShellVariableGuid, \
|
||||
Atts, \
|
||||
@ -134,7 +133,7 @@ IsVolatileEnv (
|
||||
@retval other An error occurred
|
||||
@sa SetVariable
|
||||
**/
|
||||
#define SHELL_SET_ENVIRONMENT_VARIABLE_V(EnvVarName,BufferSize,Buffer) \
|
||||
#define SHELL_SET_ENVIRONMENT_VARIABLE_V(EnvVarName, BufferSize, Buffer) \
|
||||
(gRT->SetVariable((CHAR16*)EnvVarName, \
|
||||
&gShellVariableGuid, \
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS, \
|
||||
@ -150,8 +149,8 @@ IsVolatileEnv (
|
||||
@retval EFI_SUCCESS the list was created successfully.
|
||||
**/
|
||||
EFI_STATUS
|
||||
GetEnvironmentVariableList(
|
||||
IN OUT LIST_ENTRY *List
|
||||
GetEnvironmentVariableList (
|
||||
IN OUT LIST_ENTRY *List
|
||||
);
|
||||
|
||||
/**
|
||||
@ -167,8 +166,8 @@ GetEnvironmentVariableList(
|
||||
@retval EFI_SUCCESS The list was Set successfully.
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetEnvironmentVariableList(
|
||||
IN LIST_ENTRY *List
|
||||
SetEnvironmentVariableList (
|
||||
IN LIST_ENTRY *List
|
||||
);
|
||||
|
||||
/**
|
||||
@ -187,8 +186,8 @@ SetEnvironmentVariableList(
|
||||
@sa SetEnvironmentVariableList
|
||||
**/
|
||||
EFI_STATUS
|
||||
SetEnvironmentVariables(
|
||||
IN CONST CHAR16 **Environment
|
||||
SetEnvironmentVariables (
|
||||
IN CONST CHAR16 **Environment
|
||||
);
|
||||
|
||||
/**
|
||||
@ -197,8 +196,8 @@ SetEnvironmentVariables(
|
||||
@param[in] List The pointer to pointer to list.
|
||||
**/
|
||||
VOID
|
||||
FreeEnvironmentVariableList(
|
||||
IN LIST_ENTRY *List
|
||||
FreeEnvironmentVariableList (
|
||||
IN LIST_ENTRY *List
|
||||
);
|
||||
|
||||
/**
|
||||
@ -218,10 +217,10 @@ FreeEnvironmentVariableList(
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellFindEnvVarInList (
|
||||
IN CONST CHAR16 *Key,
|
||||
OUT CHAR16 **Value,
|
||||
OUT UINTN *ValueSize,
|
||||
OUT UINT32 *Atts OPTIONAL
|
||||
IN CONST CHAR16 *Key,
|
||||
OUT CHAR16 **Value,
|
||||
OUT UINTN *ValueSize,
|
||||
OUT UINT32 *Atts OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -239,10 +238,10 @@ ShellFindEnvVarInList (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellAddEnvVarToList (
|
||||
IN CONST CHAR16 *Key,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN UINTN ValueSize,
|
||||
IN UINT32 Atts
|
||||
IN CONST CHAR16 *Key,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN UINTN ValueSize,
|
||||
IN UINT32 Atts
|
||||
);
|
||||
|
||||
/**
|
||||
@ -256,7 +255,7 @@ ShellAddEnvVarToList (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ShellRemvoeEnvVarFromList (
|
||||
IN CONST CHAR16 *Key
|
||||
IN CONST CHAR16 *Key
|
||||
);
|
||||
|
||||
/**
|
||||
@ -279,4 +278,3 @@ ShellFreeEnvVarList (
|
||||
);
|
||||
|
||||
#endif //_SHELL_ENVIRONMENT_VARIABLE_HEADER_
|
||||
|
||||
|
@ -17,15 +17,14 @@
|
||||
EFI_HII_HANDLE mShellManHiiHandle = NULL;
|
||||
EFI_HANDLE mShellManDriverHandle = NULL;
|
||||
|
||||
|
||||
SHELL_MAN_HII_VENDOR_DEVICE_PATH mShellManHiiDevicePath = {
|
||||
{
|
||||
{
|
||||
HARDWARE_DEVICE_PATH,
|
||||
HW_VENDOR_DP,
|
||||
{
|
||||
(UINT8) (sizeof (VENDOR_DEVICE_PATH)),
|
||||
(UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
|
||||
(UINT8)(sizeof (VENDOR_DEVICE_PATH)),
|
||||
(UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
|
||||
}
|
||||
},
|
||||
SHELL_MAN_HII_GUID
|
||||
@ -34,8 +33,8 @@ SHELL_MAN_HII_VENDOR_DEVICE_PATH mShellManHiiDevicePath = {
|
||||
END_DEVICE_PATH_TYPE,
|
||||
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||
{
|
||||
(UINT8) (END_DEVICE_PATH_LENGTH),
|
||||
(UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
|
||||
(UINT8)(END_DEVICE_PATH_LENGTH),
|
||||
(UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -52,11 +51,12 @@ SHELL_MAN_HII_VENDOR_DEVICE_PATH mShellManHiiDevicePath = {
|
||||
**/
|
||||
CHAR16 *
|
||||
GetExecuatableFileName (
|
||||
IN CONST CHAR16 *NameString
|
||||
IN CONST CHAR16 *NameString
|
||||
)
|
||||
{
|
||||
CHAR16 *Buffer;
|
||||
CHAR16 *SuffixStr;
|
||||
|
||||
if (NameString == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
@ -64,31 +64,33 @@ GetExecuatableFileName (
|
||||
//
|
||||
// Fix the file name
|
||||
//
|
||||
if (StrnCmp(NameString+StrLen(NameString)-StrLen(L".efi"), L".efi", StrLen(L".efi"))==0) {
|
||||
Buffer = AllocateCopyPool(StrSize(NameString), NameString);
|
||||
} else if (StrnCmp(NameString+StrLen(NameString)-StrLen(L".man"), L".man", StrLen(L".man"))==0) {
|
||||
Buffer = AllocateCopyPool(StrSize(NameString), NameString);
|
||||
if (StrnCmp (NameString+StrLen (NameString)-StrLen (L".efi"), L".efi", StrLen (L".efi")) == 0) {
|
||||
Buffer = AllocateCopyPool (StrSize (NameString), NameString);
|
||||
} else if (StrnCmp (NameString+StrLen (NameString)-StrLen (L".man"), L".man", StrLen (L".man")) == 0) {
|
||||
Buffer = AllocateCopyPool (StrSize (NameString), NameString);
|
||||
if (Buffer != NULL) {
|
||||
SuffixStr = Buffer+StrLen(Buffer)-StrLen(L".man");
|
||||
StrnCpyS (SuffixStr, StrSize(L".man")/sizeof(CHAR16), L".efi", StrLen(L".efi"));
|
||||
SuffixStr = Buffer+StrLen (Buffer)-StrLen (L".man");
|
||||
StrnCpyS (SuffixStr, StrSize (L".man")/sizeof (CHAR16), L".efi", StrLen (L".efi"));
|
||||
}
|
||||
} else {
|
||||
Buffer = AllocateZeroPool(StrSize(NameString) + StrLen(L".efi")*sizeof(CHAR16));
|
||||
Buffer = AllocateZeroPool (StrSize (NameString) + StrLen (L".efi")*sizeof (CHAR16));
|
||||
if (Buffer != NULL) {
|
||||
StrnCpyS( Buffer,
|
||||
(StrSize(NameString) + StrLen(L".efi")*sizeof(CHAR16))/sizeof(CHAR16),
|
||||
NameString,
|
||||
StrLen(NameString)
|
||||
);
|
||||
StrnCatS( Buffer,
|
||||
(StrSize(NameString) + StrLen(L".efi")*sizeof(CHAR16))/sizeof(CHAR16),
|
||||
L".efi",
|
||||
StrLen(L".efi")
|
||||
);
|
||||
StrnCpyS (
|
||||
Buffer,
|
||||
(StrSize (NameString) + StrLen (L".efi")*sizeof (CHAR16))/sizeof (CHAR16),
|
||||
NameString,
|
||||
StrLen (NameString)
|
||||
);
|
||||
StrnCatS (
|
||||
Buffer,
|
||||
(StrSize (NameString) + StrLen (L".efi")*sizeof (CHAR16))/sizeof (CHAR16),
|
||||
L".efi",
|
||||
StrLen (L".efi")
|
||||
);
|
||||
}
|
||||
}
|
||||
return (Buffer);
|
||||
|
||||
return (Buffer);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,34 +105,39 @@ GetExecuatableFileName (
|
||||
@return the new filename with .man as the extension.
|
||||
**/
|
||||
CHAR16 *
|
||||
GetManFileName(
|
||||
IN CONST CHAR16 *ManFileName
|
||||
GetManFileName (
|
||||
IN CONST CHAR16 *ManFileName
|
||||
)
|
||||
{
|
||||
CHAR16 *Buffer;
|
||||
CHAR16 *Buffer;
|
||||
|
||||
if (ManFileName == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
//
|
||||
// Fix the file name
|
||||
//
|
||||
if (StrnCmp(ManFileName+StrLen(ManFileName)-4, L".man", 4)==0) {
|
||||
Buffer = AllocateCopyPool(StrSize(ManFileName), ManFileName);
|
||||
if (StrnCmp (ManFileName+StrLen (ManFileName)-4, L".man", 4) == 0) {
|
||||
Buffer = AllocateCopyPool (StrSize (ManFileName), ManFileName);
|
||||
} else {
|
||||
Buffer = AllocateZeroPool(StrSize(ManFileName) + 4*sizeof(CHAR16));
|
||||
Buffer = AllocateZeroPool (StrSize (ManFileName) + 4*sizeof (CHAR16));
|
||||
if (Buffer != NULL) {
|
||||
StrnCpyS( Buffer,
|
||||
(StrSize(ManFileName) + 4*sizeof(CHAR16))/sizeof(CHAR16),
|
||||
ManFileName,
|
||||
StrLen(ManFileName)
|
||||
);
|
||||
StrnCatS( Buffer,
|
||||
(StrSize(ManFileName) + 4*sizeof(CHAR16))/sizeof(CHAR16),
|
||||
L".man",
|
||||
4
|
||||
);
|
||||
StrnCpyS (
|
||||
Buffer,
|
||||
(StrSize (ManFileName) + 4*sizeof (CHAR16))/sizeof (CHAR16),
|
||||
ManFileName,
|
||||
StrLen (ManFileName)
|
||||
);
|
||||
StrnCatS (
|
||||
Buffer,
|
||||
(StrSize (ManFileName) + 4*sizeof (CHAR16))/sizeof (CHAR16),
|
||||
L".man",
|
||||
4
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return (Buffer);
|
||||
}
|
||||
|
||||
@ -149,22 +156,23 @@ GetManFileName(
|
||||
@retval EFI_NOT_FOUND The file was not found.
|
||||
**/
|
||||
EFI_STATUS
|
||||
SearchPathForFile(
|
||||
IN CONST CHAR16 *FileName,
|
||||
OUT SHELL_FILE_HANDLE *Handle
|
||||
SearchPathForFile (
|
||||
IN CONST CHAR16 *FileName,
|
||||
OUT SHELL_FILE_HANDLE *Handle
|
||||
)
|
||||
{
|
||||
CHAR16 *FullFileName;
|
||||
EFI_STATUS Status;
|
||||
CHAR16 *FullFileName;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if ( FileName == NULL
|
||||
|| Handle == NULL
|
||||
|| StrLen(FileName) == 0
|
||||
){
|
||||
if ( (FileName == NULL)
|
||||
|| (Handle == NULL)
|
||||
|| (StrLen (FileName) == 0)
|
||||
)
|
||||
{
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
FullFileName = ShellFindFilePath(FileName);
|
||||
FullFileName = ShellFindFilePath (FileName);
|
||||
if (FullFileName == NULL) {
|
||||
return (EFI_NOT_FOUND);
|
||||
}
|
||||
@ -172,8 +180,8 @@ SearchPathForFile(
|
||||
//
|
||||
// now open that file
|
||||
//
|
||||
Status = EfiShellOpenFileByName(FullFileName, Handle, EFI_FILE_MODE_READ);
|
||||
FreePool(FullFileName);
|
||||
Status = EfiShellOpenFileByName (FullFileName, Handle, EFI_FILE_MODE_READ);
|
||||
FreePool (FullFileName);
|
||||
|
||||
return (Status);
|
||||
}
|
||||
@ -197,7 +205,7 @@ SearchPathForFile(
|
||||
an allocated buffer.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ManFileFindSections(
|
||||
ManFileFindSections (
|
||||
IN SHELL_FILE_HANDLE Handle,
|
||||
IN CONST CHAR16 *Sections,
|
||||
OUT CHAR16 **HelpText,
|
||||
@ -205,75 +213,84 @@ ManFileFindSections(
|
||||
IN BOOLEAN Ascii
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
CHAR16 *ReadLine;
|
||||
UINTN Size;
|
||||
BOOLEAN CurrentlyReading;
|
||||
CHAR16 *SectionName;
|
||||
UINTN SectionLen;
|
||||
BOOLEAN Found;
|
||||
EFI_STATUS Status;
|
||||
CHAR16 *ReadLine;
|
||||
UINTN Size;
|
||||
BOOLEAN CurrentlyReading;
|
||||
CHAR16 *SectionName;
|
||||
UINTN SectionLen;
|
||||
BOOLEAN Found;
|
||||
|
||||
if ( Handle == NULL
|
||||
|| HelpText == NULL
|
||||
|| HelpSize == NULL
|
||||
){
|
||||
if ( (Handle == NULL)
|
||||
|| (HelpText == NULL)
|
||||
|| (HelpSize == NULL)
|
||||
)
|
||||
{
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
CurrentlyReading = FALSE;
|
||||
Size = 1024;
|
||||
Found = FALSE;
|
||||
Status = EFI_SUCCESS;
|
||||
CurrentlyReading = FALSE;
|
||||
Size = 1024;
|
||||
Found = FALSE;
|
||||
|
||||
ReadLine = AllocateZeroPool(Size);
|
||||
ReadLine = AllocateZeroPool (Size);
|
||||
if (ReadLine == NULL) {
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
|
||||
for (;!ShellFileHandleEof(Handle);Size = 1024) {
|
||||
Status = ShellFileHandleReadLine(Handle, ReadLine, &Size, TRUE, &Ascii);
|
||||
for ( ; !ShellFileHandleEof (Handle); Size = 1024) {
|
||||
Status = ShellFileHandleReadLine (Handle, ReadLine, &Size, TRUE, &Ascii);
|
||||
if (ReadLine[0] == L'#') {
|
||||
//
|
||||
// Skip comment lines
|
||||
//
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// ignore too small of buffer...
|
||||
//
|
||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||
Status = EFI_SUCCESS;
|
||||
}
|
||||
if (EFI_ERROR(Status)) {
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
} else if (StrnCmp(ReadLine, L".TH", 3) == 0) {
|
||||
} else if (StrnCmp (ReadLine, L".TH", 3) == 0) {
|
||||
//
|
||||
// we hit the end of this commands section so stop.
|
||||
//
|
||||
break;
|
||||
} else if (StrnCmp(ReadLine, L".SH", 3) == 0) {
|
||||
} else if (StrnCmp (ReadLine, L".SH", 3) == 0) {
|
||||
if (Sections == NULL) {
|
||||
CurrentlyReading = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// we found a section
|
||||
//
|
||||
if (CurrentlyReading) {
|
||||
CurrentlyReading = FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// is this a section we want to read in?
|
||||
//
|
||||
for ( SectionName = ReadLine + 3
|
||||
; *SectionName == L' '
|
||||
; SectionName++);
|
||||
SectionLen = StrLen(SectionName);
|
||||
SectionName = StrStr(Sections, SectionName);
|
||||
; *SectionName == L' '
|
||||
; SectionName++)
|
||||
{
|
||||
}
|
||||
|
||||
SectionLen = StrLen (SectionName);
|
||||
SectionName = StrStr (Sections, SectionName);
|
||||
if (SectionName == NULL) {
|
||||
continue;
|
||||
}
|
||||
if (*(SectionName + SectionLen) == CHAR_NULL || *(SectionName + SectionLen) == L',') {
|
||||
|
||||
if ((*(SectionName + SectionLen) == CHAR_NULL) || (*(SectionName + SectionLen) == L',')) {
|
||||
CurrentlyReading = TRUE;
|
||||
}
|
||||
} else if (CurrentlyReading) {
|
||||
@ -281,15 +298,17 @@ ManFileFindSections(
|
||||
//
|
||||
// copy and save the current line.
|
||||
//
|
||||
ASSERT((*HelpText == NULL && *HelpSize == 0) || (*HelpText != NULL));
|
||||
ASSERT ((*HelpText == NULL && *HelpSize == 0) || (*HelpText != NULL));
|
||||
StrnCatGrow (HelpText, HelpSize, ReadLine, 0);
|
||||
StrnCatGrow (HelpText, HelpSize, L"\r\n", 0);
|
||||
}
|
||||
}
|
||||
FreePool(ReadLine);
|
||||
if (!Found && !EFI_ERROR(Status)) {
|
||||
|
||||
FreePool (ReadLine);
|
||||
if (!Found && !EFI_ERROR (Status)) {
|
||||
return (EFI_NOT_FOUND);
|
||||
}
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
@ -315,12 +334,12 @@ ManFileFindSections(
|
||||
@retval FALSE Line did not contain the Title Header
|
||||
**/
|
||||
BOOLEAN
|
||||
IsTitleHeader(
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CHAR16 *Line,
|
||||
OUT CHAR16 **BriefDesc OPTIONAL,
|
||||
OUT UINTN *BriefSize OPTIONAL,
|
||||
OUT BOOLEAN *Found
|
||||
IsTitleHeader (
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CHAR16 *Line,
|
||||
OUT CHAR16 **BriefDesc OPTIONAL,
|
||||
OUT UINTN *BriefSize OPTIONAL,
|
||||
OUT BOOLEAN *Found
|
||||
)
|
||||
{
|
||||
// The states of a simple state machine used to recognize a title header line
|
||||
@ -334,86 +353,84 @@ IsTitleHeader(
|
||||
BOOLEAN ReturnValue; // TRUE if this the Title Header line of *some* MAN file.
|
||||
BOOLEAN ReturnFound; // TRUE if this the Title Header line of *the desired* MAN file.
|
||||
|
||||
ReturnValue = FALSE;
|
||||
ReturnFound = FALSE;
|
||||
ReturnValue = FALSE;
|
||||
ReturnFound = FALSE;
|
||||
CommandIndex = 0;
|
||||
State = LookForThMacro;
|
||||
State = LookForThMacro;
|
||||
|
||||
do {
|
||||
|
||||
if (*Line == L'\0') {
|
||||
break;
|
||||
}
|
||||
|
||||
switch (State) {
|
||||
|
||||
// Handle "^\s*.TH\s"
|
||||
// Go to state LookForCommandName if the title header macro is present; otherwise,
|
||||
// eat white space. If we see something other than white space, this is not a
|
||||
// title header line.
|
||||
case LookForThMacro:
|
||||
if (StrnCmp (L".TH ", Line, 4) == 0 || StrnCmp (L".TH\t", Line, 4) == 0) {
|
||||
if ((StrnCmp (L".TH ", Line, 4) == 0) || (StrnCmp (L".TH\t", Line, 4) == 0)) {
|
||||
Line += 4;
|
||||
State = LookForCommandName;
|
||||
}
|
||||
else if (*Line == L' ' || *Line == L'\t') {
|
||||
} else if ((*Line == L' ') || (*Line == L'\t')) {
|
||||
Line++;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
State = Final;
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
// Handle "\s*"
|
||||
// Eat any "extra" whitespace after the title header macro (we have already seen
|
||||
// at least one white space character). Go to state CompareCommands when a
|
||||
// non-white space is seen.
|
||||
case LookForCommandName:
|
||||
if (*Line == L' ' || *Line == L'\t') {
|
||||
if ((*Line == L' ') || (*Line == L'\t')) {
|
||||
Line++;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
ReturnValue = TRUE; // This is *some* command's title header line.
|
||||
State = CompareCommands;
|
||||
State = CompareCommands;
|
||||
// Do not increment Line; it points to the first character of the command
|
||||
// name on the title header line.
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
// Handle "(\S)\s"
|
||||
// Compare Command to the title header command name, ignoring case. When we
|
||||
// reach the end of the command (i.e. we see white space), the next state
|
||||
// depends on whether the caller wants a copy of the Brief Description.
|
||||
case CompareCommands:
|
||||
if (*Line == L' ' || *Line == L'\t') {
|
||||
if ((*Line == L' ') || (*Line == L'\t')) {
|
||||
ReturnFound = TRUE; // This is the desired command's title header line.
|
||||
State = (BriefDesc == NULL) ? Final : GetBriefDescription;
|
||||
}
|
||||
else if (CharToUpper (*Line) != CharToUpper (*(Command + CommandIndex++))) {
|
||||
State = (BriefDesc == NULL) ? Final : GetBriefDescription;
|
||||
} else if (CharToUpper (*Line) != CharToUpper (*(Command + CommandIndex++))) {
|
||||
State = Final;
|
||||
}
|
||||
|
||||
Line++;
|
||||
break;
|
||||
break;
|
||||
|
||||
// Handle "[\s01]*(.*)$"
|
||||
// Skip whitespace, '0', and '1' characters, if any, prior to the brief description.
|
||||
// Return the description to the caller.
|
||||
case GetBriefDescription:
|
||||
if (*Line != L' ' && *Line != L'\t' && *Line != L'0' && *Line != L'1') {
|
||||
*BriefSize = StrSize(Line);
|
||||
*BriefDesc = AllocateZeroPool(*BriefSize);
|
||||
if ((*Line != L' ') && (*Line != L'\t') && (*Line != L'0') && (*Line != L'1')) {
|
||||
*BriefSize = StrSize (Line);
|
||||
*BriefDesc = AllocateZeroPool (*BriefSize);
|
||||
if (*BriefDesc != NULL) {
|
||||
StrCpyS(*BriefDesc, (*BriefSize)/sizeof(CHAR16), Line);
|
||||
StrCpyS (*BriefDesc, (*BriefSize)/sizeof (CHAR16), Line);
|
||||
}
|
||||
|
||||
State = Final;
|
||||
}
|
||||
|
||||
Line++;
|
||||
break;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
} while (State < Final);
|
||||
|
||||
*Found = ReturnFound;
|
||||
@ -441,7 +458,7 @@ IsTitleHeader(
|
||||
an allocated buffer if requested.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ManFileFindTitleSection(
|
||||
ManFileFindTitleSection (
|
||||
IN SHELL_FILE_HANDLE Handle,
|
||||
IN CONST CHAR16 *Command,
|
||||
OUT CHAR16 **BriefDesc OPTIONAL,
|
||||
@ -455,18 +472,19 @@ ManFileFindTitleSection(
|
||||
BOOLEAN Found;
|
||||
UINTN Start;
|
||||
|
||||
if ( Handle == NULL
|
||||
|| Command == NULL
|
||||
|| (BriefDesc != NULL && BriefSize == NULL)
|
||||
){
|
||||
if ( (Handle == NULL)
|
||||
|| (Command == NULL)
|
||||
|| ((BriefDesc != NULL) && (BriefSize == NULL))
|
||||
)
|
||||
{
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
Size = 1024;
|
||||
Found = FALSE;
|
||||
Status = EFI_SUCCESS;
|
||||
Size = 1024;
|
||||
Found = FALSE;
|
||||
|
||||
ReadLine = AllocateZeroPool(Size);
|
||||
ReadLine = AllocateZeroPool (Size);
|
||||
if (ReadLine == NULL) {
|
||||
return (EFI_OUT_OF_RESOURCES);
|
||||
}
|
||||
@ -474,20 +492,21 @@ ManFileFindTitleSection(
|
||||
//
|
||||
// Do not pass any leading path information that may be present to IsTitleHeader().
|
||||
//
|
||||
Start = StrLen(Command);
|
||||
while ((Start != 0)
|
||||
&& (*(Command + Start - 1) != L'\\')
|
||||
&& (*(Command + Start - 1) != L'/')
|
||||
&& (*(Command + Start - 1) != L':')) {
|
||||
Start = StrLen (Command);
|
||||
while ( (Start != 0)
|
||||
&& (*(Command + Start - 1) != L'\\')
|
||||
&& (*(Command + Start - 1) != L'/')
|
||||
&& (*(Command + Start - 1) != L':'))
|
||||
{
|
||||
--Start;
|
||||
}
|
||||
|
||||
for (;!ShellFileHandleEof(Handle);Size = 1024) {
|
||||
Status = ShellFileHandleReadLine(Handle, ReadLine, &Size, TRUE, Ascii);
|
||||
for ( ; !ShellFileHandleEof (Handle); Size = 1024) {
|
||||
Status = ShellFileHandleReadLine (Handle, ReadLine, &Size, TRUE, Ascii);
|
||||
//
|
||||
// ignore too small of buffer...
|
||||
//
|
||||
if (EFI_ERROR(Status) && Status != EFI_BUFFER_TOO_SMALL) {
|
||||
if (EFI_ERROR (Status) && (Status != EFI_BUFFER_TOO_SMALL)) {
|
||||
break;
|
||||
}
|
||||
|
||||
@ -498,7 +517,7 @@ ManFileFindTitleSection(
|
||||
}
|
||||
}
|
||||
|
||||
FreePool(ReadLine);
|
||||
FreePool (ReadLine);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
@ -533,32 +552,33 @@ ManFileFindTitleSection(
|
||||
@retval EFI_NOT_FOUND There is no help text available for Command.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessManFile(
|
||||
IN CONST CHAR16 *ManFileName,
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **BriefDesc OPTIONAL,
|
||||
OUT CHAR16 **HelpText
|
||||
ProcessManFile (
|
||||
IN CONST CHAR16 *ManFileName,
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **BriefDesc OPTIONAL,
|
||||
OUT CHAR16 **HelpText
|
||||
)
|
||||
{
|
||||
CHAR16 *TempString;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE CmdFileImgHandle;
|
||||
EFI_STATUS Status;
|
||||
UINTN HelpSize;
|
||||
UINTN BriefSize;
|
||||
UINTN StringIdWalker;
|
||||
BOOLEAN Ascii;
|
||||
CHAR16 *CmdFileName;
|
||||
CHAR16 *CmdFilePathName;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevPath;
|
||||
EFI_HII_PACKAGE_LIST_HEADER *PackageListHeader;
|
||||
CHAR16 *TempString;
|
||||
SHELL_FILE_HANDLE FileHandle;
|
||||
EFI_HANDLE CmdFileImgHandle;
|
||||
EFI_STATUS Status;
|
||||
UINTN HelpSize;
|
||||
UINTN BriefSize;
|
||||
UINTN StringIdWalker;
|
||||
BOOLEAN Ascii;
|
||||
CHAR16 *CmdFileName;
|
||||
CHAR16 *CmdFilePathName;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevPath;
|
||||
EFI_HII_PACKAGE_LIST_HEADER *PackageListHeader;
|
||||
|
||||
if ( ManFileName == NULL
|
||||
|| Command == NULL
|
||||
|| HelpText == NULL
|
||||
){
|
||||
if ( (ManFileName == NULL)
|
||||
|| (Command == NULL)
|
||||
|| (HelpText == NULL)
|
||||
)
|
||||
{
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
@ -577,47 +597,49 @@ ProcessManFile(
|
||||
//
|
||||
// See if it's in HII first
|
||||
//
|
||||
TempString = ShellCommandGetCommandHelp(Command);
|
||||
TempString = ShellCommandGetCommandHelp (Command);
|
||||
if (TempString != NULL) {
|
||||
FileHandle = ConvertEfiFileProtocolToShellHandle (CreateFileInterfaceMem (TRUE), NULL);
|
||||
HelpSize = StrLen (TempString) * sizeof (CHAR16);
|
||||
HelpSize = StrLen (TempString) * sizeof (CHAR16);
|
||||
ShellWriteFile (FileHandle, &HelpSize, TempString);
|
||||
ShellSetFilePosition (FileHandle, 0);
|
||||
HelpSize = 0;
|
||||
BriefSize = 0;
|
||||
Status = ManFileFindTitleSection(FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR(Status) && HelpText != NULL){
|
||||
Status = ManFileFindSections(FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
Status = ManFileFindTitleSection (FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR (Status) && (HelpText != NULL)) {
|
||||
Status = ManFileFindSections (FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
}
|
||||
|
||||
ShellCloseFile (&FileHandle);
|
||||
} else {
|
||||
//
|
||||
// If the image is a external app, check .MAN file first.
|
||||
//
|
||||
FileHandle = NULL;
|
||||
TempString = GetManFileName(ManFileName);
|
||||
FileHandle = NULL;
|
||||
TempString = GetManFileName (ManFileName);
|
||||
if (TempString == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
Status = SearchPathForFile(TempString, &FileHandle);
|
||||
if (EFI_ERROR(Status)) {
|
||||
FileDevPath = FileDevicePath(NULL, TempString);
|
||||
DevPath = AppendDevicePath (ShellInfoObject.ImageDevPath, FileDevPath);
|
||||
Status = InternalOpenFileDevicePath(DevPath, &FileHandle, EFI_FILE_MODE_READ, 0);
|
||||
SHELL_FREE_NON_NULL(FileDevPath);
|
||||
SHELL_FREE_NON_NULL(DevPath);
|
||||
Status = SearchPathForFile (TempString, &FileHandle);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FileDevPath = FileDevicePath (NULL, TempString);
|
||||
DevPath = AppendDevicePath (ShellInfoObject.ImageDevPath, FileDevPath);
|
||||
Status = InternalOpenFileDevicePath (DevPath, &FileHandle, EFI_FILE_MODE_READ, 0);
|
||||
SHELL_FREE_NON_NULL (FileDevPath);
|
||||
SHELL_FREE_NON_NULL (DevPath);
|
||||
}
|
||||
|
||||
if (!EFI_ERROR(Status)) {
|
||||
if (!EFI_ERROR (Status)) {
|
||||
HelpSize = 0;
|
||||
BriefSize = 0;
|
||||
Status = ManFileFindTitleSection(FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR(Status) && HelpText != NULL){
|
||||
Status = ManFileFindSections(FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
Status = ManFileFindTitleSection (FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR (Status) && (HelpText != NULL)) {
|
||||
Status = ManFileFindSections (FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
}
|
||||
ShellInfoObject.NewEfiShellProtocol->CloseFile(FileHandle);
|
||||
if (!EFI_ERROR(Status)) {
|
||||
|
||||
ShellInfoObject.NewEfiShellProtocol->CloseFile (FileHandle);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Get help text from .MAN file success.
|
||||
//
|
||||
@ -628,23 +650,25 @@ ProcessManFile(
|
||||
//
|
||||
// Load the app image to check EFI_HII_PACKAGE_LIST_PROTOCOL.
|
||||
//
|
||||
CmdFileName = GetExecuatableFileName(TempString);
|
||||
CmdFileName = GetExecuatableFileName (TempString);
|
||||
if (CmdFileName == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// If the file in CWD then use the file name, else use the full
|
||||
// path name.
|
||||
//
|
||||
CmdFilePathName = ShellFindFilePath(CmdFileName);
|
||||
CmdFilePathName = ShellFindFilePath (CmdFileName);
|
||||
if (CmdFilePathName == NULL) {
|
||||
Status = EFI_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
DevPath = ShellInfoObject.NewEfiShellProtocol->GetDevicePathFromFilePath(CmdFilePathName);
|
||||
Status = gBS->LoadImage(FALSE, gImageHandle, DevPath, NULL, 0, &CmdFileImgHandle);
|
||||
if(EFI_ERROR(Status)) {
|
||||
|
||||
DevPath = ShellInfoObject.NewEfiShellProtocol->GetDevicePathFromFilePath (CmdFilePathName);
|
||||
Status = gBS->LoadImage (FALSE, gImageHandle, DevPath, NULL, 0, &CmdFileImgHandle);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// With EFI_SECURITY_VIOLATION retval, the Image was loaded and an ImageHandle was created
|
||||
// with a valid EFI_LOADED_IMAGE_PROTOCOL, but the image can not be started right now.
|
||||
@ -654,18 +678,20 @@ ProcessManFile(
|
||||
if (Status == EFI_SECURITY_VIOLATION) {
|
||||
gBS->UnloadImage (CmdFileImgHandle);
|
||||
}
|
||||
|
||||
*HelpText = NULL;
|
||||
goto Done;
|
||||
}
|
||||
Status = gBS->OpenProtocol(
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
CmdFileImgHandle,
|
||||
&gEfiHiiPackageListProtocolGuid,
|
||||
(VOID**)&PackageListHeader,
|
||||
(VOID **)&PackageListHeader,
|
||||
gImageHandle,
|
||||
NULL,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
if(EFI_ERROR(Status)) {
|
||||
if (EFI_ERROR (Status)) {
|
||||
*HelpText = NULL;
|
||||
goto Done;
|
||||
}
|
||||
@ -679,60 +705,62 @@ ProcessManFile(
|
||||
EFI_NATIVE_INTERFACE,
|
||||
&mShellManHiiDevicePath
|
||||
);
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Status = gHiiDatabase->NewPackageList (
|
||||
gHiiDatabase,
|
||||
PackageListHeader,
|
||||
mShellManDriverHandle,
|
||||
&mShellManHiiHandle
|
||||
);
|
||||
gHiiDatabase,
|
||||
PackageListHeader,
|
||||
mShellManDriverHandle,
|
||||
&mShellManHiiHandle
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
StringIdWalker = 1;
|
||||
do {
|
||||
SHELL_FREE_NON_NULL(TempString);
|
||||
if (BriefDesc != NULL) {
|
||||
SHELL_FREE_NON_NULL(*BriefDesc);
|
||||
}
|
||||
TempString = HiiGetString (mShellManHiiHandle, (EFI_STRING_ID)StringIdWalker, NULL);
|
||||
if (TempString == NULL) {
|
||||
Status = EFI_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
FileHandle = ConvertEfiFileProtocolToShellHandle (CreateFileInterfaceMem (TRUE), NULL);
|
||||
HelpSize = StrLen (TempString) * sizeof (CHAR16);
|
||||
ShellWriteFile (FileHandle, &HelpSize, TempString);
|
||||
ShellSetFilePosition (FileHandle, 0);
|
||||
HelpSize = 0;
|
||||
BriefSize = 0;
|
||||
Status = ManFileFindTitleSection(FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR(Status) && HelpText != NULL){
|
||||
Status = ManFileFindSections(FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
}
|
||||
ShellCloseFile (&FileHandle);
|
||||
if (!EFI_ERROR(Status)){
|
||||
//
|
||||
// Found what we need and return
|
||||
//
|
||||
goto Done;
|
||||
}
|
||||
SHELL_FREE_NON_NULL (TempString);
|
||||
if (BriefDesc != NULL) {
|
||||
SHELL_FREE_NON_NULL (*BriefDesc);
|
||||
}
|
||||
|
||||
StringIdWalker += 1;
|
||||
TempString = HiiGetString (mShellManHiiHandle, (EFI_STRING_ID)StringIdWalker, NULL);
|
||||
if (TempString == NULL) {
|
||||
Status = EFI_NOT_FOUND;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
FileHandle = ConvertEfiFileProtocolToShellHandle (CreateFileInterfaceMem (TRUE), NULL);
|
||||
HelpSize = StrLen (TempString) * sizeof (CHAR16);
|
||||
ShellWriteFile (FileHandle, &HelpSize, TempString);
|
||||
ShellSetFilePosition (FileHandle, 0);
|
||||
HelpSize = 0;
|
||||
BriefSize = 0;
|
||||
Status = ManFileFindTitleSection (FileHandle, Command, BriefDesc, &BriefSize, &Ascii);
|
||||
if (!EFI_ERROR (Status) && (HelpText != NULL)) {
|
||||
Status = ManFileFindSections (FileHandle, Sections, HelpText, &HelpSize, Ascii);
|
||||
}
|
||||
|
||||
ShellCloseFile (&FileHandle);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Found what we need and return
|
||||
//
|
||||
goto Done;
|
||||
}
|
||||
|
||||
StringIdWalker += 1;
|
||||
} while (StringIdWalker < 0xFFFF && TempString != NULL);
|
||||
|
||||
}
|
||||
|
||||
Done:
|
||||
if (mShellManDriverHandle != NULL) {
|
||||
gBS->UninstallProtocolInterface (
|
||||
mShellManDriverHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
&mShellManHiiDevicePath
|
||||
mShellManDriverHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
&mShellManHiiDevicePath
|
||||
);
|
||||
mShellManDriverHandle = NULL;
|
||||
}
|
||||
@ -746,12 +774,11 @@ Done:
|
||||
Status = gBS->UnloadImage (CmdFileImgHandle);
|
||||
}
|
||||
|
||||
SHELL_FREE_NON_NULL(TempString);
|
||||
SHELL_FREE_NON_NULL(CmdFileName);
|
||||
SHELL_FREE_NON_NULL(CmdFilePathName);
|
||||
SHELL_FREE_NON_NULL(FileDevPath);
|
||||
SHELL_FREE_NON_NULL(DevPath);
|
||||
SHELL_FREE_NON_NULL (TempString);
|
||||
SHELL_FREE_NON_NULL (CmdFileName);
|
||||
SHELL_FREE_NON_NULL (CmdFilePathName);
|
||||
SHELL_FREE_NON_NULL (FileDevPath);
|
||||
SHELL_FREE_NON_NULL (DevPath);
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
@ -39,12 +39,12 @@
|
||||
@retval EFI_NOT_FOUND There is no help text available for Command.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessManFile(
|
||||
IN CONST CHAR16 *ManFileName,
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **BriefDesc,
|
||||
OUT CHAR16 **HelpText
|
||||
ProcessManFile (
|
||||
IN CONST CHAR16 *ManFileName,
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **BriefDesc,
|
||||
OUT CHAR16 **HelpText
|
||||
);
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ ProcessManFile(
|
||||
an allocated buffer.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ManFileFindSections(
|
||||
ManFileFindSections (
|
||||
IN SHELL_FILE_HANDLE Handle,
|
||||
IN CONST CHAR16 *Sections,
|
||||
OUT CHAR16 **HelpText,
|
||||
@ -75,4 +75,3 @@ ManFileFindSections(
|
||||
);
|
||||
|
||||
#endif //_SHELL_MAN_FILE_PARSER_HEADER_
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -75,7 +75,7 @@ CleanUpShellParametersProtocol (
|
||||
@retval EFI_OUT_OF_RESOURCES a memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
UpdateArgcArgv(
|
||||
UpdateArgcArgv (
|
||||
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
|
||||
IN CONST CHAR16 *NewCommandLine,
|
||||
IN SHELL_OPERATION_TYPES Type,
|
||||
@ -93,19 +93,19 @@ UpdateArgcArgv(
|
||||
@param[in] OldArgc pointer to old number of items in Argv list
|
||||
**/
|
||||
VOID
|
||||
RestoreArgcArgv(
|
||||
RestoreArgcArgv (
|
||||
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
|
||||
IN CHAR16 ***OldArgv,
|
||||
IN UINTN *OldArgc
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
EFI_HANDLE ConInHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
|
||||
EFI_HANDLE ConOutHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ErrOut;
|
||||
EFI_HANDLE ErrOutHandle;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
EFI_HANDLE ConInHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
|
||||
EFI_HANDLE ConOutHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ErrOut;
|
||||
EFI_HANDLE ErrOutHandle;
|
||||
} SYSTEM_TABLE_INFO;
|
||||
|
||||
/**
|
||||
@ -126,7 +126,7 @@ typedef struct {
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
UpdateStdInStdOutStdErr(
|
||||
UpdateStdInStdOutStdErr (
|
||||
IN OUT EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
|
||||
IN CHAR16 *NewCommandLine,
|
||||
OUT SHELL_FILE_HANDLE *OldStdIn,
|
||||
@ -172,11 +172,11 @@ RestoreStdInStdOutStdErr (
|
||||
@return EFI_OUT_OF_RESOURCES a memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
ParseCommandLineToArgs(
|
||||
IN CONST CHAR16 *CommandLine,
|
||||
IN BOOLEAN StripQuotation,
|
||||
IN OUT CHAR16 ***Argv,
|
||||
IN OUT UINTN *Argc
|
||||
ParseCommandLineToArgs (
|
||||
IN CONST CHAR16 *CommandLine,
|
||||
IN BOOLEAN StripQuotation,
|
||||
IN OUT CHAR16 ***Argv,
|
||||
IN OUT UINTN *Argc
|
||||
);
|
||||
|
||||
/**
|
||||
@ -200,7 +200,7 @@ ParseCommandLineToArgs(
|
||||
@return EFI_NOT_FOUND A closing " could not be found on the specified string
|
||||
**/
|
||||
EFI_STATUS
|
||||
GetNextParameter(
|
||||
GetNextParameter (
|
||||
IN OUT CHAR16 **Walker,
|
||||
IN OUT CHAR16 **TempParameter,
|
||||
IN CONST UINTN Length,
|
||||
@ -208,4 +208,3 @@ GetNextParameter(
|
||||
);
|
||||
|
||||
#endif //_SHELL_PARAMETERS_PROTOCOL_PROVIDER_HEADER_
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -14,13 +14,13 @@
|
||||
#include "Shell.h"
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY Link;
|
||||
EFI_SHELL_PROTOCOL *Interface;
|
||||
EFI_HANDLE Handle;
|
||||
LIST_ENTRY Link;
|
||||
EFI_SHELL_PROTOCOL *Interface;
|
||||
EFI_HANDLE Handle;
|
||||
} SHELL_PROTOCOL_HANDLE_LIST;
|
||||
|
||||
// flags values...
|
||||
#define SHELL_MAP_FLAGS_CONSIST BIT1
|
||||
#define SHELL_MAP_FLAGS_CONSIST BIT1
|
||||
|
||||
/**
|
||||
Function to create and install on the current handle.
|
||||
@ -87,9 +87,9 @@ CleanUpShellEnvironment (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellSetMap(
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
|
||||
IN CONST CHAR16 *Mapping
|
||||
EfiShellSetMap (
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
|
||||
IN CONST CHAR16 *Mapping
|
||||
);
|
||||
|
||||
/**
|
||||
@ -107,8 +107,8 @@ EfiShellSetMap(
|
||||
**/
|
||||
CONST EFI_DEVICE_PATH_PROTOCOL *
|
||||
EFIAPI
|
||||
EfiShellGetDevicePathFromMap(
|
||||
IN CONST CHAR16 *Mapping
|
||||
EfiShellGetDevicePathFromMap (
|
||||
IN CONST CHAR16 *Mapping
|
||||
);
|
||||
|
||||
/**
|
||||
@ -130,8 +130,8 @@ EfiShellGetDevicePathFromMap(
|
||||
**/
|
||||
CONST CHAR16 *
|
||||
EFIAPI
|
||||
EfiShellGetMapFromDevicePath(
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
EfiShellGetMapFromDevicePath (
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@ -149,8 +149,8 @@ EfiShellGetMapFromDevicePath(
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
EfiShellGetFilePathFromDevicePath(
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *Path
|
||||
EfiShellGetFilePathFromDevicePath (
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *Path
|
||||
);
|
||||
|
||||
/**
|
||||
@ -166,8 +166,8 @@ EfiShellGetFilePathFromDevicePath(
|
||||
**/
|
||||
EFI_DEVICE_PATH_PROTOCOL *
|
||||
EFIAPI
|
||||
EfiShellGetDevicePathFromFilePath(
|
||||
IN CONST CHAR16 *Path
|
||||
EfiShellGetDevicePathFromFilePath (
|
||||
IN CONST CHAR16 *Path
|
||||
);
|
||||
|
||||
/**
|
||||
@ -208,11 +208,11 @@ EfiShellGetDevicePathFromFilePath(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellGetDeviceName(
|
||||
IN EFI_HANDLE DeviceHandle,
|
||||
IN EFI_SHELL_DEVICE_NAME_FLAGS Flags,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **BestDeviceName
|
||||
EfiShellGetDeviceName (
|
||||
IN EFI_HANDLE DeviceHandle,
|
||||
IN EFI_SHELL_DEVICE_NAME_FLAGS Flags,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **BestDeviceName
|
||||
);
|
||||
|
||||
/**
|
||||
@ -232,9 +232,9 @@ EfiShellGetDeviceName(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellOpenRootByHandle(
|
||||
IN EFI_HANDLE DeviceHandle,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
EfiShellOpenRootByHandle (
|
||||
IN EFI_HANDLE DeviceHandle,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@ -255,9 +255,9 @@ EfiShellOpenRootByHandle(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellOpenRoot(
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
EfiShellOpenRoot (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@ -287,11 +287,11 @@ EfiShellBatchIsActive (
|
||||
@retval other an error occurred.
|
||||
**/
|
||||
EFI_STATUS
|
||||
InternalOpenFileDevicePath(
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath2,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes OPTIONAL
|
||||
InternalOpenFileDevicePath (
|
||||
IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath2,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -332,10 +332,10 @@ InternalOpenFileDevicePath(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellCreateFile(
|
||||
IN CONST CHAR16 *FileName,
|
||||
IN UINT64 FileAttribs,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
EfiShellCreateFile (
|
||||
IN CONST CHAR16 *FileName,
|
||||
IN UINT64 FileAttribs,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@ -392,10 +392,10 @@ EfiShellCreateFile(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellOpenFileByName(
|
||||
IN CONST CHAR16 *FileName,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle,
|
||||
IN UINT64 OpenMode
|
||||
EfiShellOpenFileByName (
|
||||
IN CONST CHAR16 *FileName,
|
||||
OUT SHELL_FILE_HANDLE *FileHandle,
|
||||
IN UINT64 OpenMode
|
||||
);
|
||||
|
||||
/**
|
||||
@ -412,8 +412,8 @@ EfiShellOpenFileByName(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellDeleteFileByName(
|
||||
IN CONST CHAR16 *FileName
|
||||
EfiShellDeleteFileByName (
|
||||
IN CONST CHAR16 *FileName
|
||||
);
|
||||
|
||||
/**
|
||||
@ -456,12 +456,12 @@ EfiShellEnablePageBreak (
|
||||
@retval EFI_UNSUPPORTED Nested shell invocations are not allowed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
InternalShellExecuteDevicePath(
|
||||
IN CONST EFI_HANDLE *ParentImageHandle,
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
IN CONST CHAR16 *CommandLine OPTIONAL,
|
||||
IN CONST CHAR16 **Environment OPTIONAL,
|
||||
OUT EFI_STATUS *StartImageStatus OPTIONAL
|
||||
InternalShellExecuteDevicePath (
|
||||
IN CONST EFI_HANDLE *ParentImageHandle,
|
||||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
IN CONST CHAR16 *CommandLine OPTIONAL,
|
||||
IN CONST CHAR16 **Environment OPTIONAL,
|
||||
OUT EFI_STATUS *StartImageStatus OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -497,11 +497,11 @@ InternalShellExecuteDevicePath(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellExecute(
|
||||
IN EFI_HANDLE *ParentImageHandle,
|
||||
IN CHAR16 *CommandLine OPTIONAL,
|
||||
IN CHAR16 **Environment OPTIONAL,
|
||||
OUT EFI_STATUS *StatusCode OPTIONAL
|
||||
EfiShellExecute (
|
||||
IN EFI_HANDLE *ParentImageHandle,
|
||||
IN CHAR16 *CommandLine OPTIONAL,
|
||||
IN CHAR16 **Environment OPTIONAL,
|
||||
OUT EFI_STATUS *StatusCode OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -513,8 +513,8 @@ EfiShellExecute(
|
||||
@param FileListNode pointer to the list node to free
|
||||
**/
|
||||
VOID
|
||||
FreeShellFileInfoNode(
|
||||
IN EFI_SHELL_FILE_INFO *FileListNode
|
||||
FreeShellFileInfoNode (
|
||||
IN EFI_SHELL_FILE_INFO *FileListNode
|
||||
);
|
||||
|
||||
/**
|
||||
@ -531,8 +531,8 @@ FreeShellFileInfoNode(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellFreeFileList(
|
||||
IN EFI_SHELL_FILE_INFO **FileList
|
||||
EfiShellFreeFileList (
|
||||
IN EFI_SHELL_FILE_INFO **FileList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -547,8 +547,8 @@ EfiShellFreeFileList(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellRemoveDupInFileList(
|
||||
IN EFI_SHELL_FILE_INFO **FileList
|
||||
EfiShellRemoveDupInFileList (
|
||||
IN EFI_SHELL_FILE_INFO **FileList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -563,12 +563,12 @@ EfiShellRemoveDupInFileList(
|
||||
|
||||
**/
|
||||
EFI_SHELL_FILE_INFO *
|
||||
CreateAndPopulateShellFileInfo(
|
||||
IN CONST CHAR16 *BasePath,
|
||||
IN CONST EFI_STATUS Status,
|
||||
IN CONST CHAR16 *FileName,
|
||||
IN CONST SHELL_FILE_HANDLE Handle,
|
||||
IN CONST EFI_FILE_INFO *Info
|
||||
CreateAndPopulateShellFileInfo (
|
||||
IN CONST CHAR16 *BasePath,
|
||||
IN CONST EFI_STATUS Status,
|
||||
IN CONST CHAR16 *FileName,
|
||||
IN CONST SHELL_FILE_HANDLE Handle,
|
||||
IN CONST EFI_FILE_INFO *Info
|
||||
);
|
||||
|
||||
/**
|
||||
@ -586,9 +586,9 @@ CreateAndPopulateShellFileInfo(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellFindFilesInDir(
|
||||
IN SHELL_FILE_HANDLE FileDirHandle,
|
||||
OUT EFI_SHELL_FILE_INFO **FileList
|
||||
EfiShellFindFilesInDir (
|
||||
IN SHELL_FILE_HANDLE FileDirHandle,
|
||||
OUT EFI_SHELL_FILE_INFO **FileList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -619,9 +619,9 @@ EfiShellFindFilesInDir(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellFindFiles(
|
||||
IN CONST CHAR16 *FilePattern,
|
||||
OUT EFI_SHELL_FILE_INFO **FileList
|
||||
EfiShellFindFiles (
|
||||
IN CONST CHAR16 *FilePattern,
|
||||
OUT EFI_SHELL_FILE_INFO **FileList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -641,10 +641,10 @@ EfiShellFindFiles(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellOpenFileList(
|
||||
IN CHAR16 *Path,
|
||||
IN UINT64 OpenMode,
|
||||
IN OUT EFI_SHELL_FILE_INFO **FileList
|
||||
EfiShellOpenFileList (
|
||||
IN CHAR16 *Path,
|
||||
IN UINT64 OpenMode,
|
||||
IN OUT EFI_SHELL_FILE_INFO **FileList
|
||||
);
|
||||
|
||||
/**
|
||||
@ -660,8 +660,8 @@ EfiShellOpenFileList(
|
||||
**/
|
||||
CONST CHAR16 *
|
||||
EFIAPI
|
||||
EfiShellGetEnv(
|
||||
IN CONST CHAR16 *Name
|
||||
EfiShellGetEnv (
|
||||
IN CONST CHAR16 *Name
|
||||
);
|
||||
|
||||
/**
|
||||
@ -687,10 +687,10 @@ EfiShellGetEnv(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellSetEnv(
|
||||
IN CONST CHAR16 *Name,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN BOOLEAN Volatile
|
||||
EfiShellSetEnv (
|
||||
IN CONST CHAR16 *Name,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN BOOLEAN Volatile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -709,8 +709,8 @@ EfiShellSetEnv(
|
||||
**/
|
||||
CONST CHAR16 *
|
||||
EFIAPI
|
||||
EfiShellGetCurDir(
|
||||
IN CONST CHAR16 *FileSystemMapping OPTIONAL
|
||||
EfiShellGetCurDir (
|
||||
IN CONST CHAR16 *FileSystemMapping OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -738,9 +738,9 @@ EfiShellGetCurDir(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellSetCurDir(
|
||||
IN CONST CHAR16 *FileSystem OPTIONAL,
|
||||
IN CONST CHAR16 *Dir
|
||||
EfiShellSetCurDir (
|
||||
IN CONST CHAR16 *FileSystem OPTIONAL,
|
||||
IN CONST CHAR16 *Dir
|
||||
);
|
||||
|
||||
/**
|
||||
@ -770,10 +770,10 @@ EfiShellSetCurDir(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellGetHelpText(
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **HelpText
|
||||
EfiShellGetHelpText (
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Sections OPTIONAL,
|
||||
OUT CHAR16 **HelpText
|
||||
);
|
||||
|
||||
/**
|
||||
@ -786,7 +786,7 @@ EfiShellGetHelpText(
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
EfiShellGetPageBreak(
|
||||
EfiShellGetPageBreak (
|
||||
VOID
|
||||
);
|
||||
|
||||
@ -800,7 +800,7 @@ EfiShellGetPageBreak(
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
EfiShellIsRootShell(
|
||||
EfiShellIsRootShell (
|
||||
VOID
|
||||
);
|
||||
|
||||
@ -823,9 +823,9 @@ EfiShellIsRootShell(
|
||||
**/
|
||||
CONST CHAR16 *
|
||||
EFIAPI
|
||||
EfiShellGetAlias(
|
||||
IN CONST CHAR16 *Command,
|
||||
OUT BOOLEAN *Volatile OPTIONAL
|
||||
EfiShellGetAlias (
|
||||
IN CONST CHAR16 *Command,
|
||||
OUT BOOLEAN *Volatile OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -845,10 +845,10 @@ EfiShellGetAlias(
|
||||
@retval EFI_NOT_FOUND the Alias intended to be deleted was not found
|
||||
**/
|
||||
EFI_STATUS
|
||||
InternalSetAlias(
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias OPTIONAL,
|
||||
IN BOOLEAN Volatile
|
||||
InternalSetAlias (
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias OPTIONAL,
|
||||
IN BOOLEAN Volatile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -873,11 +873,11 @@ InternalSetAlias(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiShellSetAlias(
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias OPTIONAL,
|
||||
IN BOOLEAN Replace,
|
||||
IN BOOLEAN Volatile
|
||||
EfiShellSetAlias (
|
||||
IN CONST CHAR16 *Command,
|
||||
IN CONST CHAR16 *Alias OPTIONAL,
|
||||
IN BOOLEAN Replace,
|
||||
IN BOOLEAN Volatile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -889,8 +889,8 @@ EfiShellSetAlias(
|
||||
@param FileListNode pointer to the list node to free
|
||||
**/
|
||||
VOID
|
||||
InternalFreeShellFileInfoNode(
|
||||
IN EFI_SHELL_FILE_INFO *FileListNode
|
||||
InternalFreeShellFileInfoNode (
|
||||
IN EFI_SHELL_FILE_INFO *FileListNode
|
||||
);
|
||||
|
||||
/**
|
||||
@ -904,10 +904,10 @@ InternalFreeShellFileInfoNode(
|
||||
@retval EFI_SUCCESS The environment variable was successfully updated.
|
||||
**/
|
||||
EFI_STATUS
|
||||
InternalEfiShellSetEnv(
|
||||
IN CONST CHAR16 *Name,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN BOOLEAN Volatile
|
||||
InternalEfiShellSetEnv (
|
||||
IN CONST CHAR16 *Name,
|
||||
IN CONST CHAR16 *Value,
|
||||
IN BOOLEAN Volatile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -918,7 +918,7 @@ InternalEfiShellSetEnv(
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough memory available.
|
||||
**/
|
||||
EFI_STATUS
|
||||
InernalEfiShellStartMonitor(
|
||||
InernalEfiShellStartMonitor (
|
||||
VOID
|
||||
);
|
||||
|
||||
@ -931,8 +931,8 @@ InernalEfiShellStartMonitor(
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
NotificationFunction(
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
NotificationFunction (
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
);
|
||||
#endif //_SHELL_PROTOCOL_HEADER_
|
||||
|
||||
#endif //_SHELL_PROTOCOL_HEADER_
|
||||
|
Reference in New Issue
Block a user