2010-07-22 21:22:34 +02:00
|
|
|
## @file
|
|
|
|
# Base Library implementation for X64 UnixPkg. X64 code writes CR3 so to
|
|
|
|
# not change MdeModulePkg DxeIpl we need a UnixPkg copy of the BaseLib.
|
|
|
|
#
|
|
|
|
# Currently I'm debugging UnixPkg with SVR V ABI so there are some
|
|
|
|
# temp changes for that too.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
|
|
# Portions copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
##
|
|
|
|
|
|
|
|
[Defines]
|
|
|
|
INF_VERSION = 0x00010005
|
|
|
|
BASE_NAME = BaseLib
|
2010-07-26 10:58:14 +02:00
|
|
|
FILE_GUID = 25A41BF7-7718-4e9a-9A7E-50DC324929FD
|
2010-07-22 21:22:34 +02:00
|
|
|
MODULE_TYPE = BASE
|
|
|
|
VERSION_STRING = 1.0
|
|
|
|
LIBRARY_CLASS = BaseLib
|
|
|
|
|
|
|
|
#
|
|
|
|
# VALID_ARCHITECTURES = IA32 X64 IPF EBC ARM
|
|
|
|
#
|
|
|
|
|
|
|
|
[Sources]
|
|
|
|
CheckSum.c
|
|
|
|
SwitchStack.c
|
|
|
|
SwapBytes64.c
|
|
|
|
SwapBytes32.c
|
|
|
|
SwapBytes16.c
|
|
|
|
LongJump.c
|
|
|
|
SetJump.c
|
|
|
|
RShiftU64.c
|
|
|
|
RRotU64.c
|
|
|
|
RRotU32.c
|
|
|
|
MultU64x64.c
|
|
|
|
MultU64x32.c
|
|
|
|
MultS64x64.c
|
|
|
|
ModU64x32.c
|
|
|
|
LShiftU64.c
|
|
|
|
LRotU64.c
|
|
|
|
LRotU32.c
|
|
|
|
LowBitSet64.c
|
|
|
|
LowBitSet32.c
|
|
|
|
HighBitSet64.c
|
|
|
|
HighBitSet32.c
|
|
|
|
GetPowerOfTwo64.c
|
|
|
|
GetPowerOfTwo32.c
|
|
|
|
DivU64x64Remainder.c
|
|
|
|
DivU64x32Remainder.c
|
|
|
|
DivU64x32.c
|
|
|
|
DivS64x64Remainder.c
|
|
|
|
ARShiftU64.c
|
|
|
|
BitField.c
|
|
|
|
CpuDeadLoop.c
|
|
|
|
Cpu.c
|
|
|
|
LinkedList.c
|
|
|
|
String.c
|
|
|
|
BaseLibInternals.h
|
|
|
|
|
|
|
|
|
|
|
|
[Sources.X64]
|
|
|
|
X64/Thunk16.asm
|
|
|
|
X64/CpuPause.asm
|
|
|
|
X64/EnableDisableInterrupts.asm
|
|
|
|
X64/DisableInterrupts.asm
|
|
|
|
X64/EnableInterrupts.asm
|
|
|
|
X64/FlushCacheLine.asm
|
|
|
|
X64/Invd.asm
|
|
|
|
X64/Wbinvd.asm
|
|
|
|
X64/DisablePaging64.asm
|
|
|
|
X64/Mwait.asm
|
|
|
|
X64/Monitor.asm
|
|
|
|
X64/ReadPmc.asm
|
|
|
|
X64/ReadTsc.asm
|
|
|
|
X64/WriteMm7.asm
|
|
|
|
X64/WriteMm6.asm
|
|
|
|
X64/WriteMm5.asm
|
|
|
|
X64/WriteMm4.asm
|
|
|
|
X64/WriteMm3.asm
|
|
|
|
X64/WriteMm2.asm
|
|
|
|
X64/WriteMm1.asm
|
|
|
|
X64/WriteMm0.asm
|
|
|
|
X64/ReadMm7.asm
|
|
|
|
X64/ReadMm6.asm
|
|
|
|
X64/ReadMm5.asm
|
|
|
|
X64/ReadMm4.asm
|
|
|
|
X64/ReadMm3.asm
|
|
|
|
X64/ReadMm2.asm
|
|
|
|
X64/ReadMm1.asm
|
|
|
|
X64/ReadMm0.asm
|
|
|
|
X64/FxRestore.asm
|
|
|
|
X64/FxSave.asm
|
|
|
|
X64/WriteLdtr.asm
|
|
|
|
X64/ReadLdtr.asm
|
|
|
|
X64/WriteIdtr.asm
|
|
|
|
X64/ReadIdtr.asm
|
|
|
|
X64/WriteGdtr.asm
|
|
|
|
X64/ReadGdtr.asm
|
|
|
|
X64/ReadTr.asm
|
|
|
|
X64/ReadSs.asm
|
|
|
|
X64/ReadGs.asm
|
|
|
|
X64/ReadFs.asm
|
|
|
|
X64/ReadEs.asm
|
|
|
|
X64/ReadDs.asm
|
|
|
|
X64/ReadCs.asm
|
|
|
|
X64/WriteDr7.asm
|
|
|
|
X64/WriteDr6.asm
|
|
|
|
X64/WriteDr5.asm
|
|
|
|
X64/WriteDr4.asm
|
|
|
|
X64/WriteDr3.asm
|
|
|
|
X64/WriteDr2.asm
|
|
|
|
X64/WriteDr1.asm
|
|
|
|
X64/WriteDr0.asm
|
|
|
|
X64/ReadDr7.asm
|
|
|
|
X64/ReadDr6.asm
|
|
|
|
X64/ReadDr5.asm
|
|
|
|
X64/ReadDr4.asm
|
|
|
|
X64/ReadDr3.asm
|
|
|
|
X64/ReadDr2.asm
|
|
|
|
X64/ReadDr1.asm
|
|
|
|
X64/ReadDr0.asm
|
|
|
|
X64/WriteCr4.asm
|
|
|
|
X64/WriteCr3.asm
|
|
|
|
X64/WriteCr2.asm
|
|
|
|
X64/WriteCr0.asm
|
|
|
|
X64/ReadCr4.asm
|
|
|
|
X64/ReadCr3.asm
|
|
|
|
X64/ReadCr2.asm
|
|
|
|
X64/ReadCr0.asm
|
|
|
|
X64/ReadEflags.asm
|
|
|
|
X64/CpuIdEx.asm
|
|
|
|
X64/CpuId.asm
|
|
|
|
X64/LongJump.asm
|
|
|
|
X64/SetJump.asm
|
|
|
|
X64/SwitchStack.asm
|
|
|
|
X64/EnableCache.asm
|
|
|
|
X64/DisableCache.asm
|
|
|
|
|
|
|
|
X64/CpuBreakpoint.c | MSFT
|
|
|
|
X64/WriteMsr64.c | MSFT
|
|
|
|
X64/ReadMsr64.c | MSFT
|
|
|
|
|
|
|
|
X64/CpuBreakpoint.asm | INTEL
|
|
|
|
X64/WriteMsr64.asm | INTEL
|
|
|
|
X64/ReadMsr64.asm | INTEL
|
|
|
|
|
|
|
|
X64/Non-existing.c
|
|
|
|
Math64.c
|
|
|
|
Unaligned.c
|
|
|
|
X86WriteIdtr.c
|
|
|
|
X86WriteGdtr.c
|
|
|
|
X86Thunk.c
|
|
|
|
X86ReadIdtr.c
|
|
|
|
X86ReadGdtr.c
|
|
|
|
X86Msr.c
|
|
|
|
X86MemoryFence.c | MSFT
|
|
|
|
X86MemoryFence.c | INTEL
|
|
|
|
X86GetInterruptState.c
|
|
|
|
X86FxSave.c
|
|
|
|
X86FxRestore.c
|
|
|
|
X86EnablePaging64.c
|
|
|
|
X86EnablePaging32.c
|
|
|
|
X86DisablePaging64.c
|
|
|
|
X86DisablePaging32.c
|
|
|
|
X64/GccInline.c | GCC
|
|
|
|
X64/Thunk16.S | GCC
|
|
|
|
X64/SwitchStack.S | GCC
|
|
|
|
X64/SetJump.S | GCC
|
|
|
|
X64/LongJump.S | GCC
|
|
|
|
X64/EnableDisableInterrupts.S | GCC
|
|
|
|
X64/DisablePaging64.S | GCC
|
|
|
|
X64/CpuId.S | GCC
|
|
|
|
X64/CpuIdEx.S | GCC
|
|
|
|
X64/EnableCache.S | GCC
|
|
|
|
X64/DisableCache.S | GCC
|
|
|
|
ChkStkGcc.c | GCC
|
|
|
|
|
|
|
|
|
|
|
|
[Packages]
|
|
|
|
MdePkg/MdePkg.dec
|
|
|
|
|
|
|
|
[LibraryClasses]
|
|
|
|
PcdLib
|
|
|
|
DebugLib
|
|
|
|
BaseMemoryLib
|
|
|
|
|
|
|
|
[Pcd]
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList
|