+++ /dev/null
-/** @file\r
- The interface function declaration of shell application Ping6 (Ping for v6 series).\r
-\r
- Copyright (c) 2009 - 2016, 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
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php.\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef _PING6_H_\r
-#define _PING6_H_\r
-\r
-#define PING6_DEFAULT_TIMEOUT 5000\r
-#define PING6_MAX_SEND_NUMBER 10000\r
-#define PING6_MAX_BUFFER_SIZE 32768\r
-#define PING6_ONE_SECOND 10000000\r
-\r
-//\r
-// A similar amount of time that passes in femtoseconds\r
-// for each increment of TimerValue. It is for NT32 only.\r
-//\r
-#define NTTIMERPERIOD 358049\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct _ICMP6_ECHO_REQUEST_REPLY {\r
- UINT8 Type;\r
- UINT8 Code;\r
- UINT16 Checksum;\r
- UINT16 Identifier;\r
- UINT16 SequenceNum;\r
- UINT64 TimeStamp;\r
- UINT8 Data[1];\r
-} ICMP6_ECHO_REQUEST_REPLY;\r
-\r
-#pragma pack()\r
-\r
-typedef struct _PING6_ICMP6_TX_INFO {\r
- LIST_ENTRY Link;\r
- UINT16 SequenceNum;\r
- UINT64 TimeStamp;\r
- EFI_IP6_COMPLETION_TOKEN *Token;\r
-} PING6_ICMP6_TX_INFO;\r
-\r
-typedef struct _PING6_PRIVATE_DATA {\r
- EFI_HANDLE ImageHandle;\r
- EFI_HANDLE NicHandle;\r
- EFI_HANDLE Ip6ChildHandle;\r
- EFI_IP6_PROTOCOL *Ip6;\r
- EFI_EVENT Timer;\r
-\r
- EFI_STATUS Status;\r
- LIST_ENTRY TxList;\r
- EFI_IP6_COMPLETION_TOKEN RxToken;\r
- UINT16 RxCount;\r
- UINT16 TxCount;\r
- UINT64 RttSum;\r
- UINT64 RttMin;\r
- UINT64 RttMax;\r
- UINT32 SequenceNum;\r
-\r
- EFI_IPv6_ADDRESS SrcAddress;\r
- EFI_IPv6_ADDRESS DstAddress;\r
- UINT32 SendNum;\r
- UINT32 BufferSize;\r
-} PING6_PRIVATE_DATA;\r
-\r
-/**\r
- Reads and returns the current value of register.\r
- In IA64, the register is the Interval Timer Vector (ITV).\r
- In X86(IA32/X64), the register is the Time Stamp Counter (TSC)\r
-\r
- @return The current value of the register.\r
-\r
-**/\r
-UINT64\r
-ReadTime (\r
- VOID\r
- );\r
-\r
-#endif\r