NULL,\r
NULL,\r
NULL,\r
- NULL\r
+ NULL,\r
+ FALSE\r
};\r
\r
STATIC CONST CHAR16 mScriptExtension[] = L".NSH";\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR16 *TempString;\r
- UINTN Size;\r
-// EFI_INPUT_KEY Key;\r
-\r
-// gST->ConOut->OutputString(gST->ConOut, L"ReadKeyStroke Calling\r\n");\r
-//\r
-// Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);\r
-//\r
-// gST->ConOut->OutputString(gST->ConOut, L"ReadKeyStroke Done\r\n");\r
-// gBS->Stall (1000000);\r
+ EFI_STATUS Status;\r
+ CHAR16 *TempString;\r
+ UINTN Size;\r
+ EFI_HANDLE ConInHandle;\r
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *OldConIn;\r
\r
if (PcdGet8(PcdShellSupportLevel) > 3) {\r
return (EFI_UNSUPPORTED);\r
Status = InternalEfiShellStartCtrlSMonitor();\r
}\r
\r
+ if (!EFI_ERROR(Status) && ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoConsoleIn) {\r
+ //\r
+ // close off the gST->ConIn\r
+ //\r
+ OldConIn = gST->ConIn;\r
+ ConInHandle = gST->ConsoleInHandle;\r
+ gST->ConIn = CreateSimpleTextInOnFile((SHELL_FILE_HANDLE)&FileInterfaceNulFile, &gST->ConsoleInHandle);\r
+ } else {\r
+ OldConIn = NULL;\r
+ ConInHandle = NULL;\r
+ }\r
+\r
if (!EFI_ERROR(Status) && PcdGet8(PcdShellSupportLevel) >= 1) {\r
//\r
// process the startup script or launch the called app.\r
Status = DoShellPrompt();\r
} while (!ShellCommandGetExit());\r
}\r
+ if (OldConIn != NULL && ConInHandle != NULL) {\r
+ CloseSimpleTextInOnFile (gST->ConIn);\r
+ gST->ConIn = OldConIn;\r
+ gST->ConsoleInHandle = ConInHandle;\r
+ }\r
}\r
}\r
\r
return (FALSE);\r
}\r
\r
-\r
-\r
/**\r
This function will populate the 2 device path protocol parameters based on the\r
global gImageHandle. The DevPath will point to the device path for the handle that has\r
if (!EFI_ERROR (Status)) {\r
*DevPath = DuplicateDevicePath (ImageDevicePath);\r
*FilePath = DuplicateDevicePath (LoadedImage->FilePath);\r
+ gBS->CloseProtocol(\r
+ LoadedImage->DeviceHandle,\r
+ &gEfiDevicePathProtocolGuid,\r
+ gImageHandle,\r
+ NULL);\r
}\r
gBS->CloseProtocol(\r
gImageHandle,\r
{L"-delay", TypeValue},\r
{NULL, TypeMax}\r
};\r
+\r
/**\r
Process all Uefi Shell 2.0 command line options.\r
\r