/** @file\r
The implementation for Ping shell command.\r
\r
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
\r
#define PING_IP4_COPY_ADDRESS(Dest, Src) (CopyMem ((Dest), (Src), sizeof (EFI_IPv4_ADDRESS)))\r
\r
+UINT64 CurrentTick = 0;\r
\r
//\r
// Function templates to match the IPv4 and IPv6 commands that we use.\r
STATIC UINT64 mFrequency = 0;\r
EFI_CPU_ARCH_PROTOCOL *gCpu = NULL;\r
\r
+/**\r
+ Read the current time.\r
+\r
+ @retval the current tick value.\r
+**/\r
UINT64\r
EFIAPI\r
ReadTime (\r
VOID\r
)\r
{\r
- static UINT64 CurrentTick = 0;\r
UINT64 TimerPeriod;\r
EFI_STATUS Status;\r
\r
if (NetIp6IsLinkLocalAddr ((EFI_IPv6_ADDRESS*)&Private->DstAddress) &&\r
NetIp6IsUnspecifiedAddr ((EFI_IPv6_ADDRESS*)&Private->SrcAddress) &&\r
(HandleNum > 1)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, mSrcString);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", mSrcString); \r
Status = EFI_INVALID_PARAMETER;\r
goto ON_ERROR;\r
}\r
if (PingNetIp4IsLinkLocalAddr ((EFI_IPv4_ADDRESS*)&Private->DstAddress) &&\r
PingNetIp4IsUnspecifiedAddr ((EFI_IPv4_ADDRESS*)&Private->SrcAddress) &&\r
(HandleNum > 1)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, mSrcString);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", mSrcString); \r
Status = EFI_INVALID_PARAMETER;\r
goto ON_ERROR;\r
}\r
//\r
\r
if (HandleIndex == HandleNum) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, mSrcString);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING_CONFIGD_NIC_NF), gShellNetwork1HiiHandle, L"ping"); \r
Status = EFI_NOT_FOUND;\r
goto ON_ERROR;\r
}\r
}\r
\r
/**\r
- Destory the IP instance.\r
+ Destroy the IP instance.\r
\r
@param[in] Private The pointer of PING_PRIVATE_DATA.\r
\r
**/\r
VOID\r
EFIAPI\r
-Ping6DestoryIp6Instance (\r
+Ping6DestroyIp6Instance (\r
IN PING_PRIVATE_DATA *Private\r
)\r
{\r
} else if (Status == RETURN_NO_MAPPING) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING_NOROUTE_FOUND), gShellNetwork1HiiHandle, mDstString, mSrcString);\r
} else {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING_NETWORK_ERROR), gShellNetwork1HiiHandle, Status);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING_NETWORK_ERROR), gShellNetwork1HiiHandle, L"ping", Status); \r
}\r
\r
goto ON_EXIT;\r
}\r
\r
if (Private->IpChildHandle != NULL) {\r
- Ping6DestoryIp6Instance (Private);\r
+ Ping6DestroyIp6Instance (Private);\r
}\r
\r
FreePool (Private);\r
CONST CHAR16 *ValueStr;\r
UINTN NonOptionCount;\r
UINT32 IpChoice;\r
+ CHAR16 *ProblemParam;\r
\r
//\r
// we use IPv6 buffers to hold items... \r
IpChoice = PING_IP_CHOICE_IP4;\r
\r
ShellStatus = SHELL_SUCCESS;\r
+ ProblemParam = NULL;\r
\r
- Status = ShellCommandLineParseEx (PingParamList, &ParamPackage, NULL, TRUE, FALSE);\r
+ Status = ShellCommandLineParseEx (PingParamList, &ParamPackage, &ProblemParam, TRUE, FALSE);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
// ShellStrToUintn will return 0 when input is 0 or an invalid input string.\r
//\r
if ((SendNumber == 0) || (SendNumber > MAX_SEND_NUMBER)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, ValueStr);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", ValueStr); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
// ShellStrToUintn will return 0 when input is 0 or an invalid input string.\r
//\r
if ((BufferSize < 16) || (BufferSize > MAX_BUFFER_SIZE)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, ValueStr);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", ValueStr); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
Status = NetLibStrToIp4 (ValueStr, (EFI_IPv4_ADDRESS*)&SrcAddress);\r
}\r
if (EFI_ERROR (Status)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, ValueStr);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", ValueStr); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
//\r
NonOptionCount = ShellCommandLineGetCount(ParamPackage);\r
if (NonOptionCount < 2) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellNetwork1HiiHandle);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellNetwork1HiiHandle, L"ping"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
if (NonOptionCount > 2) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellNetwork1HiiHandle);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellNetwork1HiiHandle, L"ping"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
Status = NetLibStrToIp4 (ValueStr, (EFI_IPv4_ADDRESS*)&DstAddress);\r
}\r
if (EFI_ERROR (Status)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellNetwork1HiiHandle, ValueStr);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ping", ValueStr); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r