3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 #include EFI_PROTOCOL_DEFINITION (ServiceBinding)
24 #include EFI_PROTOCOL_DEFINITION (Ip4)
29 #define EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID \
30 { 0x83f01464, 0x99bd, 0x45e5, 0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6 }
32 #define EFI_UDP4_PROTOCOL_GUID \
33 { 0x3ad9df29, 0x4501, 0x478d, 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 }
36 EFI_HANDLE InstanceHandle
;
37 EFI_IPv4_ADDRESS LocalAddress
;
39 EFI_IPv4_ADDRESS RemoteAddress
;
41 } EFI_UDP4_SERVICE_POINT
;
44 EFI_HANDLE DriverHandle
;
46 EFI_UDP4_SERVICE_POINT Services
[1];
47 } EFI_UDP4_VARIABLE_DATA
;
50 //ICMP error definitions
52 #define EFI_NETWORK_UNREACHABLE EFIERR(100)
53 #define EFI_HOST_UNREACHABLE EFIERR(101)
54 #define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
55 #define EFI_PORT_UNREACHABLE EFIERR(103)
57 EFI_FORWARD_DECLARATION (EFI_UDP4_PROTOCOL
);
59 //*************************************************
60 // EFI_UDP4_FRAGMENT_DATA *
61 //*************************************************
63 UINT32 FragmentLength
;
65 } EFI_UDP4_FRAGMENT_DATA
;
67 //*************************************************
68 // EFI_UDP4_SESSION_DATA *
69 //*************************************************
71 EFI_IPv4_ADDRESS SourceAddress
;
73 EFI_IPv4_ADDRESS DestinationAddress
;
74 UINT16 DestinationPort
;
75 } EFI_UDP4_SESSION_DATA
;
77 //************************************************
78 // EFI_UDP4_CONFIG_DATA *
79 //************************************************
82 BOOLEAN AcceptBroadcast
;
83 BOOLEAN AcceptPromiscuous
;
84 BOOLEAN AcceptAnyPort
;
85 BOOLEAN AllowDuplicatePort
;
89 BOOLEAN DoNotFragment
;
90 UINT32 ReceiveTimeout
;
91 UINT32 TransmitTimeout
;
93 BOOLEAN UseDefaultAddress
;
94 EFI_IPv4_ADDRESS StationAddress
;
95 EFI_IPv4_ADDRESS SubnetMask
;
97 EFI_IPv4_ADDRESS RemoteAddress
;
99 } EFI_UDP4_CONFIG_DATA
;
101 //*******************************************************
102 // EFI_UDP4_TRANSMIT_DATA *
103 //*******************************************************
105 EFI_UDP4_SESSION_DATA
*UdpSessionData
;
106 EFI_IPv4_ADDRESS
*GatewayAddress
;
108 UINT32 FragmentCount
;
109 EFI_UDP4_FRAGMENT_DATA FragmentTable
[1];
110 } EFI_UDP4_TRANSMIT_DATA
;
112 //*******************************************************
113 // EFI_UDP4_RECEIVE_DATA *
114 //*******************************************************
117 EFI_EVENT RecycleSignal
;
118 EFI_UDP4_SESSION_DATA UdpSession
;
120 UINT32 FragmentCount
;
121 EFI_UDP4_FRAGMENT_DATA FragmentTable
[1];
122 } EFI_UDP4_RECEIVE_DATA
;
125 //*******************************************************
126 // EFI_UDP4_COMPLETION_TOKEN *
127 //*******************************************************
132 EFI_UDP4_RECEIVE_DATA
*RxData
;
133 EFI_UDP4_TRANSMIT_DATA
*TxData
;
135 } EFI_UDP4_COMPLETION_TOKEN
;
139 (EFIAPI
*EFI_UDP4_GET_MODE_DATA
) (
140 IN EFI_UDP4_PROTOCOL
*This
,
141 OUT EFI_UDP4_CONFIG_DATA
*Udp4ConfigData OPTIONAL
,
142 OUT EFI_IP4_MODE_DATA
*Ip4ModeData OPTIONAL
,
143 OUT EFI_MANAGED_NETWORK_CONFIG_DATA
*MnpConfigData OPTIONAL
,
144 OUT EFI_SIMPLE_NETWORK_MODE
*SnpModeData OPTIONAL
149 (EFIAPI
*EFI_UDP4_CONFIGURE
) (
150 IN EFI_UDP4_PROTOCOL
*This
,
151 IN EFI_UDP4_CONFIG_DATA
*UdpConfigData OPTIONAL
156 (EFIAPI
*EFI_UDP4_GROUPS
) (
157 IN EFI_UDP4_PROTOCOL
*This
,
159 IN EFI_IPv4_ADDRESS
*MulticastAddress OPTIONAL
164 (EFIAPI
*EFI_UDP4_ROUTES
) (
165 IN EFI_UDP4_PROTOCOL
*This
,
166 IN BOOLEAN DeleteRoute
,
167 IN EFI_IPv4_ADDRESS
*SubnetAddress
,
168 IN EFI_IPv4_ADDRESS
*SubnetMask
,
169 IN EFI_IPv4_ADDRESS
*GatewayAddress
174 (EFIAPI
*EFI_UDP4_TRANSMIT
) (
175 IN EFI_UDP4_PROTOCOL
*This
,
176 IN EFI_UDP4_COMPLETION_TOKEN
*Token
181 (EFIAPI
*EFI_UDP4_RECEIVE
) (
182 IN EFI_UDP4_PROTOCOL
*This
,
183 IN EFI_UDP4_COMPLETION_TOKEN
*Token
188 (EFIAPI
*EFI_UDP4_CANCEL
)(
189 IN EFI_UDP4_PROTOCOL
*This
,
190 IN EFI_UDP4_COMPLETION_TOKEN
*Token OPTIONAL
195 (EFIAPI
*EFI_UDP4_POLL
) (
196 IN EFI_UDP4_PROTOCOL
*This
199 typedef struct _EFI_UDP4_PROTOCOL
{
200 EFI_UDP4_GET_MODE_DATA GetModeData
;
201 EFI_UDP4_CONFIGURE Configure
;
202 EFI_UDP4_GROUPS Groups
;
203 EFI_UDP4_ROUTES Routes
;
204 EFI_UDP4_TRANSMIT Transmit
;
205 EFI_UDP4_RECEIVE Receive
;
206 EFI_UDP4_CANCEL Cancel
;
210 extern EFI_GUID gEfiUdp4ServiceBindingProtocolGuid
;
211 extern EFI_GUID gEfiUdp4ProtocolGuid
;
212 extern EFI_GUID gEfiUdp4RegistryDataGuid
;