]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDriver1CommandsLib/Disconnect.c
ShellPkg: Rename gShellCurDir to gShellCurMapping
[mirror_edk2.git] / ShellPkg / Library / UefiShellDriver1CommandsLib / Disconnect.c
index aa323c512a30d1506bf50910137d28f174b8eea6..1fd7b196e673247cbac6f98b7bea0e5d0e7d4154 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
   Main file for Disconnect shell Driver1 function.\r
 \r
-  Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>\r
+  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+  (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
   Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -17,6 +18,7 @@
 \r
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
   {L"-r", TypeFlag},\r
+  {L"-nc", TypeFlag},\r
   {NULL, TypeMax}\r
   };\r
 \r
@@ -26,7 +28,6 @@ STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
   @retval EFI_SUCCESS     The operation was successful.\r
 **/\r
 EFI_STATUS\r
-EFIAPI\r
 DisconnectAll(\r
   VOID\r
   )\r
@@ -132,8 +133,22 @@ ShellCommandRunDisconnect (
         ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDriver1HiiHandle, L"disconnect");  \r
         ShellStatus = SHELL_INVALID_PARAMETER;\r
       } else {\r
-        Status = DisconnectAll();\r
+         Status = DisconnectAll ();\r
+         //\r
+         // Reconnect all consoles if -nc is not provided\r
+         //\r
+         if (!ShellCommandLineGetFlag (Package, L"-nc")){\r
+           ShellConnectFromDevPaths (L"ConInDev");\r
+           ShellConnectFromDevPaths (L"ConOutDev");\r
+           ShellConnectFromDevPaths (L"ErrOutDev");\r
+           ShellConnectFromDevPaths (L"ErrOut");\r
+           ShellConnectFromDevPaths (L"ConIn");\r
+           ShellConnectFromDevPaths (L"ConOut");\r
+         }\r
       }\r
+    } else if (ShellCommandLineGetFlag (Package, L"-nc")) {\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDriver1HiiHandle, L"disconnect");\r
+      ShellStatus = SHELL_INVALID_PARAMETER;\r
     } else {\r
       if (ShellCommandLineGetCount(Package) > 4){\r
         ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"disconnect");  \r