1## @file 2# Base Library implementation. 3# 4# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR> 5# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> 6# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> 7# 8# This program and the accompanying materials 9# are licensed and made available under the terms and conditions of the BSD License 10# which accompanies this distribution. The full text of the license may be found at 11# http://opensource.org/licenses/bsd-license.php. 12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14# 15# 16## 17 18[Defines] 19 INF_VERSION = 0x00010005 20 BASE_NAME = BaseLib 21 MODULE_UNI_FILE = BaseLib.uni 22 FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30 23 MODULE_TYPE = BASE 24 VERSION_STRING = 1.1 25 LIBRARY_CLASS = BaseLib 26 27# 28# VALID_ARCHITECTURES = IA32 X64 IPF EBC ARM AARCH64 29# 30 31[Sources] 32 CheckSum.c 33 SwitchStack.c 34 SwapBytes64.c 35 SwapBytes32.c 36 SwapBytes16.c 37 LongJump.c 38 SetJump.c 39 RShiftU64.c 40 RRotU64.c 41 RRotU32.c 42 MultU64x64.c 43 MultU64x32.c 44 MultS64x64.c 45 ModU64x32.c 46 LShiftU64.c 47 LRotU64.c 48 LRotU32.c 49 LowBitSet64.c 50 LowBitSet32.c 51 HighBitSet64.c 52 HighBitSet32.c 53 GetPowerOfTwo64.c 54 GetPowerOfTwo32.c 55 DivU64x64Remainder.c 56 DivU64x32Remainder.c 57 DivU64x32.c 58 DivS64x64Remainder.c 59 ARShiftU64.c 60 BitField.c 61 CpuDeadLoop.c 62 Cpu.c 63 LinkedList.c 64 SafeString.c 65 String.c 66 FilePaths.c 67 BaseLibInternals.h 68 69[Sources.Ia32] 70 Ia32/Wbinvd.c | MSFT 71 Ia32/WriteMm7.c | MSFT 72 Ia32/WriteMm6.c | MSFT 73 Ia32/WriteMm5.c | MSFT 74 Ia32/WriteMm4.c | MSFT 75 Ia32/WriteMm3.c | MSFT 76 Ia32/WriteMm2.c | MSFT 77 Ia32/WriteMm1.c | MSFT 78 Ia32/WriteMm0.c | MSFT 79 Ia32/WriteLdtr.c | MSFT 80 Ia32/WriteIdtr.c | MSFT 81 Ia32/WriteGdtr.c | MSFT 82 Ia32/WriteDr7.c | MSFT 83 Ia32/WriteDr6.c | MSFT 84 Ia32/WriteDr5.c | MSFT 85 Ia32/WriteDr4.c | MSFT 86 Ia32/WriteDr3.c | MSFT 87 Ia32/WriteDr2.c | MSFT 88 Ia32/WriteDr1.c | MSFT 89 Ia32/WriteDr0.c | MSFT 90 Ia32/WriteCr4.c | MSFT 91 Ia32/WriteCr3.c | MSFT 92 Ia32/WriteCr2.c | MSFT 93 Ia32/WriteCr0.c | MSFT 94 Ia32/WriteMsr64.c | MSFT 95 Ia32/SwapBytes64.c | MSFT 96 Ia32/SetJump.c | MSFT 97 Ia32/RRotU64.c | MSFT 98 Ia32/RShiftU64.c | MSFT 99 Ia32/ReadPmc.c | MSFT 100 Ia32/ReadTsc.c | MSFT 101 Ia32/ReadLdtr.c | MSFT 102 Ia32/ReadIdtr.c | MSFT 103 Ia32/ReadGdtr.c | MSFT 104 Ia32/ReadTr.c | MSFT 105 Ia32/ReadSs.c | MSFT 106 Ia32/ReadGs.c | MSFT 107 Ia32/ReadFs.c | MSFT 108 Ia32/ReadEs.c | MSFT 109 Ia32/ReadDs.c | MSFT 110 Ia32/ReadCs.c | MSFT 111 Ia32/ReadMsr64.c | MSFT 112 Ia32/ReadMm7.c | MSFT 113 Ia32/ReadMm6.c | MSFT 114 Ia32/ReadMm5.c | MSFT 115 Ia32/ReadMm4.c | MSFT 116 Ia32/ReadMm3.c | MSFT 117 Ia32/ReadMm2.c | MSFT 118 Ia32/ReadMm1.c | MSFT 119 Ia32/ReadMm0.c | MSFT 120 Ia32/ReadEflags.c | MSFT 121 Ia32/ReadDr7.c | MSFT 122 Ia32/ReadDr6.c | MSFT 123 Ia32/ReadDr5.c | MSFT 124 Ia32/ReadDr4.c | MSFT 125 Ia32/ReadDr3.c | MSFT 126 Ia32/ReadDr2.c | MSFT 127 Ia32/ReadDr1.c | MSFT 128 Ia32/ReadDr0.c | MSFT 129 Ia32/ReadCr4.c | MSFT 130 Ia32/ReadCr3.c | MSFT 131 Ia32/ReadCr2.c | MSFT 132 Ia32/ReadCr0.c | MSFT 133 Ia32/Mwait.c | MSFT 134 Ia32/Monitor.c | MSFT 135 Ia32/ModU64x32.c | MSFT 136 Ia32/MultU64x64.c | MSFT 137 Ia32/MultU64x32.c | MSFT 138 Ia32/LShiftU64.c | MSFT 139 Ia32/LRotU64.c | MSFT 140 Ia32/LongJump.c | MSFT 141 Ia32/Invd.c | MSFT 142 Ia32/FxRestore.c | MSFT 143 Ia32/FxSave.c | MSFT 144 Ia32/FlushCacheLine.c | MSFT 145 Ia32/EnablePaging32.c | MSFT 146 Ia32/EnableInterrupts.c | MSFT 147 Ia32/EnableDisableInterrupts.c | MSFT 148 Ia32/DivU64x64Remainder.asm | MSFT 149 Ia32/DivU64x32Remainder.c | MSFT 150 Ia32/DivU64x32.c | MSFT 151 Ia32/DisablePaging32.c | MSFT 152 Ia32/DisableInterrupts.c | MSFT 153 Ia32/CpuPause.c | MSFT 154 Ia32/CpuIdEx.c | MSFT 155 Ia32/CpuId.c | MSFT 156 Ia32/CpuBreakpoint.c | MSFT 157 Ia32/ARShiftU64.c | MSFT 158 Ia32/Thunk16.asm | MSFT 159 Ia32/EnablePaging64.asm | MSFT 160 Ia32/EnableCache.c | MSFT 161 Ia32/DisableCache.c | MSFT 162 Ia32/RdRand.asm | MSFT 163 164 Ia32/Wbinvd.asm | INTEL 165 Ia32/WriteMm7.asm | INTEL 166 Ia32/WriteMm6.asm | INTEL 167 Ia32/WriteMm5.asm | INTEL 168 Ia32/WriteMm4.asm | INTEL 169 Ia32/WriteMm3.asm | INTEL 170 Ia32/WriteMm2.asm | INTEL 171 Ia32/WriteMm1.asm | INTEL 172 Ia32/WriteMm0.asm | INTEL 173 Ia32/WriteLdtr.asm | INTEL 174 Ia32/WriteIdtr.asm | INTEL 175 Ia32/WriteGdtr.asm | INTEL 176 Ia32/WriteDr7.asm | INTEL 177 Ia32/WriteDr6.asm | INTEL 178 Ia32/WriteDr5.asm | INTEL 179 Ia32/WriteDr4.asm | INTEL 180 Ia32/WriteDr3.asm | INTEL 181 Ia32/WriteDr2.asm | INTEL 182 Ia32/WriteDr1.asm | INTEL 183 Ia32/WriteDr0.asm | INTEL 184 Ia32/WriteCr4.asm | INTEL 185 Ia32/WriteCr3.asm | INTEL 186 Ia32/WriteCr2.asm | INTEL 187 Ia32/WriteCr0.asm | INTEL 188 Ia32/WriteMsr64.asm | INTEL 189 Ia32/SwapBytes64.asm | INTEL 190 Ia32/SetJump.asm | INTEL 191 Ia32/RRotU64.asm | INTEL 192 Ia32/RShiftU64.asm | INTEL 193 Ia32/ReadPmc.asm | INTEL 194 Ia32/ReadTsc.asm | INTEL 195 Ia32/ReadLdtr.asm | INTEL 196 Ia32/ReadIdtr.asm | INTEL 197 Ia32/ReadGdtr.asm | INTEL 198 Ia32/ReadTr.asm | INTEL 199 Ia32/ReadSs.asm | INTEL 200 Ia32/ReadGs.asm | INTEL 201 Ia32/ReadFs.asm | INTEL 202 Ia32/ReadEs.asm | INTEL 203 Ia32/ReadDs.asm | INTEL 204 Ia32/ReadCs.asm | INTEL 205 Ia32/ReadMsr64.asm | INTEL 206 Ia32/ReadMm7.asm | INTEL 207 Ia32/ReadMm6.asm | INTEL 208 Ia32/ReadMm5.asm | INTEL 209 Ia32/ReadMm4.asm | INTEL 210 Ia32/ReadMm3.asm | INTEL 211 Ia32/ReadMm2.asm | INTEL 212 Ia32/ReadMm1.asm | INTEL 213 Ia32/ReadMm0.asm | INTEL 214 Ia32/ReadEflags.asm | INTEL 215 Ia32/ReadDr7.asm | INTEL 216 Ia32/ReadDr6.asm | INTEL 217 Ia32/ReadDr5.asm | INTEL 218 Ia32/ReadDr4.asm | INTEL 219 Ia32/ReadDr3.asm | INTEL 220 Ia32/ReadDr2.asm | INTEL 221 Ia32/ReadDr1.asm | INTEL 222 Ia32/ReadDr0.asm | INTEL 223 Ia32/ReadCr4.asm | INTEL 224 Ia32/ReadCr3.asm | INTEL 225 Ia32/ReadCr2.asm | INTEL 226 Ia32/ReadCr0.asm | INTEL 227 Ia32/Mwait.asm | INTEL 228 Ia32/Monitor.asm | INTEL 229 Ia32/ModU64x32.asm | INTEL 230 Ia32/MultU64x64.asm | INTEL 231 Ia32/MultU64x32.asm | INTEL 232 Ia32/LShiftU64.asm | INTEL 233 Ia32/LRotU64.asm | INTEL 234 Ia32/LongJump.asm | INTEL 235 Ia32/Invd.asm | INTEL 236 Ia32/FxRestore.asm | INTEL 237 Ia32/FxSave.asm | INTEL 238 Ia32/FlushCacheLine.asm | INTEL 239 Ia32/EnablePaging32.asm | INTEL 240 Ia32/EnableInterrupts.asm | INTEL 241 Ia32/EnableDisableInterrupts.asm | INTEL 242 Ia32/DivU64x64Remainder.asm | INTEL 243 Ia32/DivU64x32Remainder.asm | INTEL 244 Ia32/DivU64x32.asm | INTEL 245 Ia32/DisablePaging32.asm | INTEL 246 Ia32/DisableInterrupts.asm | INTEL 247 Ia32/CpuPause.asm | INTEL 248 Ia32/CpuIdEx.asm | INTEL 249 Ia32/CpuId.asm | INTEL 250 Ia32/CpuBreakpoint.asm | INTEL 251 Ia32/ARShiftU64.asm | INTEL 252 Ia32/Thunk16.asm | INTEL 253 Ia32/EnablePaging64.asm | INTEL 254 Ia32/EnableCache.asm | INTEL 255 Ia32/DisableCache.asm | INTEL 256 Ia32/RdRand.asm | INTEL 257 258 Ia32/GccInline.c | GCC 259 Ia32/Thunk16.nasm | GCC 260 Ia32/Thunk16.S | XCODE 261 Ia32/EnableDisableInterrupts.S | GCC 262 Ia32/EnablePaging64.S | GCC 263 Ia32/DisablePaging32.S | GCC 264 Ia32/EnablePaging32.S | GCC 265 Ia32/Mwait.S | GCC 266 Ia32/Monitor.S | GCC 267 Ia32/CpuIdEx.S | GCC 268 Ia32/CpuId.S | GCC 269 Ia32/LongJump.S | GCC 270 Ia32/SetJump.S | GCC 271 Ia32/SwapBytes64.S | GCC 272 Ia32/DivU64x64Remainder.S | GCC 273 Ia32/DivU64x32Remainder.S | GCC 274 Ia32/ModU64x32.S | GCC 275 Ia32/DivU64x32.S | GCC 276 Ia32/MultU64x64.S | GCC 277 Ia32/MultU64x32.S | GCC 278 Ia32/RRotU64.S | GCC 279 Ia32/LRotU64.S | GCC 280 Ia32/ARShiftU64.S | GCC 281 Ia32/RShiftU64.S | GCC 282 Ia32/LShiftU64.S | GCC 283 Ia32/EnableCache.S | GCC 284 Ia32/DisableCache.S | GCC 285 Ia32/RdRand.S | GCC 286 287 Ia32/DivS64x64Remainder.c 288 Ia32/InternalSwitchStack.c | MSFT 289 Ia32/InternalSwitchStack.c | INTEL 290 Ia32/InternalSwitchStack.S | GCC 291 Ia32/Non-existing.c 292 Unaligned.c 293 X86WriteIdtr.c 294 X86WriteGdtr.c 295 X86Thunk.c 296 X86ReadIdtr.c 297 X86ReadGdtr.c 298 X86Msr.c 299 X86MemoryFence.c | MSFT 300 X86MemoryFence.c | INTEL 301 X86GetInterruptState.c 302 X86FxSave.c 303 X86FxRestore.c 304 X86EnablePaging64.c 305 X86EnablePaging32.c 306 X86DisablePaging64.c 307 X86DisablePaging32.c 308 309[Sources.X64] 310 X64/Thunk16.asm 311 X64/CpuPause.asm 312 X64/EnableDisableInterrupts.asm 313 X64/DisableInterrupts.asm 314 X64/EnableInterrupts.asm 315 X64/FlushCacheLine.asm 316 X64/Invd.asm 317 X64/Wbinvd.asm 318 X64/DisablePaging64.asm 319 X64/Mwait.asm 320 X64/Monitor.asm 321 X64/ReadPmc.asm 322 X64/ReadTsc.asm 323 X64/WriteMm7.asm 324 X64/WriteMm6.asm 325 X64/WriteMm5.asm 326 X64/WriteMm4.asm 327 X64/WriteMm3.asm 328 X64/WriteMm2.asm 329 X64/WriteMm1.asm 330 X64/WriteMm0.asm 331 X64/ReadMm7.asm 332 X64/ReadMm6.asm 333 X64/ReadMm5.asm 334 X64/ReadMm4.asm 335 X64/ReadMm3.asm 336 X64/ReadMm2.asm 337 X64/ReadMm1.asm 338 X64/ReadMm0.asm 339 X64/FxRestore.asm 340 X64/FxSave.asm 341 X64/WriteLdtr.asm 342 X64/ReadLdtr.asm 343 X64/WriteIdtr.asm 344 X64/ReadIdtr.asm 345 X64/WriteGdtr.asm 346 X64/ReadGdtr.asm 347 X64/ReadTr.asm 348 X64/ReadSs.asm 349 X64/ReadGs.asm 350 X64/ReadFs.asm 351 X64/ReadEs.asm 352 X64/ReadDs.asm 353 X64/ReadCs.asm 354 X64/WriteDr7.asm 355 X64/WriteDr6.asm 356 X64/WriteDr5.asm 357 X64/WriteDr4.asm 358 X64/WriteDr3.asm 359 X64/WriteDr2.asm 360 X64/WriteDr1.asm 361 X64/WriteDr0.asm 362 X64/ReadDr7.asm 363 X64/ReadDr6.asm 364 X64/ReadDr5.asm 365 X64/ReadDr4.asm 366 X64/ReadDr3.asm 367 X64/ReadDr2.asm 368 X64/ReadDr1.asm 369 X64/ReadDr0.asm 370 X64/WriteCr4.asm 371 X64/WriteCr3.asm 372 X64/WriteCr2.asm 373 X64/WriteCr0.asm 374 X64/ReadCr4.asm 375 X64/ReadCr3.asm 376 X64/ReadCr2.asm 377 X64/ReadCr0.asm 378 X64/ReadEflags.asm 379 X64/CpuIdEx.asm 380 X64/CpuId.asm 381 X64/LongJump.asm 382 X64/SetJump.asm 383 X64/SwitchStack.asm 384 X64/EnableCache.asm 385 X64/DisableCache.asm 386 387 X64/CpuBreakpoint.c | MSFT 388 X64/WriteMsr64.c | MSFT 389 X64/ReadMsr64.c | MSFT 390 X64/RdRand.asm | MSFT 391 392 X64/CpuBreakpoint.asm | INTEL 393 X64/WriteMsr64.asm | INTEL 394 X64/ReadMsr64.asm | INTEL 395 X64/RdRand.asm | INTEL 396 397 X64/Non-existing.c 398 Math64.c 399 Unaligned.c 400 X86WriteIdtr.c 401 X86WriteGdtr.c 402 X86Thunk.c 403 X86ReadIdtr.c 404 X86ReadGdtr.c 405 X86Msr.c 406 X86MemoryFence.c | MSFT 407 X86MemoryFence.c | INTEL 408 X86GetInterruptState.c 409 X86FxSave.c 410 X86FxRestore.c 411 X86EnablePaging64.c 412 X86EnablePaging32.c 413 X86DisablePaging64.c 414 X86DisablePaging32.c 415 X64/GccInline.c | GCC 416 X64/Thunk16.nasm | GCC 417 X64/Thunk16.S | XCODE 418 X64/SwitchStack.S | GCC 419 X64/SetJump.S | GCC 420 X64/LongJump.S | GCC 421 X64/EnableDisableInterrupts.S | GCC 422 X64/DisablePaging64.S | GCC 423 X64/CpuId.S | GCC 424 X64/CpuIdEx.S | GCC 425 X64/EnableCache.S | GCC 426 X64/DisableCache.S | GCC 427 X64/RdRand.S | GCC 428 ChkStkGcc.c | GCC 429 430[Sources.IPF] 431 Ipf/AccessGp.s 432 Ipf/ReadCpuid.s 433 Ipf/ExecFc.s 434 Ipf/AsmPalCall.s 435 Ipf/AccessPsr.s 436 Ipf/AccessPmr.s 437 Ipf/AccessKr.s 438 Ipf/AccessKr7.s 439 Ipf/AccessGcr.s 440 Ipf/AccessEicr.s 441 Ipf/AccessDbr.s 442 Ipf/AccessMsr.s | INTEL 443 Ipf/AccessMsr.s | GCC 444 Ipf/AccessMsrDb.s | MSFT 445 Ipf/InternalFlushCacheRange.s 446 Ipf/FlushCacheRange.c 447 Ipf/InternalSwitchStack.c 448 Ipf/GetInterruptState.s 449 Ipf/CpuPause.s 450 Ipf/CpuBreakpoint.c | INTEL 451 Ipf/CpuBreakpointMsc.c | MSFT 452 Ipf/AsmCpuMisc.s | GCC 453 Ipf/Unaligned.c 454 Ipf/SwitchStack.s 455 Ipf/LongJmp.s 456 Ipf/SetJmp.s 457 Ipf/ReadCr.s 458 Ipf/ReadAr.s 459 Ipf/Ia64gen.h 460 Ipf/Asm.h 461 Math64.c 462 463[Sources.EBC] 464 Ebc/CpuBreakpoint.c 465 Ebc/SetJumpLongJump.c 466 Ebc/SwitchStack.c 467 Unaligned.c 468 Math64.c 469 470[Sources.ARM] 471 Arm/InternalSwitchStack.c 472 Arm/Unaligned.c 473 Math64.c | RVCT 474 475 Arm/SwitchStack.asm | RVCT 476 Arm/SetJumpLongJump.asm | RVCT 477 Arm/DisableInterrupts.asm | RVCT 478 Arm/EnableInterrupts.asm | RVCT 479 Arm/GetInterruptsState.asm | RVCT 480 Arm/CpuPause.asm | RVCT 481 Arm/CpuBreakpoint.asm | RVCT 482 Arm/MemoryFence.asm | RVCT 483 484 Arm/Math64.S | GCC 485 Arm/SwitchStack.S | GCC 486 Arm/EnableInterrupts.S | GCC 487 Arm/DisableInterrupts.S | GCC 488 Arm/GetInterruptsState.S | GCC 489 Arm/SetJumpLongJump.S | GCC 490 Arm/CpuBreakpoint.S | GCC 491 Arm/MemoryFence.S | GCC 492 493[Sources.AARCH64] 494 Arm/InternalSwitchStack.c 495 Arm/Unaligned.c 496 Math64.c 497 498 AArch64/MemoryFence.S | GCC 499 AArch64/SwitchStack.S | GCC 500 AArch64/EnableInterrupts.S | GCC 501 AArch64/DisableInterrupts.S | GCC 502 AArch64/GetInterruptsState.S | GCC 503 AArch64/SetJumpLongJump.S | GCC 504 AArch64/CpuBreakpoint.S | GCC 505 506[Packages] 507 MdePkg/MdePkg.dec 508 509[LibraryClasses] 510 PcdLib 511 DebugLib 512 BaseMemoryLib 513 514[Pcd] 515 gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMETIMES_CONSUMES 516 gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES 517 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES 518 gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask ## SOMETIMES_CONSUMES 519 520[FeaturePcd] 521 gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList ## CONSUMES 522