#ifndef _ARP_IMPL_H_\r
#define _ARP_IMPL_H_\r
\r
-\r
#include <Uefi.h>\r
\r
#include <Protocol/Arp.h>\r
//\r
// Ethernet protocol type definitions.\r
//\r
-#define ARP_ETHER_PROTO_TYPE 0x0806\r
-#define IPV4_ETHER_PROTO_TYPE 0x0800\r
-#define IPV6_ETHER_PROTO_TYPE 0x86DD\r
+#define ARP_ETHER_PROTO_TYPE 0x0806\r
+#define IPV4_ETHER_PROTO_TYPE 0x0800\r
+#define IPV6_ETHER_PROTO_TYPE 0x86DD\r
\r
//\r
// ARP opcode definitions.\r
//\r
-#define ARP_OPCODE_REQUEST 0x0001\r
-#define ARP_OPCODE_REPLY 0x0002\r
+#define ARP_OPCODE_REQUEST 0x0001\r
+#define ARP_OPCODE_REPLY 0x0002\r
\r
//\r
// ARP timeout, retry count and interval definitions.\r
//\r
#pragma pack(1)\r
typedef struct {\r
- UINT16 HwType;\r
- UINT16 ProtoType;\r
- UINT8 HwAddrLen;\r
- UINT8 ProtoAddrLen;\r
- UINT16 OpCode;\r
+ UINT16 HwType;\r
+ UINT16 ProtoType;\r
+ UINT8 HwAddrLen;\r
+ UINT8 ProtoAddrLen;\r
+ UINT16 OpCode;\r
} ARP_HEAD;\r
#pragma pack()\r
\r
// ARP Address definition for internal use.\r
//\r
typedef struct {\r
- UINT8 *SenderHwAddr;\r
- UINT8 *SenderProtoAddr;\r
- UINT8 *TargetHwAddr;\r
- UINT8 *TargetProtoAddr;\r
+ UINT8 *SenderHwAddr;\r
+ UINT8 *SenderProtoAddr;\r
+ UINT8 *TargetHwAddr;\r
+ UINT8 *TargetProtoAddr;\r
} ARP_ADDRESS;\r
\r
#define MATCH_SW_ADDRESS 0x1\r
ARP_INSTANCE_DATA_SIGNATURE \\r
)\r
\r
-typedef struct _ARP_SERVICE_DATA ARP_SERVICE_DATA;\r
+typedef struct _ARP_SERVICE_DATA ARP_SERVICE_DATA;\r
\r
//\r
// ARP instance context data structure.\r
//\r
typedef struct {\r
- UINT32 Signature;\r
- ARP_SERVICE_DATA *ArpService;\r
- EFI_HANDLE Handle;\r
- EFI_ARP_PROTOCOL ArpProto;\r
- LIST_ENTRY List;\r
- EFI_ARP_CONFIG_DATA ConfigData;\r
- BOOLEAN Configured;\r
- BOOLEAN InDestroy;\r
+ UINT32 Signature;\r
+ ARP_SERVICE_DATA *ArpService;\r
+ EFI_HANDLE Handle;\r
+ EFI_ARP_PROTOCOL ArpProto;\r
+ LIST_ENTRY List;\r
+ EFI_ARP_CONFIG_DATA ConfigData;\r
+ BOOLEAN Configured;\r
+ BOOLEAN InDestroy;\r
} ARP_INSTANCE_DATA;\r
\r
#define ARP_SERVICE_DATA_SIGNATURE SIGNATURE_32('A', 'R', 'P', 'S')\r
// ARP service data structure.\r
//\r
struct _ARP_SERVICE_DATA {\r
- UINT32 Signature;\r
- EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
+ UINT32 Signature;\r
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
\r
- EFI_HANDLE MnpChildHandle;\r
- EFI_HANDLE ImageHandle;\r
- EFI_HANDLE ControllerHandle;\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
+ 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
+ EFI_SIMPLE_NETWORK_MODE SnpMode;\r
\r
- UINTN ChildrenNumber;\r
- LIST_ENTRY ChildrenList;\r
+ UINTN ChildrenNumber;\r
+ LIST_ENTRY ChildrenList;\r
\r
- LIST_ENTRY PendingRequestTable;\r
- LIST_ENTRY DeniedCacheTable;\r
- LIST_ENTRY ResolvedCacheTable;\r
+ LIST_ENTRY PendingRequestTable;\r
+ LIST_ENTRY DeniedCacheTable;\r
+ LIST_ENTRY ResolvedCacheTable;\r
\r
- EFI_EVENT PeriodicTimer;\r
+ EFI_EVENT PeriodicTimer;\r
};\r
\r
//\r
// User request context structure.\r
//\r
typedef struct {\r
- LIST_ENTRY List;\r
- ARP_INSTANCE_DATA *Instance;\r
- EFI_EVENT UserRequestEvent;\r
- VOID *UserHwAddrBuffer;\r
+ 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 union {\r
- UINT8 ProtoAddress[ARP_MAX_PROTOCOL_ADDRESS_LEN];\r
- UINT8 HwAddress[ARP_MAX_HARDWARE_ADDRESS_LEN];\r
+ UINT8 ProtoAddress[ARP_MAX_PROTOCOL_ADDRESS_LEN];\r
+ UINT8 HwAddress[ARP_MAX_HARDWARE_ADDRESS_LEN];\r
} NET_ARP_ADDRESS_UNION;\r
\r
//\r
// ARP address structure in an ARP packet.\r
//\r
typedef struct {\r
- UINT16 Type;\r
- UINT8 Length;\r
- UINT8 *AddressPtr;\r
- NET_ARP_ADDRESS_UNION Buffer;\r
+ UINT16 Type;\r
+ UINT8 Length;\r
+ UINT8 *AddressPtr;\r
+ NET_ARP_ADDRESS_UNION Buffer;\r
} NET_ARP_ADDRESS;\r
\r
//\r
// ARP cache entry definition.\r
//\r
typedef struct {\r
- LIST_ENTRY List;\r
+ LIST_ENTRY List;\r
\r
- UINT32 RetryCount;\r
- UINT32 DefaultDecayTime;\r
- UINT32 DecayTime;\r
- UINT32 NextRetryTime;\r
+ UINT32 RetryCount;\r
+ UINT32 DefaultDecayTime;\r
+ UINT32 DecayTime;\r
+ UINT32 NextRetryTime;\r
\r
- NET_ARP_ADDRESS Addresses[2];\r
+ NET_ARP_ADDRESS Addresses[2];\r
\r
- LIST_ENTRY UserRequestList;\r
+ LIST_ENTRY UserRequestList;\r
} ARP_CACHE_ENTRY;\r
\r
/**\r
**/\r
ARP_CACHE_ENTRY *\r
ArpFindNextCacheEntryInTable (\r
- IN LIST_ENTRY *CacheTable,\r
- IN LIST_ENTRY *StartEntry,\r
- IN FIND_OPTYPE FindOpType,\r
- IN NET_ARP_ADDRESS *ProtocolAddress OPTIONAL,\r
- IN NET_ARP_ADDRESS *HardwareAddress OPTIONAL\r
+ IN LIST_ENTRY *CacheTable,\r
+ IN 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
/**\r
VOID\r
EFIAPI\r
ArpOnFrameRcvdDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
ArpOnFrameSentDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
);\r
\r
/**\r