summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h
diff options
context:
space:
mode:
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2007-09-30 03:08:02 +0000
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2007-09-30 03:08:02 +0000
commit83cbd279b64f3081af5c06d50fa26e15a99fc066 (patch)
tree98bd3d981f28536759a3e5f451d4752d38d7a665 /MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h
parent5bca971e545e01271c6ae5b1b66ee9f281123bf2 (diff)
downloadedk2-platforms-83cbd279b64f3081af5c06d50fa26e15a99fc066.tar.xz
Update to support to produce Component Name and & Component Name 2 protocol based on Feature flag PcdComponentNameDisable & PcdComponentName2Disable.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4006 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h')
-rw-r--r--MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h492
1 files changed, 246 insertions, 246 deletions
diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h
index 58bf045372..35ada7feff 100644
--- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h
+++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h
@@ -1,28 +1,28 @@
-/** @file
-
-Copyright (c) 2005 - 2006, 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:
-
- Ip4Impl.h
-
-Abstract:
-
- Ip4 internal functions and type defintions.
-
-
-**/
-
-#ifndef __EFI_IP4_IMPL_H__
-#define __EFI_IP4_IMPL_H__
-
+/** @file
+
+Copyright (c) 2005 - 2006, 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:
+
+ Ip4Impl.h
+
+Abstract:
+
+ Ip4 internal functions and type defintions.
+
+
+**/
+
+#ifndef __EFI_IP4_IMPL_H__
+#define __EFI_IP4_IMPL_H__
+
#include <PiDxe.h>
#include <Protocol/IP4.h>
@@ -35,224 +35,224 @@ Abstract:
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/BaseLib.h>
-#include <Library/UefiLib.h>
-#include <Library/NetLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-#include "Ip4Common.h"
-#include "Ip4Driver.h"
-#include "Ip4If.h"
-#include "Ip4Icmp.h"
-#include "Ip4Option.h"
-#include "Ip4Igmp.h"
-#include "Ip4Route.h"
-#include "Ip4Input.h"
-#include "Ip4Output.h"
-
-enum {
- IP4_PROTOCOL_SIGNATURE = EFI_SIGNATURE_32 ('I', 'P', '4', 'P'),
- IP4_SERVICE_SIGNATURE = EFI_SIGNATURE_32 ('I', 'P', '4', 'S'),
-
- //
- // The state of IP4 protocol. It starts from UNCONFIGED. if it is
- // successfully configured, it goes to CONFIGED. if configure NULL
- // is called, it becomes UNCONFIGED again. If (partly) destoried, it
- // becomes DESTORY.
- //
- IP4_STATE_UNCONFIGED = 0,
- IP4_STATE_CONFIGED,
- IP4_STATE_DESTORY,
-
- //
- // The state of IP4 service. It starts from UNSTARTED. It transits
- // to STARTED if autoconfigure is started. If default address is
- // configured, it becomes CONFIGED. and if partly destoried, it goes
- // to DESTORY.
- //
- IP4_SERVICE_UNSTARTED = 0,
- IP4_SERVICE_STARTED,
- IP4_SERVICE_CONFIGED,
- IP4_SERVICE_DESTORY
-};
-
-//
-// IP4_TXTOKEN_WRAP wraps the upper layer's transmit token.
-// The user's data is kept in the Packet. When fragment is
-// needed, each fragment of the Packet has a reference to the
-// Packet, no data is actually copied. The Packet will be
-// released when all the fragments of it have been recycled by
-// MNP. Upon then, the IP4_TXTOKEN_WRAP will be released, and
-// user's event signalled.
-//
-typedef struct {
- IP4_PROTOCOL *IpInstance;
- EFI_IP4_COMPLETION_TOKEN *Token;
- NET_BUF *Packet;
- BOOLEAN Sent;
- INTN Life;
-} IP4_TXTOKEN_WRAP;
-
-//
-// IP4_RXDATA_WRAP wraps the data IP4 child delivers to the
-// upper layers. The received packet is kept in the Packet.
-// The Packet itself may be constructured from some fragments.
-// All the fragments of the Packet is organized by a
-// IP4_ASSEMBLE_ENTRY structure. If the Packet is recycled by
-// the upper layer, the assemble entry and its associated
-// fragments will be freed at last.
-//
-typedef struct {
- NET_LIST_ENTRY Link;
- IP4_PROTOCOL *IpInstance;
- NET_BUF *Packet;
- EFI_IP4_RECEIVE_DATA RxData;
-} IP4_RXDATA_WRAP;
-
-struct _IP4_PROTOCOL {
- UINT32 Signature;
-
- EFI_IP4_PROTOCOL Ip4Proto;
- EFI_HANDLE Handle;
- INTN State;
-
- IP4_SERVICE *Service;
- NET_LIST_ENTRY Link; // Link to all the IP protocol from the service
-
- //
- // User's transmit/receive tokens, and received/deliverd packets
- //
- NET_MAP RxTokens;
- NET_MAP TxTokens; // map between (User's Token, IP4_TXTOKE_WRAP)
- NET_LIST_ENTRY Received; // Received but not delivered packet
- NET_LIST_ENTRY Delivered; // Delivered and to be recycled packets
- EFI_LOCK RecycleLock;
-
- //
- // Instance's address and route tables. There are two route tables.
- // RouteTable is used by the IP4 driver to route packet. EfiRouteTable
- // is used to communicate the current route info to the upper layer.
- //
- IP4_INTERFACE *Interface;
- NET_LIST_ENTRY AddrLink; // Ip instances with the same IP address.
- IP4_ROUTE_TABLE *RouteTable;
-
- EFI_IP4_ROUTE_TABLE *EfiRouteTable;
- UINT32 EfiRouteCount;
-
- //
- // IGMP data for this instance
- //
- IP4_ADDR *Groups; // stored in network byte order
- UINT32 GroupCount;
-
- EFI_IP4_CONFIG_DATA ConfigData;
-
-};
-
-struct _IP4_SERVICE {
- UINT32 Signature;
- EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
- INTN State;
- BOOLEAN InDestory;
-
- //
- // List of all the IP instances and interfaces, and default
- // interface and route table and caches.
- //
- UINTN NumChildren;
- NET_LIST_ENTRY Children;
-
- NET_LIST_ENTRY Interfaces;
-
- IP4_INTERFACE *DefaultInterface;
- IP4_ROUTE_TABLE *DefaultRouteTable;
-
- //
- // Ip reassemble utilities, and IGMP data
- //
- IP4_ASSEMBLE_TABLE Assemble;
- IGMP_SERVICE_DATA IgmpCtrl;
-
- //
- // Low level protocol used by this service instance
- //
- EFI_HANDLE Image;
- EFI_HANDLE Controller;
-
- EFI_HANDLE MnpChildHandle;
- EFI_MANAGED_NETWORK_PROTOCOL *Mnp;
-
- EFI_MANAGED_NETWORK_CONFIG_DATA MnpConfigData;
- EFI_SIMPLE_NETWORK_MODE SnpMode;
-
- EFI_EVENT Timer;
-
- //
- // Auto configure staff
- //
- EFI_IP4_CONFIG_PROTOCOL *Ip4Config;
- EFI_EVENT DoneEvent;
- EFI_EVENT ReconfigEvent;
-
- //
- // The string representation of the current mac address of the
- // NIC this IP4_SERVICE works on.
- //
- CHAR16 *MacString;
-};
-
-#define IP4_INSTANCE_FROM_PROTOCOL(Ip4) \
- CR ((Ip4), IP4_PROTOCOL, Ip4Proto, IP4_PROTOCOL_SIGNATURE)
-
-#define IP4_SERVICE_FROM_PROTOCOL(Sb) \
- CR ((Sb), IP4_SERVICE, ServiceBinding, IP4_SERVICE_SIGNATURE)
-
-#define IP4_NO_MAPPING(IpInstance) (!(IpInstance)->Interface->Configured)
-
-extern EFI_IP4_PROTOCOL mEfiIp4ProtocolTemplete;
-
-EFI_STATUS
-Ip4ServiceConfigMnp (
- IN IP4_SERVICE *IpSb,
- IN BOOLEAN Force
- );
-
-VOID
-Ip4InitProtocol (
- IN IP4_SERVICE *IpSb,
- IN IP4_PROTOCOL *IpInstance
- );
-
-EFI_STATUS
-Ip4CleanProtocol (
- IN IP4_PROTOCOL *IpInstance
- );
-
-EFI_STATUS
-Ip4Cancel (
- IN IP4_PROTOCOL *IpInstance,
- IN EFI_IP4_COMPLETION_TOKEN *Token
- );
-
-EFI_STATUS
-Ip4Groups (
- IN IP4_PROTOCOL *IpInstance,
- IN BOOLEAN JoinFlag,
- IN EFI_IPv4_ADDRESS *GroupAddress
- );
-
-VOID
-EFIAPI
-Ip4TimerTicking (
- IN EFI_EVENT Event,
- IN VOID *Context
- );
-
-EFI_STATUS
-Ip4SentPacketTicking (
- IN NET_MAP *Map,
- IN NET_MAP_ITEM *Item,
- IN VOID *Context
- );
-#endif
+#include <Library/UefiLib.h>
+#include <Library/NetLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/MemoryAllocationLib.h>
+
+#include "Ip4Common.h"
+#include "Ip4Driver.h"
+#include "Ip4If.h"
+#include "Ip4Icmp.h"
+#include "Ip4Option.h"
+#include "Ip4Igmp.h"
+#include "Ip4Route.h"
+#include "Ip4Input.h"
+#include "Ip4Output.h"
+
+enum {
+ IP4_PROTOCOL_SIGNATURE = EFI_SIGNATURE_32 ('I', 'P', '4', 'P'),
+ IP4_SERVICE_SIGNATURE = EFI_SIGNATURE_32 ('I', 'P', '4', 'S'),
+
+ //
+ // The state of IP4 protocol. It starts from UNCONFIGED. if it is
+ // successfully configured, it goes to CONFIGED. if configure NULL
+ // is called, it becomes UNCONFIGED again. If (partly) destoried, it
+ // becomes DESTORY.
+ //
+ IP4_STATE_UNCONFIGED = 0,
+ IP4_STATE_CONFIGED,
+ IP4_STATE_DESTORY,
+
+ //
+ // The state of IP4 service. It starts from UNSTARTED. It transits
+ // to STARTED if autoconfigure is started. If default address is
+ // configured, it becomes CONFIGED. and if partly destoried, it goes
+ // to DESTORY.
+ //
+ IP4_SERVICE_UNSTARTED = 0,
+ IP4_SERVICE_STARTED,
+ IP4_SERVICE_CONFIGED,
+ IP4_SERVICE_DESTORY
+};
+
+//
+// IP4_TXTOKEN_WRAP wraps the upper layer's transmit token.
+// The user's data is kept in the Packet. When fragment is
+// needed, each fragment of the Packet has a reference to the
+// Packet, no data is actually copied. The Packet will be
+// released when all the fragments of it have been recycled by
+// MNP. Upon then, the IP4_TXTOKEN_WRAP will be released, and
+// user's event signalled.
+//
+typedef struct {
+ IP4_PROTOCOL *IpInstance;
+ EFI_IP4_COMPLETION_TOKEN *Token;
+ NET_BUF *Packet;
+ BOOLEAN Sent;
+ INTN Life;
+} IP4_TXTOKEN_WRAP;
+
+//
+// IP4_RXDATA_WRAP wraps the data IP4 child delivers to the
+// upper layers. The received packet is kept in the Packet.
+// The Packet itself may be constructured from some fragments.
+// All the fragments of the Packet is organized by a
+// IP4_ASSEMBLE_ENTRY structure. If the Packet is recycled by
+// the upper layer, the assemble entry and its associated
+// fragments will be freed at last.
+//
+typedef struct {
+ NET_LIST_ENTRY Link;
+ IP4_PROTOCOL *IpInstance;
+ NET_BUF *Packet;
+ EFI_IP4_RECEIVE_DATA RxData;
+} IP4_RXDATA_WRAP;
+
+struct _IP4_PROTOCOL {
+ UINT32 Signature;
+
+ EFI_IP4_PROTOCOL Ip4Proto;
+ EFI_HANDLE Handle;
+ INTN State;
+
+ IP4_SERVICE *Service;
+ NET_LIST_ENTRY Link; // Link to all the IP protocol from the service
+
+ //
+ // User's transmit/receive tokens, and received/deliverd packets
+ //
+ NET_MAP RxTokens;
+ NET_MAP TxTokens; // map between (User's Token, IP4_TXTOKE_WRAP)
+ NET_LIST_ENTRY Received; // Received but not delivered packet
+ NET_LIST_ENTRY Delivered; // Delivered and to be recycled packets
+ EFI_LOCK RecycleLock;
+
+ //
+ // Instance's address and route tables. There are two route tables.
+ // RouteTable is used by the IP4 driver to route packet. EfiRouteTable
+ // is used to communicate the current route info to the upper layer.
+ //
+ IP4_INTERFACE *Interface;
+ NET_LIST_ENTRY AddrLink; // Ip instances with the same IP address.
+ IP4_ROUTE_TABLE *RouteTable;
+
+ EFI_IP4_ROUTE_TABLE *EfiRouteTable;
+ UINT32 EfiRouteCount;
+
+ //
+ // IGMP data for this instance
+ //
+ IP4_ADDR *Groups; // stored in network byte order
+ UINT32 GroupCount;
+
+ EFI_IP4_CONFIG_DATA ConfigData;
+
+};
+
+struct _IP4_SERVICE {
+ UINT32 Signature;
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
+ INTN State;
+ BOOLEAN InDestory;
+
+ //
+ // List of all the IP instances and interfaces, and default
+ // interface and route table and caches.
+ //
+ UINTN NumChildren;
+ NET_LIST_ENTRY Children;
+
+ NET_LIST_ENTRY Interfaces;
+
+ IP4_INTERFACE *DefaultInterface;
+ IP4_ROUTE_TABLE *DefaultRouteTable;
+
+ //
+ // Ip reassemble utilities, and IGMP data
+ //
+ IP4_ASSEMBLE_TABLE Assemble;
+ IGMP_SERVICE_DATA IgmpCtrl;
+
+ //
+ // Low level protocol used by this service instance
+ //
+ EFI_HANDLE Image;
+ EFI_HANDLE Controller;
+
+ EFI_HANDLE MnpChildHandle;
+ EFI_MANAGED_NETWORK_PROTOCOL *Mnp;
+
+ EFI_MANAGED_NETWORK_CONFIG_DATA MnpConfigData;
+ EFI_SIMPLE_NETWORK_MODE SnpMode;
+
+ EFI_EVENT Timer;
+
+ //
+ // Auto configure staff
+ //
+ EFI_IP4_CONFIG_PROTOCOL *Ip4Config;
+ EFI_EVENT DoneEvent;
+ EFI_EVENT ReconfigEvent;
+
+ //
+ // The string representation of the current mac address of the
+ // NIC this IP4_SERVICE works on.
+ //
+ CHAR16 *MacString;
+};
+
+#define IP4_INSTANCE_FROM_PROTOCOL(Ip4) \
+ CR ((Ip4), IP4_PROTOCOL, Ip4Proto, IP4_PROTOCOL_SIGNATURE)
+
+#define IP4_SERVICE_FROM_PROTOCOL(Sb) \
+ CR ((Sb), IP4_SERVICE, ServiceBinding, IP4_SERVICE_SIGNATURE)
+
+#define IP4_NO_MAPPING(IpInstance) (!(IpInstance)->Interface->Configured)
+
+extern EFI_IP4_PROTOCOL mEfiIp4ProtocolTemplete;
+
+EFI_STATUS
+Ip4ServiceConfigMnp (
+ IN IP4_SERVICE *IpSb,
+ IN BOOLEAN Force
+ );
+
+VOID
+Ip4InitProtocol (
+ IN IP4_SERVICE *IpSb,
+ IN IP4_PROTOCOL *IpInstance
+ );
+
+EFI_STATUS
+Ip4CleanProtocol (
+ IN IP4_PROTOCOL *IpInstance
+ );
+
+EFI_STATUS
+Ip4Cancel (
+ IN IP4_PROTOCOL *IpInstance,
+ IN EFI_IP4_COMPLETION_TOKEN *Token
+ );
+
+EFI_STATUS
+Ip4Groups (
+ IN IP4_PROTOCOL *IpInstance,
+ IN BOOLEAN JoinFlag,
+ IN EFI_IPv4_ADDRESS *GroupAddress
+ );
+
+VOID
+EFIAPI
+Ip4TimerTicking (
+ IN EFI_EVENT Event,
+ IN VOID *Context
+ );
+
+EFI_STATUS
+Ip4SentPacketTicking (
+ IN NET_MAP *Map,
+ IN NET_MAP_ITEM *Item,
+ IN VOID *Context
+ );
+#endif