diff options
Diffstat (limited to 'MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h')
-rw-r--r-- | MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h | 548 |
1 files changed, 274 insertions, 274 deletions
diff --git a/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h b/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h index cdb081d2b4..7f6669fba3 100644 --- a/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h +++ b/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h @@ -1,274 +1,274 @@ -/** @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
+
+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
|