]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseLib/BaseLib.inf
MdePkg/BaseLib: Add support for the XSETBV instruction
[mirror_edk2.git] / MdePkg / Library / BaseLib / BaseLib.inf
CommitLineData
6bfbb5f0 1## @file\r
34b0820e 2# Base Library implementation.\r
85ea851e 3#\r
4ac02962 4# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>\r
bb817c56 5# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
807e2604 6# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
7601b251 7# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>\r
e1f414b6 8#\r
9344f092 9# SPDX-License-Identifier: BSD-2-Clause-Patent\r
e1f414b6 10#\r
11#\r
6bfbb5f0 12##\r
e1f414b6 13\r
e1f414b6 14[Defines]\r
15 INF_VERSION = 0x00010005\r
16 BASE_NAME = BaseLib\r
c92c1790 17 MODULE_UNI_FILE = BaseLib.uni\r
e1f414b6 18 FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30\r
19 MODULE_TYPE = BASE\r
88a75d26 20 VERSION_STRING = 1.1\r
9095d37b 21 LIBRARY_CLASS = BaseLib\r
e1f414b6 22\r
e1f414b6 23#\r
7601b251 24# VALID_ARCHITECTURES = IA32 X64 EBC ARM AARCH64 RISCV64\r
e1f414b6 25#\r
26\r
6bfbb5f0 27[Sources]\r
e1f414b6 28 CheckSum.c\r
29 SwitchStack.c\r
30 SwapBytes64.c\r
31 SwapBytes32.c\r
32 SwapBytes16.c\r
33 LongJump.c\r
34 SetJump.c\r
35 RShiftU64.c\r
36 RRotU64.c\r
37 RRotU32.c\r
38 MultU64x64.c\r
39 MultU64x32.c\r
40 MultS64x64.c\r
41 ModU64x32.c\r
42 LShiftU64.c\r
43 LRotU64.c\r
44 LRotU32.c\r
45 LowBitSet64.c\r
46 LowBitSet32.c\r
47 HighBitSet64.c\r
48 HighBitSet32.c\r
49 GetPowerOfTwo64.c\r
50 GetPowerOfTwo32.c\r
51 DivU64x64Remainder.c\r
52 DivU64x32Remainder.c\r
53 DivU64x32.c\r
54 DivS64x64Remainder.c\r
55 ARShiftU64.c\r
56 BitField.c\r
57 CpuDeadLoop.c\r
58 Cpu.c\r
59 LinkedList.c\r
c058d59f 60 SafeString.c\r
e1f414b6 61 String.c\r
ae591c14 62 FilePaths.c\r
e1f414b6 63 BaseLibInternals.h\r
e1f414b6 64\r
65[Sources.Ia32]\r
364a5474 66 Ia32/WriteTr.nasm\r
2ecd8299 67 Ia32/Lfence.nasm\r
364a5474 68\r
9095d37b
LG
69 Ia32/Wbinvd.c | MSFT\r
70 Ia32/WriteMm7.c | MSFT\r
71 Ia32/WriteMm6.c | MSFT\r
72 Ia32/WriteMm5.c | MSFT\r
73 Ia32/WriteMm4.c | MSFT\r
74 Ia32/WriteMm3.c | MSFT\r
75 Ia32/WriteMm2.c | MSFT\r
76 Ia32/WriteMm1.c | MSFT\r
77 Ia32/WriteMm0.c | MSFT\r
78 Ia32/WriteLdtr.c | MSFT\r
79 Ia32/WriteIdtr.c | MSFT\r
80 Ia32/WriteGdtr.c | MSFT\r
81 Ia32/WriteDr7.c | MSFT\r
82 Ia32/WriteDr6.c | MSFT\r
83 Ia32/WriteDr5.c | MSFT\r
84 Ia32/WriteDr4.c | MSFT\r
85 Ia32/WriteDr3.c | MSFT\r
86 Ia32/WriteDr2.c | MSFT\r
87 Ia32/WriteDr1.c | MSFT\r
88 Ia32/WriteDr0.c | MSFT\r
89 Ia32/WriteCr4.c | MSFT\r
90 Ia32/WriteCr3.c | MSFT\r
91 Ia32/WriteCr2.c | MSFT\r
92 Ia32/WriteCr0.c | MSFT\r
93 Ia32/WriteMsr64.c | MSFT\r
94 Ia32/SwapBytes64.c | MSFT\r
9095d37b
LG
95 Ia32/RRotU64.c | MSFT\r
96 Ia32/RShiftU64.c | MSFT\r
97 Ia32/ReadPmc.c | MSFT\r
98 Ia32/ReadTsc.c | MSFT\r
99 Ia32/ReadLdtr.c | MSFT\r
100 Ia32/ReadIdtr.c | MSFT\r
101 Ia32/ReadGdtr.c | MSFT\r
102 Ia32/ReadTr.c | MSFT\r
103 Ia32/ReadSs.c | MSFT\r
104 Ia32/ReadGs.c | MSFT\r
105 Ia32/ReadFs.c | MSFT\r
106 Ia32/ReadEs.c | MSFT\r
107 Ia32/ReadDs.c | MSFT\r
108 Ia32/ReadCs.c | MSFT\r
109 Ia32/ReadMsr64.c | MSFT\r
110 Ia32/ReadMm7.c | MSFT\r
111 Ia32/ReadMm6.c | MSFT\r
112 Ia32/ReadMm5.c | MSFT\r
113 Ia32/ReadMm4.c | MSFT\r
114 Ia32/ReadMm3.c | MSFT\r
115 Ia32/ReadMm2.c | MSFT\r
116 Ia32/ReadMm1.c | MSFT\r
117 Ia32/ReadMm0.c | MSFT\r
118 Ia32/ReadEflags.c | MSFT\r
119 Ia32/ReadDr7.c | MSFT\r
120 Ia32/ReadDr6.c | MSFT\r
121 Ia32/ReadDr5.c | MSFT\r
122 Ia32/ReadDr4.c | MSFT\r
123 Ia32/ReadDr3.c | MSFT\r
124 Ia32/ReadDr2.c | MSFT\r
125 Ia32/ReadDr1.c | MSFT\r
126 Ia32/ReadDr0.c | MSFT\r
127 Ia32/ReadCr4.c | MSFT\r
128 Ia32/ReadCr3.c | MSFT\r
129 Ia32/ReadCr2.c | MSFT\r
130 Ia32/ReadCr0.c | MSFT\r
131 Ia32/Mwait.c | MSFT\r
132 Ia32/Monitor.c | MSFT\r
133 Ia32/ModU64x32.c | MSFT\r
134 Ia32/MultU64x64.c | MSFT\r
135 Ia32/MultU64x32.c | MSFT\r
136 Ia32/LShiftU64.c | MSFT\r
137 Ia32/LRotU64.c | MSFT\r
9095d37b
LG
138 Ia32/Invd.c | MSFT\r
139 Ia32/FxRestore.c | MSFT\r
140 Ia32/FxSave.c | MSFT\r
141 Ia32/FlushCacheLine.c | MSFT\r
142 Ia32/EnablePaging32.c | MSFT\r
143 Ia32/EnableInterrupts.c | MSFT\r
144 Ia32/EnableDisableInterrupts.c | MSFT\r
9095d37b
LG
145 Ia32/DivU64x32Remainder.c | MSFT\r
146 Ia32/DivU64x32.c | MSFT\r
147 Ia32/DisablePaging32.c | MSFT\r
148 Ia32/DisableInterrupts.c | MSFT\r
149 Ia32/CpuPause.c | MSFT\r
150 Ia32/CpuIdEx.c | MSFT\r
151 Ia32/CpuId.c | MSFT\r
152 Ia32/CpuBreakpoint.c | MSFT\r
153 Ia32/ARShiftU64.c | MSFT\r
9f4f2f0e 154 Ia32/EnableCache.c | MSFT\r
155 Ia32/DisableCache.c | MSFT\r
d074a8e1 156\r
d074a8e1 157\r
cf683fed 158 Ia32/GccInline.c | GCC\r
d3c9e40a 159 Ia32/GccInlinePriv.c | GCC\r
5b7255e3 160 Ia32/Thunk16.nasm\r
cb44f80a 161 Ia32/EnableDisableInterrupts.nasm| GCC\r
5b7255e3 162 Ia32/EnablePaging64.nasm\r
7e08bace 163 Ia32/DisablePaging32.nasm| GCC\r
4fc416a6 164 Ia32/EnablePaging32.nasm| GCC\r
c3a324ff 165 Ia32/Mwait.nasm| GCC\r
fdf359f3 166 Ia32/Monitor.nasm| GCC\r
c7f75a99 167 Ia32/CpuIdEx.nasm| GCC\r
3357f083 168 Ia32/CpuId.nasm| GCC\r
174232fa
SZ
169 Ia32/LongJump.nasm\r
170 Ia32/SetJump.nasm\r
1d3324f9 171 Ia32/SwapBytes64.nasm| GCC\r
5b7255e3 172 Ia32/DivU64x64Remainder.nasm\r
fb79aa01 173 Ia32/DivU64x32Remainder.nasm| GCC\r
fd890f59 174 Ia32/ModU64x32.nasm| GCC\r
fe4b3b4b 175 Ia32/DivU64x32.nasm| GCC\r
f15f4aef 176 Ia32/MultU64x64.nasm| GCC\r
f8b4c87c 177 Ia32/MultU64x32.nasm| GCC\r
7905d234 178 Ia32/RRotU64.nasm| GCC\r
c41d8eb0 179 Ia32/LRotU64.nasm| GCC\r
649509ef 180 Ia32/ARShiftU64.nasm| GCC\r
a2cc2aa7 181 Ia32/RShiftU64.nasm| GCC\r
76a77878 182 Ia32/LShiftU64.nasm| GCC\r
22327b5a 183 Ia32/EnableCache.nasm| GCC\r
b204f668 184 Ia32/DisableCache.nasm| GCC\r
5b7255e3 185 Ia32/RdRand.nasm\r
9b3ca509 186 Ia32/XGetBv.nasm\r
4ac02962 187 Ia32/XSetBv.nasm\r
f8422f1e 188 Ia32/VmgExit.nasm\r
d074a8e1 189\r
bb40027d 190 Ia32/DivS64x64Remainder.c\r
bab427db 191 Ia32/InternalSwitchStack.c | MSFT\r
65960189 192 Ia32/InternalSwitchStack.nasm | GCC\r
e1f414b6 193 Ia32/Non-existing.c\r
194 Unaligned.c\r
b26978d3 195 X86WriteIdtr.c\r
196 X86WriteGdtr.c\r
197 X86Thunk.c\r
198 X86ReadIdtr.c\r
199 X86ReadGdtr.c\r
200 X86Msr.c\r
c756ce80 201 X86MemoryFence.c | MSFT\r
b26978d3 202 X86GetInterruptState.c\r
203 X86FxSave.c\r
204 X86FxRestore.c\r
205 X86EnablePaging64.c\r
206 X86EnablePaging32.c\r
207 X86DisablePaging64.c\r
208 X86DisablePaging32.c\r
9ec9a7a5 209 X86RdRand.c\r
8596c140 210 X86PatchInstruction.c\r
d9f1cac5 211 X86SpeculationBarrier.c\r
e1f414b6 212\r
213[Sources.X64]\r
6655cbf1 214 X64/Thunk16.nasm\r
9f6bfc11 215 X64/CpuIdEx.nasm\r
fd5eb53d 216 X64/CpuId.nasm\r
56244b92 217 X64/LongJump.nasm\r
e3d50cc4 218 X64/SetJump.nasm\r
ed1e7222 219 X64/SwitchStack.nasm\r
a91d8309 220 X64/EnableCache.nasm\r
c1d82295 221 X64/DisableCache.nasm\r
364a5474 222 X64/WriteTr.nasm\r
2ecd8299 223 X64/Lfence.nasm\r
d074a8e1 224\r
9095d37b
LG
225 X64/CpuBreakpoint.c | MSFT\r
226 X64/WriteMsr64.c | MSFT\r
227 X64/ReadMsr64.c | MSFT\r
345068d6 228 X64/CpuPause.nasm| MSFT\r
10f8b8d1 229 X64/DisableInterrupts.nasm| MSFT\r
4f66e999 230 X64/EnableInterrupts.nasm| MSFT\r
6a4d3fed 231 X64/FlushCacheLine.nasm| MSFT\r
e53f8184 232 X64/Invd.nasm| MSFT\r
079f75d5 233 X64/Wbinvd.nasm| MSFT\r
fe945935 234 X64/Mwait.nasm| MSFT\r
4a9ae789 235 X64/Monitor.nasm| MSFT\r
3dbb4a70 236 X64/ReadPmc.nasm| MSFT\r
1119b2ac 237 X64/ReadTsc.nasm| MSFT\r
37753fa0 238 X64/WriteMm7.nasm| MSFT\r
114fc827 239 X64/WriteMm6.nasm| MSFT\r
6c9c6ce8 240 X64/WriteMm5.nasm| MSFT\r
7c8fa338 241 X64/WriteMm4.nasm| MSFT\r
f3175833 242 X64/WriteMm3.nasm| MSFT\r
dd432baa 243 X64/WriteMm2.nasm| MSFT\r
1322928f 244 X64/WriteMm1.nasm| MSFT\r
24946626 245 X64/WriteMm0.nasm| MSFT\r
90e30b11 246 X64/ReadMm7.nasm| MSFT\r
103db15c 247 X64/ReadMm6.nasm| MSFT\r
3566b815 248 X64/ReadMm5.nasm| MSFT\r
adafb84b 249 X64/ReadMm4.nasm| MSFT\r
c936112a 250 X64/ReadMm3.nasm| MSFT\r
434363ce 251 X64/ReadMm2.nasm| MSFT\r
b13e693e 252 X64/ReadMm1.nasm| MSFT\r
29384370 253 X64/ReadMm0.nasm| MSFT\r
ac94856d 254 X64/FxRestore.nasm| MSFT\r
fe3034ba 255 X64/FxSave.nasm| MSFT\r
0a6729da 256 X64/WriteLdtr.nasm| MSFT\r
f80180f9 257 X64/ReadLdtr.nasm| MSFT\r
8cf392dd 258 X64/WriteIdtr.nasm| MSFT\r
20bd7f34 259 X64/ReadIdtr.nasm| MSFT\r
0339e057 260 X64/WriteGdtr.nasm| MSFT\r
33ba62ac 261 X64/ReadGdtr.nasm| MSFT\r
9967c4b0 262 X64/ReadTr.nasm| MSFT\r
fbc9a910 263 X64/ReadSs.nasm| MSFT\r
3c8d7412 264 X64/ReadGs.nasm| MSFT\r
0401a03e 265 X64/ReadFs.nasm| MSFT\r
8a63e4e9 266 X64/ReadEs.nasm| MSFT\r
c892afaf 267 X64/ReadDs.nasm| MSFT\r
b56da74a 268 X64/ReadCs.nasm| MSFT\r
b09957b7 269 X64/WriteDr7.nasm| MSFT\r
689759d6 270 X64/WriteDr6.nasm| MSFT\r
0490028c 271 X64/WriteDr5.nasm| MSFT\r
5874dd6b 272 X64/WriteDr4.nasm| MSFT\r
7b8be919 273 X64/WriteDr3.nasm| MSFT\r
30fa9c79 274 X64/WriteDr2.nasm| MSFT\r
f3594c83 275 X64/WriteDr1.nasm| MSFT\r
aa5bfdcb 276 X64/WriteDr0.nasm| MSFT\r
dea86a29 277 X64/ReadDr7.nasm| MSFT\r
41535500 278 X64/ReadDr6.nasm| MSFT\r
9aa2efaa 279 X64/ReadDr5.nasm| MSFT\r
b03d993a 280 X64/ReadDr4.nasm| MSFT\r
e8ad4030 281 X64/ReadDr3.nasm| MSFT\r
7df38fad 282 X64/ReadDr2.nasm| MSFT\r
3fca763f 283 X64/ReadDr1.nasm| MSFT\r
cb509ade 284 X64/ReadDr0.nasm| MSFT\r
9f91893f 285 X64/WriteCr4.nasm| MSFT\r
4dac999f 286 X64/WriteCr3.nasm| MSFT\r
94a5acc9 287 X64/WriteCr2.nasm| MSFT\r
b2a22733 288 X64/WriteCr0.nasm| MSFT\r
656a75da 289 X64/ReadCr4.nasm| MSFT\r
f08409a7 290 X64/ReadCr3.nasm| MSFT\r
bcdc107c 291 X64/ReadCr2.nasm| MSFT\r
63a21006 292 X64/ReadCr0.nasm| MSFT\r
5401d5be 293 X64/ReadEflags.nasm| MSFT\r
d074a8e1 294\r
d074a8e1 295\r
e1f414b6 296 X64/Non-existing.c\r
297 Math64.c\r
298 Unaligned.c\r
b26978d3 299 X86WriteIdtr.c\r
300 X86WriteGdtr.c\r
301 X86Thunk.c\r
302 X86ReadIdtr.c\r
303 X86ReadGdtr.c\r
304 X86Msr.c\r
2653bb43 305 X86MemoryFence.c | MSFT\r
b26978d3 306 X86GetInterruptState.c\r
307 X86FxSave.c\r
308 X86FxRestore.c\r
309 X86EnablePaging64.c\r
310 X86EnablePaging32.c\r
311 X86DisablePaging64.c\r
312 X86DisablePaging32.c\r
9ec9a7a5 313 X86RdRand.c\r
8596c140 314 X86PatchInstruction.c\r
d9f1cac5 315 X86SpeculationBarrier.c\r
cf683fed 316 X64/GccInline.c | GCC\r
d3c9e40a 317 X64/GccInlinePriv.c | GCC\r
5b7255e3
SZ
318 X64/EnableDisableInterrupts.nasm\r
319 X64/DisablePaging64.nasm\r
320 X64/RdRand.nasm\r
9b3ca509 321 X64/XGetBv.nasm\r
4ac02962 322 X64/XSetBv.nasm\r
f8422f1e 323 X64/VmgExit.nasm\r
9095d37b 324 ChkStkGcc.c | GCC\r
e1f414b6 325\r
e1f414b6 326[Sources.EBC]\r
e1f414b6 327 Ebc/CpuBreakpoint.c\r
328 Ebc/SetJumpLongJump.c\r
329 Ebc/SwitchStack.c\r
d9f1cac5 330 Ebc/SpeculationBarrier.c\r
e1f414b6 331 Unaligned.c\r
332 Math64.c\r
333\r
4b5f371b 334[Sources.ARM]\r
335 Arm/InternalSwitchStack.c\r
336 Arm/Unaligned.c\r
30939ff2
PB
337 Math64.c | RVCT\r
338 Math64.c | MSFT\r
339\r
4b5f371b 340 Arm/SwitchStack.asm | RVCT\r
341 Arm/SetJumpLongJump.asm | RVCT\r
342 Arm/DisableInterrupts.asm | RVCT\r
343 Arm/EnableInterrupts.asm | RVCT\r
344 Arm/GetInterruptsState.asm | RVCT\r
345 Arm/CpuPause.asm | RVCT\r
703f1d09 346 Arm/CpuBreakpoint.asm | RVCT\r
8c1e7951 347 Arm/MemoryFence.asm | RVCT\r
c0959b44 348 Arm/SpeculationBarrier.S | RVCT\r
30939ff2
PB
349\r
350 Arm/SwitchStack.asm | MSFT\r
351 Arm/SetJumpLongJump.asm | MSFT\r
352 Arm/DisableInterrupts.asm | MSFT\r
353 Arm/EnableInterrupts.asm | MSFT\r
354 Arm/GetInterruptsState.asm | MSFT\r
355 Arm/CpuPause.asm | MSFT\r
356 Arm/CpuBreakpoint.asm | MSFT\r
357 Arm/MemoryFence.asm | MSFT\r
c0959b44 358 Arm/SpeculationBarrier.asm | MSFT\r
30939ff2 359\r
703f1d09 360 Arm/Math64.S | GCC\r
08068159 361 Arm/SwitchStack.S | GCC\r
4b5f371b 362 Arm/EnableInterrupts.S | GCC\r
363 Arm/DisableInterrupts.S | GCC\r
7f22d351 364 Arm/GetInterruptsState.S | GCC\r
4b5f371b 365 Arm/SetJumpLongJump.S | GCC\r
366 Arm/CpuBreakpoint.S | GCC\r
8c1e7951 367 Arm/MemoryFence.S | GCC\r
c0959b44 368 Arm/SpeculationBarrier.S | GCC\r
4b5f371b 369\r
807e2604
HL
370[Sources.AARCH64]\r
371 Arm/InternalSwitchStack.c\r
372 Arm/Unaligned.c\r
373 Math64.c\r
374\r
8c1e7951 375 AArch64/MemoryFence.S | GCC\r
807e2604
HL
376 AArch64/SwitchStack.S | GCC\r
377 AArch64/EnableInterrupts.S | GCC\r
378 AArch64/DisableInterrupts.S | GCC\r
379 AArch64/GetInterruptsState.S | GCC\r
380 AArch64/SetJumpLongJump.S | GCC\r
381 AArch64/CpuBreakpoint.S | GCC\r
c0959b44 382 AArch64/SpeculationBarrier.S | GCC\r
807e2604 383\r
da351bdb
PB
384 AArch64/MemoryFence.asm | MSFT\r
385 AArch64/SwitchStack.asm | MSFT\r
386 AArch64/EnableInterrupts.asm | MSFT\r
387 AArch64/DisableInterrupts.asm | MSFT\r
388 AArch64/GetInterruptsState.asm | MSFT\r
389 AArch64/SetJumpLongJump.asm | MSFT\r
390 AArch64/CpuBreakpoint.asm | MSFT\r
c0959b44 391 AArch64/SpeculationBarrier.asm | MSFT\r
da351bdb 392\r
7601b251
AC
393[Sources.RISCV64]\r
394 Math64.c\r
395 Unaligned.c\r
396 RiscV64/InternalSwitchStack.c\r
397 RiscV64/CpuBreakpoint.c\r
398 RiscV64/GetInterruptState.c\r
399 RiscV64/DisableInterrupts.c\r
400 RiscV64/EnableInterrupts.c\r
401 RiscV64/CpuPause.c\r
402 RiscV64/RiscVSetJumpLongJump.S | GCC\r
403 RiscV64/RiscVCpuBreakpoint.S | GCC\r
404 RiscV64/RiscVCpuPause.S | GCC\r
405 RiscV64/RiscVInterrupt.S | GCC\r
406 RiscV64/FlushCache.S | GCC\r
407\r
e1f414b6 408[Packages]\r
409 MdePkg/MdePkg.dec\r
410\r
e1f414b6 411[LibraryClasses]\r
412 PcdLib\r
e1f414b6 413 DebugLib\r
414 BaseMemoryLib\r
415\r
1081f624 416[Pcd]\r
c92c1790
LG
417 gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMETIMES_CONSUMES\r
418 gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES\r
419 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES\r
0aac2f77 420 gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask ## SOMETIMES_CONSUMES\r
aec74656 421 gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType ## SOMETIMES_CONSUMES\r
da03183c
LE
422\r
423[FeaturePcd]\r
c92c1790 424 gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList ## CONSUMES\r