TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip4.h
Go to the documentation of this file.
1
21#ifndef __EFI_IP4_PROTOCOL_H__
22#define __EFI_IP4_PROTOCOL_H__
23
25
26#define EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID \
27 { \
28 0xc51711e7, 0xb4bf, 0x404a, {0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4 } \
29 }
30
31#define EFI_IP4_PROTOCOL_GUID \
32 { \
33 0x41d94cd2, 0x35b6, 0x455a, {0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd } \
34 }
35
37
42typedef struct {
43 EFI_HANDLE InstanceHandle;
44 EFI_IPv4_ADDRESS Ip4Address;
45 EFI_IPv4_ADDRESS SubnetMask;
47
52typedef struct {
53 EFI_HANDLE DriverHandle;
54 UINT32 AddressCount;
55 EFI_IP4_ADDRESS_PAIR AddressPairs[1];
57
58typedef struct {
115 BOOLEAN RawData;
129
130typedef struct {
131 EFI_IPv4_ADDRESS SubnetAddress;
132 EFI_IPv4_ADDRESS SubnetMask;
133 EFI_IPv4_ADDRESS GatewayAddress;
135
136typedef struct {
137 UINT8 Type;
138 UINT8 Code;
140
141typedef struct {
145 BOOLEAN IsStarted;
183
184#pragma pack(1)
185
186typedef struct {
187 UINT8 HeaderLength : 4;
188 UINT8 Version : 4;
189 UINT8 TypeOfService;
190 UINT16 TotalLength;
191 UINT16 Identification;
192 UINT16 Fragmentation;
193 UINT8 TimeToLive;
194 UINT8 Protocol;
195 UINT16 Checksum;
196 EFI_IPv4_ADDRESS SourceAddress;
197 EFI_IPv4_ADDRESS DestinationAddress;
199#pragma pack()
200
201typedef struct {
202 UINT32 FragmentLength;
203 VOID *FragmentBuffer;
205
206typedef struct {
207 EFI_TIME TimeStamp;
208 EFI_EVENT RecycleSignal;
209 UINT32 HeaderLength;
210 EFI_IP4_HEADER *Header;
211 UINT32 OptionsLength;
212 VOID *Options;
213 UINT32 DataLength;
214 UINT32 FragmentCount;
215 EFI_IP4_FRAGMENT_DATA FragmentTable[1];
217
218typedef struct {
219 EFI_IPv4_ADDRESS SourceAddress;
220 EFI_IPv4_ADDRESS GatewayAddress;
221 UINT8 Protocol;
222 UINT8 TypeOfService;
223 UINT8 TimeToLive;
224 BOOLEAN DoNotFragment;
226
227typedef struct {
228 EFI_IPv4_ADDRESS DestinationAddress;
229 EFI_IP4_OVERRIDE_DATA *OverrideData; // OPTIONAL
230 UINT32 OptionsLength; // OPTIONAL
231 VOID *OptionsBuffer; // OPTIONAL
232 UINT32 TotalDataLength;
233 UINT32 FragmentCount;
234 EFI_IP4_FRAGMENT_DATA FragmentTable[1];
236
237typedef struct {
250 union {
259 } Packet;
261
280typedef
282(EFIAPI *EFI_IP4_GET_MODE_DATA)(
284 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
287 );
288
335typedef
337(EFIAPI *EFI_IP4_CONFIGURE)(
338 IN EFI_IP4_PROTOCOL *This,
339 IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL
340 );
341
372typedef
374(EFIAPI *EFI_IP4_GROUPS)(
375 IN EFI_IP4_PROTOCOL *This,
376 IN BOOLEAN JoinFlag,
377 IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL
378 );
379
430typedef
432(EFIAPI *EFI_IP4_ROUTES)(
433 IN EFI_IP4_PROTOCOL *This,
434 IN BOOLEAN DeleteRoute,
435 IN EFI_IPv4_ADDRESS *SubnetAddress,
436 IN EFI_IPv4_ADDRESS *SubnetMask,
437 IN EFI_IPv4_ADDRESS *GatewayAddress
438 );
439
469typedef
471(EFIAPI *EFI_IP4_TRANSMIT)(
472 IN EFI_IP4_PROTOCOL *This,
474 );
475
508typedef
510(EFIAPI *EFI_IP4_RECEIVE)(
511 IN EFI_IP4_PROTOCOL *This,
513 );
514
544typedef
546(EFIAPI *EFI_IP4_CANCEL)(
547 IN EFI_IP4_PROTOCOL *This,
549 );
550
578typedef
580(EFIAPI *EFI_IP4_POLL)(
581 IN EFI_IP4_PROTOCOL *This
582 );
583
589 EFI_IP4_GET_MODE_DATA GetModeData;
590 EFI_IP4_CONFIGURE Configure;
591 EFI_IP4_GROUPS Groups;
592 EFI_IP4_ROUTES Routes;
593 EFI_IP4_TRANSMIT Transmit;
594 EFI_IP4_RECEIVE Receive;
595 EFI_IP4_CANCEL Cancel;
596 EFI_IP4_POLL Poll;
597};
598
599extern EFI_GUID gEfiIp4ServiceBindingProtocolGuid;
600extern EFI_GUID gEfiIp4ProtocolGuid;
601
602#endif
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EFI_IP4_CANCEL)(IN EFI_IP4_PROTOCOL *This, IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL)
Definition: Ip4.h:546
EFI_STATUS(EFIAPI * EFI_IP4_ROUTES)(IN EFI_IP4_PROTOCOL *This, IN BOOLEAN DeleteRoute, IN EFI_IPv4_ADDRESS *SubnetAddress, IN EFI_IPv4_ADDRESS *SubnetMask, IN EFI_IPv4_ADDRESS *GatewayAddress)
Definition: Ip4.h:432
EFI_STATUS(EFIAPI * EFI_IP4_POLL)(IN EFI_IP4_PROTOCOL *This)
Definition: Ip4.h:580
EFI_STATUS(EFIAPI * EFI_IP4_GROUPS)(IN EFI_IP4_PROTOCOL *This, IN BOOLEAN JoinFlag, IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL)
Definition: Ip4.h:374
EFI_STATUS(EFIAPI * EFI_IP4_RECEIVE)(IN EFI_IP4_PROTOCOL *This, IN EFI_IP4_COMPLETION_TOKEN *Token)
Definition: Ip4.h:510
EFI_STATUS(EFIAPI * EFI_IP4_GET_MODE_DATA)(IN CONST EFI_IP4_PROTOCOL *This, OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL, OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL)
Definition: Ip4.h:282
EFI_STATUS(EFIAPI * EFI_IP4_CONFIGURE)(IN EFI_IP4_PROTOCOL *This, IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL)
Definition: Ip4.h:337
EFI_STATUS(EFIAPI * EFI_IP4_TRANSMIT)(IN EFI_IP4_PROTOCOL *This, IN EFI_IP4_COMPLETION_TOKEN *Token)
Definition: Ip4.h:471
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_EVENT Event
Definition: Ip4.h:244
EFI_IP4_RECEIVE_DATA * RxData
Definition: Ip4.h:254
EFI_STATUS Status
Definition: Ip4.h:249
EFI_IP4_TRANSMIT_DATA * TxData
Definition: Ip4.h:258
BOOLEAN AcceptBroadcast
Definition: Ip4.h:80
UINT8 TypeOfService
Definition: Ip4.h:102
UINT32 ReceiveTimeout
Definition: Ip4.h:121
EFI_IPv4_ADDRESS SubnetMask
Definition: Ip4.h:98
UINT8 TimeToLive
Definition: Ip4.h:106
BOOLEAN AcceptPromiscuous
Definition: Ip4.h:86
BOOLEAN DoNotFragment
Definition: Ip4.h:110
BOOLEAN AcceptAnyProtocol
Definition: Ip4.h:69
UINT8 DefaultProtocol
Definition: Ip4.h:63
EFI_IPv4_ADDRESS StationAddress
Definition: Ip4.h:94
BOOLEAN AcceptIcmpErrors
Definition: Ip4.h:74
BOOLEAN RawData
Definition: Ip4.h:115
UINT32 TransmitTimeout
Definition: Ip4.h:127
BOOLEAN UseDefaultAddress
Definition: Ip4.h:90
UINT32 MaxPacketSize
Definition: Ip4.h:149
UINT32 IcmpTypeCount
Definition: Ip4.h:177
BOOLEAN IsConfigured
Definition: Ip4.h:157
EFI_IP4_CONFIG_DATA ConfigData
Definition: Ip4.h:153
EFI_IP4_ROUTE_TABLE * RouteTable
Definition: Ip4.h:173
EFI_IP4_ICMP_TYPE * IcmpTypeList
Definition: Ip4.h:181
BOOLEAN IsStarted
Definition: Ip4.h:145
UINT32 GroupCount
Definition: Ip4.h:161
UINT32 RouteCount
Definition: Ip4.h:169
EFI_IPv4_ADDRESS * GroupTable
Definition: Ip4.h:165
Definition: Base.h:213