176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _EFI_UDP_H 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _EFI_UDP_H 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*++ 676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanCopyright (c) 2013 Intel Corporation 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman--*/ 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_UDP4_SERVICE_BINDING_PROTOCOL \ 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} } 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_UDP4_PROTOCOL \ 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} } 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_UDP6_SERVICE_BINDING_PROTOCOL \ 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0x66ed4721, 0x3c98, 0x4d3e, {0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54} } 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_UDP6_PROTOCOL \ 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 0x4f948815, 0xb4b9, 0x43cb, {0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3,0x49, 0x55} } 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanINTERFACE_DECL(_EFI_UDP4); 2376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanINTERFACE_DECL(_EFI_UDP6); 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AcceptBroadcast; 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AcceptPromiscuous; 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AcceptAnyPort; 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AllowDuplicatePort; 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 TypeOfService; 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 TimeToLive; 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN DoNotFragment; 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 ReceiveTimeout; 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 TransmitTimeout; 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN UseDefaultAddress; 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS StationAddress; 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS SubnetMask; 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 StationPort; 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS RemoteAddress; 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 RemotePort; 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_CONFIG_DATA; 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 4476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_GET_MODE_DATA) ( 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL, 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL, 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 5476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_CONFIGURE) ( 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 6176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_GROUPS) ( 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN BOOLEAN JoinFlag, 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 6976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_ROUTES) ( 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN BOOLEAN DeleteRoute, 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_IPv4_ADDRESS *SubnetAddress, 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_IPv4_ADDRESS *SubnetMask, 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_IPv4_ADDRESS *GatewayAddress 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_NETWORK_UNREACHABLE EFIERR(100) 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_HOST_UNREACHABLE EFIERR(101) 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_PROTOCOL_UNREACHABLE EFIERR(102) 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_PORT_UNREACHABLE EFIERR(103) 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS SourceAddress; 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 SourcePort; 8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS DestinationAddress; 8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 DestinationPort; 8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_SESSION_DATA; 8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentLength; 9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman VOID *FragmentBuffer; 9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_FRAGMENT_DATA; 9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 9676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_TIME TimeStamp; 9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_EVENT RecycleSignal; 9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_SESSION_DATA UdpSession; 9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 DataLength; 10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentCount; 10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_FRAGMENT_DATA FragmentTable[1]; 10276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_RECEIVE_DATA; 10376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_SESSION_DATA *UdpSessionData; 10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv4_ADDRESS *GatewayAddress; 10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 DataLength; 10876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentCount; 10976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_FRAGMENT_DATA FragmentTable[1]; 11076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_TRANSMIT_DATA; 11176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 11276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 11376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_EVENT Event; 11476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_STATUS Status; 11576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman union { 11676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_RECEIVE_DATA *RxData; 11776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_TRANSMIT_DATA *TxData; 11876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } Packet; 11976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4_COMPLETION_TOKEN; 12076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 12176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 12276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 12376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_TRANSMIT) ( 12476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 12576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP4_COMPLETION_TOKEN *Token 12676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 12776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 12876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 12976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 13076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_RECEIVE) ( 13176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 13276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP4_COMPLETION_TOKEN *Token 13376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 13476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 13576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 13676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 13776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_CANCEL)( 13876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This, 13976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL 14076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 14176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 14376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 14476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP4_POLL) ( 14576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP4 *This 14676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 14776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 14876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct _EFI_UDP4 { 14976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_GET_MODE_DATA GetModeData; 15076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_CONFIGURE Configure; 15176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_GROUPS Groups; 15276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_ROUTES Routes; 15376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_TRANSMIT Transmit; 15476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_RECEIVE Receive; 15576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_CANCEL Cancel; 15676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP4_POLL Poll; 15776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP4; 15876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 15976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 16076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AcceptPromiscuous; 16176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AcceptAnyPort; 16276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman BOOLEAN AllowDuplicatePort; 16376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 TrafficClass; 16476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT8 HopLimit; 16576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 ReceiveTimeout; 16676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 TransmitTimeout; 16776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv6_ADDRESS StationAddress; 16876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 StationPort; 16976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv6_ADDRESS RemoteAddress; 17076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 RemotePort; 17176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_CONFIG_DATA; 17276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 17376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 17476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 17576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_GET_MODE_DATA) ( 17676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 17776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_UDP6_CONFIG_DATA *Udp6ConfigData OPTIONAL, 17876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, 17976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, 18076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL 18176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 18276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 18376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 18476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 18576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_CONFIGURE) ( 18676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 18776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP6_CONFIG_DATA *UdpConfigData OPTIONAL 18876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 18976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 19176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 19276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_GROUPS) ( 19376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 19476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN BOOLEAN JoinFlag, 19576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_IPv6_ADDRESS *MulticastAddress OPTIONAL 19676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 19776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 19976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv6_ADDRESS SourceAddress; 20076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 SourcePort; 20176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_IPv6_ADDRESS DestinationAddress; 20276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT16 DestinationPort; 20376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_SESSION_DATA; 20476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 20676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentLength; 20776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman VOID *FragmentBuffer; 20876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_FRAGMENT_DATA; 20976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 21076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 21176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_TIME TimeStamp; 21276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_EVENT RecycleSignal; 21376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_SESSION_DATA UdpSession; 21476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 DataLength; 21576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentCount; 21676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_FRAGMENT_DATA FragmentTable[1]; 21776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_RECEIVE_DATA; 21876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 21976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 22076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_SESSION_DATA *UdpSessionData; 22176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 DataLength; 22276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman UINT32 FragmentCount; 22376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_FRAGMENT_DATA FragmentTable[1]; 22476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_TRANSMIT_DATA; 22576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 22676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct { 22776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_EVENT Event; 22876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_STATUS Status; 22976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman union { 23076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_RECEIVE_DATA *RxData; 23176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_TRANSMIT_DATA *TxData; 23276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } Packet; 23376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6_COMPLETION_TOKEN; 23476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 23576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 23676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 23776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_TRANSMIT) ( 23876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 23976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP6_COMPLETION_TOKEN *Token 24076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 24176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 24276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 24376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 24476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_RECEIVE) ( 24576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 24676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP6_COMPLETION_TOKEN *Token 24776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 24876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 24976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 25076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 25176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_CANCEL)( 25276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This, 25376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN EFI_UDP6_COMPLETION_TOKEN *Token OPTIONAL 25476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 25576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 25676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef 25776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS 25876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman(EFIAPI *EFI_UDP6_POLL) ( 25976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN struct _EFI_UDP6 *This 26076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 26176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 26276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct _EFI_UDP6 { 26376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_GET_MODE_DATA GetModeData; 26476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_CONFIGURE Configure; 26576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_GROUPS Groups; 26676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_TRANSMIT Transmit; 26776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_RECEIVE Receive; 26876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_CANCEL Cancel; 26976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman EFI_UDP6_POLL Poll; 27076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} EFI_UDP6; 27176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 27276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* _EFI_UDP_H */ 273