summaryrefslogtreecommitdiff
path: root/ShellPkg
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2011-04-07 21:50:16 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2011-04-07 21:50:16 +0000
commite0c2cc6f8975adde2c8605ae7fd76237bbcc7539 (patch)
tree8064bba5cad15c0b20808e586c918df39557f786 /ShellPkg
parent392fa5a63bcbf477107007d5df9c437520cb113d (diff)
downloadedk2-platforms-e0c2cc6f8975adde2c8605ae7fd76237bbcc7539.tar.xz
Fix Xcode, clang, and ARM build and link issues.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11513 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg')
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c2
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c28
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/EditTitleBar.c2
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c21
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c5
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c4
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c4
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c136
-rw-r--r--ShellPkg/Library/UefiShellNetwork1CommandsLib/Ia32/Tsc.c28
-rw-r--r--ShellPkg/Library/UefiShellNetwork1CommandsLib/Ipf/Itc.c28
-rw-r--r--ShellPkg/Library/UefiShellNetwork1CommandsLib/Ping.c37
-rw-r--r--ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf9
-rw-r--r--ShellPkg/Library/UefiShellNetwork1CommandsLib/X64/Tsc.c28
-rw-r--r--ShellPkg/ShellPkg.dsc11
14 files changed, 149 insertions, 194 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c
index 4e49d2120b..580f4adc29 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c
@@ -41,7 +41,7 @@ DisplayTheBlocks(
ShellStatus = SHELL_SUCCESS;
- Status = gBS->LocateDevicePath(&gEfiBlockIoProtocolGuid, &((EFI_DEVICE_PATH_PROTOCOL *)DevPath), &BlockIoHandle);
+ Status = gBS->LocateDevicePath(&gEfiBlockIoProtocolGuid, (EFI_DEVICE_PATH_PROTOCOL **)&DevPath, &BlockIoHandle);
if (EFI_ERROR(Status)) {
return (SHELL_NOT_FOUND);
}
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
index 0229450528..dfee96bb29 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Dmem.c
@@ -68,12 +68,12 @@ DisplayMmioMemory(
Buffer = AllocateZeroPool(Size);
ASSERT(Buffer != NULL);
- Status = PciRbIo->Mem.Read(PciRbIo, EfiPciWidthUint8, (UINT64)Address, Size, Buffer);
+ Status = PciRbIo->Mem.Read(PciRbIo, EfiPciWidthUint8, (UINT64)(UINTN)Address, Size, Buffer);
if (EFI_ERROR(Status)) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PCIRBIO_ER), gShellDebug1HiiHandle, Status);
ShellStatus = SHELL_NOT_FOUND;
} else {
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DMEM_MMIO_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)Address, Size);
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DMEM_MMIO_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)(UINTN)Address, Size);
DumpHex(2,0,Size,Buffer);
}
@@ -167,7 +167,7 @@ ShellCommandRunDmem (
if (ShellStatus == SHELL_SUCCESS) {
if (!ShellCommandLineGetFlag(Package, L"-mmio")) {
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DMEM_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)Address, Size);
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DMEM_HEADER_ROW), gShellDebug1HiiHandle, (UINT64)(UINTN)Address, Size);
DumpHex(2,0,(UINTN)Size,Address);
if (Address == (VOID*)gST) {
Acpi20TableAddress = 0;
@@ -177,36 +177,36 @@ ShellCommandRunDmem (
MpsTableAddress = 0;
for (TableWalker = 0 ; TableWalker < gST->NumberOfTableEntries ; TableWalker++) {
if (CompareGuid(&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiAcpi20TableGuid)) {
- Acpi20TableAddress = (UINT64)gST->ConfigurationTable[TableWalker].VendorTable;
+ Acpi20TableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid(&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiAcpi10TableGuid)) {
- AcpiTableAddress = (UINT64)gST->ConfigurationTable[TableWalker].VendorTable;
+ AcpiTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid(&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSalSystemTableGuid)) {
- SalTableAddress = (UINT64)gST->ConfigurationTable[TableWalker].VendorTable;
+ SalTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid(&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiSmbiosTableGuid)) {
- SmbiosTableAddress = (UINT64)gST->ConfigurationTable[TableWalker].VendorTable;
+ SmbiosTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
if (CompareGuid(&gST->ConfigurationTable[TableWalker].VendorGuid, &gEfiMpsTableGuid)) {
- MpsTableAddress = (UINT64)gST->ConfigurationTable[TableWalker].VendorTable;
+ MpsTableAddress = (UINT64)(UINTN)gST->ConfigurationTable[TableWalker].VendorTable;
continue;
}
}
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DMEM_SYSTEM_TABLE), gShellDebug1HiiHandle,
- (UINT64)Address,
+ (UINT64)(UINTN)Address,
gST->Hdr.HeaderSize,
gST->Hdr.Revision,
- (UINT64)gST->ConIn,
- (UINT64)gST->ConOut,
- (UINT64)gST->StdErr,
- (UINT64)gST->RuntimeServices,
- (UINT64)gST->BootServices,
+ (UINT64)(UINTN)gST->ConIn,
+ (UINT64)(UINTN)gST->ConOut,
+ (UINT64)(UINTN)gST->StdErr,
+ (UINT64)(UINTN)gST->RuntimeServices,
+ (UINT64)(UINTN)gST->BootServices,
SalTableAddress,
AcpiTableAddress,
Acpi20TableAddress,
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditTitleBar.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditTitleBar.c
index 3d818b3509..08d01ab09c 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditTitleBar.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditTitleBar.c
@@ -188,6 +188,8 @@ MainTitleBarRefresh (
ASSERT(FALSE);
case FileTypeFileBuffer:
break;
+ default:
+ break;
}
//
// print modified field
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
index 469642245d..57c4a9c739 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
@@ -176,12 +176,15 @@ HBufferImageBackup (
case FileTypeMemBuffer:
HMemImageBackup ();
break;
+
+ default:
+ break;
}
return EFI_SUCCESS;
}
-/**
+/**
Free all the lines in HBufferImage.
Fields affected:
Lines
@@ -728,7 +731,7 @@ HBufferImageRestorePosition (
return EFI_SUCCESS;
}
-/**
+/**
Refresh function for HBufferImage.
@retval EFI_SUCCESS The operation was successful.
@@ -944,6 +947,10 @@ HBufferImageRead (
case FileTypeMemBuffer:
Status = HMemImageRead (MemOffset, MemSize, Recover);
break;
+
+ default:
+ Status = EFI_NOT_FOUND;
+ break;
}
if (EFI_ERROR (Status)) {
@@ -1007,6 +1014,10 @@ HBufferImageSave (
case FileTypeMemBuffer:
Status = HMemImageSave (MemOffset, MemSize);
break;
+
+ default:
+ Status = EFI_NOT_FOUND;
+ break;
}
if (EFI_ERROR (Status)) {
@@ -1016,7 +1027,7 @@ HBufferImageSave (
return Status;
}
-/**
+/**
Create a new line and append it to the line list.
Fields affected:
NumLines
@@ -1063,7 +1074,7 @@ HBufferImageCreateLine (
return Line;
}
-/**
+/**
Free the current image.
@retval EFI_SUCCESS The operation was successful.
@@ -1081,7 +1092,7 @@ HBufferImageFree (
return EFI_SUCCESS;
}
-/**
+/**
change char to int value based on Hex.
@param[in] Char The input char.
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
index 11a11ee970..1f5e1c908d 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
@@ -170,7 +170,7 @@ ShellCommandRunHexEdit (
} else if (WhatToDo == FileTypeFileBuffer && ShellGetCurrentDir(NULL) == NULL) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle);
ShellStatus = SHELL_INVALID_PARAMETER;
- }
+ }
if (ShellStatus == SHELL_SUCCESS) {
//
@@ -223,6 +223,9 @@ ShellCommandRunHexEdit (
);
break;
+ default:
+ Status = EFI_NOT_FOUND;
+ break;
}
if (!EFI_ERROR (Status)) {
HMainEditorRefresh ();
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
index 73fa4c238d..ccd73a9882 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/MainHexEditor.c
@@ -2164,6 +2164,10 @@ HMainEditorKeyInput (
case FileTypeMemBuffer:
OldSize = HBufferImage.MemImage->Size;
break;
+
+ default:
+ OldSize = 0;
+ break;
}
if (!LengthChange) {
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c
index 28b62d05e7..5d9915cec8 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c
@@ -36,7 +36,7 @@ STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
{NULL, TypeMax}
};
-STATIC CONST UINT64 MaxNum[9] = { 0xff, 0xffff, 0xffffffff, 0xffffffffffffffff };
+STATIC CONST UINT64 MaxNum[9] = { 0xff, 0xffff, 0xffffffff, 0xffffffffffffffffULL };
/**
Read some data into a buffer from memory.
@@ -424,7 +424,7 @@ ShellCommandRunMm (
//
if (AccessType == EfiPciEConfig) {
SegmentNumber = (UINT32) RShiftU64 (Address, 36) & 0xff;
- Address &= 0xfffffffff;
+ Address &= 0xfffffffffULL;
} else {
if (AccessType == EfiPciConfig) {
SegmentNumber = (UINT32) RShiftU64 (Address, 32) & 0xff;
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
index 3ae1eeaf7c..5e31283013 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
@@ -1807,21 +1807,21 @@ DisplayProcessorFamily2 (
Display processor voltage information.
@param[in] Voltage The Voltage.
- Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
- Bits 6:4 Reserved, must be zero
- Bits 3:0 Voltage Capability.
- A Set bit indicates that the voltage is supported.
- Bit 0 - 5V
- Bit 1 - 3.3V
- Bit 2 - 2.9V
- Bit 3 - Reserved, must be zero.
-
- Note:
- Setting of multiple bits indicates the socket is configurable
- If bit 7 is set to 1, the remaining seven bits of the field are set to
- contain the processor's current voltage times 10.
- For example, the field value for a processor voltage of 1.8 volts would be
- 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
+ Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
+ Bits 6:4 Reserved, must be zero
+ Bits 3:0 Voltage Capability.
+ A Set bit indicates that the voltage is supported.
+ Bit 0 - 5V
+ Bit 1 - 3.3V
+ Bit 2 - 2.9V
+ Bit 3 - Reserved, must be zero.
+
+ Note:
+ Setting of multiple bits indicates the socket is configurable
+ If bit 7 is set to 1, the remaining seven bits of the field are set to
+ contain the processor's current voltage times 10.
+ For example, the field value for a processor voltage of 1.8 volts would be
+ 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
@param[in] Option The option.
**/
@@ -1876,19 +1876,19 @@ DisplayProcessorVoltage (
Display processor information.
@param[in] Status The status.
- Bit 7 Reserved, must be 0
- Bit 6 CPU Socket Populated
- 1 - CPU Socket Populated
- 0 - CPU Socket UnpopulatedBits
- 5:3 Reserved, must be zero
- Bits 2:0 CPU Status
- 0h - Unknown
- 1h - CPU Enabled
- 2h - CPU Disabled by User via BIOS Setup
- 3h - CPU Disabled By BIOS (POST Error)
- 4h - CPU is Idle, waiting to be enabled.
- 5-6h - Reserved
- 7h - Other
+Bit 7 Reserved, must be 0
+Bit 6 CPU Socket Populated
+ 1 - CPU Socket Populated
+ 0 - CPU Socket UnpopulatedBits
+ 5:3 Reserved, must be zero
+ Bits 2:0 CPU Status
+ 0h - Unknown
+ 1h - CPU Enabled
+ 2h - CPU Disabled by User via BIOS Setup
+ 3h - CPU Disabled By BIOS (POST Error)
+ 4h - CPU is Idle, waiting to be enabled.
+ 5-6h - Reserved
+ 7h - Other
@param[in] Option The option
**/
@@ -2225,7 +2225,7 @@ DisplaySystemBootStatus (
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RSVD_FUTURE_ASSIGNMENT), gShellDebug1HiiHandle);
} else if (Parameter >= 128 && Parameter <= 191) {
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_VENDOR_OEM_SPECIFIC), gShellDebug1HiiHandle);
- } else if (Parameter >= 192 && Parameter <= 255) {
+ } else if (Parameter >= 192) {
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_PRODUCT_SPEC_IMPLMENTATION), gShellDebug1HiiHandle);
} else {
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ERROR_VALUE), gShellDebug1HiiHandle);
@@ -2271,23 +2271,23 @@ DisplaySBDSManufactureDate (
Display System Reset (Type 23) information.
- Identifies the system-reset capabilities for the system.
- Bits 7:6 Reserved for future assignment via this specification, set to 00b.
- Bit 5 System contains a watchdog timer, either True (1) or False (0).
- Bits 4:3 Boot Option on Limit.
- Identifies the system action to be taken when the Reset Limit is reached, one of:
- 00b Reserved, do not use.
- 01b Operating system
- 10b System utilities
- 11b Do not rebootBits
- 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
- 00b Reserved, do not use.
- 01b Operating system
- 10b System utilities
- 11b Do not reboot
- Bit 0 Status.
- 1b The system reset is enabled by the user
- 0b The system reset is not enabled by the user
+Identifies the system-reset capabilities for the system.
+ Bits 7:6 Reserved for future assignment via this specification, set to 00b.
+ Bit 5 System contains a watchdog timer, either True (1) or False (0).
+ Bits 4:3 Boot Option on Limit.
+ Identifies the system action to be taken when the Reset Limit is reached, one of:
+ 00b Reserved, do not use.
+ 01b Operating system
+ 10b System utilities
+ 11b Do not rebootBits
+ 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
+ 00b Reserved, do not use.
+ 01b Operating system
+ 10b System utilities
+ 11b Do not reboot
+ Bit 0 Status.
+ 1b The system reset is enabled by the user
+ 0b The system reset is not enabled by the user
@param[in] Reset Reset
@param[in] Option The option
@@ -2375,28 +2375,28 @@ DisplaySystemResetCapabilities (
Display Hardware Security (Type 24) information.
- Identifies the password and reset status for the system:
-
- Bits 7:6 Power-on Password Status, one of:
- 00b Disabled
- 01b Enabled
- 10b Not Implemented
- 11b Unknown
- Bits 5:4 Keyboard Password Status, one of:
- 00b Disabled
- 01b Enabled
- 10b Not Implemented
- 11b Unknown
- Bits 3:2 Administrator Password Status, one of:
- 00b Disabled
- 01b Enabled
- 10b Not Implemented
- 11b Unknown
- Bits 1:0 Front Panel Reset Status, one of:
- 00b Disabled
- 01b Enabled
- 10b Not Implemented
- 11b Unknown
+Identifies the password and reset status for the system:
+
+Bits 7:6 Power-on Password Status, one of:
+ 00b Disabled
+ 01b Enabled
+ 10b Not Implemented
+ 11b Unknown
+Bits 5:4 Keyboard Password Status, one of:
+ 00b Disabled
+ 01b Enabled
+ 10b Not Implemented
+ 11b Unknown
+Bits 3:2 Administrator Password Status, one of:
+ 00b Disabled
+ 01b Enabled
+ 10b Not Implemented
+ 11b Unknown
+Bits 1:0 Front Panel Reset Status, one of:
+ 00b Disabled
+ 01b Enabled
+ 10b Not Implemented
+ 11b Unknown
@param[in] Settings The device settings.
@param[in] Option The device options.
diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ia32/Tsc.c b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ia32/Tsc.c
deleted file mode 100644
index e2eae99077..0000000000
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ia32/Tsc.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/** @file
- The implement to read TSC in IA32 platform.
-
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
-
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php.
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <Library/BaseLib.h>
-
-/**
- Reads and returns the current value of the Time Stamp Counter (TSC).
-
- @return The current value of TSC.
-
-**/
-UINT64
-ReadTime ()
-{
- return AsmReadTsc ();
-}
diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ipf/Itc.c b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ipf/Itc.c
deleted file mode 100644
index 131e5c0e30..0000000000
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ipf/Itc.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/** @file
- The implement to read ITC in IA64 platform.
-
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
-
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php.
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <Library/BaseLib.h>
-
-/**
- Reads and returns the current value of the Interval Timer Counter Register (ITC).
-
- @return The current value of ITC.
-
-**/
-UINT64
-ReadTime ()
-{
- return AsmReadItc ();
-}
diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ping.c b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ping.c
index ab7658c45b..10d38d8022 100644
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ping.c
+++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ping.c
@@ -185,11 +185,6 @@ NetChecksum (
@return The current value of the register.
**/
-UINT64
-EFIAPI
-ReadTime (
- VOID
- );
STATIC CONST SHELL_PARAM_ITEM PingParamList[] = {
{
@@ -220,6 +215,32 @@ STATIC CONST SHELL_PARAM_ITEM PingParamList[] = {
STATIC CONST CHAR16 *mDstString;
STATIC CONST CHAR16 *mSrcString;
STATIC UINT64 mFrequency = 0;
+EFI_CPU_ARCH_PROTOCOL *gCpu = NULL;
+
+UINT64
+EFIAPI
+ReadTime (
+ VOID
+ )
+{
+ static UINT64 CurrentTick = 0;
+ UINT64 TimerPeriod;
+ EFI_STATUS Status;
+
+ ASSERT (gCpu != NULL);
+
+ Status = gCpu->GetTimerValue (gCpu, 0, &CurrentTick, &TimerPeriod);
+ if (EFI_ERROR (Status)) {
+ //
+ // The WinntGetTimerValue will return EFI_UNSUPPORTED. Set the
+ // TimerPeriod by ourselves.
+ //
+ CurrentTick += 1000000;
+ }
+
+ return CurrentTick;
+}
+
/**
Get and caculate the frequency in tick/ms.
@@ -236,17 +257,15 @@ GetFrequency (
)
{
EFI_STATUS Status;
- EFI_CPU_ARCH_PROTOCOL *Cpu;
UINT64 CurrentTick;
UINT64 TimerPeriod;
- Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **) &Cpu);
-
+ Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **) &gCpu);
if (EFI_ERROR (Status)) {
return Status;
}
- Status = Cpu->GetTimerValue (Cpu, 0, &CurrentTick, &TimerPeriod);
+ Status = gCpu->GetTimerValue (gCpu, 0, &CurrentTick, &TimerPeriod);
if (EFI_ERROR (Status)) {
TimerPeriod = DEFAULT_TIMER_PERIOD;
diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf b/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
index 51dca82b48..3ff1676cde 100644
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
@@ -30,15 +30,6 @@
Ping.c
Ifconfig.c
-[Sources.IA32]
- Ia32/Tsc.c
-
-[Sources.X64]
- X64/Tsc.c
-
-[Sources.IPF]
- Ipf/Itc.c
-
[Packages]
MdePkg/MdePkg.dec
ShellPkg/ShellPkg.dec
diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/X64/Tsc.c b/ShellPkg/Library/UefiShellNetwork1CommandsLib/X64/Tsc.c
deleted file mode 100644
index b3e7bdbb96..0000000000
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/X64/Tsc.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/** @file
- The implement to read TSC in X64 platform.
-
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
-
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php.
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <Library/BaseLib.h>
-
-/**
- Reads and returns the current value of Time Stamp Counter (TSC).
-
- @return The current value of TSC
-
-**/
-UINT64
-ReadTime ()
-{
- return AsmReadTsc ();
-}
diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
index 516a09117f..b0e91da804 100644
--- a/ShellPkg/ShellPkg.dsc
+++ b/ShellPkg/ShellPkg.dsc
@@ -19,7 +19,7 @@
PLATFORM_VERSION = 0.50
DSC_SPECIFICATION = 0x00010006
OUTPUT_DIRECTORY = Build/Shell
- SUPPORTED_ARCHITECTURES = IA32|IPF|X64|EBC
+ SUPPORTED_ARCHITECTURES = IA32|IPF|X64|EBC|ARM
BUILD_TARGETS = DEBUG|RELEASE
SKUID_IDENTIFIER = DEFAULT
@@ -49,6 +49,15 @@
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
+[LibraryClasses.ARM]
+ #
+ # It is not possible to prevent the ARM compiler for generic intrinsic functions.
+ # This library provides the instrinsic functions generate by a given compiler.
+ # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
+ #
+ NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
+
+
[PcdsFixedAtBuild.common]
[Components.common]