]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.c
ShellPkg: Merge Ping6 and Ifconfig6 tools to Shell command.
[mirror_edk2.git] / ShellPkg / Library / UefiShellNetwork2CommandsLib / UefiShellNetwork2CommandsLib.c
CommitLineData
43ca1753
ZL
1/** @file\r
2 Main file for NULL named library for network2 shell command functions.\r
3\r
4 Copyright (c) 2016, Intel Corporation. All rights reserved. <BR>\r
5 This program and the accompanying materials are licensed and made available under\r
6 the terms and conditions of the BSD License which accompanies this distribution.\r
7 The full text of the license may be found at http://opensource.org/licenses/bsd-license.php\r
8\r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12**/\r
13#include "UefiShellNetwork2CommandsLib.h"\r
14\r
15CONST CHAR16 gShellNetwork2FileName[] = L"ShellCommands";\r
16EFI_HANDLE gShellNetwork2HiiHandle = NULL;\r
17\r
18/**\r
19 return the file name of the help text file if not using HII.\r
20\r
21 @return The string pointer to the file name.\r
22**/\r
23CONST CHAR16*\r
24EFIAPI\r
25ShellCommandGetManFileNameNetwork2 (\r
26 VOID\r
27 )\r
28{\r
29 return (gShellNetwork2FileName);\r
30}\r
31\r
32/**\r
33 Constructor for the Shell Network2 Commands library.\r
34\r
35 Install the handlers for Network2 UEFI Shell 2.0 profile commands.\r
36\r
37 @param ImageHandle The image handle of the process.\r
38 @param SystemTable The EFI System Table pointer.\r
39\r
40 @retval EFI_SUCCESS The shell command handlers were installed sucessfully.\r
41 @retval EFI_UNSUPPORTED The shell level required was not found.\r
42**/\r
43EFI_STATUS\r
44EFIAPI\r
45ShellNetwork2CommandsLibConstructor (\r
46 IN EFI_HANDLE ImageHandle,\r
47 IN EFI_SYSTEM_TABLE *SystemTable\r
48 )\r
49{\r
50 gShellNetwork2HiiHandle = NULL;\r
51\r
52 //\r
53 // check our bit of the profiles mask\r
54 //\r
55 if ((PcdGet8(PcdShellProfileMask) & BIT4) == 0) {\r
56 return (EFI_SUCCESS);\r
57 }\r
58\r
59 gShellNetwork2HiiHandle = HiiAddPackages (&gShellNetwork2HiiGuid, gImageHandle, UefiShellNetwork2CommandsLibStrings, NULL);\r
60 if (gShellNetwork2HiiHandle == NULL) {\r
61 return (EFI_DEVICE_ERROR);\r
62 }\r
63 //\r
64 // install our shell command handlers\r
65 //\r
66 ShellCommandRegisterCommandName(L"ping6", ShellCommandRunPing6 , ShellCommandGetManFileNameNetwork2, 0, L"network2", TRUE , gShellNetwork2HiiHandle, STRING_TOKEN(STR_GET_HELP_PING6));\r
67 ShellCommandRegisterCommandName(L"ifconfig6",ShellCommandRunIfconfig6 , ShellCommandGetManFileNameNetwork2, 0, L"network2", TRUE , gShellNetwork2HiiHandle, STRING_TOKEN(STR_GET_HELP_IFCONFIG6));\r
68\r
69 return EFI_SUCCESS;\r
70\r
71}\r
72\r
73/**\r
74 Destructor for the library. free any resources.\r
75\r
76 @param ImageHandle The image handle of the process.\r
77 @param SystemTable The EFI System Table pointer.\r
78**/\r
79EFI_STATUS\r
80EFIAPI\r
81ShellNetwork2CommandsLibDestructor (\r
82 IN EFI_HANDLE ImageHandle,\r
83 IN EFI_SYSTEM_TABLE *SystemTable\r
84 )\r
85{\r
86 if (gShellNetwork2HiiHandle != NULL) {\r
87 HiiRemovePackages(gShellNetwork2HiiHandle);\r
88 }\r
89 return EFI_SUCCESS;\r
90}\r
91\r