+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-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
- Udp4.h\r
-\r
-Abstract:\r
-\r
---*/\r
-\r
-#ifndef _UDP4_H_\r
-#define _UDP4_H_\r
-\r
-#include EFI_PROTOCOL_DEFINITION (ServiceBinding)\r
-#include EFI_PROTOCOL_DEFINITION (Ip4)\r
-\r
-//\r
-//GUID definitions\r
-//\r
-#define EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID \\r
- { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} }\r
-\r
-#define EFI_UDP4_PROTOCOL_GUID \\r
- { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} }\r
-\r
-typedef struct {\r
- EFI_HANDLE InstanceHandle;\r
- EFI_IPv4_ADDRESS LocalAddress;\r
- UINT16 LocalPort;\r
- EFI_IPv4_ADDRESS RemoteAddress;\r
- UINT16 RemotePort;\r
-} EFI_UDP4_SERVICE_POINT; \r
-\r
-typedef struct {\r
- EFI_HANDLE DriverHandle;\r
- UINT32 ServiceCount;\r
- EFI_UDP4_SERVICE_POINT Services[1];\r
-} EFI_UDP4_VARIABLE_DATA;\r
-\r
-//\r
-//ICMP error definitions\r
-//\r
-#define EFI_NETWORK_UNREACHABLE EFIERR(100)\r
-#define EFI_HOST_UNREACHABLE EFIERR(101) \r
-#define EFI_PROTOCOL_UNREACHABLE EFIERR(102)\r
-#define EFI_PORT_UNREACHABLE EFIERR(103)\r
-\r
-EFI_FORWARD_DECLARATION (EFI_UDP4_PROTOCOL);\r
-\r
-//*************************************************\r
-// EFI_UDP4_FRAGMENT_DATA *\r
-//*************************************************\r
-typedef struct {\r
- UINT32 FragmentLength;\r
- VOID *FragmentBuffer;\r
-} EFI_UDP4_FRAGMENT_DATA;\r
-\r
-//*************************************************\r
-// EFI_UDP4_SESSION_DATA *\r
-//*************************************************\r
-typedef struct {\r
- EFI_IPv4_ADDRESS SourceAddress;\r
- UINT16 SourcePort;\r
- EFI_IPv4_ADDRESS DestinationAddress;\r
- UINT16 DestinationPort;\r
-} EFI_UDP4_SESSION_DATA;\r
-\r
-//************************************************\r
-// EFI_UDP4_CONFIG_DATA *\r
-//************************************************\r
-typedef struct {\r
- //Receiving Filters\r
- BOOLEAN AcceptBroadcast;\r
- BOOLEAN AcceptPromiscuous;\r
- BOOLEAN AcceptAnyPort;\r
- BOOLEAN AllowDuplicatePort;\r
- //I/O parameters\r
- UINT8 TypeOfService;\r
- UINT8 TimeToLive;\r
- BOOLEAN DoNotFragment;\r
- UINT32 ReceiveTimeout;\r
- UINT32 TransmitTimeout;\r
- //Access Point\r
- BOOLEAN UseDefaultAddress;\r
- EFI_IPv4_ADDRESS StationAddress;\r
- EFI_IPv4_ADDRESS SubnetMask;\r
- UINT16 StationPort;\r
- EFI_IPv4_ADDRESS RemoteAddress;\r
- UINT16 RemotePort;\r
-} EFI_UDP4_CONFIG_DATA;\r
-\r
-//*******************************************************\r
-// EFI_UDP4_TRANSMIT_DATA *\r
-//*******************************************************\r
-typedef struct {\r
- EFI_UDP4_SESSION_DATA *UdpSessionData;\r
- EFI_IPv4_ADDRESS *GatewayAddress;\r
- UINT32 DataLength;\r
- UINT32 FragmentCount; \r
- EFI_UDP4_FRAGMENT_DATA FragmentTable[1];\r
-} EFI_UDP4_TRANSMIT_DATA;\r
-\r
-//*******************************************************\r
-// EFI_UDP4_RECEIVE_DATA *\r
-//*******************************************************\r
-typedef struct {\r
- EFI_TIME TimeStamp;\r
- EFI_EVENT RecycleSignal;\r
- EFI_UDP4_SESSION_DATA UdpSession;\r
- UINT32 DataLength;\r
- UINT32 FragmentCount;\r
- EFI_UDP4_FRAGMENT_DATA FragmentTable[1];\r
-} EFI_UDP4_RECEIVE_DATA;\r
-\r
-\r
-//*******************************************************\r
-// EFI_UDP4_COMPLETION_TOKEN *\r
-//*******************************************************\r
-typedef struct {\r
- EFI_EVENT Event;\r
- EFI_STATUS Status;\r
- union {\r
- EFI_UDP4_RECEIVE_DATA *RxData;\r
- EFI_UDP4_TRANSMIT_DATA *TxData;\r
- } Packet;\r
-} EFI_UDP4_COMPLETION_TOKEN;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_GET_MODE_DATA) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,\r
- OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_CONFIGURE) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_GROUPS) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN BOOLEAN JoinFlag,\r
- IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_ROUTES) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN BOOLEAN DeleteRoute,\r
- IN EFI_IPv4_ADDRESS *SubnetAddress,\r
- IN EFI_IPv4_ADDRESS *SubnetMask,\r
- IN EFI_IPv4_ADDRESS *GatewayAddress\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_TRANSMIT) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN EFI_UDP4_COMPLETION_TOKEN *Token\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_RECEIVE) (\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN EFI_UDP4_COMPLETION_TOKEN *Token\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_CANCEL)(\r
- IN EFI_UDP4_PROTOCOL *This,\r
- IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL\r
-);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_UDP4_POLL) (\r
- IN EFI_UDP4_PROTOCOL *This\r
-);\r
-\r
-struct _EFI_UDP4_PROTOCOL {\r
- EFI_UDP4_GET_MODE_DATA GetModeData;\r
- EFI_UDP4_CONFIGURE Configure;\r
- EFI_UDP4_GROUPS Groups;\r
- EFI_UDP4_ROUTES Routes;\r
- EFI_UDP4_TRANSMIT Transmit;\r
- EFI_UDP4_RECEIVE Receive;\r
- EFI_UDP4_CANCEL Cancel;\r
- EFI_UDP4_POLL Poll;\r
-};\r
-\r
-extern EFI_GUID gEfiUdp4ServiceBindingProtocolGuid;\r
-extern EFI_GUID gEfiUdp4ProtocolGuid;\r
-extern EFI_GUID gEfiUdp4RegistryDataGuid;\r
-\r
-#endif\r