MdeModulePkg: Source fixes and cleanup for ARMGCC compiles

- Fix EFI_IPv4_ADDRESS usages to use a macro to copy the structure
  instead of direct assignment, to avoid runtime alignment errors.
- Fix a EFI_INPUT_KEY usage in TerminalDxe to use CopyMem()  to copy the
   structure instead of direct assignment, to avoid runtime alignment error.
- Delete excess local variables that are initialized but otherwise unused.
- CompilerIntrinsicsLib library now imported for AARCH64, as well as ARM.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Randy Pawell <randy_pawell@hp.com>
Reviewed-by: Olivier Martin <Olivier.Martin@arm.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16471 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Randy Pawell 2014-12-04 00:32:24 +00:00 committed by erictian
parent 40a0f8cb78
commit 35f910f08b
10 changed files with 33 additions and 30 deletions

View File

@ -2,6 +2,7 @@
NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows
NVM Express specification. NVM Express specification.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR> Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -852,7 +853,6 @@ NvmExpressBuildDevicePath (
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
) )
{ {
NVME_CONTROLLER_PRIVATE_DATA *Private;
NVME_NAMESPACE_DEVICE_PATH *Node; NVME_NAMESPACE_DEVICE_PATH *Node;
// //
@ -862,8 +862,6 @@ NvmExpressBuildDevicePath (
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
} }
Private = NVME_CONTROLLER_PRIVATE_DATA_FROM_PASS_THRU (This);
if (NamespaceId == 0) { if (NamespaceId == 0) {
return EFI_NOT_FOUND; return EFI_NOT_FOUND;
} }

View File

@ -1,6 +1,7 @@
/** @file /** @file
16550 UART Serial Port library functions 16550 UART Serial Port library functions
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -184,7 +185,6 @@ GetSerialRegisterBase (
) )
{ {
UINTN PciLibAddress; UINTN PciLibAddress;
UINTN PrimaryBusNumber;
UINTN BusNumber; UINTN BusNumber;
UINTN SubordinateBusNumber; UINTN SubordinateBusNumber;
UINT32 ParentIoBase; UINT32 ParentIoBase;
@ -233,7 +233,6 @@ GetSerialRegisterBase (
// //
// Retrieve and verify the bus numbers in the PCI to PCI Bridge // Retrieve and verify the bus numbers in the PCI to PCI Bridge
// //
PrimaryBusNumber = PciRead8 (PciLibAddress + PCI_BRIDGE_PRIMARY_BUS_REGISTER_OFFSET);
BusNumber = PciRead8 (PciLibAddress + PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET); BusNumber = PciRead8 (PciLibAddress + PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET);
SubordinateBusNumber = PciRead8 (PciLibAddress + PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET); SubordinateBusNumber = PciRead8 (PciLibAddress + PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET);
if (BusNumber == 0 || BusNumber > SubordinateBusNumber) { if (BusNumber == 0 || BusNumber > SubordinateBusNumber) {

View File

@ -1,6 +1,7 @@
/** @file /** @file
IpIo Library. IpIo Library.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR> Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -703,7 +704,7 @@ IpIoCreateSndEntry (
Ip4TxData = &TxData->Ip4TxData; Ip4TxData = &TxData->Ip4TxData;
CopyMem (&Ip4TxData->DestinationAddress, Dest, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&Ip4TxData->DestinationAddress, Dest);
Ip4TxData->OverrideData = &OverrideData->Ip4OverrideData; Ip4TxData->OverrideData = &OverrideData->Ip4OverrideData;
Ip4TxData->OptionsLength = 0; Ip4TxData->OptionsLength = 0;
@ -1765,8 +1766,8 @@ IpIoConfigIp (
NULL NULL
); );
((EFI_IP4_CONFIG_DATA*) IpConfigData)->StationAddress = Ip4ModeData.ConfigData.StationAddress; IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA*) IpConfigData)->StationAddress, &Ip4ModeData.ConfigData.StationAddress);
((EFI_IP4_CONFIG_DATA*) IpConfigData)->SubnetMask = Ip4ModeData.ConfigData.SubnetMask; IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA*) IpConfigData)->SubnetMask, &Ip4ModeData.ConfigData.SubnetMask);
} }
CopyMem ( CopyMem (

View File

@ -1,6 +1,7 @@
## @file ## @file
# EFI/PI Reference Module Package for All Architectures # EFI/PI Reference Module Package for All Architectures
# #
# (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
# #
# This program and the accompanying materials # This program and the accompanying materials
@ -145,10 +146,10 @@
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf
[LibraryClasses.ARM] [LibraryClasses.ARM, LibraryClasses.AARCH64]
# #
# It is not possible to prevent the ARM compiler for generic intrinsic functions. # It is not possible to prevent ARM compiler calls to generic intrinsic functions.
# This library provides the instrinsic functions generate by a given compiler. # This library provides the instrinsic functions generated by a given compiler.
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images. # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
# #
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf

View File

@ -9,6 +9,7 @@
CapsuleDataCoalesce() will do basic validation before coalesce capsule data CapsuleDataCoalesce() will do basic validation before coalesce capsule data
into memory. into memory.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -960,7 +961,6 @@ CapsuleDataCoalesce (
UINT8 *DestPtr; UINT8 *DestPtr;
UINTN DestLength; UINTN DestLength;
UINT8 *RelocPtr; UINT8 *RelocPtr;
UINT64 *AddDataPtr;
UINTN CapsuleTimes; UINTN CapsuleTimes;
UINT64 SizeLeft; UINT64 SizeLeft;
UINT64 CapsuleImageSize; UINT64 CapsuleImageSize;
@ -986,7 +986,6 @@ CapsuleDataCoalesce (
CapsuleTimes = 0; CapsuleTimes = 0;
CapsuleImageSize = 0; CapsuleImageSize = 0;
PrivateDataPtr = NULL; PrivateDataPtr = NULL;
AddDataPtr = NULL;
CapsuleHeader = NULL; CapsuleHeader = NULL;
CapsuleBeginFlag = TRUE; CapsuleBeginFlag = TRUE;
CapsuleSize = 0; CapsuleSize = 0;

View File

@ -1,6 +1,7 @@
/** @file /** @file
Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol. Implementation for EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -847,7 +848,7 @@ EfiKeyFiFoRemoveOneKey (
return FALSE; return FALSE;
} }
*Output = TerminalDevice->EfiKeyFiFo->Data[Head]; CopyMem (Output, &TerminalDevice->EfiKeyFiFo->Data[Head], sizeof (EFI_INPUT_KEY));
TerminalDevice->EfiKeyFiFo->Head = (UINT8) ((Head + 1) % (FIFO_MAX_NUMBER + 1)); TerminalDevice->EfiKeyFiFo->Head = (UINT8) ((Head + 1) % (FIFO_MAX_NUMBER + 1));

View File

@ -1,6 +1,7 @@
/** @file /** @file
Interface routine for Mtftp4. Interface routine for Mtftp4.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -305,13 +306,13 @@ Mtftp4ConfigUnicastPort (
UdpConfig.ReceiveTimeout = 0; UdpConfig.ReceiveTimeout = 0;
UdpConfig.TransmitTimeout = 0; UdpConfig.TransmitTimeout = 0;
UdpConfig.UseDefaultAddress = Config->UseDefaultSetting; UdpConfig.UseDefaultAddress = Config->UseDefaultSetting;
UdpConfig.StationAddress = Config->StationIp; IP4_COPY_ADDRESS (&UdpConfig.StationAddress, &Config->StationIp);
UdpConfig.SubnetMask = Config->SubnetMask; IP4_COPY_ADDRESS (&UdpConfig.SubnetMask, &Config->SubnetMask);
UdpConfig.StationPort = 0; UdpConfig.StationPort = 0;
UdpConfig.RemotePort = 0; UdpConfig.RemotePort = 0;
Ip = HTONL (Instance->ServerIp); Ip = HTONL (Instance->ServerIp);
CopyMem (&UdpConfig.RemoteAddress, &Ip, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&UdpConfig.RemoteAddress, &Ip);
Status = UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfig); Status = UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfig);

View File

@ -1,6 +1,7 @@
/** @file /** @file
Routines to process Rrq (download). Routines to process Rrq (download).
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -413,13 +414,13 @@ Mtftp4RrqConfigMcastPort (
UdpConfig.ReceiveTimeout = 0; UdpConfig.ReceiveTimeout = 0;
UdpConfig.TransmitTimeout = 0; UdpConfig.TransmitTimeout = 0;
UdpConfig.UseDefaultAddress = Config->UseDefaultSetting; UdpConfig.UseDefaultAddress = Config->UseDefaultSetting;
UdpConfig.StationAddress = Config->StationIp; IP4_COPY_ADDRESS (&UdpConfig.StationAddress, &Config->StationIp);
UdpConfig.SubnetMask = Config->SubnetMask; IP4_COPY_ADDRESS (&UdpConfig.SubnetMask, &Config->SubnetMask);
UdpConfig.StationPort = Instance->McastPort; UdpConfig.StationPort = Instance->McastPort;
UdpConfig.RemotePort = 0; UdpConfig.RemotePort = 0;
Ip = HTONL (Instance->ServerIp); Ip = HTONL (Instance->ServerIp);
CopyMem (&UdpConfig.RemoteAddress, &Ip, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&UdpConfig.RemoteAddress, &Ip);
Status = McastIo->Protocol.Udp4->Configure (McastIo->Protocol.Udp4, &UdpConfig); Status = McastIo->Protocol.Udp4->Configure (McastIo->Protocol.Udp4, &UdpConfig);
@ -451,7 +452,7 @@ Mtftp4RrqConfigMcastPort (
// join the multicast group // join the multicast group
// //
Ip = HTONL (Instance->McastIp); Ip = HTONL (Instance->McastIp);
CopyMem (&Group, &Ip, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&Group, &Ip);
return McastIo->Protocol.Udp4->Groups (McastIo->Protocol.Udp4, TRUE, &Group); return McastIo->Protocol.Udp4->Groups (McastIo->Protocol.Udp4, TRUE, &Group);
} }

View File

@ -1,6 +1,7 @@
/** @file /** @file
Tcp request dispatcher implementation. Tcp request dispatcher implementation.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -101,11 +102,11 @@ Tcp4GetMode (
AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr; AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;
CopyMem (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip);
AccessPoint->SubnetMask = Tcb->SubnetMask; IP4_COPY_ADDRESS (&AccessPoint->SubnetMask, &Tcb->SubnetMask);
AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port); AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
CopyMem (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip);
AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port); AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN); AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);
@ -458,7 +459,7 @@ Tcp4ConfigurePcb (
CopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR)); CopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
Tcb->LocalEnd.Port = HTONS (CfgData->AccessPoint.StationPort); Tcb->LocalEnd.Port = HTONS (CfgData->AccessPoint.StationPort);
Tcb->SubnetMask = CfgData->AccessPoint.SubnetMask; IP4_COPY_ADDRESS (&Tcb->SubnetMask, &CfgData->AccessPoint.SubnetMask);
if (CfgData->AccessPoint.ActiveFlag) { if (CfgData->AccessPoint.ActiveFlag) {
CopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR)); CopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));

View File

@ -1,5 +1,6 @@
/** @file /** @file
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -227,8 +228,8 @@ Udp4Configure (
// Save the configuration data. // Save the configuration data.
// //
CopyMem (&Instance->ConfigData, UdpConfigData, sizeof (Instance->ConfigData)); CopyMem (&Instance->ConfigData, UdpConfigData, sizeof (Instance->ConfigData));
Instance->ConfigData.StationAddress = Ip4ConfigData.StationAddress; IP4_COPY_ADDRESS (&Instance->ConfigData.StationAddress, &Ip4ConfigData.StationAddress);
Instance->ConfigData.SubnetMask = Ip4ConfigData.SubnetMask; IP4_COPY_ADDRESS (&Instance->ConfigData.SubnetMask, &Ip4ConfigData.SubnetMask);
// //
// Try to allocate the required port resource. // Try to allocate the required port resource.
@ -588,7 +589,7 @@ Udp4Transmit (
Udp4Header->Checksum = 0; Udp4Header->Checksum = 0;
UdpSessionData = TxData->UdpSessionData; UdpSessionData = TxData->UdpSessionData;
Override.Ip4OverrideData.SourceAddress = ConfigData->StationAddress; IP4_COPY_ADDRESS (&Override.Ip4OverrideData.SourceAddress, &ConfigData->StationAddress);
if (UdpSessionData != NULL) { if (UdpSessionData != NULL) {
// //
@ -596,7 +597,7 @@ Udp4Transmit (
// UdpSessionData. // UdpSessionData.
// //
if (!EFI_IP4_EQUAL (&UdpSessionData->SourceAddress, &mZeroIp4Addr)) { if (!EFI_IP4_EQUAL (&UdpSessionData->SourceAddress, &mZeroIp4Addr)) {
CopyMem (&Override.Ip4OverrideData.SourceAddress, &UdpSessionData->SourceAddress, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&Override.Ip4OverrideData.SourceAddress, &UdpSessionData->SourceAddress);
} }
if (UdpSessionData->SourcePort != 0) { if (UdpSessionData->SourcePort != 0) {
@ -643,7 +644,7 @@ Udp4Transmit (
// Fill the IpIo Override data. // Fill the IpIo Override data.
// //
if (TxData->GatewayAddress != NULL) { if (TxData->GatewayAddress != NULL) {
CopyMem (&Override.Ip4OverrideData.GatewayAddress, TxData->GatewayAddress, sizeof (EFI_IPv4_ADDRESS)); IP4_COPY_ADDRESS (&Override.Ip4OverrideData.GatewayAddress, TxData->GatewayAddress);
} else { } else {
ZeroMem (&Override.Ip4OverrideData.GatewayAddress, sizeof (EFI_IPv4_ADDRESS)); ZeroMem (&Override.Ip4OverrideData.GatewayAddress, sizeof (EFI_IPv4_ADDRESS));
} }