]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellDriver1CommandsLib/Reconnect.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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
56ba3746 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
4ba49616 8\r
9**/\r
10\r
11#include "UefiShellDriver1CommandsLib.h"\r
12\r
47d20b54
MK
13STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
14 { L"-r", TypeFlag },\r
15 { NULL, TypeMax }\r
16};\r
d86b04fb
QS
17\r
18/**\r
19 Connect all the possible console devices.\r
20\r
21**/\r
22VOID\r
23ConnectAllConsoles (\r
24 VOID\r
25 )\r
ba0014b9 26{\r
47d20b54
MK
27 ShellConnectFromDevPaths (L"ConInDev");\r
28 ShellConnectFromDevPaths (L"ConOutDev");\r
29 ShellConnectFromDevPaths (L"ErrOutDev");\r
ba0014b9 30\r
47d20b54
MK
31 ShellConnectFromDevPaths (L"ErrOut");\r
32 ShellConnectFromDevPaths (L"ConIn");\r
33 ShellConnectFromDevPaths (L"ConOut");\r
d86b04fb
QS
34}\r
35\r
361a8267 36/**\r
37 Function for 'reconnect' command.\r
38\r
39 @param[in] ImageHandle Handle to the Image (NULL if Internal).\r
40 @param[in] SystemTable Pointer to the System Table (NULL if Internal).\r
41**/\r
4ba49616 42SHELL_STATUS\r
43EFIAPI\r
44ShellCommandRunReconnect (\r
45 IN EFI_HANDLE ImageHandle,\r
46 IN EFI_SYSTEM_TABLE *SystemTable\r
47 )\r
48{\r
47d20b54
MK
49 SHELL_STATUS ShellStatus;\r
50 LIST_ENTRY *Package;\r
51 CHAR16 *ProblemParam;\r
52 EFI_STATUS Status;\r
4ba49616 53\r
6878e7a7 54 gInReconnect = TRUE;\r
47d20b54 55 ShellStatus = SHELL_SUCCESS;\r
ba0014b9 56\r
d86b04fb
QS
57 //\r
58 // initialize the shell lib (we must be in non-auto-init...)\r
59 //\r
47d20b54
MK
60 Status = ShellInitialize ();\r
61 ASSERT_EFI_ERROR (Status);\r
6878e7a7 62\r
47d20b54
MK
63 Status = CommandInit ();\r
64 ASSERT_EFI_ERROR (Status);\r
d86b04fb
QS
65\r
66 //\r
67 // parse the command line\r
68 //\r
69 Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
47d20b54
MK
70 if (EFI_ERROR (Status)) {\r
71 if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {\r
72 ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"reconnect", ProblemParam);\r
73 FreePool (ProblemParam);\r
d86b04fb
QS
74 ShellStatus = SHELL_INVALID_PARAMETER;\r
75 } else {\r
47d20b54 76 ASSERT (FALSE);\r
d86b04fb
QS
77 }\r
78 } else {\r
47d20b54 79 ShellStatus = ShellCommandRunDisconnect (ImageHandle, SystemTable);\r
d86b04fb 80 if (ShellStatus == SHELL_SUCCESS) {\r
47d20b54
MK
81 if (ShellCommandLineGetFlag (Package, L"-r")) {\r
82 ConnectAllConsoles ();\r
d86b04fb 83 }\r
47d20b54
MK
84\r
85 ShellStatus = ShellCommandRunConnect (ImageHandle, SystemTable);\r
d86b04fb 86 }\r
ba0014b9 87 }\r
6878e7a7 88\r
89 gInReconnect = FALSE;\r
90\r
4ba49616 91 return (ShellStatus);\r
92}\r