mirror of https://github.com/acidanthera/audk.git
1. Fixed one bug in Undi driver.
2. Add default branch to meet CYGWINGCC build in Tcp4Dispatcher.c. 3. Sync the latest network stack library. 4. Fixed one bug in Mtftp4Support.c, for AsciiStrCpy() return the pointer to head of string, not the tail of string. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3741 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
dc59293a36
commit
b61439a709
|
@ -29,6 +29,7 @@ Abstract:
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
|
||||||
|
|
||||||
#define NET_PROTO_HDR(Buf, Type) ((Type *) ((Buf)->BlockOp[0].Head))
|
#define NET_PROTO_HDR(Buf, Type) ((Type *) ((Buf)->BlockOp[0].Head))
|
||||||
|
@ -416,13 +417,13 @@ IpIoCreateSndEntry (
|
||||||
//
|
//
|
||||||
// Set the fields of OverrideData
|
// Set the fields of OverrideData
|
||||||
//
|
//
|
||||||
*OverrideData = * (EFI_IP4_OVERRIDE_DATA *) Override;
|
NetCopyMem (OverrideData, Override, sizeof (*OverrideData));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set the fields of TxData
|
// Set the fields of TxData
|
||||||
//
|
//
|
||||||
EFI_IP4 (TxData->DestinationAddress) = Dest;
|
NetCopyMem (&TxData->DestinationAddress, &Dest, sizeof (EFI_IPv4_ADDRESS));
|
||||||
TxData->OverrideData = OverrideData;
|
TxData->OverrideData = OverrideData;
|
||||||
TxData->OptionsLength = 0;
|
TxData->OptionsLength = 0;
|
||||||
TxData->OptionsBuffer = NULL;
|
TxData->OptionsBuffer = NULL;
|
||||||
|
@ -761,7 +762,6 @@ IpIoOpen (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_IP4_PROTOCOL *Ip;
|
EFI_IP4_PROTOCOL *Ip;
|
||||||
EFI_IPv4_ADDRESS ZeroIp;
|
|
||||||
|
|
||||||
if (IpIo->IsConfigured) {
|
if (IpIo->IsConfigured) {
|
||||||
return EFI_ACCESS_DENIED;
|
return EFI_ACCESS_DENIED;
|
||||||
|
@ -782,8 +782,7 @@ IpIoOpen (
|
||||||
// (0.0.0.0, 0.0.0.0, 0.0.0.0). Delete this statement if Ip modified
|
// (0.0.0.0, 0.0.0.0, 0.0.0.0). Delete this statement if Ip modified
|
||||||
// its code
|
// its code
|
||||||
//
|
//
|
||||||
EFI_IP4 (ZeroIp) = 0;
|
Status = Ip->Routes (Ip, TRUE, &mZeroIp4Addr, &mZeroIp4Addr, &mZeroIp4Addr);
|
||||||
Status = Ip->Routes (Ip, TRUE, &ZeroIp, &ZeroIp, &ZeroIp);
|
|
||||||
|
|
||||||
if (EFI_ERROR (Status) && (EFI_NOT_FOUND != Status)) {
|
if (EFI_ERROR (Status) && (EFI_NOT_FOUND != Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
|
@ -1147,8 +1146,8 @@ IpIoConfigIp (
|
||||||
Ip4ConfigData->SubnetMask = Ip4ModeData.ConfigData.SubnetMask;
|
Ip4ConfigData->SubnetMask = Ip4ModeData.ConfigData.SubnetMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
IpInfo->Addr = EFI_IP4 (Ip4ConfigData->StationAddress);
|
NetCopyMem (&IpInfo->Addr, &Ip4ConfigData->StationAddress, sizeof (IP4_ADDR));
|
||||||
IpInfo->SubnetMask = EFI_IP4 (Ip4ConfigData->SubnetMask);
|
NetCopyMem (&IpInfo->SubnetMask, &Ip4ConfigData->SubnetMask, sizeof (IP4_ADDR));
|
||||||
|
|
||||||
Status = Ip->Receive (Ip, &IpInfo->DummyRcvToken);
|
Status = Ip->Receive (Ip, &IpInfo->DummyRcvToken);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
DebugLib
|
DebugLib
|
||||||
UefiBootServicesTableLib
|
UefiBootServicesTableLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
|
BaseMemoryLib
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
|
|
@ -30,6 +30,7 @@ Abstract:
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <library/BaseMemoryLib.h>
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
VOID
|
VOID
|
||||||
|
@ -77,6 +78,7 @@ UdpIoWrapTx (
|
||||||
EFI_UDP4_TRANSMIT_DATA *UdpTxData;
|
EFI_UDP4_TRANSMIT_DATA *UdpTxData;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT32 Count;
|
UINT32 Count;
|
||||||
|
IP4_ADDR Ip;
|
||||||
|
|
||||||
Token = NetAllocatePool (sizeof (UDP_TX_TOKEN) +
|
Token = NetAllocatePool (sizeof (UDP_TX_TOKEN) +
|
||||||
sizeof (EFI_UDP4_FRAGMENT_DATA) * (Packet->BlockOpNum - 1));
|
sizeof (EFI_UDP4_FRAGMENT_DATA) * (Packet->BlockOpNum - 1));
|
||||||
|
@ -116,15 +118,21 @@ UdpIoWrapTx (
|
||||||
UdpTxData->GatewayAddress = NULL;
|
UdpTxData->GatewayAddress = NULL;
|
||||||
|
|
||||||
if (EndPoint != NULL) {
|
if (EndPoint != NULL) {
|
||||||
EFI_IP4 (Token->UdpSession.SourceAddress) = HTONL (EndPoint->LocalAddr);
|
Ip = HTONL (EndPoint->LocalAddr);
|
||||||
EFI_IP4 (Token->UdpSession.DestinationAddress) = HTONL (EndPoint->RemoteAddr);
|
NetCopyMem (&Token->UdpSession.SourceAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||||
|
|
||||||
|
Ip = HTONL (EndPoint->RemoteAddr);
|
||||||
|
NetCopyMem (&Token->UdpSession.DestinationAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||||
|
|
||||||
Token->UdpSession.SourcePort = EndPoint->LocalPort;
|
Token->UdpSession.SourcePort = EndPoint->LocalPort;
|
||||||
Token->UdpSession.DestinationPort = EndPoint->RemotePort;
|
Token->UdpSession.DestinationPort = EndPoint->RemotePort;
|
||||||
UdpTxData->UdpSessionData = &Token->UdpSession;
|
UdpTxData->UdpSessionData = &Token->UdpSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Gateway != 0) {
|
if (Gateway != 0) {
|
||||||
EFI_IP4 (Token->Gateway) = HTONL (Gateway);
|
Ip = HTONL (Gateway);
|
||||||
|
NetCopyMem (&Token->Gateway, &Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||||
|
|
||||||
UdpTxData->GatewayAddress = &Token->Gateway;
|
UdpTxData->GatewayAddress = &Token->Gateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -670,11 +678,14 @@ UdpIoOnDgramRcvd (
|
||||||
}
|
}
|
||||||
|
|
||||||
UdpSession = &UdpRxData->UdpSession;
|
UdpSession = &UdpRxData->UdpSession;
|
||||||
Points.LocalAddr = EFI_NTOHL (UdpSession->DestinationAddress);
|
|
||||||
Points.LocalPort = UdpSession->DestinationPort;
|
Points.LocalPort = UdpSession->DestinationPort;
|
||||||
Points.RemoteAddr = EFI_NTOHL (UdpSession->SourceAddress);
|
|
||||||
Points.RemotePort = UdpSession->SourcePort;
|
Points.RemotePort = UdpSession->SourcePort;
|
||||||
|
|
||||||
|
NetCopyMem (&Points.LocalAddr, &UdpSession->DestinationAddress, sizeof (IP4_ADDR));
|
||||||
|
NetCopyMem (&Points.RemoteAddr, &UdpSession->SourceAddress, sizeof (IP4_ADDR));
|
||||||
|
Points.LocalAddr = NTOHL (Points.LocalAddr);
|
||||||
|
Points.RemoteAddr = NTOHL (Points.RemoteAddr);
|
||||||
|
|
||||||
Token->CallBack (Netbuf, &Points, EFI_SUCCESS, Token->Context);
|
Token->CallBack (Netbuf, &Points, EFI_SUCCESS, Token->Context);
|
||||||
|
|
||||||
ON_EXIT:
|
ON_EXIT:
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
DebugLib
|
DebugLib
|
||||||
UefiBootServicesTableLib
|
UefiBootServicesTableLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
|
BaseMemoryLib
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiUdp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiUdp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
|
|
@ -305,11 +305,16 @@ Mtftp4SendRequest (
|
||||||
Packet->OpCode = HTONS (Instance->Operation);
|
Packet->OpCode = HTONS (Instance->Operation);
|
||||||
Cur = Packet->Rrq.Filename;
|
Cur = Packet->Rrq.Filename;
|
||||||
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Token->Filename);
|
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Token->Filename);
|
||||||
|
Cur += AsciiStrLen ((CHAR8 *) Token->Filename);
|
||||||
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Mode);
|
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Mode);
|
||||||
|
Cur += AsciiStrLen ((CHAR8 *) Mode);
|
||||||
|
|
||||||
for (Index = 0; Index < Token->OptionCount; ++Index) {
|
for (Index = 0; Index < Token->OptionCount; ++Index) {
|
||||||
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].OptionStr);
|
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].OptionStr);
|
||||||
|
Cur += AsciiStrLen ((CHAR8 *) Options[Index].OptionStr);
|
||||||
|
|
||||||
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].ValueStr);
|
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].ValueStr);
|
||||||
|
Cur += AsciiStrLen ((CHAR8 *) (CHAR8 *) Options[Index].ValueStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Mtftp4SendPacket (Instance, Nbuf);
|
return Mtftp4SendPacket (Instance, Nbuf);
|
||||||
|
|
|
@ -707,6 +707,8 @@ Tcp4Dispatcher (
|
||||||
|
|
||||||
return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);
|
return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
|
|
Loading…
Reference in New Issue