]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.c
ShellPkg/Dp: Add null pointer check
[mirror_edk2.git] / ShellPkg / Library / UefiShellNetwork1CommandsLib / UefiShellNetwork1CommandsLib.c
CommitLineData
68fb0527 1/** @file\r
2 Main file for NULL named library for network1 shell command functions.\r
3\r
4 Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved. <BR>\r
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#include "UefiShellNetwork1CommandsLib.h"\r
15\r
16CONST CHAR16 gShellNetwork1FileName[] = L"ShellCommands";\r
17EFI_HANDLE gShellNetwork1HiiHandle = NULL;\r
68fb0527 18\r
19/**\r
20 return the file name of the help text file if not using HII.\r
21\r
22 @return The string pointer to the file name.\r
23**/\r
24CONST CHAR16*\r
25EFIAPI\r
26ShellCommandGetManFileNameNetwork1 (\r
27 VOID\r
28 )\r
29{\r
30 return (gShellNetwork1FileName);\r
31}\r
32\r
33/**\r
34 Constructor for the Shell Network1 Commands library.\r
35\r
36 Install the handlers for Network1 UEFI Shell 2.0 profile commands.\r
37\r
38 @param ImageHandle The image handle of the process.\r
39 @param SystemTable The EFI System Table pointer.\r
40\r
41 @retval EFI_SUCCESS The shell command handlers were installed sucessfully.\r
42 @retval EFI_UNSUPPORTED The shell level required was not found.\r
43**/\r
44EFI_STATUS\r
45EFIAPI\r
46ShellNetwork1CommandsLibConstructor (\r
47 IN EFI_HANDLE ImageHandle,\r
48 IN EFI_SYSTEM_TABLE *SystemTable\r
49 )\r
50{\r
51 gShellNetwork1HiiHandle = NULL;\r
52\r
53 //\r
54 // check our bit of the profiles mask\r
55 //\r
56 if ((PcdGet8(PcdShellProfileMask) & BIT3) == 0) {\r
82571fb5 57 return (EFI_SUCCESS);\r
68fb0527 58 }\r
59\r
60 gShellNetwork1HiiHandle = HiiAddPackages (&gShellNetwork1HiiGuid, gImageHandle, UefiShellNetwork1CommandsLibStrings, NULL);\r
61 if (gShellNetwork1HiiHandle == NULL) {\r
62 return (EFI_DEVICE_ERROR);\r
63 }\r
64 //\r
65 // install our shell command handlers\r
66 //\r
67 ShellCommandRegisterCommandName(L"ping", ShellCommandRunPing , ShellCommandGetManFileNameNetwork1, 0, L"network1", TRUE , gShellNetwork1HiiHandle, STRING_TOKEN(STR_GET_HELP_PING));\r
68 ShellCommandRegisterCommandName(L"ifconfig",ShellCommandRunIfconfig , ShellCommandGetManFileNameNetwork1, 0, L"network1", TRUE , gShellNetwork1HiiHandle, STRING_TOKEN(STR_GET_HELP_IFCONFIG));\r
69\r
70 return (EFI_SUCCESS);\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
81ShellNetwork1CommandsLibDestructor (\r
82 IN EFI_HANDLE ImageHandle,\r
83 IN EFI_SYSTEM_TABLE *SystemTable\r
84 )\r
85{\r
86 if (gShellNetwork1HiiHandle != NULL) {\r
87 HiiRemovePackages(gShellNetwork1HiiHandle);\r
88 }\r
89 return (EFI_SUCCESS);\r
90}\r