/** @file\r
Interface routine for Mtftp4.\r
\r
-Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
+Copyright (c) 2006 - 2010, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
}\r
\r
ASSERT (Instance->UnicastPort != NULL);\r
- UdpIoCleanPort (Instance->UnicastPort);\r
+ UdpIoCleanIo (Instance->UnicastPort);\r
\r
if (Instance->LastPacket != NULL) {\r
NetbufFree (Instance->LastPacket);\r
}\r
\r
if (Instance->McastUdpPort != NULL) {\r
- UdpIoFreePort (Instance->McastUdpPort);\r
+ UdpIoFreeIo (Instance->McastUdpPort);\r
Instance->McastUdpPort = NULL;\r
}\r
\r
NET_LIST_FOR_EACH_SAFE (Entry, Next, &Instance->Blocks) {\r
Block = NET_LIST_USER_STRUCT (Entry, MTFTP4_BLOCK_RANGE, Link);\r
RemoveEntryList (Entry);\r
- gBS->FreePool (Block);\r
+ FreePool (Block);\r
}\r
\r
ZeroMem (&Instance->RequestOption, sizeof (MTFTP4_OPTION));\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
Mtftp4GetInfoCheckPacket (\r
IN EFI_MTFTP4_PROTOCOL *This,\r
IN EFI_MTFTP4_TOKEN *Token,\r
IN EFI_MTFTP4_PACKET *Packet\r
)\r
{\r
- MTFTP4_PROTOCOL *Instance;\r
MTFTP4_GETINFO_STATE *State;\r
EFI_STATUS Status;\r
UINT16 OpCode;\r
\r
- Instance = MTFTP4_PROTOCOL_FROM_THIS (This);\r
- State = &Instance->GetInfoState;\r
+ State = (MTFTP4_GETINFO_STATE *) Token->Context;\r
OpCode = NTOHS (Packet->OpCode);\r
\r
//\r
IP4_ADDR Gateway;\r
\r
CopyMem (&Ip, &Override->ServerIp, sizeof (IP4_ADDR));\r
- if (!Ip4IsUnicast (NTOHL (Ip), 0)) {\r
+ if (!NetIp4IsUnicast (NTOHL (Ip), 0)) {\r
return FALSE;\r
}\r
\r
Netmask = NTOHL (Netmask);\r
Ip = NTOHL (Ip);\r
\r
- if (!Ip4IsUnicast (Gateway, Netmask) || !IP4_NET_EQUAL (Gateway, Ip, Netmask)) {\r
+ if (!NetIp4IsUnicast (Gateway, Netmask) || !IP4_NET_EQUAL (Gateway, Ip, Netmask)) {\r
return FALSE;\r
}\r
}\r
the UDP is reconfigured.\r
\r
@param Instance The Mtftp instance\r
- @param UdpPort The UDP port to poll\r
- @param UdpCfgData The UDP configure data to reconfigure the UDP\r
- port.\r
+ @param UdpIo The UDP_IO to poll\r
+ @param UdpCfgData The UDP configure data to reconfigure the UDP_IO\r
\r
@retval TRUE The default address is retrieved and UDP is reconfigured.\r
@retval FALSE Some error occured.\r
BOOLEAN\r
Mtftp4GetMapping (\r
IN MTFTP4_PROTOCOL *Instance,\r
- IN UDP_IO_PORT *UdpPort,\r
+ IN UDP_IO *UdpIo,\r
IN EFI_UDP4_CONFIG_DATA *UdpCfgData\r
)\r
{\r
ASSERT (Instance->Config.UseDefaultSetting);\r
\r
Service = Instance->Service;\r
- Udp = UdpPort->Udp;\r
+ Udp = UdpIo->Protocol.Udp4;\r
\r
Status = gBS->SetTimer (\r
Service->TimerToGetMap,\r
/**\r
Configure the UDP port for unicast receiving.\r
\r
- @param UdpIo The UDP port\r
+ @param UdpIo The UDP_IO instance\r
@param Instance The MTFTP session\r
\r
@retval EFI_SUCCESS The UDP port is successfully configured for the\r
**/\r
EFI_STATUS\r
Mtftp4ConfigUnicastPort (\r
- IN UDP_IO_PORT *UdpIo,\r
+ IN UDP_IO *UdpIo,\r
IN MTFTP4_PROTOCOL *Instance\r
)\r
{\r
Ip = HTONL (Instance->ServerIp);\r
CopyMem (&UdpConfig.RemoteAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
\r
- Status = UdpIo->Udp->Configure (UdpIo->Udp, &UdpConfig);\r
+ Status = UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfig);\r
\r
if ((Status == EFI_NO_MAPPING) && Mtftp4GetMapping (Instance, UdpIo, &UdpConfig)) {\r
return EFI_SUCCESS;\r
// The station IP address is manually configured and the Gateway IP is not 0.\r
// Add the default route for this UDP instance.\r
//\r
- Status = UdpIo->Udp->Routes (UdpIo->Udp, FALSE, &mZeroIp4Addr, &mZeroIp4Addr, &Config->GatewayIp);\r
+ Status = UdpIo->Protocol.Udp4->Routes (\r
+ UdpIo->Protocol.Udp4,\r
+ FALSE,\r
+ &mZeroIp4Addr,\r
+ &mZeroIp4Addr,\r
+ &Config->GatewayIp\r
+ );\r
if (EFI_ERROR (Status)) {\r
- UdpIo->Udp->Configure (UdpIo->Udp, NULL);\r
+ UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, NULL);\r
}\r
}\r
return Status;\r
Gateway = NTOHL (Gateway);\r
ServerIp = NTOHL (ServerIp);\r
\r
- if (!Ip4IsUnicast (ServerIp, 0)) {\r
+ if (!NetIp4IsUnicast (ServerIp, 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if (!ConfigData->UseDefaultSetting &&\r
- ((!IP4_IS_VALID_NETMASK (Netmask) || !Ip4IsUnicast (Ip, Netmask)))) {\r
+ ((!IP4_IS_VALID_NETMASK (Netmask) || !NetIp4IsUnicast (Ip, Netmask)))) {\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if ((Gateway != 0) &&\r
- (!IP4_NET_EQUAL (Gateway, Ip, Netmask) || !Ip4IsUnicast (Gateway, Netmask))) {\r
+ (!IP4_NET_EQUAL (Gateway, Ip, Netmask) || !NetIp4IsUnicast (Gateway, Netmask))) {\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
@retval EFI_TIMEOUT No responses were received from the MTFTPv4 server.\r
@retval EFI_TFTP_ERROR An MTFTPv4 ERROR packet was received.\r
@retval EFI_DEVICE_ERROR An unexpected network error or system error occurred.\r
+ @retval EFI_NO_MEDIA There was a media error.\r
\r
**/\r
EFI_STATUS\r
in the Buffer.\r
@retval EFI_TIMEOUT No responses were received from the MTFTPv4 server.\r
@retval EFI_DEVICE_ERROR An unexpected network error or system error occurred.\r
- \r
+ @retval EFI_NO_MEDIA There was a media error.\r
+\r
**/\r
EFI_STATUS\r
EFIAPI\r
)\r
{\r
EFI_MTFTP4_TOKEN Token;\r
- MTFTP4_PROTOCOL *Instance;\r
- MTFTP4_GETINFO_STATE *State;\r
+ MTFTP4_GETINFO_STATE State;\r
EFI_STATUS Status;\r
\r
if ((This == NULL) || (Filename == NULL) || (PacketLength == NULL) ||\r
}\r
\r
*PacketLength = 0;\r
- Instance = MTFTP4_PROTOCOL_FROM_THIS (This);\r
- State = &Instance->GetInfoState;\r
- State->Packet = Packet;\r
- State->PacketLen = PacketLength;\r
- State->Status = EFI_SUCCESS;\r
+ State.Packet = Packet;\r
+ State.PacketLen = PacketLength;\r
+ State.Status = EFI_SUCCESS;\r
\r
//\r
// Fill in the Token to issue an synchronous ReadFile operation\r
Token.OptionList = OptionList;\r
Token.BufferSize = 0;\r
Token.Buffer = NULL;\r
+ Token.Context = &State;\r
Token.CheckPacket = Mtftp4GetInfoCheckPacket;\r
Token.TimeoutCallback = NULL;\r
Token.PacketNeeded = NULL;\r
Status = EfiMtftp4ReadFile (This, &Token);\r
\r
if (EFI_ABORTED == Status) {\r
- return State->Status;\r
+ return State.Status;\r
}\r
\r
return Status;\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- Udp = Instance->UnicastPort->Udp;\r
+ Udp = Instance->UnicastPort->Protocol.Udp4;\r
return Udp->Poll (Udp);\r
}\r
\r