]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.c
ShellPkg: Move a function into shared location
[mirror_edk2.git] / ShellPkg / Library / UefiShellDriver1CommandsLib / UefiShellDriver1CommandsLib.c
CommitLineData
4ba49616 1/** @file\r
2 Main file for NULL named library for level 1 shell command functions.\r
3\r
361a8267 4 Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
4ba49616 5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#include "UefiShellDriver1CommandsLib.h"\r
16\r
17STATIC CONST CHAR16 mFileName[] = L"Driver1Commands";\r
18EFI_HANDLE gShellDriver1HiiHandle = NULL;\r
6878e7a7 19BOOLEAN gInReconnect = FALSE;\r
20\r
304ae970
JC
21/**\r
22 Function to translate the EFI_MEMORY_TYPE into a string.\r
23\r
24 @param[in] Memory The memory type.\r
25\r
26 @retval A string representation of the type allocated from BS Pool.\r
27**/\r
28CHAR16*\r
29EFIAPI\r
30ConvertMemoryType (\r
31 IN CONST EFI_MEMORY_TYPE Memory\r
32 )\r
33{\r
34 CHAR16 *RetVal;\r
35 RetVal = NULL;\r
36\r
37 switch (Memory) {\r
38 case EfiReservedMemoryType: StrnCatGrow(&RetVal, NULL, L"EfiReservedMemoryType", 0); break;\r
39 case EfiLoaderCode: StrnCatGrow(&RetVal, NULL, L"EfiLoaderCode", 0); break;\r
40 case EfiLoaderData: StrnCatGrow(&RetVal, NULL, L"EfiLoaderData", 0); break;\r
41 case EfiBootServicesCode: StrnCatGrow(&RetVal, NULL, L"EfiBootServicesCode", 0); break;\r
42 case EfiBootServicesData: StrnCatGrow(&RetVal, NULL, L"EfiBootServicesData", 0); break;\r
43 case EfiRuntimeServicesCode: StrnCatGrow(&RetVal, NULL, L"EfiRuntimeServicesCode", 0); break;\r
44 case EfiRuntimeServicesData: StrnCatGrow(&RetVal, NULL, L"EfiRuntimeServicesData", 0); break;\r
45 case EfiConventionalMemory: StrnCatGrow(&RetVal, NULL, L"EfiConventionalMemory", 0); break;\r
46 case EfiUnusableMemory: StrnCatGrow(&RetVal, NULL, L"EfiUnusableMemory", 0); break;\r
47 case EfiACPIReclaimMemory: StrnCatGrow(&RetVal, NULL, L"EfiACPIReclaimMemory", 0); break;\r
48 case EfiACPIMemoryNVS: StrnCatGrow(&RetVal, NULL, L"EfiACPIMemoryNVS", 0); break;\r
49 case EfiMemoryMappedIO: StrnCatGrow(&RetVal, NULL, L"EfiMemoryMappedIO", 0); break;\r
50 case EfiMemoryMappedIOPortSpace: StrnCatGrow(&RetVal, NULL, L"EfiMemoryMappedIOPortSpace", 0); break;\r
51 case EfiPalCode: StrnCatGrow(&RetVal, NULL, L"EfiPalCode", 0); break;\r
52 case EfiMaxMemoryType: StrnCatGrow(&RetVal, NULL, L"EfiMaxMemoryType", 0); break;\r
53 default: ASSERT(FALSE);\r
54 }\r
55 return (RetVal);\r
56}\r
57\r
361a8267 58/**\r
59 Function to return the name of the file containing help if HII will not be used.\r
60\r
61 @return The filename.\r
62**/\r
4ba49616 63CONST CHAR16*\r
64EFIAPI\r
65ShellCommandGetManFileNameDriver1 (\r
66 VOID\r
67 )\r
68{\r
69 return (mFileName);\r
70}\r
71\r
72/**\r
73 Constructor for the Shell Driver1 Commands library.\r
74\r
75 @param ImageHandle the image handle of the process\r
76 @param SystemTable the EFI System Table pointer\r
77\r
78 @retval EFI_SUCCESS the shell command handlers were installed sucessfully\r
79 @retval EFI_UNSUPPORTED the shell level required was not found.\r
80**/\r
81EFI_STATUS\r
82EFIAPI\r
83UefiShellDriver1CommandsLibConstructor (\r
84 IN EFI_HANDLE ImageHandle,\r
85 IN EFI_SYSTEM_TABLE *SystemTable\r
86 )\r
87{\r
88 //\r
89 // check our bit of the profiles mask\r
90 //\r
91 if ((PcdGet8(PcdShellProfileMask) & BIT0) == 0) {\r
82571fb5 92 return (EFI_SUCCESS);\r
4ba49616 93 }\r
94\r
95 //\r
96 // install the HII stuff.\r
97 //\r
98 gShellDriver1HiiHandle = HiiAddPackages (&gShellDriver1HiiGuid, gImageHandle, UefiShellDriver1CommandsLibStrings, NULL);\r
99 if (gShellDriver1HiiHandle == NULL) {\r
100 return (EFI_DEVICE_ERROR);\r
101 }\r
102\r
103 //\r
104 // install our shell command handlers that are always installed\r
105 //\r
106 ShellCommandRegisterCommandName(L"connect", ShellCommandRunConnect , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_CONNECT) );\r
107 ShellCommandRegisterCommandName(L"devices", ShellCommandRunDevices , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DEVICES) );\r
108 ShellCommandRegisterCommandName(L"openinfo", ShellCommandRunOpenInfo , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_OPENINFO) );\r
109 ShellCommandRegisterCommandName(L"disconnect", ShellCommandRunDisconnect , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DISCONNECT));\r
110 ShellCommandRegisterCommandName(L"reconnect", ShellCommandRunReconnect , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_RECONNECT) );\r
111 ShellCommandRegisterCommandName(L"unload", ShellCommandRunUnload , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_UNLOAD) );\r
112 ShellCommandRegisterCommandName(L"drvdiag", ShellCommandRunDrvDiag , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DRVDIAG) );\r
113 ShellCommandRegisterCommandName(L"dh", ShellCommandRunDh , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DH) );\r
114 ShellCommandRegisterCommandName(L"drivers", ShellCommandRunDrivers , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DRIVERS) );\r
115 ShellCommandRegisterCommandName(L"devtree", ShellCommandRunDevTree , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DEVTREE) );\r
116 ShellCommandRegisterCommandName(L"drvcfg", ShellCommandRunDrvCfg , ShellCommandGetManFileNameDriver1, 0, L"Driver1", TRUE, gShellDriver1HiiHandle, STRING_TOKEN(STR_GET_HELP_DRVCFG) );\r
117\r
118 return (EFI_SUCCESS);\r
119}\r
120\r
121/**\r
122 Destructor for the library. free any resources.\r
361a8267 123\r
124 @param ImageHandle The image handle of the process.\r
125 @param SystemTable The EFI System Table pointer.\r
4ba49616 126**/\r
127EFI_STATUS\r
128EFIAPI\r
129UefiShellDriver1CommandsLibDestructor (\r
130 IN EFI_HANDLE ImageHandle,\r
131 IN EFI_SYSTEM_TABLE *SystemTable\r
132 )\r
133{\r
134 if (gShellDriver1HiiHandle != NULL) {\r
135 HiiRemovePackages(gShellDriver1HiiHandle);\r
136 }\r
137 return (EFI_SUCCESS);\r
138}\r
139\r
140\r
141\r