]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/ArpDxe/ArpImpl.h
Update to support to produce Component Name and & Component Name 2 protocol based...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / ArpDxe / ArpImpl.h
index 607443a99e262659c4471102435cf7c183d4ac19..729cb5d68e189c6ad780618fcce1007092538708 100644 (file)
-/** @file
-
-Copyright (c) 2006 - 2007, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  ArpImpl.h
-
-Abstract:
-
-
-**/
-
-#ifndef _ARP_IMPL_H_
-#define _ARP_IMPL_H_
-
+/** @file\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. 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
+Module Name:\r
+\r
+  ArpImpl.h\r
+\r
+Abstract:\r
+\r
+\r
+**/\r
+\r
+#ifndef _ARP_IMPL_H_\r
+#define _ARP_IMPL_H_\r
+\r
 \r
 #include <PiDxe.h>\r
 \r
 #include <Protocol/Arp.h>\r
-#include <Protocol/ManagedNetwork.h>
+#include <Protocol/ManagedNetwork.h>\r
 #include <Protocol/ServiceBinding.h>\r
 \r
 #include <Library/DebugLib.h>\r
 #include <Library/UefiDriverEntryPoint.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>
-#include <Library/NetLib.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-#include "ArpDebug.h"
-
-#define ARP_ETHER_PROTO_TYPE         0x0806
-#define IPv4_ETHER_PROTO_TYPE        0x0800
-#define IPv6_ETHER_PROTO_TYPE        0x86DD
-
-#define ARP_OPCODE_REQUEST           0x0001
-#define ARP_OPCODE_REPLY             0x0002
-
-#define ARP_DEFAULT_TIMEOUT_VALUE    (400 * TICKS_PER_SECOND)
-#define ARP_DEFAULT_RETRY_COUNT      2
-#define ARP_DEFAULT_RETRY_INTERVAL   (5   * TICKS_PER_MS)
-#define ARP_PERIODIC_TIMER_INTERVAL  (500 * TICKS_PER_MS)
-
-#pragma pack(1)
-typedef struct _ARP_HEAD {
-  UINT16  HwType;
-  UINT16  ProtoType;
-  UINT8   HwAddrLen;
-  UINT8   ProtoAddrLen;
-  UINT16  OpCode;
-} ARP_HEAD;
-#pragma pack()
-
-typedef struct _ARP_ADDRESS {
-  UINT8  *SenderHwAddr;
-  UINT8  *SenderProtoAddr;
-  UINT8  *TargetHwAddr;
-  UINT8  *TargetProtoAddr;
-} ARP_ADDRESS;
-
-#define MATCH_SW_ADDRESS  0x1
-#define MATCH_HW_ADDRESS  0x2
-
-typedef enum {
-  ByNone         = 0,
-  ByProtoAddress = MATCH_SW_ADDRESS,
-  ByHwAddress    = MATCH_HW_ADDRESS,
-  ByBoth         = MATCH_SW_ADDRESS | MATCH_HW_ADDRESS
-} FIND_OPTYPE;
-
-#define ARP_INSTANCE_DATA_SIGNATURE  EFI_SIGNATURE_32('A', 'R', 'P', 'I')
-
-#define ARP_INSTANCE_DATA_FROM_THIS(a) \
-  CR ( \
-  (a), \
-  ARP_INSTANCE_DATA, \
-  ArpProto, \
-  ARP_INSTANCE_DATA_SIGNATURE \
-  )
-
-typedef struct _ARP_SERVICE_DATA  ARP_SERVICE_DATA;
-
-typedef struct _ARP_INSTANCE_DATA {
-  UINT32               Signature;
-  ARP_SERVICE_DATA     *ArpService;
-  EFI_HANDLE           Handle;
-  EFI_ARP_PROTOCOL     ArpProto;
-  NET_LIST_ENTRY       List;
-  EFI_ARP_CONFIG_DATA  ConfigData;
-  BOOLEAN              Configured;
-  BOOLEAN              Destroyed;
-} ARP_INSTANCE_DATA;
-
-#define ARP_SERVICE_DATA_SIGNATURE  EFI_SIGNATURE_32('A', 'R', 'P', 'S')
-
-#define ARP_SERVICE_DATA_FROM_THIS(a) \
-  CR ( \
-  (a), \
-  ARP_SERVICE_DATA, \
-  ServiceBinding, \
-  ARP_SERVICE_DATA_SIGNATURE \
-  )
-
-struct _ARP_SERVICE_DATA {
-  UINT32                           Signature;
-  EFI_SERVICE_BINDING_PROTOCOL     ServiceBinding;
-
-  EFI_HANDLE                       MnpChildHandle;
-  EFI_HANDLE                       ImageHandle;
-  EFI_HANDLE                       ControllerHandle;
-
-  EFI_MANAGED_NETWORK_PROTOCOL          *Mnp;
-  EFI_MANAGED_NETWORK_CONFIG_DATA       MnpConfigData;
-  EFI_MANAGED_NETWORK_COMPLETION_TOKEN  RxToken;
-
-  EFI_SIMPLE_NETWORK_MODE          SnpMode;
-
-  NET_LOCK                         Lock;
-
-  UINTN                            ChildrenNumber;
-  NET_LIST_ENTRY                   ChildrenList;
-
-  NET_LIST_ENTRY                   PendingRequestTable;
-  NET_LIST_ENTRY                   DeniedCacheTable;
-  NET_LIST_ENTRY                   ResolvedCacheTable;
-
-  EFI_EVENT                        PeriodicTimer;
-};
-
-typedef struct _USER_REQUEST_CONTEXT {
-  NET_LIST_ENTRY     List;
-  ARP_INSTANCE_DATA  *Instance;
-  EFI_EVENT          UserRequestEvent;
-  VOID               *UserHwAddrBuffer;
-} USER_REQUEST_CONTEXT;
-
-#define ARP_MAX_PROTOCOL_ADDRESS_LEN  sizeof(EFI_IP_ADDRESS)
-#define ARP_MAX_HARDWARE_ADDRESS_LEN  sizeof(EFI_MAC_ADDRESS)
-
-typedef struct _NET_ARP_ADDRESS {
-  UINT16  Type;
-  UINT8   Length;
-  UINT8   *AddressPtr;
-  union {
-    UINT8  ProtoAddress[ARP_MAX_PROTOCOL_ADDRESS_LEN];
-    UINT8  HwAddress[ARP_MAX_HARDWARE_ADDRESS_LEN];
-  } Buffer;
-} NET_ARP_ADDRESS;
-
-typedef enum {
-  Hardware,
-  Protocol
-} ARP_ADDRESS_TYPE;
-
-typedef struct _ARP_CACHE_ENTRY {
-  NET_LIST_ENTRY  List;
-
-  UINT32          RetryCount;
-  UINT32          DefaultDecayTime;
-  UINT32          DecayTime;
-  UINT32          NextRetryTime;
-
-  NET_ARP_ADDRESS  Addresses[2];
-
-  NET_LIST_ENTRY  UserRequestList;
-} ARP_CACHE_ENTRY;
-
-EFI_STATUS
-EFIAPI
-ArpConfigure (
-  IN EFI_ARP_PROTOCOL     *This,
-  IN EFI_ARP_CONFIG_DATA  *ConfigData OPTIONAL
-  );
-
-EFI_STATUS
-EFIAPI
-ArpAdd (
-  IN EFI_ARP_PROTOCOL  *This,
-  IN BOOLEAN           DenyFlag,
-  IN VOID              *TargetSwAddress OPTIONAL,
-  IN VOID              *TargetHwAddress OPTIONAL,
-  IN UINT32            TimeoutValue,
-  IN BOOLEAN           Overwrite
-  );
-
-EFI_STATUS
-EFIAPI
-ArpFind (
-  IN EFI_ARP_PROTOCOL    *This,
-  IN BOOLEAN             BySwAddress,
-  IN VOID                *AddressBuffer OPTIONAL,
-  OUT UINT32             *EntryLength   OPTIONAL,
-  OUT UINT32             *EntryCount    OPTIONAL,
-  OUT EFI_ARP_FIND_DATA  **Entries      OPTIONAL,
-  IN BOOLEAN             Refresh
-  );
-
-EFI_STATUS
-EFIAPI
-ArpDelete (
-  IN EFI_ARP_PROTOCOL  *This,
-  IN BOOLEAN           BySwAddress,
-  IN VOID              *AddressBuffer OPTIONAL
-  );
-
-EFI_STATUS
-EFIAPI
-ArpFlush (
-  IN EFI_ARP_PROTOCOL  *This
-  );
-
-EFI_STATUS
-EFIAPI
-ArpRequest (
-  IN EFI_ARP_PROTOCOL  *This,
-  IN VOID              *TargetSwAddress OPTIONAL,
-  IN EFI_EVENT         ResolvedEvent    OPTIONAL,
-  OUT VOID             *TargetHwAddress
-  );
-
-EFI_STATUS
-EFIAPI
-ArpCancel (
-  IN EFI_ARP_PROTOCOL  *This,
-  IN VOID              *TargetSwAddress OPTIONAL,
-  IN EFI_EVENT         ResolvedEvent    OPTIONAL
-  );
-
-EFI_STATUS
-ArpConfigureInstance (
-  IN ARP_INSTANCE_DATA    *Instance,
-  IN EFI_ARP_CONFIG_DATA  *ConfigData OPTIONAL
-  );
-
-ARP_CACHE_ENTRY *
-ArpFindDeniedCacheEntry (
-  IN ARP_SERVICE_DATA  *ArpService,
-  IN NET_ARP_ADDRESS   *ProtocolAddress OPTIONAL,
-  IN NET_ARP_ADDRESS   *HardwareAddress OPTIONAL
-  );
-
-ARP_CACHE_ENTRY *
-ArpFindNextCacheEntryInTable (
-  IN NET_LIST_ENTRY    *CacheTable,
-  IN NET_LIST_ENTRY    *StartEntry,
-  IN FIND_OPTYPE       FindOpType,
-  IN NET_ARP_ADDRESS   *ProtocolAddress OPTIONAL,
-  IN NET_ARP_ADDRESS   *HardwareAddress OPTIONAL
-  );
-
-ARP_CACHE_ENTRY *
-ArpAllocCacheEntry (
-  IN ARP_INSTANCE_DATA  *Instance
-  );
-
-VOID
-ArpFillAddressInCacheEntry (
-  IN ARP_CACHE_ENTRY  *CacheEntry,
-  IN NET_ARP_ADDRESS  *HwAddr OPTIONAL,
-  IN NET_ARP_ADDRESS  *SwAddr OPTIONAL
-  );
-
-UINTN
-ArpAddressResolved (
-  IN ARP_CACHE_ENTRY    *CacheEntry,
-  IN ARP_INSTANCE_DATA  *Instance OPTIONAL,
-  IN EFI_EVENT          UserEvent OPTIONAL
-  );
-
-UINTN
-ArpDeleteCacheEntry (
-  IN ARP_INSTANCE_DATA  *Instance,
-  IN BOOLEAN            BySwAddress,
-  IN UINT8              *AddressBuffer OPTIONAL,
-  IN BOOLEAN            Force
-  );
-
-VOID
-ArpSendFrame (
-  IN ARP_INSTANCE_DATA  *Instance,
-  IN ARP_CACHE_ENTRY    *CacheEntry,
-  IN UINT16             ArpOpCode
-  );
-
-VOID
-ArpInitInstance (
-  IN ARP_SERVICE_DATA   *ArpService,
-  IN ARP_INSTANCE_DATA  *Instance
-  );
-
-VOID
-EFIAPI
-ArpOnFrameRcvd (
-  IN EFI_EVENT  Event,
-  IN VOID       *Context
-  );
-
-VOID
-EFIAPI
-ArpOnFrameSent (
-  IN EFI_EVENT  Event,
-  IN VOID       *Context
-  );
-
-VOID
-EFIAPI
-ArpTimerHandler (
-  IN EFI_EVENT  Event,
-  IN VOID       *Context
-  );
-
-UINTN
-ArpCancelRequest (
-  IN ARP_INSTANCE_DATA  *Instance,
-  IN VOID               *TargetSwAddress OPTIONAL,
-  IN EFI_EVENT          UserEvent        OPTIONAL
-  );
-
-EFI_STATUS
-ArpFindCacheEntry (
-  IN ARP_INSTANCE_DATA   *Instance,
-  IN BOOLEAN             BySwAddress,
-  IN VOID                *AddressBuffer OPTIONAL,
-  OUT UINT32             *EntryLength   OPTIONAL,
-  OUT UINT32             *EntryCount    OPTIONAL,
-  OUT EFI_ARP_FIND_DATA  **Entries      OPTIONAL,
-  IN BOOLEAN             Refresh
-  );
-
-#endif
-
+#include <Library/UefiLib.h>\r
+#include <Library/NetLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+\r
+#include "ArpDebug.h"\r
+\r
+#define ARP_ETHER_PROTO_TYPE         0x0806\r
+#define IPv4_ETHER_PROTO_TYPE        0x0800\r
+#define IPv6_ETHER_PROTO_TYPE        0x86DD\r
+\r
+#define ARP_OPCODE_REQUEST           0x0001\r
+#define ARP_OPCODE_REPLY             0x0002\r
+\r
+#define ARP_DEFAULT_TIMEOUT_VALUE    (400 * TICKS_PER_SECOND)\r
+#define ARP_DEFAULT_RETRY_COUNT      2\r
+#define ARP_DEFAULT_RETRY_INTERVAL   (5   * TICKS_PER_MS)\r
+#define ARP_PERIODIC_TIMER_INTERVAL  (500 * TICKS_PER_MS)\r
+\r
+#pragma pack(1)\r
+typedef struct _ARP_HEAD {\r
+  UINT16  HwType;\r
+  UINT16  ProtoType;\r
+  UINT8   HwAddrLen;\r
+  UINT8   ProtoAddrLen;\r
+  UINT16  OpCode;\r
+} ARP_HEAD;\r
+#pragma pack()\r
+\r
+typedef struct _ARP_ADDRESS {\r
+  UINT8  *SenderHwAddr;\r
+  UINT8  *SenderProtoAddr;\r
+  UINT8  *TargetHwAddr;\r
+  UINT8  *TargetProtoAddr;\r
+} ARP_ADDRESS;\r
+\r
+#define MATCH_SW_ADDRESS  0x1\r
+#define MATCH_HW_ADDRESS  0x2\r
+\r
+typedef enum {\r
+  ByNone         = 0,\r
+  ByProtoAddress = MATCH_SW_ADDRESS,\r
+  ByHwAddress    = MATCH_HW_ADDRESS,\r
+  ByBoth         = MATCH_SW_ADDRESS | MATCH_HW_ADDRESS\r
+} FIND_OPTYPE;\r
+\r
+#define ARP_INSTANCE_DATA_SIGNATURE  EFI_SIGNATURE_32('A', 'R', 'P', 'I')\r
+\r
+#define ARP_INSTANCE_DATA_FROM_THIS(a) \\r
+  CR ( \\r
+  (a), \\r
+  ARP_INSTANCE_DATA, \\r
+  ArpProto, \\r
+  ARP_INSTANCE_DATA_SIGNATURE \\r
+  )\r
+\r
+typedef struct _ARP_SERVICE_DATA  ARP_SERVICE_DATA;\r
+\r
+typedef struct _ARP_INSTANCE_DATA {\r
+  UINT32               Signature;\r
+  ARP_SERVICE_DATA     *ArpService;\r
+  EFI_HANDLE           Handle;\r
+  EFI_ARP_PROTOCOL     ArpProto;\r
+  NET_LIST_ENTRY       List;\r
+  EFI_ARP_CONFIG_DATA  ConfigData;\r
+  BOOLEAN              Configured;\r
+  BOOLEAN              Destroyed;\r
+} ARP_INSTANCE_DATA;\r
+\r
+#define ARP_SERVICE_DATA_SIGNATURE  EFI_SIGNATURE_32('A', 'R', 'P', 'S')\r
+\r
+#define ARP_SERVICE_DATA_FROM_THIS(a) \\r
+  CR ( \\r
+  (a), \\r
+  ARP_SERVICE_DATA, \\r
+  ServiceBinding, \\r
+  ARP_SERVICE_DATA_SIGNATURE \\r
+  )\r
+\r
+struct _ARP_SERVICE_DATA {\r
+  UINT32                           Signature;\r
+  EFI_SERVICE_BINDING_PROTOCOL     ServiceBinding;\r
+\r
+  EFI_HANDLE                       MnpChildHandle;\r
+  EFI_HANDLE                       ImageHandle;\r
+  EFI_HANDLE                       ControllerHandle;\r
+\r
+  EFI_MANAGED_NETWORK_PROTOCOL          *Mnp;\r
+  EFI_MANAGED_NETWORK_CONFIG_DATA       MnpConfigData;\r
+  EFI_MANAGED_NETWORK_COMPLETION_TOKEN  RxToken;\r
+\r
+  EFI_SIMPLE_NETWORK_MODE          SnpMode;\r
+\r
+  NET_LOCK                         Lock;\r
+\r
+  UINTN                            ChildrenNumber;\r
+  NET_LIST_ENTRY                   ChildrenList;\r
+\r
+  NET_LIST_ENTRY                   PendingRequestTable;\r
+  NET_LIST_ENTRY                   DeniedCacheTable;\r
+  NET_LIST_ENTRY                   ResolvedCacheTable;\r
+\r
+  EFI_EVENT                        PeriodicTimer;\r
+};\r
+\r
+typedef struct _USER_REQUEST_CONTEXT {\r
+  NET_LIST_ENTRY     List;\r
+  ARP_INSTANCE_DATA  *Instance;\r
+  EFI_EVENT          UserRequestEvent;\r
+  VOID               *UserHwAddrBuffer;\r
+} USER_REQUEST_CONTEXT;\r
+\r
+#define ARP_MAX_PROTOCOL_ADDRESS_LEN  sizeof(EFI_IP_ADDRESS)\r
+#define ARP_MAX_HARDWARE_ADDRESS_LEN  sizeof(EFI_MAC_ADDRESS)\r
+\r
+typedef struct _NET_ARP_ADDRESS {\r
+  UINT16  Type;\r
+  UINT8   Length;\r
+  UINT8   *AddressPtr;\r
+  union {\r
+    UINT8  ProtoAddress[ARP_MAX_PROTOCOL_ADDRESS_LEN];\r
+    UINT8  HwAddress[ARP_MAX_HARDWARE_ADDRESS_LEN];\r
+  } Buffer;\r
+} NET_ARP_ADDRESS;\r
+\r
+typedef enum {\r
+  Hardware,\r
+  Protocol\r
+} ARP_ADDRESS_TYPE;\r
+\r
+typedef struct _ARP_CACHE_ENTRY {\r
+  NET_LIST_ENTRY  List;\r
+\r
+  UINT32          RetryCount;\r
+  UINT32          DefaultDecayTime;\r
+  UINT32          DecayTime;\r
+  UINT32          NextRetryTime;\r
+\r
+  NET_ARP_ADDRESS  Addresses[2];\r
+\r
+  NET_LIST_ENTRY  UserRequestList;\r
+} ARP_CACHE_ENTRY;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpConfigure (\r
+  IN EFI_ARP_PROTOCOL     *This,\r
+  IN EFI_ARP_CONFIG_DATA  *ConfigData OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpAdd (\r
+  IN EFI_ARP_PROTOCOL  *This,\r
+  IN BOOLEAN           DenyFlag,\r
+  IN VOID              *TargetSwAddress OPTIONAL,\r
+  IN VOID              *TargetHwAddress OPTIONAL,\r
+  IN UINT32            TimeoutValue,\r
+  IN BOOLEAN           Overwrite\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpFind (\r
+  IN EFI_ARP_PROTOCOL    *This,\r
+  IN BOOLEAN             BySwAddress,\r
+  IN VOID                *AddressBuffer OPTIONAL,\r
+  OUT UINT32             *EntryLength   OPTIONAL,\r
+  OUT UINT32             *EntryCount    OPTIONAL,\r
+  OUT EFI_ARP_FIND_DATA  **Entries      OPTIONAL,\r
+  IN BOOLEAN             Refresh\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpDelete (\r
+  IN EFI_ARP_PROTOCOL  *This,\r
+  IN BOOLEAN           BySwAddress,\r
+  IN VOID              *AddressBuffer OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpFlush (\r
+  IN EFI_ARP_PROTOCOL  *This\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpRequest (\r
+  IN EFI_ARP_PROTOCOL  *This,\r
+  IN VOID              *TargetSwAddress OPTIONAL,\r
+  IN EFI_EVENT         ResolvedEvent    OPTIONAL,\r
+  OUT VOID             *TargetHwAddress\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ArpCancel (\r
+  IN EFI_ARP_PROTOCOL  *This,\r
+  IN VOID              *TargetSwAddress OPTIONAL,\r
+  IN EFI_EVENT         ResolvedEvent    OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+ArpConfigureInstance (\r
+  IN ARP_INSTANCE_DATA    *Instance,\r
+  IN EFI_ARP_CONFIG_DATA  *ConfigData OPTIONAL\r
+  );\r
+\r
+ARP_CACHE_ENTRY *\r
+ArpFindDeniedCacheEntry (\r
+  IN ARP_SERVICE_DATA  *ArpService,\r
+  IN NET_ARP_ADDRESS   *ProtocolAddress OPTIONAL,\r
+  IN NET_ARP_ADDRESS   *HardwareAddress OPTIONAL\r
+  );\r
+\r
+ARP_CACHE_ENTRY *\r
+ArpFindNextCacheEntryInTable (\r
+  IN NET_LIST_ENTRY    *CacheTable,\r
+  IN NET_LIST_ENTRY    *StartEntry,\r
+  IN FIND_OPTYPE       FindOpType,\r
+  IN NET_ARP_ADDRESS   *ProtocolAddress OPTIONAL,\r
+  IN NET_ARP_ADDRESS   *HardwareAddress OPTIONAL\r
+  );\r
+\r
+ARP_CACHE_ENTRY *\r
+ArpAllocCacheEntry (\r
+  IN ARP_INSTANCE_DATA  *Instance\r
+  );\r
+\r
+VOID\r
+ArpFillAddressInCacheEntry (\r
+  IN ARP_CACHE_ENTRY  *CacheEntry,\r
+  IN NET_ARP_ADDRESS  *HwAddr OPTIONAL,\r
+  IN NET_ARP_ADDRESS  *SwAddr OPTIONAL\r
+  );\r
+\r
+UINTN\r
+ArpAddressResolved (\r
+  IN ARP_CACHE_ENTRY    *CacheEntry,\r
+  IN ARP_INSTANCE_DATA  *Instance OPTIONAL,\r
+  IN EFI_EVENT          UserEvent OPTIONAL\r
+  );\r
+\r
+UINTN\r
+ArpDeleteCacheEntry (\r
+  IN ARP_INSTANCE_DATA  *Instance,\r
+  IN BOOLEAN            BySwAddress,\r
+  IN UINT8              *AddressBuffer OPTIONAL,\r
+  IN BOOLEAN            Force\r
+  );\r
+\r
+VOID\r
+ArpSendFrame (\r
+  IN ARP_INSTANCE_DATA  *Instance,\r
+  IN ARP_CACHE_ENTRY    *CacheEntry,\r
+  IN UINT16             ArpOpCode\r
+  );\r
+\r
+VOID\r
+ArpInitInstance (\r
+  IN ARP_SERVICE_DATA   *ArpService,\r
+  IN ARP_INSTANCE_DATA  *Instance\r
+  );\r
+\r
+VOID\r
+EFIAPI\r
+ArpOnFrameRcvd (\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
+  );\r
+\r
+VOID\r
+EFIAPI\r
+ArpOnFrameSent (\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
+  );\r
+\r
+VOID\r
+EFIAPI\r
+ArpTimerHandler (\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
+  );\r
+\r
+UINTN\r
+ArpCancelRequest (\r
+  IN ARP_INSTANCE_DATA  *Instance,\r
+  IN VOID               *TargetSwAddress OPTIONAL,\r
+  IN EFI_EVENT          UserEvent        OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+ArpFindCacheEntry (\r
+  IN ARP_INSTANCE_DATA   *Instance,\r
+  IN BOOLEAN             BySwAddress,\r
+  IN VOID                *AddressBuffer OPTIONAL,\r
+  OUT UINT32             *EntryLength   OPTIONAL,\r
+  OUT UINT32             *EntryCount    OPTIONAL,\r
+  OUT EFI_ARP_FIND_DATA  **Entries      OPTIONAL,\r
+  IN BOOLEAN             Refresh\r
+  );\r
+\r
+#endif\r
+\r