## @file # Base Library implementation. # # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
# # 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 FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30 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.Ia32] Ia32/Wbinvd.c | MSFT Ia32/WriteMm7.c | MSFT Ia32/WriteMm6.c | MSFT Ia32/WriteMm5.c | MSFT Ia32/WriteMm4.c | MSFT Ia32/WriteMm3.c | MSFT Ia32/WriteMm2.c | MSFT Ia32/WriteMm1.c | MSFT Ia32/WriteMm0.c | MSFT Ia32/WriteLdtr.c | MSFT Ia32/WriteIdtr.c | MSFT Ia32/WriteGdtr.c | MSFT Ia32/WriteDr7.c | MSFT Ia32/WriteDr6.c | MSFT Ia32/WriteDr5.c | MSFT Ia32/WriteDr4.c | MSFT Ia32/WriteDr3.c | MSFT Ia32/WriteDr2.c | MSFT Ia32/WriteDr1.c | MSFT Ia32/WriteDr0.c | MSFT Ia32/WriteCr4.c | MSFT Ia32/WriteCr3.c | MSFT Ia32/WriteCr2.c | MSFT Ia32/WriteCr0.c | MSFT Ia32/WriteMsr64.c | MSFT Ia32/SwapBytes64.c | MSFT Ia32/SetJump.c | MSFT Ia32/RRotU64.c | MSFT Ia32/RShiftU64.c | MSFT Ia32/ReadPmc.c | MSFT Ia32/ReadTsc.c | MSFT Ia32/ReadLdtr.c | MSFT Ia32/ReadIdtr.c | MSFT Ia32/ReadGdtr.c | MSFT Ia32/ReadTr.c | MSFT Ia32/ReadSs.c | MSFT Ia32/ReadGs.c | MSFT Ia32/ReadFs.c | MSFT Ia32/ReadEs.c | MSFT Ia32/ReadDs.c | MSFT Ia32/ReadCs.c | MSFT Ia32/ReadMsr64.c | MSFT Ia32/ReadMm7.c | MSFT Ia32/ReadMm6.c | MSFT Ia32/ReadMm5.c | MSFT Ia32/ReadMm4.c | MSFT Ia32/ReadMm3.c | MSFT Ia32/ReadMm2.c | MSFT Ia32/ReadMm1.c | MSFT Ia32/ReadMm0.c | MSFT Ia32/ReadEflags.c | MSFT Ia32/ReadDr7.c | MSFT Ia32/ReadDr6.c | MSFT Ia32/ReadDr5.c | MSFT Ia32/ReadDr4.c | MSFT Ia32/ReadDr3.c | MSFT Ia32/ReadDr2.c | MSFT Ia32/ReadDr1.c | MSFT Ia32/ReadDr0.c | MSFT Ia32/ReadCr4.c | MSFT Ia32/ReadCr3.c | MSFT Ia32/ReadCr2.c | MSFT Ia32/ReadCr0.c | MSFT Ia32/Mwait.c | MSFT Ia32/Monitor.c | MSFT Ia32/ModU64x32.c | MSFT Ia32/MultU64x64.c | MSFT Ia32/MultU64x32.c | MSFT Ia32/LShiftU64.c | MSFT Ia32/LRotU64.c | MSFT Ia32/LongJump.c | MSFT Ia32/Invd.c | MSFT Ia32/FxRestore.c | MSFT Ia32/FxSave.c | MSFT Ia32/FlushCacheLine.c | MSFT Ia32/EnablePaging32.c | MSFT Ia32/EnableInterrupts.c | MSFT Ia32/EnableDisableInterrupts.c | MSFT Ia32/DivU64x64Remainder.asm | MSFT Ia32/DivU64x32Remainder.c | MSFT Ia32/DivU64x32.c | MSFT Ia32/DisablePaging32.c | MSFT Ia32/DisableInterrupts.c | MSFT Ia32/CpuPause.c | MSFT Ia32/CpuIdEx.c | MSFT Ia32/CpuId.c | MSFT Ia32/CpuBreakpoint.c | MSFT Ia32/ARShiftU64.c | MSFT Ia32/Thunk16.asm | MSFT Ia32/EnablePaging64.asm | MSFT Ia32/EnableCache.c | MSFT Ia32/DisableCache.c | MSFT Ia32/Wbinvd.asm | INTEL Ia32/WriteMm7.asm | INTEL Ia32/WriteMm6.asm | INTEL Ia32/WriteMm5.asm | INTEL Ia32/WriteMm4.asm | INTEL Ia32/WriteMm3.asm | INTEL Ia32/WriteMm2.asm | INTEL Ia32/WriteMm1.asm | INTEL Ia32/WriteMm0.asm | INTEL Ia32/WriteLdtr.asm | INTEL Ia32/WriteIdtr.asm | INTEL Ia32/WriteGdtr.asm | INTEL Ia32/WriteDr7.asm | INTEL Ia32/WriteDr6.asm | INTEL Ia32/WriteDr5.asm | INTEL Ia32/WriteDr4.asm | INTEL Ia32/WriteDr3.asm | INTEL Ia32/WriteDr2.asm | INTEL Ia32/WriteDr1.asm | INTEL Ia32/WriteDr0.asm | INTEL Ia32/WriteCr4.asm | INTEL Ia32/WriteCr3.asm | INTEL Ia32/WriteCr2.asm | INTEL Ia32/WriteCr0.asm | INTEL Ia32/WriteMsr64.asm | INTEL Ia32/SwapBytes64.asm | INTEL Ia32/SetJump.asm | INTEL Ia32/RRotU64.asm | INTEL Ia32/RShiftU64.asm | INTEL Ia32/ReadPmc.asm | INTEL Ia32/ReadTsc.asm | INTEL Ia32/ReadLdtr.asm | INTEL Ia32/ReadIdtr.asm | INTEL Ia32/ReadGdtr.asm | INTEL Ia32/ReadTr.asm | INTEL Ia32/ReadSs.asm | INTEL Ia32/ReadGs.asm | INTEL Ia32/ReadFs.asm | INTEL Ia32/ReadEs.asm | INTEL Ia32/ReadDs.asm | INTEL Ia32/ReadCs.asm | INTEL Ia32/ReadMsr64.asm | INTEL Ia32/ReadMm7.asm | INTEL Ia32/ReadMm6.asm | INTEL Ia32/ReadMm5.asm | INTEL Ia32/ReadMm4.asm | INTEL Ia32/ReadMm3.asm | INTEL Ia32/ReadMm2.asm | INTEL Ia32/ReadMm1.asm | INTEL Ia32/ReadMm0.asm | INTEL Ia32/ReadEflags.asm | INTEL Ia32/ReadDr7.asm | INTEL Ia32/ReadDr6.asm | INTEL Ia32/ReadDr5.asm | INTEL Ia32/ReadDr4.asm | INTEL Ia32/ReadDr3.asm | INTEL Ia32/ReadDr2.asm | INTEL Ia32/ReadDr1.asm | INTEL Ia32/ReadDr0.asm | INTEL Ia32/ReadCr4.asm | INTEL Ia32/ReadCr3.asm | INTEL Ia32/ReadCr2.asm | INTEL Ia32/ReadCr0.asm | INTEL Ia32/Mwait.asm | INTEL Ia32/Monitor.asm | INTEL Ia32/ModU64x32.asm | INTEL Ia32/MultU64x64.asm | INTEL Ia32/MultU64x32.asm | INTEL Ia32/LShiftU64.asm | INTEL Ia32/LRotU64.asm | INTEL Ia32/LongJump.asm | INTEL Ia32/Invd.asm | INTEL Ia32/FxRestore.asm | INTEL Ia32/FxSave.asm | INTEL Ia32/FlushCacheLine.asm | INTEL Ia32/EnablePaging32.asm | INTEL Ia32/EnableInterrupts.asm | INTEL Ia32/EnableDisableInterrupts.asm | INTEL Ia32/DivU64x64Remainder.asm | INTEL Ia32/DivU64x32Remainder.asm | INTEL Ia32/DivU64x32.asm | INTEL Ia32/DisablePaging32.asm | INTEL Ia32/DisableInterrupts.asm | INTEL Ia32/CpuPause.asm | INTEL Ia32/CpuIdEx.asm | INTEL Ia32/CpuId.asm | INTEL Ia32/CpuBreakpoint.asm | INTEL Ia32/ARShiftU64.asm | INTEL Ia32/Thunk16.asm | INTEL Ia32/EnablePaging64.asm | INTEL Ia32/EnableCache.asm | INTEL Ia32/DisableCache.asm | INTEL Ia32/Thunk16.S | GCC Ia32/CpuBreakpoint.S | GCC Ia32/CpuPause.S | GCC Ia32/EnableDisableInterrupts.S | GCC Ia32/DisableInterrupts.S | GCC Ia32/EnableInterrupts.S | GCC Ia32/FlushCacheLine.S | GCC Ia32/Invd.S | GCC Ia32/Wbinvd.S | GCC Ia32/EnablePaging64.S | GCC Ia32/DisablePaging32.S | GCC Ia32/EnablePaging32.S | GCC Ia32/Mwait.S | GCC Ia32/Monitor.S | GCC Ia32/ReadPmc.S | GCC Ia32/ReadTsc.S | GCC Ia32/WriteMm7.S | GCC Ia32/WriteMm6.S | GCC Ia32/WriteMm5.S | GCC Ia32/WriteMm4.S | GCC Ia32/WriteMm3.S | GCC Ia32/WriteMm2.S | GCC Ia32/WriteMm1.S | GCC Ia32/WriteMm0.S | GCC Ia32/ReadMm7.S | GCC Ia32/ReadMm6.S | GCC Ia32/ReadMm5.S | GCC Ia32/ReadMm4.S | GCC Ia32/ReadMm3.S | GCC Ia32/ReadMm2.S | GCC Ia32/ReadMm1.S | GCC Ia32/ReadMm0.S | GCC Ia32/FxRestore.S | GCC Ia32/FxSave.S | GCC Ia32/WriteLdtr.S | GCC Ia32/ReadLdtr.S | GCC Ia32/WriteIdtr.S | GCC Ia32/ReadIdtr.S | GCC Ia32/WriteGdtr.S | GCC Ia32/ReadGdtr.S | GCC Ia32/ReadTr.S | GCC Ia32/ReadSs.S | GCC Ia32/ReadGs.S | GCC Ia32/ReadFs.S | GCC Ia32/ReadEs.S | GCC Ia32/ReadDs.S | GCC Ia32/ReadCs.S | GCC Ia32/WriteDr7.S | GCC Ia32/WriteDr6.S | GCC Ia32/WriteDr5.S | GCC Ia32/WriteDr4.S | GCC Ia32/WriteDr3.S | GCC Ia32/WriteDr2.S | GCC Ia32/WriteDr1.S | GCC Ia32/WriteDr0.S | GCC Ia32/ReadDr7.S | GCC Ia32/ReadDr6.S | GCC Ia32/ReadDr5.S | GCC Ia32/ReadDr4.S | GCC Ia32/ReadDr3.S | GCC Ia32/ReadDr2.S | GCC Ia32/ReadDr1.S | GCC Ia32/ReadDr0.S | GCC Ia32/WriteCr4.S | GCC Ia32/WriteCr3.S | GCC Ia32/WriteCr2.S | GCC Ia32/WriteCr0.S | GCC Ia32/ReadCr4.S | GCC Ia32/ReadCr3.S | GCC Ia32/ReadCr2.S | GCC Ia32/ReadCr0.S | GCC Ia32/WriteMsr64.S | GCC Ia32/ReadMsr64.S | GCC Ia32/ReadEflags.S | GCC Ia32/CpuIdEx.S | GCC Ia32/CpuId.S | GCC Ia32/LongJump.S | GCC Ia32/SetJump.S | GCC Ia32/SwapBytes64.S | GCC Ia32/DivU64x64Remainder.S | GCC Ia32/DivU64x32Remainder.S | GCC Ia32/ModU64x32.S | GCC Ia32/DivU64x32.S | GCC Ia32/MultU64x64.S | GCC Ia32/MultU64x32.S | GCC Ia32/RRotU64.S | GCC Ia32/LRotU64.S | GCC Ia32/ARShiftU64.S | GCC Ia32/RShiftU64.S | GCC Ia32/LShiftU64.S | GCC Ia32/EnableCache.S | GCC Ia32/DisableCache.S | GCC Ia32/DivS64x64Remainder.c Ia32/InternalSwitchStack.c Ia32/Non-existing.c Unaligned.c X86WriteIdtr.c X86WriteGdtr.c X86Thunk.c X86ReadIdtr.c X86ReadGdtr.c X86Msr.c X86MemoryFence.c X86GetInterruptState.c X86FxSave.c X86FxRestore.c X86EnablePaging64.c X86EnablePaging32.c X86DisablePaging64.c X86DisablePaging32.c [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 X86GetInterruptState.c X86FxSave.c X86FxRestore.c X86EnablePaging64.c X86EnablePaging32.c X86DisablePaging64.c X86DisablePaging32.c X64/WriteMsr64.S | GCC X64/WriteMm7.S | GCC X64/WriteMm6.S | GCC X64/WriteMm5.S | GCC X64/WriteMm4.S | GCC X64/WriteMm3.S | GCC X64/WriteMm2.S | GCC X64/WriteMm1.S | GCC X64/WriteMm0.S | GCC X64/WriteLdtr.S | GCC X64/WriteIdtr.S | GCC X64/WriteGdtr.S | GCC X64/WriteDr7.S | GCC X64/WriteDr6.S | GCC X64/WriteDr5.S | GCC X64/WriteDr4.S | GCC X64/WriteDr3.S | GCC X64/WriteDr2.S | GCC X64/WriteDr1.S | GCC X64/WriteDr0.S | GCC X64/WriteCr4.S | GCC X64/WriteCr3.S | GCC X64/WriteCr2.S | GCC X64/WriteCr0.S | GCC X64/Wbinvd.S | GCC X64/Thunk16.S | GCC X64/SwitchStack.S | GCC X64/SetJump.S | GCC X64/ReadTsc.S | GCC X64/ReadTr.S | GCC X64/ReadSs.S | GCC X64/ReadPmc.S | GCC X64/ReadMsr64.S | GCC X64/ReadMm7.S | GCC X64/ReadMm6.S | GCC X64/ReadMm5.S | GCC X64/ReadMm4.S | GCC X64/ReadMm3.S | GCC X64/ReadMm2.S | GCC X64/ReadMm1.S | GCC X64/ReadMm0.S | GCC X64/ReadLdtr.S | GCC X64/ReadIdtr.S | GCC X64/ReadGs.S | GCC X64/ReadGdtr.S | GCC X64/ReadFs.S | GCC X64/ReadEs.S | GCC X64/ReadEflags.S | GCC X64/ReadDs.S | GCC X64/ReadDr7.S | GCC X64/ReadDr6.S | GCC X64/ReadDr5.S | GCC X64/ReadDr4.S | GCC X64/ReadDr3.S | GCC X64/ReadDr2.S | GCC X64/ReadDr1.S | GCC X64/ReadDr0.S | GCC X64/ReadCs.S | GCC X64/ReadCr4.S | GCC X64/ReadCr3.S | GCC X64/ReadCr2.S | GCC X64/ReadCr0.S | GCC X64/Mwait.S | GCC X64/Monitor.S | GCC X64/LongJump.S | GCC X64/Invd.S | GCC X64/FxSave.S | GCC X64/FxRestore.S | GCC X64/FlushCacheLine.S | GCC X64/EnableInterrupts.S | GCC X64/EnableDisableInterrupts.S | GCC X64/DisablePaging64.S | GCC X64/DisableInterrupts.S | GCC X64/CpuPause.S | GCC X64/CpuId.S | GCC X64/CpuIdEx.S | GCC X64/CpuBreakpoint.S | GCC X64/EnableCache.S | GCC X64/DisableCache.S | GCC ChkStkGcc.c | GCC [Sources.IPF] Ipf/AccessGp.s Ipf/ReadCpuid.s Ipf/ExecFc.s Ipf/AsmPalCall.s Ipf/AccessPsr.s Ipf/AccessPmr.s Ipf/AccessKr.s Ipf/AccessKr7.s Ipf/AccessGcr.s Ipf/AccessEicr.s Ipf/AccessDbr.s Ipf/AccessMsr.s | INTEL Ipf/AccessMsr.s | GCC Ipf/AccessMsrDb.s | MSFT Ipf/InternalFlushCacheRange.s Ipf/FlushCacheRange.c Ipf/InternalSwitchStack.c Ipf/GetInterruptState.s Ipf/CpuPause.s Ipf/CpuBreakpoint.c | INTEL Ipf/CpuBreakpointMsc.c | MSFT Ipf/AsmCpuMisc.s | GCC Ipf/Unaligned.c Ipf/SwitchStack.s Ipf/LongJmp.s Ipf/SetJmp.s Ipf/ReadCr.s Ipf/ReadAr.s Ipf/Ia64gen.h Ipf/Asm.h Math64.c [Sources.EBC] Ebc/CpuBreakpoint.c Ebc/SetJumpLongJump.c Ebc/SwitchStack.c Unaligned.c Math64.c [Sources.ARM] Arm/InternalSwitchStack.c Arm/Unaligned.c Math64.c | RVCT Arm/SwitchStack.asm | RVCT Arm/SetJumpLongJump.asm | RVCT Arm/DisableInterrupts.asm | RVCT Arm/EnableInterrupts.asm | RVCT Arm/GetInterruptsState.asm | RVCT Arm/CpuPause.asm | RVCT Arm/CpuBreakpoint.asm | RVCT Arm/Math64.S | GCC Arm/GccInline.c | GCC Arm/EnableInterrupts.S | GCC Arm/DisableInterrupts.S | GCC Arm/GetInterruptsState.S | GCC Arm/SetJumpLongJump.S | GCC Arm/CpuBreakpoint.S | GCC [Packages] MdePkg/MdePkg.dec [LibraryClasses] PcdLib DebugLib BaseMemoryLib [Pcd] gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList