diff options
Diffstat (limited to 'MdeModulePkg/Library')
-rw-r--r-- | MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c | 13 | ||||
-rw-r--r-- | MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf | 1 | ||||
-rw-r--r-- | MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c | 27 | ||||
-rw-r--r-- | MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf | 1 |
4 files changed, 27 insertions, 15 deletions
diff --git a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c index 98df75d..cc86971 100644 --- a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c +++ b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c @@ -29,6 +29,7 @@ Abstract: #include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
+#include <Library/BaseMemoryLib.h>
#define NET_PROTO_HDR(Buf, Type) ((Type *) ((Buf)->BlockOp[0].Head))
@@ -416,13 +417,13 @@ IpIoCreateSndEntry ( //
// Set the fields of OverrideData
//
- *OverrideData = * (EFI_IP4_OVERRIDE_DATA *) Override;
+ NetCopyMem (OverrideData, Override, sizeof (*OverrideData));
}
//
// Set the fields of TxData
//
- EFI_IP4 (TxData->DestinationAddress) = Dest;
+ NetCopyMem (&TxData->DestinationAddress, &Dest, sizeof (EFI_IPv4_ADDRESS));
TxData->OverrideData = OverrideData;
TxData->OptionsLength = 0;
TxData->OptionsBuffer = NULL;
@@ -761,7 +762,6 @@ IpIoOpen ( {
EFI_STATUS Status;
EFI_IP4_PROTOCOL *Ip;
- EFI_IPv4_ADDRESS ZeroIp;
if (IpIo->IsConfigured) {
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
// its code
//
- EFI_IP4 (ZeroIp) = 0;
- Status = Ip->Routes (Ip, TRUE, &ZeroIp, &ZeroIp, &ZeroIp);
+ Status = Ip->Routes (Ip, TRUE, &mZeroIp4Addr, &mZeroIp4Addr, &mZeroIp4Addr);
if (EFI_ERROR (Status) && (EFI_NOT_FOUND != Status)) {
return Status;
@@ -1147,8 +1146,8 @@ IpIoConfigIp ( Ip4ConfigData->SubnetMask = Ip4ModeData.ConfigData.SubnetMask;
}
- IpInfo->Addr = EFI_IP4 (Ip4ConfigData->StationAddress);
- IpInfo->SubnetMask = EFI_IP4 (Ip4ConfigData->SubnetMask);
+ NetCopyMem (&IpInfo->Addr, &Ip4ConfigData->StationAddress, sizeof (IP4_ADDR));
+ NetCopyMem (&IpInfo->SubnetMask, &Ip4ConfigData->SubnetMask, sizeof (IP4_ADDR));
Status = Ip->Receive (Ip, &IpInfo->DummyRcvToken);
if (EFI_ERROR (Status)) {
diff --git a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf index c797952..c844a84 100644 --- a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf +++ b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf @@ -46,6 +46,7 @@ DebugLib
UefiBootServicesTableLib
MemoryAllocationLib
+ BaseMemoryLib
[Protocols]
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
diff --git a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c index b66348c..d56456a 100644 --- a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c +++ b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c @@ -30,6 +30,7 @@ Abstract: #include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
+#include <library/BaseMemoryLib.h>
STATIC
VOID
@@ -77,6 +78,7 @@ UdpIoWrapTx ( EFI_UDP4_TRANSMIT_DATA *UdpTxData;
EFI_STATUS Status;
UINT32 Count;
+ IP4_ADDR Ip;
Token = NetAllocatePool (sizeof (UDP_TX_TOKEN) +
sizeof (EFI_UDP4_FRAGMENT_DATA) * (Packet->BlockOpNum - 1));
@@ -116,15 +118,21 @@ UdpIoWrapTx ( UdpTxData->GatewayAddress = NULL;
if (EndPoint != NULL) {
- EFI_IP4 (Token->UdpSession.SourceAddress) = HTONL (EndPoint->LocalAddr);
- EFI_IP4 (Token->UdpSession.DestinationAddress) = HTONL (EndPoint->RemoteAddr);
- Token->UdpSession.SourcePort = EndPoint->LocalPort;
- Token->UdpSession.DestinationPort = EndPoint->RemotePort;
- UdpTxData->UdpSessionData = &Token->UdpSession;
+ Ip = HTONL (EndPoint->LocalAddr);
+ 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.DestinationPort = EndPoint->RemotePort;
+ UdpTxData->UdpSessionData = &Token->UdpSession;
}
if (Gateway != 0) {
- EFI_IP4 (Token->Gateway) = HTONL (Gateway);
+ Ip = HTONL (Gateway);
+ NetCopyMem (&Token->Gateway, &Ip, sizeof (EFI_IPv4_ADDRESS));
+
UdpTxData->GatewayAddress = &Token->Gateway;
}
@@ -670,11 +678,14 @@ UdpIoOnDgramRcvd ( }
UdpSession = &UdpRxData->UdpSession;
- Points.LocalAddr = EFI_NTOHL (UdpSession->DestinationAddress);
Points.LocalPort = UdpSession->DestinationPort;
- Points.RemoteAddr = EFI_NTOHL (UdpSession->SourceAddress);
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);
ON_EXIT:
diff --git a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf index 32ccb96..7a20e80 100644 --- a/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf +++ b/MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf @@ -46,6 +46,7 @@ DebugLib
UefiBootServicesTableLib
MemoryAllocationLib
+ BaseMemoryLib
[Protocols]
gEfiUdp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|