--- /dev/null
+## @file\r
+# Base Library implementation for X64 UnixPkg. X64 code writes CR3 so to\r
+# not change MdeModulePkg DxeIpl we need a UnixPkg copy of the BaseLib.\r
+# \r
+# Currently I'm debugging UnixPkg with SVR V ABI so there are some \r
+# temp changes for that too.\r
+#\r
+#\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+#\r
+# This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution. The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php.\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+#\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = BaseLib\r
+ FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30\r
+ MODULE_TYPE = BASE\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = BaseLib \r
+\r
+#\r
+# VALID_ARCHITECTURES = IA32 X64 IPF EBC ARM\r
+#\r
+\r
+[Sources]\r
+ CheckSum.c\r
+ SwitchStack.c\r
+ SwapBytes64.c\r
+ SwapBytes32.c\r
+ SwapBytes16.c\r
+ LongJump.c\r
+ SetJump.c\r
+ RShiftU64.c\r
+ RRotU64.c\r
+ RRotU32.c\r
+ MultU64x64.c\r
+ MultU64x32.c\r
+ MultS64x64.c\r
+ ModU64x32.c\r
+ LShiftU64.c\r
+ LRotU64.c\r
+ LRotU32.c\r
+ LowBitSet64.c\r
+ LowBitSet32.c\r
+ HighBitSet64.c\r
+ HighBitSet32.c\r
+ GetPowerOfTwo64.c\r
+ GetPowerOfTwo32.c\r
+ DivU64x64Remainder.c\r
+ DivU64x32Remainder.c\r
+ DivU64x32.c\r
+ DivS64x64Remainder.c\r
+ ARShiftU64.c\r
+ BitField.c\r
+ CpuDeadLoop.c\r
+ Cpu.c\r
+ LinkedList.c\r
+ String.c\r
+ BaseLibInternals.h\r
+\r
+\r
+[Sources.X64]\r
+ X64/Thunk16.asm\r
+ X64/CpuPause.asm\r
+ X64/EnableDisableInterrupts.asm\r
+ X64/DisableInterrupts.asm\r
+ X64/EnableInterrupts.asm\r
+ X64/FlushCacheLine.asm\r
+ X64/Invd.asm\r
+ X64/Wbinvd.asm\r
+ X64/DisablePaging64.asm\r
+ X64/Mwait.asm\r
+ X64/Monitor.asm\r
+ X64/ReadPmc.asm\r
+ X64/ReadTsc.asm\r
+ X64/WriteMm7.asm\r
+ X64/WriteMm6.asm\r
+ X64/WriteMm5.asm\r
+ X64/WriteMm4.asm\r
+ X64/WriteMm3.asm\r
+ X64/WriteMm2.asm\r
+ X64/WriteMm1.asm\r
+ X64/WriteMm0.asm\r
+ X64/ReadMm7.asm\r
+ X64/ReadMm6.asm\r
+ X64/ReadMm5.asm\r
+ X64/ReadMm4.asm\r
+ X64/ReadMm3.asm\r
+ X64/ReadMm2.asm\r
+ X64/ReadMm1.asm\r
+ X64/ReadMm0.asm\r
+ X64/FxRestore.asm\r
+ X64/FxSave.asm\r
+ X64/WriteLdtr.asm\r
+ X64/ReadLdtr.asm\r
+ X64/WriteIdtr.asm\r
+ X64/ReadIdtr.asm\r
+ X64/WriteGdtr.asm\r
+ X64/ReadGdtr.asm\r
+ X64/ReadTr.asm\r
+ X64/ReadSs.asm\r
+ X64/ReadGs.asm\r
+ X64/ReadFs.asm\r
+ X64/ReadEs.asm\r
+ X64/ReadDs.asm\r
+ X64/ReadCs.asm\r
+ X64/WriteDr7.asm\r
+ X64/WriteDr6.asm\r
+ X64/WriteDr5.asm\r
+ X64/WriteDr4.asm\r
+ X64/WriteDr3.asm\r
+ X64/WriteDr2.asm\r
+ X64/WriteDr1.asm\r
+ X64/WriteDr0.asm\r
+ X64/ReadDr7.asm\r
+ X64/ReadDr6.asm\r
+ X64/ReadDr5.asm\r
+ X64/ReadDr4.asm\r
+ X64/ReadDr3.asm\r
+ X64/ReadDr2.asm\r
+ X64/ReadDr1.asm\r
+ X64/ReadDr0.asm\r
+ X64/WriteCr4.asm\r
+ X64/WriteCr3.asm\r
+ X64/WriteCr2.asm\r
+ X64/WriteCr0.asm\r
+ X64/ReadCr4.asm\r
+ X64/ReadCr3.asm\r
+ X64/ReadCr2.asm\r
+ X64/ReadCr0.asm\r
+ X64/ReadEflags.asm\r
+ X64/CpuIdEx.asm\r
+ X64/CpuId.asm\r
+ X64/LongJump.asm\r
+ X64/SetJump.asm\r
+ X64/SwitchStack.asm\r
+ X64/EnableCache.asm\r
+ X64/DisableCache.asm\r
+\r
+ X64/CpuBreakpoint.c | MSFT \r
+ X64/WriteMsr64.c | MSFT \r
+ X64/ReadMsr64.c | MSFT \r
+\r
+ X64/CpuBreakpoint.asm | INTEL \r
+ X64/WriteMsr64.asm | INTEL \r
+ X64/ReadMsr64.asm | INTEL \r
+\r
+ X64/Non-existing.c\r
+ Math64.c\r
+ Unaligned.c\r
+ X86WriteIdtr.c\r
+ X86WriteGdtr.c\r
+ X86Thunk.c\r
+ X86ReadIdtr.c\r
+ X86ReadGdtr.c\r
+ X86Msr.c\r
+ X86MemoryFence.c | MSFT\r
+ X86MemoryFence.c | INTEL\r
+ X86GetInterruptState.c\r
+ X86FxSave.c\r
+ X86FxRestore.c\r
+ X86EnablePaging64.c\r
+ X86EnablePaging32.c\r
+ X86DisablePaging64.c\r
+ X86DisablePaging32.c\r
+ X64/GccInline.c | GCC\r
+ X64/Thunk16.S | GCC \r
+ X64/SwitchStack.S | GCC \r
+ X64/SetJump.S | GCC \r
+ X64/LongJump.S | GCC \r
+ X64/EnableDisableInterrupts.S | GCC \r
+ X64/DisablePaging64.S | GCC \r
+ X64/CpuId.S | GCC \r
+ X64/CpuIdEx.S | GCC \r
+ X64/EnableCache.S | GCC\r
+ X64/DisableCache.S | GCC\r
+ ChkStkGcc.c | GCC \r
+\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+\r
+[LibraryClasses]\r
+ PcdLib\r
+ DebugLib\r
+ BaseMemoryLib\r
+\r
+[Pcd]\r
+ gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength\r
+ gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength\r
+ gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength\r
+ gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList\r