Add memtest support.
[syslinux-debian/hramrach.git] / efi32 / include / efi / efiudp.h
blob7c8b467eb9c4921708df85dea195088da8f0cef4
1 #ifndef _EFI_UDP_H
2 #define _EFI_UDP_H
5 /*++
6 Copyright (c) 2013 Intel Corporation
8 --*/
10 #define EFI_UDP4_SERVICE_BINDING_PROTOCOL \
11 { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} }
13 #define EFI_UDP4_PROTOCOL \
14 { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} }
16 #define EFI_UDP6_SERVICE_BINDING_PROTOCOL \
17 { 0x66ed4721, 0x3c98, 0x4d3e, {0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54} }
19 #define EFI_UDP6_PROTOCOL \
20 { 0x4f948815, 0xb4b9, 0x43cb, {0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3,0x49, 0x55} }
22 INTERFACE_DECL(_EFI_UDP4);
23 INTERFACE_DECL(_EFI_UDP6);
25 typedef struct {
26 BOOLEAN AcceptBroadcast;
27 BOOLEAN AcceptPromiscuous;
28 BOOLEAN AcceptAnyPort;
29 BOOLEAN AllowDuplicatePort;
30 UINT8 TypeOfService;
31 UINT8 TimeToLive;
32 BOOLEAN DoNotFragment;
33 UINT32 ReceiveTimeout;
34 UINT32 TransmitTimeout;
35 BOOLEAN UseDefaultAddress;
36 EFI_IPv4_ADDRESS StationAddress;
37 EFI_IPv4_ADDRESS SubnetMask;
38 UINT16 StationPort;
39 EFI_IPv4_ADDRESS RemoteAddress;
40 UINT16 RemotePort;
41 } EFI_UDP4_CONFIG_DATA;
43 typedef
44 EFI_STATUS
45 (EFIAPI *EFI_UDP4_GET_MODE_DATA) (
46 IN struct _EFI_UDP4 *This,
47 OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,
48 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
49 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
50 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
53 typedef
54 EFI_STATUS
55 (EFIAPI *EFI_UDP4_CONFIGURE) (
56 IN struct _EFI_UDP4 *This,
57 IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL
60 typedef
61 EFI_STATUS
62 (EFIAPI *EFI_UDP4_GROUPS) (
63 IN struct _EFI_UDP4 *This,
64 IN BOOLEAN JoinFlag,
65 IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL
68 typedef
69 EFI_STATUS
70 (EFIAPI *EFI_UDP4_ROUTES) (
71 IN struct _EFI_UDP4 *This,
72 IN BOOLEAN DeleteRoute,
73 IN EFI_IPv4_ADDRESS *SubnetAddress,
74 IN EFI_IPv4_ADDRESS *SubnetMask,
75 IN EFI_IPv4_ADDRESS *GatewayAddress
78 #define EFI_NETWORK_UNREACHABLE EFIERR(100)
79 #define EFI_HOST_UNREACHABLE EFIERR(101)
80 #define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
81 #define EFI_PORT_UNREACHABLE EFIERR(103)
83 typedef struct {
84 EFI_IPv4_ADDRESS SourceAddress;
85 UINT16 SourcePort;
86 EFI_IPv4_ADDRESS DestinationAddress;
87 UINT16 DestinationPort;
88 } EFI_UDP4_SESSION_DATA;
90 typedef struct {
91 UINT32 FragmentLength;
92 VOID *FragmentBuffer;
93 } EFI_UDP4_FRAGMENT_DATA;
95 typedef struct {
96 EFI_TIME TimeStamp;
97 EFI_EVENT RecycleSignal;
98 EFI_UDP4_SESSION_DATA UdpSession;
99 UINT32 DataLength;
100 UINT32 FragmentCount;
101 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
102 } EFI_UDP4_RECEIVE_DATA;
104 typedef struct {
105 EFI_UDP4_SESSION_DATA *UdpSessionData;
106 EFI_IPv4_ADDRESS *GatewayAddress;
107 UINT32 DataLength;
108 UINT32 FragmentCount;
109 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
110 } EFI_UDP4_TRANSMIT_DATA;
112 typedef struct {
113 EFI_EVENT Event;
114 EFI_STATUS Status;
115 union {
116 EFI_UDP4_RECEIVE_DATA *RxData;
117 EFI_UDP4_TRANSMIT_DATA *TxData;
118 } Packet;
119 } EFI_UDP4_COMPLETION_TOKEN;
121 typedef
122 EFI_STATUS
123 (EFIAPI *EFI_UDP4_TRANSMIT) (
124 IN struct _EFI_UDP4 *This,
125 IN EFI_UDP4_COMPLETION_TOKEN *Token
128 typedef
129 EFI_STATUS
130 (EFIAPI *EFI_UDP4_RECEIVE) (
131 IN struct _EFI_UDP4 *This,
132 IN EFI_UDP4_COMPLETION_TOKEN *Token
135 typedef
136 EFI_STATUS
137 (EFIAPI *EFI_UDP4_CANCEL)(
138 IN struct _EFI_UDP4 *This,
139 IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL
142 typedef
143 EFI_STATUS
144 (EFIAPI *EFI_UDP4_POLL) (
145 IN struct _EFI_UDP4 *This
148 typedef struct _EFI_UDP4 {
149 EFI_UDP4_GET_MODE_DATA GetModeData;
150 EFI_UDP4_CONFIGURE Configure;
151 EFI_UDP4_GROUPS Groups;
152 EFI_UDP4_ROUTES Routes;
153 EFI_UDP4_TRANSMIT Transmit;
154 EFI_UDP4_RECEIVE Receive;
155 EFI_UDP4_CANCEL Cancel;
156 EFI_UDP4_POLL Poll;
157 } EFI_UDP4;
159 typedef struct {
160 BOOLEAN AcceptPromiscuous;
161 BOOLEAN AcceptAnyPort;
162 BOOLEAN AllowDuplicatePort;
163 UINT8 TrafficClass;
164 UINT8 HopLimit;
165 UINT32 ReceiveTimeout;
166 UINT32 TransmitTimeout;
167 EFI_IPv6_ADDRESS StationAddress;
168 UINT16 StationPort;
169 EFI_IPv6_ADDRESS RemoteAddress;
170 UINT16 RemotePort;
171 } EFI_UDP6_CONFIG_DATA;
173 typedef
174 EFI_STATUS
175 (EFIAPI *EFI_UDP6_GET_MODE_DATA) (
176 IN struct _EFI_UDP6 *This,
177 OUT EFI_UDP6_CONFIG_DATA *Udp6ConfigData OPTIONAL,
178 OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
179 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
180 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
183 typedef
184 EFI_STATUS
185 (EFIAPI *EFI_UDP6_CONFIGURE) (
186 IN struct _EFI_UDP6 *This,
187 IN EFI_UDP6_CONFIG_DATA *UdpConfigData OPTIONAL
190 typedef
191 EFI_STATUS
192 (EFIAPI *EFI_UDP6_GROUPS) (
193 IN struct _EFI_UDP6 *This,
194 IN BOOLEAN JoinFlag,
195 IN EFI_IPv6_ADDRESS *MulticastAddress OPTIONAL
198 typedef struct {
199 EFI_IPv6_ADDRESS SourceAddress;
200 UINT16 SourcePort;
201 EFI_IPv6_ADDRESS DestinationAddress;
202 UINT16 DestinationPort;
203 } EFI_UDP6_SESSION_DATA;
205 typedef struct {
206 UINT32 FragmentLength;
207 VOID *FragmentBuffer;
208 } EFI_UDP6_FRAGMENT_DATA;
210 typedef struct {
211 EFI_TIME TimeStamp;
212 EFI_EVENT RecycleSignal;
213 EFI_UDP6_SESSION_DATA UdpSession;
214 UINT32 DataLength;
215 UINT32 FragmentCount;
216 EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
217 } EFI_UDP6_RECEIVE_DATA;
219 typedef struct {
220 EFI_UDP6_SESSION_DATA *UdpSessionData;
221 UINT32 DataLength;
222 UINT32 FragmentCount;
223 EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
224 } EFI_UDP6_TRANSMIT_DATA;
226 typedef struct {
227 EFI_EVENT Event;
228 EFI_STATUS Status;
229 union {
230 EFI_UDP6_RECEIVE_DATA *RxData;
231 EFI_UDP6_TRANSMIT_DATA *TxData;
232 } Packet;
233 } EFI_UDP6_COMPLETION_TOKEN;
235 typedef
236 EFI_STATUS
237 (EFIAPI *EFI_UDP6_TRANSMIT) (
238 IN struct _EFI_UDP6 *This,
239 IN EFI_UDP6_COMPLETION_TOKEN *Token
242 typedef
243 EFI_STATUS
244 (EFIAPI *EFI_UDP6_RECEIVE) (
245 IN struct _EFI_UDP6 *This,
246 IN EFI_UDP6_COMPLETION_TOKEN *Token
249 typedef
250 EFI_STATUS
251 (EFIAPI *EFI_UDP6_CANCEL)(
252 IN struct _EFI_UDP6 *This,
253 IN EFI_UDP6_COMPLETION_TOKEN *Token OPTIONAL
256 typedef
257 EFI_STATUS
258 (EFIAPI *EFI_UDP6_POLL) (
259 IN struct _EFI_UDP6 *This
262 typedef struct _EFI_UDP6 {
263 EFI_UDP6_GET_MODE_DATA GetModeData;
264 EFI_UDP6_CONFIGURE Configure;
265 EFI_UDP6_GROUPS Groups;
266 EFI_UDP6_TRANSMIT Transmit;
267 EFI_UDP6_RECEIVE Receive;
268 EFI_UDP6_CANCEL Cancel;
269 EFI_UDP6_POLL Poll;
270 } EFI_UDP6;
272 #endif /* _EFI_UDP_H */