199767f8919635c4928607450d9e0abb932109ceToomas Soome#ifndef _EFI_UDP_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define _EFI_UDP_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/*++
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCopyright (c) 2013 Intel Corporation
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome--*/
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_UDP4_SERVICE_BINDING_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_UDP4_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_UDP6_SERVICE_BINDING_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x66ed4721, 0x3c98, 0x4d3e, {0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_UDP6_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x4f948815, 0xb4b9, 0x43cb, {0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3,0x49, 0x55} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_EFI_UDP4);
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_EFI_UDP6);
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptBroadcast;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptPromiscuous;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptAnyPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AllowDuplicatePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 TypeOfService;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 TimeToLive;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN DoNotFragment;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 ReceiveTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 TransmitTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN UseDefaultAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS StationAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS SubnetMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 StationPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS RemoteAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 RemotePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_CONFIG_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_GET_MODE_DATA) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_CONFIGURE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_GROUPS) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN JoinFlag,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_ROUTES) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN DeleteRoute,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IPv4_ADDRESS *SubnetAddress,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IPv4_ADDRESS *SubnetMask,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IPv4_ADDRESS *GatewayAddress
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_NETWORK_UNREACHABLE EFIERR(100)
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_HOST_UNREACHABLE EFIERR(101)
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PORT_UNREACHABLE EFIERR(103)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS SourceAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 SourcePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS DestinationAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 DestinationPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_SESSION_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome VOID *FragmentBuffer;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_FRAGMENT_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_TIME TimeStamp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_EVENT RecycleSignal;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_SESSION_DATA UdpSession;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 DataLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentCount;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_RECEIVE_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_SESSION_DATA *UdpSessionData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS *GatewayAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 DataLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentCount;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_TRANSMIT_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_EVENT Event;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_STATUS Status;
199767f8919635c4928607450d9e0abb932109ceToomas Soome union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_RECEIVE_DATA *RxData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_TRANSMIT_DATA *TxData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome } Packet;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4_COMPLETION_TOKEN;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_TRANSMIT) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP4_COMPLETION_TOKEN *Token
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_RECEIVE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP4_COMPLETION_TOKEN *Token
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_CANCEL)(
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP4_POLL) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP4 *This
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _EFI_UDP4 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_GET_MODE_DATA GetModeData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_CONFIGURE Configure;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_GROUPS Groups;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_ROUTES Routes;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_TRANSMIT Transmit;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_RECEIVE Receive;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_CANCEL Cancel;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP4_POLL Poll;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP4;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptPromiscuous;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptAnyPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AllowDuplicatePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 TrafficClass;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 HopLimit;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 ReceiveTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 TransmitTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv6_ADDRESS StationAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 StationPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv6_ADDRESS RemoteAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 RemotePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_CONFIG_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_GET_MODE_DATA) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_UDP6_CONFIG_DATA *Udp6ConfigData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_CONFIGURE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP6_CONFIG_DATA *UdpConfigData OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_GROUPS) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN JoinFlag,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IPv6_ADDRESS *MulticastAddress OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv6_ADDRESS SourceAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 SourcePort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv6_ADDRESS DestinationAddress;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 DestinationPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_SESSION_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome VOID *FragmentBuffer;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_FRAGMENT_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_TIME TimeStamp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_EVENT RecycleSignal;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_SESSION_DATA UdpSession;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 DataLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentCount;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_RECEIVE_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_SESSION_DATA *UdpSessionData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 DataLength;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 FragmentCount;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_TRANSMIT_DATA;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_EVENT Event;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_STATUS Status;
199767f8919635c4928607450d9e0abb932109ceToomas Soome union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_RECEIVE_DATA *RxData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_TRANSMIT_DATA *TxData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome } Packet;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6_COMPLETION_TOKEN;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_TRANSMIT) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP6_COMPLETION_TOKEN *Token
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_RECEIVE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP6_COMPLETION_TOKEN *Token
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_CANCEL)(
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_UDP6_COMPLETION_TOKEN *Token OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_UDP6_POLL) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_UDP6 *This
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _EFI_UDP6 {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_GET_MODE_DATA GetModeData;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_CONFIGURE Configure;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_GROUPS Groups;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_TRANSMIT Transmit;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_RECEIVE Receive;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_CANCEL Cancel;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_UDP6_POLL Poll;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_UDP6;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif /* _EFI_UDP_H */