]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellDriver1CommandsLib/Reconnect.c
ShellPkg: Clean up source files
[mirror_edk2.git] / ShellPkg / Library / UefiShellDriver1CommandsLib / Reconnect.c
CommitLineData
4ba49616 1/** @file\r
2 Main file for Reconnect shell Driver1 function.\r
3\r
ba0014b9 4 Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
c9e24031 5 (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
ba0014b9 6 (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
4ba49616 7 This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15**/\r
16\r
17#include "UefiShellDriver1CommandsLib.h"\r
18\r
d86b04fb
QS
19STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
20 {L"-r", TypeFlag},\r
21 {NULL, TypeMax}\r
22 };\r
23\r
24/**\r
25 Connect all the possible console devices.\r
26\r
27**/\r
28VOID\r
29ConnectAllConsoles (\r
30 VOID\r
31 )\r
ba0014b9 32{\r
d86b04fb
QS
33 ShellConnectFromDevPaths(L"ConInDev");\r
34 ShellConnectFromDevPaths(L"ConOutDev");\r
35 ShellConnectFromDevPaths(L"ErrOutDev");\r
ba0014b9 36\r
d86b04fb
QS
37 ShellConnectFromDevPaths(L"ErrOut");\r
38 ShellConnectFromDevPaths(L"ConIn");\r
39 ShellConnectFromDevPaths(L"ConOut");\r
40}\r
41\r
42\r
361a8267 43/**\r
44 Function for 'reconnect' command.\r
45\r
46 @param[in] ImageHandle Handle to the Image (NULL if Internal).\r
47 @param[in] SystemTable Pointer to the System Table (NULL if Internal).\r
48**/\r
4ba49616 49SHELL_STATUS\r
50EFIAPI\r
51ShellCommandRunReconnect (\r
52 IN EFI_HANDLE ImageHandle,\r
53 IN EFI_SYSTEM_TABLE *SystemTable\r
54 )\r
55{\r
56 SHELL_STATUS ShellStatus;\r
d86b04fb
QS
57 LIST_ENTRY *Package;\r
58 CHAR16 *ProblemParam;\r
59 EFI_STATUS Status;\r
4ba49616 60\r
6878e7a7 61 gInReconnect = TRUE;\r
d86b04fb 62 ShellStatus = SHELL_SUCCESS;\r
ba0014b9 63\r
d86b04fb
QS
64 //\r
65 // initialize the shell lib (we must be in non-auto-init...)\r
66 //\r
67 Status = ShellInitialize();\r
68 ASSERT_EFI_ERROR(Status);\r
6878e7a7 69\r
d86b04fb
QS
70 Status = CommandInit();\r
71 ASSERT_EFI_ERROR(Status);\r
72\r
73 //\r
74 // parse the command line\r
75 //\r
76 Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
77 if (EFI_ERROR(Status)) {\r
78 if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
c9e24031 79 ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"reconnect", ProblemParam);\r
d86b04fb
QS
80 FreePool(ProblemParam);\r
81 ShellStatus = SHELL_INVALID_PARAMETER;\r
82 } else {\r
83 ASSERT(FALSE);\r
84 }\r
85 } else {\r
86 ShellStatus = ShellCommandRunDisconnect(ImageHandle, SystemTable);\r
87 if (ShellStatus == SHELL_SUCCESS) {\r
88 if (ShellCommandLineGetFlag(Package, L"-r")) {\r
89 ConnectAllConsoles();\r
90 }\r
91 ShellStatus = ShellCommandRunConnect(ImageHandle, SystemTable);\r
92 }\r
ba0014b9 93 }\r
6878e7a7 94\r
95 gInReconnect = FALSE;\r
96\r
4ba49616 97 return (ShellStatus);\r
98}\r
d86b04fb 99\r