TianoCore EDK2 master
Loading...
Searching...
No Matches
Udp4.h
Go to the documentation of this file.
1
15#ifndef __EFI_UDP4_PROTOCOL_H__
16#define __EFI_UDP4_PROTOCOL_H__
17
18#include <Protocol/Ip4.h>
19//
20// GUID definitions
21//
22#define EFI_UDP4_SERVICE_BINDING_PROTOCOL_GUID \
23 { \
24 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6 } \
25 }
26
27#define EFI_UDP4_PROTOCOL_GUID \
28 { \
29 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 } \
30 }
31
33
38typedef struct {
39 EFI_HANDLE InstanceHandle;
40 EFI_IPv4_ADDRESS LocalAddress;
41 UINT16 LocalPort;
42 EFI_IPv4_ADDRESS RemoteAddress;
43 UINT16 RemotePort;
45
50typedef struct {
51 EFI_HANDLE DriverHandle;
52 UINT32 ServiceCount;
53 EFI_UDP4_SERVICE_POINT Services[1];
55
56typedef struct {
57 UINT32 FragmentLength;
58 VOID *FragmentBuffer;
60
61typedef struct {
62 EFI_IPv4_ADDRESS SourceAddress;
63 UINT16 SourcePort;
64 EFI_IPv4_ADDRESS DestinationAddress;
65 UINT16 DestinationPort;
67typedef struct {
68 //
69 // Receiving Filters
70 //
71 BOOLEAN AcceptBroadcast;
72 BOOLEAN AcceptPromiscuous;
73 BOOLEAN AcceptAnyPort;
74 BOOLEAN AllowDuplicatePort;
75 //
76 // I/O parameters
77 //
78 UINT8 TypeOfService;
79 UINT8 TimeToLive;
80 BOOLEAN DoNotFragment;
81 UINT32 ReceiveTimeout;
82 UINT32 TransmitTimeout;
83 //
84 // Access Point
85 //
86 BOOLEAN UseDefaultAddress;
87 EFI_IPv4_ADDRESS StationAddress;
88 EFI_IPv4_ADDRESS SubnetMask;
89 UINT16 StationPort;
90 EFI_IPv4_ADDRESS RemoteAddress;
91 UINT16 RemotePort;
93
94typedef struct {
95 EFI_UDP4_SESSION_DATA *UdpSessionData; // OPTIONAL
96 EFI_IPv4_ADDRESS *GatewayAddress; // OPTIONAL
97 UINT32 DataLength;
98 UINT32 FragmentCount;
99 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
101
102typedef struct {
103 EFI_TIME TimeStamp;
104 EFI_EVENT RecycleSignal;
105 EFI_UDP4_SESSION_DATA UdpSession;
106 UINT32 DataLength;
107 UINT32 FragmentCount;
108 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
110
111typedef struct {
112 EFI_EVENT Event;
113 EFI_STATUS Status;
114 union {
115 EFI_UDP4_RECEIVE_DATA *RxData;
117 } Packet;
119
140typedef
142(EFIAPI *EFI_UDP4_GET_MODE_DATA)(
143 IN EFI_UDP4_PROTOCOL *This,
144 OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,
145 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
148 );
149
188typedef
190(EFIAPI *EFI_UDP4_CONFIGURE)(
191 IN EFI_UDP4_PROTOCOL *This,
192 IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL
193 );
194
224typedef
226(EFIAPI *EFI_UDP4_GROUPS)(
227 IN EFI_UDP4_PROTOCOL *This,
228 IN BOOLEAN JoinFlag,
229 IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL
230 );
231
270typedef
272(EFIAPI *EFI_UDP4_ROUTES)(
273 IN EFI_UDP4_PROTOCOL *This,
274 IN BOOLEAN DeleteRoute,
275 IN EFI_IPv4_ADDRESS *SubnetAddress,
276 IN EFI_IPv4_ADDRESS *SubnetMask,
277 IN EFI_IPv4_ADDRESS *GatewayAddress
278 );
279
300typedef
302(EFIAPI *EFI_UDP4_POLL)(
304 );
305
337typedef
339(EFIAPI *EFI_UDP4_RECEIVE)(
340 IN EFI_UDP4_PROTOCOL *This,
342 );
343
374typedef
376(EFIAPI *EFI_UDP4_TRANSMIT)(
377 IN EFI_UDP4_PROTOCOL *This,
379 );
380
409typedef
411(EFIAPI *EFI_UDP4_CANCEL)(
412 IN EFI_UDP4_PROTOCOL *This,
414 );
415
424 EFI_UDP4_GET_MODE_DATA GetModeData;
425 EFI_UDP4_CONFIGURE Configure;
426 EFI_UDP4_GROUPS Groups;
427 EFI_UDP4_ROUTES Routes;
428 EFI_UDP4_TRANSMIT Transmit;
429 EFI_UDP4_RECEIVE Receive;
430 EFI_UDP4_CANCEL Cancel;
431 EFI_UDP4_POLL Poll;
432};
433
434extern EFI_GUID gEfiUdp4ServiceBindingProtocolGuid;
435extern EFI_GUID gEfiUdp4ProtocolGuid;
436
437#endif
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EFI_UDP4_CANCEL)(IN EFI_UDP4_PROTOCOL *This, IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL)
Definition: Udp4.h:411
EFI_STATUS(EFIAPI * EFI_UDP4_POLL)(IN EFI_UDP4_PROTOCOL *This)
Definition: Udp4.h:302
EFI_STATUS(EFIAPI * EFI_UDP4_TRANSMIT)(IN EFI_UDP4_PROTOCOL *This, IN EFI_UDP4_COMPLETION_TOKEN *Token)
Definition: Udp4.h:376
EFI_STATUS(EFIAPI * EFI_UDP4_CONFIGURE)(IN EFI_UDP4_PROTOCOL *This, IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL)
Definition: Udp4.h:190
EFI_STATUS(EFIAPI * EFI_UDP4_ROUTES)(IN EFI_UDP4_PROTOCOL *This, IN BOOLEAN DeleteRoute, IN EFI_IPv4_ADDRESS *SubnetAddress, IN EFI_IPv4_ADDRESS *SubnetMask, IN EFI_IPv4_ADDRESS *GatewayAddress)
Definition: Udp4.h:272
EFI_STATUS(EFIAPI * EFI_UDP4_GET_MODE_DATA)(IN EFI_UDP4_PROTOCOL *This, OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL, OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL, OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL)
Definition: Udp4.h:142
EFI_STATUS(EFIAPI * EFI_UDP4_GROUPS)(IN EFI_UDP4_PROTOCOL *This, IN BOOLEAN JoinFlag, IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL)
Definition: Udp4.h:226
EFI_STATUS(EFIAPI * EFI_UDP4_RECEIVE)(IN EFI_UDP4_PROTOCOL *This, IN EFI_UDP4_COMPLETION_TOKEN *Token)
Definition: Udp4.h:339
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
Definition: Base.h:213