2 # Base Library implementation.
4 # Copyright (c) 2007 - 2018, 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>
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.
19 INF_VERSION = 0x00010005
21 MODULE_UNI_FILE = BaseLib.uni
22 FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30
25 LIBRARY_CLASS = BaseLib
28 # VALID_ARCHITECTURES = IA32 X64 EBC ARM AARCH64
74 Ia32/WriteMm7.c | MSFT
75 Ia32/WriteMm6.c | MSFT
76 Ia32/WriteMm5.c | MSFT
77 Ia32/WriteMm4.c | MSFT
78 Ia32/WriteMm3.c | MSFT
79 Ia32/WriteMm2.c | MSFT
80 Ia32/WriteMm1.c | MSFT
81 Ia32/WriteMm0.c | MSFT
82 Ia32/WriteLdtr.c | MSFT
83 Ia32/WriteIdtr.c | MSFT
84 Ia32/WriteGdtr.c | MSFT
85 Ia32/WriteDr7.c | MSFT
86 Ia32/WriteDr6.c | MSFT
87 Ia32/WriteDr5.c | MSFT
88 Ia32/WriteDr4.c | MSFT
89 Ia32/WriteDr3.c | MSFT
90 Ia32/WriteDr2.c | MSFT
91 Ia32/WriteDr1.c | MSFT
92 Ia32/WriteDr0.c | MSFT
93 Ia32/WriteCr4.c | MSFT
94 Ia32/WriteCr3.c | MSFT
95 Ia32/WriteCr2.c | MSFT
96 Ia32/WriteCr0.c | MSFT
97 Ia32/WriteMsr64.c | MSFT
98 Ia32/SwapBytes64.c | MSFT
100 Ia32/RRotU64.c | MSFT
101 Ia32/RShiftU64.c | MSFT
102 Ia32/ReadPmc.c | MSFT
103 Ia32/ReadTsc.c | MSFT
104 Ia32/ReadLdtr.c | MSFT
105 Ia32/ReadIdtr.c | MSFT
106 Ia32/ReadGdtr.c | MSFT
114 Ia32/ReadMsr64.c | MSFT
115 Ia32/ReadMm7.c | MSFT
116 Ia32/ReadMm6.c | MSFT
117 Ia32/ReadMm5.c | MSFT
118 Ia32/ReadMm4.c | MSFT
119 Ia32/ReadMm3.c | MSFT
120 Ia32/ReadMm2.c | MSFT
121 Ia32/ReadMm1.c | MSFT
122 Ia32/ReadMm0.c | MSFT
123 Ia32/ReadEflags.c | MSFT
124 Ia32/ReadDr7.c | MSFT
125 Ia32/ReadDr6.c | MSFT
126 Ia32/ReadDr5.c | MSFT
127 Ia32/ReadDr4.c | MSFT
128 Ia32/ReadDr3.c | MSFT
129 Ia32/ReadDr2.c | MSFT
130 Ia32/ReadDr1.c | MSFT
131 Ia32/ReadDr0.c | MSFT
132 Ia32/ReadCr4.c | MSFT
133 Ia32/ReadCr3.c | MSFT
134 Ia32/ReadCr2.c | MSFT
135 Ia32/ReadCr0.c | MSFT
137 Ia32/Monitor.c | MSFT
138 Ia32/ModU64x32.c | MSFT
139 Ia32/MultU64x64.c | MSFT
140 Ia32/MultU64x32.c | MSFT
141 Ia32/LShiftU64.c | MSFT
142 Ia32/LRotU64.c | MSFT
143 Ia32/LongJump.c | MSFT
145 Ia32/FxRestore.c | MSFT
147 Ia32/FlushCacheLine.c | MSFT
148 Ia32/EnablePaging32.c | MSFT
149 Ia32/EnableInterrupts.c | MSFT
150 Ia32/EnableDisableInterrupts.c | MSFT
151 Ia32/DivU64x64Remainder.nasm| MSFT
152 Ia32/DivU64x32Remainder.c | MSFT
153 Ia32/DivU64x32.c | MSFT
154 Ia32/DisablePaging32.c | MSFT
155 Ia32/DisableInterrupts.c | MSFT
156 Ia32/CpuPause.c | MSFT
157 Ia32/CpuIdEx.c | MSFT
159 Ia32/CpuBreakpoint.c | MSFT
160 Ia32/ARShiftU64.c | MSFT
161 Ia32/Thunk16.nasm | MSFT
162 Ia32/EnablePaging64.nasm| MSFT
163 Ia32/EnableCache.c | MSFT
164 Ia32/DisableCache.c | MSFT
165 Ia32/RdRand.nasm| MSFT
167 Ia32/Wbinvd.nasm| INTEL
168 Ia32/WriteMm7.nasm| INTEL
169 Ia32/WriteMm6.nasm| INTEL
170 Ia32/WriteMm5.nasm| INTEL
171 Ia32/WriteMm4.nasm| INTEL
172 Ia32/WriteMm3.nasm| INTEL
173 Ia32/WriteMm2.nasm| INTEL
174 Ia32/WriteMm1.nasm| INTEL
175 Ia32/WriteMm0.nasm| INTEL
176 Ia32/WriteLdtr.nasm| INTEL
177 Ia32/WriteIdtr.nasm| INTEL
178 Ia32/WriteGdtr.nasm| INTEL
179 Ia32/WriteDr7.nasm| INTEL
180 Ia32/WriteDr6.nasm| INTEL
181 Ia32/WriteDr5.nasm| INTEL
182 Ia32/WriteDr4.nasm| INTEL
183 Ia32/WriteDr3.nasm| INTEL
184 Ia32/WriteDr2.nasm| INTEL
185 Ia32/WriteDr1.nasm| INTEL
186 Ia32/WriteDr0.nasm| INTEL
187 Ia32/WriteCr4.nasm| INTEL
188 Ia32/WriteCr3.nasm| INTEL
189 Ia32/WriteCr2.nasm| INTEL
190 Ia32/WriteCr0.nasm| INTEL
191 Ia32/WriteMsr64.nasm| INTEL
192 Ia32/SwapBytes64.nasm| INTEL
193 Ia32/SetJump.nasm| INTEL
194 Ia32/RRotU64.nasm| INTEL
195 Ia32/RShiftU64.nasm| INTEL
196 Ia32/ReadPmc.nasm| INTEL
197 Ia32/ReadTsc.nasm| INTEL
198 Ia32/ReadLdtr.nasm| INTEL
199 Ia32/ReadIdtr.nasm| INTEL
200 Ia32/ReadGdtr.nasm| INTEL
201 Ia32/ReadTr.nasm| INTEL
202 Ia32/ReadSs.nasm| INTEL
203 Ia32/ReadGs.nasm| INTEL
204 Ia32/ReadFs.nasm| INTEL
205 Ia32/ReadEs.nasm| INTEL
206 Ia32/ReadDs.nasm| INTEL
207 Ia32/ReadCs.nasm| INTEL
208 Ia32/ReadMsr64.nasm| INTEL
209 Ia32/ReadMm7.nasm| INTEL
210 Ia32/ReadMm6.nasm| INTEL
211 Ia32/ReadMm5.nasm| INTEL
212 Ia32/ReadMm4.nasm| INTEL
213 Ia32/ReadMm3.nasm| INTEL
214 Ia32/ReadMm2.nasm| INTEL
215 Ia32/ReadMm1.nasm| INTEL
216 Ia32/ReadMm0.nasm| INTEL
217 Ia32/ReadEflags.nasm| INTEL
218 Ia32/ReadDr7.nasm| INTEL
219 Ia32/ReadDr6.nasm| INTEL
220 Ia32/ReadDr5.nasm| INTEL
221 Ia32/ReadDr4.nasm| INTEL
222 Ia32/ReadDr3.nasm| INTEL
223 Ia32/ReadDr2.nasm| INTEL
224 Ia32/ReadDr1.nasm| INTEL
225 Ia32/ReadDr0.nasm| INTEL
226 Ia32/ReadCr4.nasm| INTEL
227 Ia32/ReadCr3.nasm| INTEL
228 Ia32/ReadCr2.nasm| INTEL
229 Ia32/ReadCr0.nasm| INTEL
230 Ia32/Mwait.nasm| INTEL
231 Ia32/Monitor.nasm| INTEL
232 Ia32/ModU64x32.nasm| INTEL
233 Ia32/MultU64x64.nasm| INTEL
234 Ia32/MultU64x32.nasm| INTEL
235 Ia32/LShiftU64.nasm| INTEL
236 Ia32/LRotU64.nasm| INTEL
237 Ia32/LongJump.nasm| INTEL
238 Ia32/Invd.nasm| INTEL
239 Ia32/FxRestore.nasm| INTEL
240 Ia32/FxSave.nasm| INTEL
241 Ia32/FlushCacheLine.nasm| INTEL
242 Ia32/EnablePaging32.nasm| INTEL
243 Ia32/EnableInterrupts.nasm| INTEL
244 Ia32/EnableDisableInterrupts.nasm| INTEL
245 Ia32/DivU64x64Remainder.nasm| INTEL
246 Ia32/DivU64x32Remainder.nasm| INTEL
247 Ia32/DivU64x32.nasm| INTEL
248 Ia32/DisablePaging32.nasm| INTEL
249 Ia32/DisableInterrupts.nasm| INTEL
250 Ia32/CpuPause.nasm| INTEL
251 Ia32/CpuIdEx.nasm| INTEL
252 Ia32/CpuId.nasm| INTEL
253 Ia32/CpuBreakpoint.nasm| INTEL
254 Ia32/ARShiftU64.nasm| INTEL
255 Ia32/Thunk16.nasm | INTEL
256 Ia32/EnablePaging64.nasm| INTEL
257 Ia32/EnableCache.nasm| INTEL
258 Ia32/DisableCache.nasm| INTEL
259 Ia32/RdRand.nasm| INTEL
261 Ia32/GccInline.c | GCC
262 Ia32/Thunk16.nasm | GCC
263 Ia32/Thunk16.S | XCODE
264 Ia32/EnableDisableInterrupts.nasm| GCC
265 Ia32/EnableDisableInterrupts.S | GCC
266 Ia32/EnablePaging64.nasm| GCC
267 Ia32/EnablePaging64.S | GCC
268 Ia32/DisablePaging32.nasm| GCC
269 Ia32/DisablePaging32.S | GCC
270 Ia32/EnablePaging32.nasm| GCC
271 Ia32/EnablePaging32.S | GCC
274 Ia32/Monitor.nasm| GCC
276 Ia32/CpuIdEx.nasm| GCC
280 Ia32/LongJump.nasm| GCC
281 Ia32/LongJump.S | GCC
282 Ia32/SetJump.nasm| GCC
284 Ia32/SwapBytes64.nasm| GCC
285 Ia32/SwapBytes64.S | GCC
286 Ia32/DivU64x64Remainder.nasm| GCC
287 Ia32/DivU64x64Remainder.S | GCC
288 Ia32/DivU64x32Remainder.nasm| GCC
289 Ia32/DivU64x32Remainder.S | GCC
290 Ia32/ModU64x32.nasm| GCC
291 Ia32/ModU64x32.S | GCC
292 Ia32/DivU64x32.nasm| GCC
293 Ia32/DivU64x32.S | GCC
294 Ia32/MultU64x64.nasm| GCC
295 Ia32/MultU64x64.S | GCC
296 Ia32/MultU64x32.nasm| GCC
297 Ia32/MultU64x32.S | GCC
298 Ia32/RRotU64.nasm| GCC
300 Ia32/LRotU64.nasm| GCC
302 Ia32/ARShiftU64.nasm| GCC
303 Ia32/ARShiftU64.S | GCC
304 Ia32/RShiftU64.nasm| GCC
305 Ia32/RShiftU64.S | GCC
306 Ia32/LShiftU64.nasm| GCC
307 Ia32/LShiftU64.S | GCC
308 Ia32/EnableCache.nasm| GCC
309 Ia32/EnableCache.S | GCC
310 Ia32/DisableCache.nasm| GCC
311 Ia32/DisableCache.S | GCC
312 Ia32/RdRand.nasm| GCC
315 Ia32/DivS64x64Remainder.c
316 Ia32/InternalSwitchStack.c | MSFT
317 Ia32/InternalSwitchStack.c | INTEL
318 Ia32/InternalSwitchStack.S | GCC
319 Ia32/InternalSwitchStack.nasm | GCC
328 X86MemoryFence.c | MSFT
329 X86MemoryFence.c | INTEL
330 X86GetInterruptState.c
338 X86PatchInstruction.c
348 X64/DisableCache.nasm
352 X64/CpuBreakpoint.c | MSFT
353 X64/WriteMsr64.c | MSFT
354 X64/ReadMsr64.c | MSFT
355 X64/RdRand.nasm| MSFT
356 X64/CpuPause.nasm| MSFT
357 X64/EnableDisableInterrupts.nasm| MSFT
358 X64/DisableInterrupts.nasm| MSFT
359 X64/EnableInterrupts.nasm| MSFT
360 X64/FlushCacheLine.nasm| MSFT
362 X64/Wbinvd.nasm| MSFT
363 X64/DisablePaging64.nasm| MSFT
365 X64/Monitor.nasm| MSFT
366 X64/ReadPmc.nasm| MSFT
367 X64/ReadTsc.nasm| MSFT
368 X64/WriteMm7.nasm| MSFT
369 X64/WriteMm6.nasm| MSFT
370 X64/WriteMm5.nasm| MSFT
371 X64/WriteMm4.nasm| MSFT
372 X64/WriteMm3.nasm| MSFT
373 X64/WriteMm2.nasm| MSFT
374 X64/WriteMm1.nasm| MSFT
375 X64/WriteMm0.nasm| MSFT
376 X64/ReadMm7.nasm| MSFT
377 X64/ReadMm6.nasm| MSFT
378 X64/ReadMm5.nasm| MSFT
379 X64/ReadMm4.nasm| MSFT
380 X64/ReadMm3.nasm| MSFT
381 X64/ReadMm2.nasm| MSFT
382 X64/ReadMm1.nasm| MSFT
383 X64/ReadMm0.nasm| MSFT
384 X64/FxRestore.nasm| MSFT
385 X64/FxSave.nasm| MSFT
386 X64/WriteLdtr.nasm| MSFT
387 X64/ReadLdtr.nasm| MSFT
388 X64/WriteIdtr.nasm| MSFT
389 X64/ReadIdtr.nasm| MSFT
390 X64/WriteGdtr.nasm| MSFT
391 X64/ReadGdtr.nasm| MSFT
392 X64/ReadTr.nasm| MSFT
393 X64/ReadSs.nasm| MSFT
394 X64/ReadGs.nasm| MSFT
395 X64/ReadFs.nasm| MSFT
396 X64/ReadEs.nasm| MSFT
397 X64/ReadDs.nasm| MSFT
398 X64/ReadCs.nasm| MSFT
399 X64/WriteDr7.nasm| MSFT
400 X64/WriteDr6.nasm| MSFT
401 X64/WriteDr5.nasm| MSFT
402 X64/WriteDr4.nasm| MSFT
403 X64/WriteDr3.nasm| MSFT
404 X64/WriteDr2.nasm| MSFT
405 X64/WriteDr1.nasm| MSFT
406 X64/WriteDr0.nasm| MSFT
407 X64/ReadDr7.nasm| MSFT
408 X64/ReadDr6.nasm| MSFT
409 X64/ReadDr5.nasm| MSFT
410 X64/ReadDr4.nasm| MSFT
411 X64/ReadDr3.nasm| MSFT
412 X64/ReadDr2.nasm| MSFT
413 X64/ReadDr1.nasm| MSFT
414 X64/ReadDr0.nasm| MSFT
415 X64/WriteCr4.nasm| MSFT
416 X64/WriteCr3.nasm| MSFT
417 X64/WriteCr2.nasm| MSFT
418 X64/WriteCr0.nasm| MSFT
419 X64/ReadCr4.nasm| MSFT
420 X64/ReadCr3.nasm| MSFT
421 X64/ReadCr2.nasm| MSFT
422 X64/ReadCr0.nasm| MSFT
423 X64/ReadEflags.nasm| MSFT
425 X64/CpuBreakpoint.nasm| INTEL
426 X64/WriteMsr64.nasm| INTEL
427 X64/ReadMsr64.nasm| INTEL
428 X64/RdRand.nasm| INTEL
429 X64/CpuPause.nasm| INTEL
430 X64/EnableDisableInterrupts.nasm| INTEL
431 X64/DisableInterrupts.nasm| INTEL
432 X64/EnableInterrupts.nasm| INTEL
433 X64/FlushCacheLine.nasm| INTEL
435 X64/Wbinvd.nasm| INTEL
436 X64/DisablePaging64.nasm| INTEL
437 X64/Mwait.nasm| INTEL
438 X64/Monitor.nasm| INTEL
439 X64/ReadPmc.nasm| INTEL
440 X64/ReadTsc.nasm| INTEL
441 X64/WriteMm7.nasm| INTEL
442 X64/WriteMm6.nasm| INTEL
443 X64/WriteMm5.nasm| INTEL
444 X64/WriteMm4.nasm| INTEL
445 X64/WriteMm3.nasm| INTEL
446 X64/WriteMm2.nasm| INTEL
447 X64/WriteMm1.nasm| INTEL
448 X64/WriteMm0.nasm| INTEL
449 X64/ReadMm7.nasm| INTEL
450 X64/ReadMm6.nasm| INTEL
451 X64/ReadMm5.nasm| INTEL
452 X64/ReadMm4.nasm| INTEL
453 X64/ReadMm3.nasm| INTEL
454 X64/ReadMm2.nasm| INTEL
455 X64/ReadMm1.nasm| INTEL
456 X64/ReadMm0.nasm| INTEL
457 X64/FxRestore.nasm| INTEL
458 X64/FxSave.nasm| INTEL
459 X64/WriteLdtr.nasm| INTEL
460 X64/ReadLdtr.nasm| INTEL
461 X64/WriteIdtr.nasm| INTEL
462 X64/ReadIdtr.nasm| INTEL
463 X64/WriteGdtr.nasm| INTEL
464 X64/ReadGdtr.nasm| INTEL
465 X64/ReadTr.nasm| INTEL
466 X64/ReadSs.nasm| INTEL
467 X64/ReadGs.nasm| INTEL
468 X64/ReadFs.nasm| INTEL
469 X64/ReadEs.nasm| INTEL
470 X64/ReadDs.nasm| INTEL
471 X64/ReadCs.nasm| INTEL
472 X64/WriteDr7.nasm| INTEL
473 X64/WriteDr6.nasm| INTEL
474 X64/WriteDr5.nasm| INTEL
475 X64/WriteDr4.nasm| INTEL
476 X64/WriteDr3.nasm| INTEL
477 X64/WriteDr2.nasm| INTEL
478 X64/WriteDr1.nasm| INTEL
479 X64/WriteDr0.nasm| INTEL
480 X64/ReadDr7.nasm| INTEL
481 X64/ReadDr6.nasm| INTEL
482 X64/ReadDr5.nasm| INTEL
483 X64/ReadDr4.nasm| INTEL
484 X64/ReadDr3.nasm| INTEL
485 X64/ReadDr2.nasm| INTEL
486 X64/ReadDr1.nasm| INTEL
487 X64/ReadDr0.nasm| INTEL
488 X64/WriteCr4.nasm| INTEL
489 X64/WriteCr3.nasm| INTEL
490 X64/WriteCr2.nasm| INTEL
491 X64/WriteCr0.nasm| INTEL
492 X64/ReadCr4.nasm| INTEL
493 X64/ReadCr3.nasm| INTEL
494 X64/ReadCr2.nasm| INTEL
495 X64/ReadCr0.nasm| INTEL
496 X64/ReadEflags.nasm| INTEL
507 X86MemoryFence.c | MSFT
508 X86MemoryFence.c | INTEL
509 X86GetInterruptState.c
517 X86PatchInstruction.c
518 X64/GccInline.c | GCC
519 X64/Thunk16.S | XCODE
520 X64/SwitchStack.nasm| GCC
521 X64/SwitchStack.S | GCC
522 X64/SetJump.nasm| GCC
524 X64/LongJump.nasm| GCC
526 X64/EnableDisableInterrupts.nasm| GCC
527 X64/EnableDisableInterrupts.S | GCC
528 X64/DisablePaging64.nasm| GCC
529 X64/DisablePaging64.S | GCC
532 X64/CpuIdEx.nasm| GCC
534 X64/EnableCache.nasm| GCC
535 X64/EnableCache.S | GCC
536 X64/DisableCache.nasm| GCC
537 X64/DisableCache.S | GCC
544 Ebc/SetJumpLongJump.c
550 Arm/InternalSwitchStack.c
555 Arm/SwitchStack.asm | RVCT
556 Arm/SetJumpLongJump.asm | RVCT
557 Arm/DisableInterrupts.asm | RVCT
558 Arm/EnableInterrupts.asm | RVCT
559 Arm/GetInterruptsState.asm | RVCT
560 Arm/CpuPause.asm | RVCT
561 Arm/CpuBreakpoint.asm | RVCT
562 Arm/MemoryFence.asm | RVCT
564 Arm/SwitchStack.asm | MSFT
565 Arm/SetJumpLongJump.asm | MSFT
566 Arm/DisableInterrupts.asm | MSFT
567 Arm/EnableInterrupts.asm | MSFT
568 Arm/GetInterruptsState.asm | MSFT
569 Arm/CpuPause.asm | MSFT
570 Arm/CpuBreakpoint.asm | MSFT
571 Arm/MemoryFence.asm | MSFT
574 Arm/SwitchStack.S | GCC
575 Arm/EnableInterrupts.S | GCC
576 Arm/DisableInterrupts.S | GCC
577 Arm/GetInterruptsState.S | GCC
578 Arm/SetJumpLongJump.S | GCC
579 Arm/CpuBreakpoint.S | GCC
580 Arm/MemoryFence.S | GCC
583 Arm/InternalSwitchStack.c
587 AArch64/MemoryFence.S | GCC
588 AArch64/SwitchStack.S | GCC
589 AArch64/EnableInterrupts.S | GCC
590 AArch64/DisableInterrupts.S | GCC
591 AArch64/GetInterruptsState.S | GCC
592 AArch64/SetJumpLongJump.S | GCC
593 AArch64/CpuBreakpoint.S | GCC
595 AArch64/MemoryFence.asm | MSFT
596 AArch64/SwitchStack.asm | MSFT
597 AArch64/EnableInterrupts.asm | MSFT
598 AArch64/DisableInterrupts.asm | MSFT
599 AArch64/GetInterruptsState.asm | MSFT
600 AArch64/SetJumpLongJump.asm | MSFT
601 AArch64/CpuBreakpoint.asm | MSFT
612 gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMETIMES_CONSUMES
613 gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES
614 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES
617 gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList ## CONSUMES