diff options
author | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-07-24 08:06:37 +0000 |
---|---|---|
committer | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-07-24 08:06:37 +0000 |
commit | 8a67d61da4d5a8f08a656cbeea2d902d0ad9042a (patch) | |
tree | 6618049196a9f4a206b8d6e42fb8b67a71558503 /MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h | |
parent | f9bef4b3ac2bf3bd5f79313f772519800761f104 (diff) | |
download | edk2-platforms-8a67d61da4d5a8f08a656cbeea2d902d0ad9042a.tar.xz |
Import SnpDxe, Tcp4Dxe, Udp4Dxe and MnpDxe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3416 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h')
-rw-r--r-- | MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h | 274 |
1 files changed, 274 insertions, 0 deletions
diff --git a/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h b/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h new file mode 100644 index 0000000000..cdb081d2b4 --- /dev/null +++ b/MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h @@ -0,0 +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 |