-/** @file
-
-Copyright (c) 2005 - 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:
-
- MnpImpl.h
-
-Abstract:
-
-
-**/
-
-#ifndef _MNP_IMPL_H_
-#define _MNP_IMPL_H_
-
-#include "MnpDriver.h"
-#include "MnpDebug.h"
-
-#define NET_ETHER_FCS_SIZE 4
-
-#define MNP_SYS_POLL_INTERVAL (2 * TICKS_PER_MS) // 2 milliseconds
-#define MNP_TIMEOUT_CHECK_INTERVAL (50 * TICKS_PER_MS) // 50 milliseconds
-#define MNP_TX_TIMEOUT_TIME (500 * TICKS_PER_MS) // 500 milliseconds
-#define MNP_INIT_NET_BUFFER_NUM 512
-#define MNP_NET_BUFFER_INCREASEMENT 64
-#define MNP_MAX_NET_BUFFER_NUM 65536
-
-#define MNP_MAX_RCVD_PACKET_QUE_SIZE 256
-
-#define MNP_RECEIVE_UNICAST 0x01
-#define MNP_RECEIVE_BROADCAST 0x02
-
-#define UNICAST_PACKET MNP_RECEIVE_UNICAST
-#define BROADCAST_PACKET MNP_RECEIVE_BROADCAST
-
-#define MNP_INSTANCE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'I')
-
-#define MNP_INSTANCE_DATA_FROM_THIS(a) \
- CR ( \
- (a), \
- MNP_INSTANCE_DATA, \
- ManagedNetwork, \
- MNP_INSTANCE_DATA_SIGNATURE \
- )
-
-typedef struct _MNP_INSTANCE_DATA {
- UINT32 Signature;
-
- MNP_SERVICE_DATA *MnpServiceData;
-
- EFI_HANDLE Handle;
-
- NET_LIST_ENTRY InstEntry;
-
- EFI_MANAGED_NETWORK_PROTOCOL ManagedNetwork;
-
- BOOLEAN Configured;
- BOOLEAN Destroyed;
-
- NET_LIST_ENTRY GroupCtrlBlkList;
-
- NET_MAP RxTokenMap;
-
- NET_LIST_ENTRY RxDeliveredPacketQueue;
- NET_LIST_ENTRY RcvdPacketQueue;
- UINTN RcvdPacketQueueSize;
-
- EFI_MANAGED_NETWORK_CONFIG_DATA ConfigData;
-
- UINT8 ReceiveFilter;
-} MNP_INSTANCE_DATA;
-
-typedef struct _MNP_GROUP_ADDRESS {
- NET_LIST_ENTRY AddrEntry;
- EFI_MAC_ADDRESS Address;
- INTN RefCnt;
-} MNP_GROUP_ADDRESS;
-
-typedef struct _MNP_GROUP_CONTROL_BLOCK {
- NET_LIST_ENTRY CtrlBlkEntry;
- MNP_GROUP_ADDRESS *GroupAddress;
-} MNP_GROUP_CONTROL_BLOCK;
-
-typedef struct _MNP_RXDATA_WRAP {
- NET_LIST_ENTRY WrapEntry;
- MNP_INSTANCE_DATA *Instance;
- EFI_MANAGED_NETWORK_RECEIVE_DATA RxData;
- NET_BUF *Nbuf;
- UINT64 TimeoutTick;
-} MNP_RXDATA_WRAP;
-
-EFI_STATUS
-MnpInitializeServiceData (
- IN MNP_SERVICE_DATA *MnpServiceData,
- IN EFI_HANDLE ImageHandle,
- IN EFI_HANDLE ControllerHandle
- );
-
-VOID
-MnpFlushServiceData (
- MNP_SERVICE_DATA *MnpServiceData
- );
-
-VOID
-MnpInitializeInstanceData (
- IN MNP_SERVICE_DATA *MnpServiceData,
- IN MNP_INSTANCE_DATA *Instance
- );
-
-EFI_STATUS
-MnpTokenExist (
- IN NET_MAP *Map,
- IN NET_MAP_ITEM *Item,
- IN VOID *Arg
- );
-
-EFI_STATUS
-MnpCancelTokens (
- IN NET_MAP *Map,
- IN NET_MAP_ITEM *Item,
- IN VOID *Arg
- );
-
-VOID
-MnpFlushRcvdDataQueue (
- IN MNP_INSTANCE_DATA *Instance
- );
-
-EFI_STATUS
-MnpConfigureInstance (
- IN MNP_INSTANCE_DATA *Instance,
- IN EFI_MANAGED_NETWORK_CONFIG_DATA *ConfigData OPTIONAL
- );
-
-EFI_STATUS
-MnpGroupOp (
- IN MNP_INSTANCE_DATA *Instance,
- IN BOOLEAN JoinFlag,
- IN EFI_MAC_ADDRESS *MacAddr OPTIONAL,
- IN MNP_GROUP_CONTROL_BLOCK *CtrlBlk OPTIONAL
- );
-
-BOOLEAN
-MnpIsValidTxToken (
- IN MNP_INSTANCE_DATA *Instance,
- IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token
- );
-
-VOID
-MnpBuildTxPacket (
- IN MNP_SERVICE_DATA *MnpServiceData,
- IN EFI_MANAGED_NETWORK_TRANSMIT_DATA *TxData,
- OUT UINT8 **PktBuf,
- OUT UINT32 *PktLen
- );
-
-EFI_STATUS
-MnpSyncSendPacket (
- IN MNP_SERVICE_DATA *MnpServiceData,
- IN UINT8 *Packet,
- IN UINT32 Length,
- IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token
- );
-
-EFI_STATUS
-MnpInstanceDeliverPacket (
- IN MNP_INSTANCE_DATA *Instance
- );
-
-VOID
-EFIAPI
-MnpRecycleRxData (
- IN EFI_EVENT Event,
- IN VOID *Context
- );
-
-EFI_STATUS
-MnpReceivePacket (
- IN MNP_SERVICE_DATA *MnpServiceData
- );
-
-NET_BUF *
-MnpAllocNbuf (
- IN MNP_SERVICE_DATA *MnpServiceData
- );
-
-VOID
-MnpFreeNbuf (
- IN MNP_SERVICE_DATA *MnpServiceData,
- IN NET_BUF *Nbuf
- );
-
-VOID
-EFIAPI
-MnpCheckPacketTimeout (
- IN EFI_EVENT Event,
- IN VOID *Context
- );
-
-VOID
-EFIAPI
-MnpSystemPoll (
- IN EFI_EVENT Event,
- IN VOID *Context
- );
-
-EFI_STATUS
-EFIAPI
-MnpGetModeData (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpConfigure (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpMcastIpToMac (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN BOOLEAN Ipv6Flag,
- IN EFI_IP_ADDRESS *IpAddress,
- OUT EFI_MAC_ADDRESS *MacAddress
- );
-
-EFI_STATUS
-EFIAPI
-MnpGroups (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN BOOLEAN JoinFlag,
- IN EFI_MAC_ADDRESS *MacAddress OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpTransmit (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token
- );
-
-EFI_STATUS
-EFIAPI
-MnpCancel (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpReceive (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This,
- IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token
- );
-
-EFI_STATUS
-EFIAPI
-MnpPoll (
- IN EFI_MANAGED_NETWORK_PROTOCOL *This
- );
-
-#endif
+/** @file\r
+\r
+Copyright (c) 2005 - 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
+ MnpImpl.h\r
+\r
+Abstract:\r
+\r
+\r
+**/\r
+\r
+#ifndef _MNP_IMPL_H_\r
+#define _MNP_IMPL_H_\r
+\r
+#include "MnpDriver.h"\r
+#include "MnpDebug.h"\r
+\r
+#define NET_ETHER_FCS_SIZE 4\r
+\r
+#define MNP_SYS_POLL_INTERVAL (2 * TICKS_PER_MS) // 2 milliseconds\r
+#define MNP_TIMEOUT_CHECK_INTERVAL (50 * TICKS_PER_MS) // 50 milliseconds\r
+#define MNP_TX_TIMEOUT_TIME (500 * TICKS_PER_MS) // 500 milliseconds\r
+#define MNP_INIT_NET_BUFFER_NUM 512\r
+#define MNP_NET_BUFFER_INCREASEMENT 64\r
+#define MNP_MAX_NET_BUFFER_NUM 65536\r
+\r
+#define MNP_MAX_RCVD_PACKET_QUE_SIZE 256\r
+\r
+#define MNP_RECEIVE_UNICAST 0x01\r
+#define MNP_RECEIVE_BROADCAST 0x02\r
+\r
+#define UNICAST_PACKET MNP_RECEIVE_UNICAST\r
+#define BROADCAST_PACKET MNP_RECEIVE_BROADCAST\r
+\r
+#define MNP_INSTANCE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'I')\r
+\r
+#define MNP_INSTANCE_DATA_FROM_THIS(a) \\r
+ CR ( \\r
+ (a), \\r
+ MNP_INSTANCE_DATA, \\r
+ ManagedNetwork, \\r
+ MNP_INSTANCE_DATA_SIGNATURE \\r
+ )\r
+\r
+typedef struct _MNP_INSTANCE_DATA {\r
+ UINT32 Signature;\r
+\r
+ MNP_SERVICE_DATA *MnpServiceData;\r
+\r
+ EFI_HANDLE Handle;\r
+\r
+ NET_LIST_ENTRY InstEntry;\r
+\r
+ EFI_MANAGED_NETWORK_PROTOCOL ManagedNetwork;\r
+\r
+ BOOLEAN Configured;\r
+ BOOLEAN Destroyed;\r
+\r
+ NET_LIST_ENTRY GroupCtrlBlkList;\r
+\r
+ NET_MAP RxTokenMap;\r
+\r
+ NET_LIST_ENTRY RxDeliveredPacketQueue;\r
+ NET_LIST_ENTRY RcvdPacketQueue;\r
+ UINTN RcvdPacketQueueSize;\r
+\r
+ EFI_MANAGED_NETWORK_CONFIG_DATA ConfigData;\r
+\r
+ UINT8 ReceiveFilter;\r
+} MNP_INSTANCE_DATA;\r
+\r
+typedef struct _MNP_GROUP_ADDRESS {\r
+ NET_LIST_ENTRY AddrEntry;\r
+ EFI_MAC_ADDRESS Address;\r
+ INTN RefCnt;\r
+} MNP_GROUP_ADDRESS;\r
+\r
+typedef struct _MNP_GROUP_CONTROL_BLOCK {\r
+ NET_LIST_ENTRY CtrlBlkEntry;\r
+ MNP_GROUP_ADDRESS *GroupAddress;\r
+} MNP_GROUP_CONTROL_BLOCK;\r
+\r
+typedef struct _MNP_RXDATA_WRAP {\r
+ NET_LIST_ENTRY WrapEntry;\r
+ MNP_INSTANCE_DATA *Instance;\r
+ EFI_MANAGED_NETWORK_RECEIVE_DATA RxData;\r
+ NET_BUF *Nbuf;\r
+ UINT64 TimeoutTick;\r
+} MNP_RXDATA_WRAP;\r
+\r
+EFI_STATUS\r
+MnpInitializeServiceData (\r
+ IN MNP_SERVICE_DATA *MnpServiceData,\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_HANDLE ControllerHandle\r
+ );\r
+\r
+VOID\r
+MnpFlushServiceData (\r
+ MNP_SERVICE_DATA *MnpServiceData\r
+ );\r
+\r
+VOID\r
+MnpInitializeInstanceData (\r
+ IN MNP_SERVICE_DATA *MnpServiceData,\r
+ IN MNP_INSTANCE_DATA *Instance\r
+ );\r
+\r
+EFI_STATUS\r
+MnpTokenExist (\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Arg\r
+ );\r
+\r
+EFI_STATUS\r
+MnpCancelTokens (\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Arg\r
+ );\r
+\r
+VOID\r
+MnpFlushRcvdDataQueue (\r
+ IN MNP_INSTANCE_DATA *Instance\r
+ );\r
+\r
+EFI_STATUS\r
+MnpConfigureInstance (\r
+ IN MNP_INSTANCE_DATA *Instance,\r
+ IN EFI_MANAGED_NETWORK_CONFIG_DATA *ConfigData OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+MnpGroupOp (\r
+ IN MNP_INSTANCE_DATA *Instance,\r
+ IN BOOLEAN JoinFlag,\r
+ IN EFI_MAC_ADDRESS *MacAddr OPTIONAL,\r
+ IN MNP_GROUP_CONTROL_BLOCK *CtrlBlk OPTIONAL\r
+ );\r
+\r
+BOOLEAN\r
+MnpIsValidTxToken (\r
+ IN MNP_INSTANCE_DATA *Instance,\r
+ IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
+ );\r
+\r
+VOID\r
+MnpBuildTxPacket (\r
+ IN MNP_SERVICE_DATA *MnpServiceData,\r
+ IN EFI_MANAGED_NETWORK_TRANSMIT_DATA *TxData,\r
+ OUT UINT8 **PktBuf,\r
+ OUT UINT32 *PktLen\r
+ );\r
+\r
+EFI_STATUS\r
+MnpSyncSendPacket (\r
+ IN MNP_SERVICE_DATA *MnpServiceData,\r
+ IN UINT8 *Packet,\r
+ IN UINT32 Length,\r
+ IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
+ );\r
+\r
+EFI_STATUS\r
+MnpInstanceDeliverPacket (\r
+ IN MNP_INSTANCE_DATA *Instance\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+MnpRecycleRxData (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+EFI_STATUS\r
+MnpReceivePacket (\r
+ IN MNP_SERVICE_DATA *MnpServiceData\r
+ );\r
+\r
+NET_BUF *\r
+MnpAllocNbuf (\r
+ IN MNP_SERVICE_DATA *MnpServiceData\r
+ );\r
+\r
+VOID\r
+MnpFreeNbuf (\r
+ IN MNP_SERVICE_DATA *MnpServiceData,\r
+ IN NET_BUF *Nbuf\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+MnpCheckPacketTimeout (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+MnpSystemPoll (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpGetModeData (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
+ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpConfigure (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpMcastIpToMac (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN BOOLEAN Ipv6Flag,\r
+ IN EFI_IP_ADDRESS *IpAddress,\r
+ OUT EFI_MAC_ADDRESS *MacAddress\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpGroups (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN BOOLEAN JoinFlag,\r
+ IN EFI_MAC_ADDRESS *MacAddress OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpTransmit (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpCancel (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpReceive (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
+ IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MnpPoll (\r
+ IN EFI_MANAGED_NETWORK_PROTOCOL *This\r
+ );\r
+\r
+#endif\r