]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseLib/BaseLib.inf
MdePkg/BaseLib: Add support for the VMGEXIT instruction
[mirror_edk2.git] / MdePkg / Library / BaseLib / BaseLib.inf
CommitLineData
6bfbb5f0 1## @file\r
34b0820e 2# Base Library implementation.\r
85ea851e 3#\r
d3c9e40a 4# Copyright (c) 2007 - 2020, 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
f8422f1e 187 Ia32/VmgExit.nasm\r
d074a8e1 188\r
bb40027d 189 Ia32/DivS64x64Remainder.c\r
bab427db 190 Ia32/InternalSwitchStack.c | MSFT\r
65960189 191 Ia32/InternalSwitchStack.nasm | GCC\r
e1f414b6 192 Ia32/Non-existing.c\r
193 Unaligned.c\r
b26978d3 194 X86WriteIdtr.c\r
195 X86WriteGdtr.c\r
196 X86Thunk.c\r
197 X86ReadIdtr.c\r
198 X86ReadGdtr.c\r
199 X86Msr.c\r
c756ce80 200 X86MemoryFence.c | MSFT\r
b26978d3 201 X86GetInterruptState.c\r
202 X86FxSave.c\r
203 X86FxRestore.c\r
204 X86EnablePaging64.c\r
205 X86EnablePaging32.c\r
206 X86DisablePaging64.c\r
207 X86DisablePaging32.c\r
9ec9a7a5 208 X86RdRand.c\r
8596c140 209 X86PatchInstruction.c\r
d9f1cac5 210 X86SpeculationBarrier.c\r
e1f414b6 211\r
212[Sources.X64]\r
6655cbf1 213 X64/Thunk16.nasm\r
9f6bfc11 214 X64/CpuIdEx.nasm\r
fd5eb53d 215 X64/CpuId.nasm\r
56244b92 216 X64/LongJump.nasm\r
e3d50cc4 217 X64/SetJump.nasm\r
ed1e7222 218 X64/SwitchStack.nasm\r
a91d8309 219 X64/EnableCache.nasm\r
c1d82295 220 X64/DisableCache.nasm\r
364a5474 221 X64/WriteTr.nasm\r
2ecd8299 222 X64/Lfence.nasm\r
d074a8e1 223\r
9095d37b
LG
224 X64/CpuBreakpoint.c | MSFT\r
225 X64/WriteMsr64.c | MSFT\r
226 X64/ReadMsr64.c | MSFT\r
345068d6 227 X64/CpuPause.nasm| MSFT\r
10f8b8d1 228 X64/DisableInterrupts.nasm| MSFT\r
4f66e999 229 X64/EnableInterrupts.nasm| MSFT\r
6a4d3fed 230 X64/FlushCacheLine.nasm| MSFT\r
e53f8184 231 X64/Invd.nasm| MSFT\r
079f75d5 232 X64/Wbinvd.nasm| MSFT\r
fe945935 233 X64/Mwait.nasm| MSFT\r
4a9ae789 234 X64/Monitor.nasm| MSFT\r
3dbb4a70 235 X64/ReadPmc.nasm| MSFT\r
1119b2ac 236 X64/ReadTsc.nasm| MSFT\r
37753fa0 237 X64/WriteMm7.nasm| MSFT\r
114fc827 238 X64/WriteMm6.nasm| MSFT\r
6c9c6ce8 239 X64/WriteMm5.nasm| MSFT\r
7c8fa338 240 X64/WriteMm4.nasm| MSFT\r
f3175833 241 X64/WriteMm3.nasm| MSFT\r
dd432baa 242 X64/WriteMm2.nasm| MSFT\r
1322928f 243 X64/WriteMm1.nasm| MSFT\r
24946626 244 X64/WriteMm0.nasm| MSFT\r
90e30b11 245 X64/ReadMm7.nasm| MSFT\r
103db15c 246 X64/ReadMm6.nasm| MSFT\r
3566b815 247 X64/ReadMm5.nasm| MSFT\r
adafb84b 248 X64/ReadMm4.nasm| MSFT\r
c936112a 249 X64/ReadMm3.nasm| MSFT\r
434363ce 250 X64/ReadMm2.nasm| MSFT\r
b13e693e 251 X64/ReadMm1.nasm| MSFT\r
29384370 252 X64/ReadMm0.nasm| MSFT\r
ac94856d 253 X64/FxRestore.nasm| MSFT\r
fe3034ba 254 X64/FxSave.nasm| MSFT\r
0a6729da 255 X64/WriteLdtr.nasm| MSFT\r
f80180f9 256 X64/ReadLdtr.nasm| MSFT\r
8cf392dd 257 X64/WriteIdtr.nasm| MSFT\r
20bd7f34 258 X64/ReadIdtr.nasm| MSFT\r
0339e057 259 X64/WriteGdtr.nasm| MSFT\r
33ba62ac 260 X64/ReadGdtr.nasm| MSFT\r
9967c4b0 261 X64/ReadTr.nasm| MSFT\r
fbc9a910 262 X64/ReadSs.nasm| MSFT\r
3c8d7412 263 X64/ReadGs.nasm| MSFT\r
0401a03e 264 X64/ReadFs.nasm| MSFT\r
8a63e4e9 265 X64/ReadEs.nasm| MSFT\r
c892afaf 266 X64/ReadDs.nasm| MSFT\r
b56da74a 267 X64/ReadCs.nasm| MSFT\r
b09957b7 268 X64/WriteDr7.nasm| MSFT\r
689759d6 269 X64/WriteDr6.nasm| MSFT\r
0490028c 270 X64/WriteDr5.nasm| MSFT\r
5874dd6b 271 X64/WriteDr4.nasm| MSFT\r
7b8be919 272 X64/WriteDr3.nasm| MSFT\r
30fa9c79 273 X64/WriteDr2.nasm| MSFT\r
f3594c83 274 X64/WriteDr1.nasm| MSFT\r
aa5bfdcb 275 X64/WriteDr0.nasm| MSFT\r
dea86a29 276 X64/ReadDr7.nasm| MSFT\r
41535500 277 X64/ReadDr6.nasm| MSFT\r
9aa2efaa 278 X64/ReadDr5.nasm| MSFT\r
b03d993a 279 X64/ReadDr4.nasm| MSFT\r
e8ad4030 280 X64/ReadDr3.nasm| MSFT\r
7df38fad 281 X64/ReadDr2.nasm| MSFT\r
3fca763f 282 X64/ReadDr1.nasm| MSFT\r
cb509ade 283 X64/ReadDr0.nasm| MSFT\r
9f91893f 284 X64/WriteCr4.nasm| MSFT\r
4dac999f 285 X64/WriteCr3.nasm| MSFT\r
94a5acc9 286 X64/WriteCr2.nasm| MSFT\r
b2a22733 287 X64/WriteCr0.nasm| MSFT\r
656a75da 288 X64/ReadCr4.nasm| MSFT\r
f08409a7 289 X64/ReadCr3.nasm| MSFT\r
bcdc107c 290 X64/ReadCr2.nasm| MSFT\r
63a21006 291 X64/ReadCr0.nasm| MSFT\r
5401d5be 292 X64/ReadEflags.nasm| MSFT\r
d074a8e1 293\r
d074a8e1 294\r
e1f414b6 295 X64/Non-existing.c\r
296 Math64.c\r
297 Unaligned.c\r
b26978d3 298 X86WriteIdtr.c\r
299 X86WriteGdtr.c\r
300 X86Thunk.c\r
301 X86ReadIdtr.c\r
302 X86ReadGdtr.c\r
303 X86Msr.c\r
2653bb43 304 X86MemoryFence.c | MSFT\r
b26978d3 305 X86GetInterruptState.c\r
306 X86FxSave.c\r
307 X86FxRestore.c\r
308 X86EnablePaging64.c\r
309 X86EnablePaging32.c\r
310 X86DisablePaging64.c\r
311 X86DisablePaging32.c\r
9ec9a7a5 312 X86RdRand.c\r
8596c140 313 X86PatchInstruction.c\r
d9f1cac5 314 X86SpeculationBarrier.c\r
cf683fed 315 X64/GccInline.c | GCC\r
d3c9e40a 316 X64/GccInlinePriv.c | GCC\r
5b7255e3
SZ
317 X64/EnableDisableInterrupts.nasm\r
318 X64/DisablePaging64.nasm\r
319 X64/RdRand.nasm\r
9b3ca509 320 X64/XGetBv.nasm\r
f8422f1e 321 X64/VmgExit.nasm\r
9095d37b 322 ChkStkGcc.c | GCC\r
e1f414b6 323\r
e1f414b6 324[Sources.EBC]\r
e1f414b6 325 Ebc/CpuBreakpoint.c\r
326 Ebc/SetJumpLongJump.c\r
327 Ebc/SwitchStack.c\r
d9f1cac5 328 Ebc/SpeculationBarrier.c\r
e1f414b6 329 Unaligned.c\r
330 Math64.c\r
331\r
4b5f371b 332[Sources.ARM]\r
333 Arm/InternalSwitchStack.c\r
334 Arm/Unaligned.c\r
30939ff2
PB
335 Math64.c | RVCT\r
336 Math64.c | MSFT\r
337\r
4b5f371b 338 Arm/SwitchStack.asm | RVCT\r
339 Arm/SetJumpLongJump.asm | RVCT\r
340 Arm/DisableInterrupts.asm | RVCT\r
341 Arm/EnableInterrupts.asm | RVCT\r
342 Arm/GetInterruptsState.asm | RVCT\r
343 Arm/CpuPause.asm | RVCT\r
703f1d09 344 Arm/CpuBreakpoint.asm | RVCT\r
8c1e7951 345 Arm/MemoryFence.asm | RVCT\r
c0959b44 346 Arm/SpeculationBarrier.S | RVCT\r
30939ff2
PB
347\r
348 Arm/SwitchStack.asm | MSFT\r
349 Arm/SetJumpLongJump.asm | MSFT\r
350 Arm/DisableInterrupts.asm | MSFT\r
351 Arm/EnableInterrupts.asm | MSFT\r
352 Arm/GetInterruptsState.asm | MSFT\r
353 Arm/CpuPause.asm | MSFT\r
354 Arm/CpuBreakpoint.asm | MSFT\r
355 Arm/MemoryFence.asm | MSFT\r
c0959b44 356 Arm/SpeculationBarrier.asm | MSFT\r
30939ff2 357\r
703f1d09 358 Arm/Math64.S | GCC\r
08068159 359 Arm/SwitchStack.S | GCC\r
4b5f371b 360 Arm/EnableInterrupts.S | GCC\r
361 Arm/DisableInterrupts.S | GCC\r
7f22d351 362 Arm/GetInterruptsState.S | GCC\r
4b5f371b 363 Arm/SetJumpLongJump.S | GCC\r
364 Arm/CpuBreakpoint.S | GCC\r
8c1e7951 365 Arm/MemoryFence.S | GCC\r
c0959b44 366 Arm/SpeculationBarrier.S | GCC\r
4b5f371b 367\r
807e2604
HL
368[Sources.AARCH64]\r
369 Arm/InternalSwitchStack.c\r
370 Arm/Unaligned.c\r
371 Math64.c\r
372\r
8c1e7951 373 AArch64/MemoryFence.S | GCC\r
807e2604
HL
374 AArch64/SwitchStack.S | GCC\r
375 AArch64/EnableInterrupts.S | GCC\r
376 AArch64/DisableInterrupts.S | GCC\r
377 AArch64/GetInterruptsState.S | GCC\r
378 AArch64/SetJumpLongJump.S | GCC\r
379 AArch64/CpuBreakpoint.S | GCC\r
c0959b44 380 AArch64/SpeculationBarrier.S | GCC\r
807e2604 381\r
da351bdb
PB
382 AArch64/MemoryFence.asm | MSFT\r
383 AArch64/SwitchStack.asm | MSFT\r
384 AArch64/EnableInterrupts.asm | MSFT\r
385 AArch64/DisableInterrupts.asm | MSFT\r
386 AArch64/GetInterruptsState.asm | MSFT\r
387 AArch64/SetJumpLongJump.asm | MSFT\r
388 AArch64/CpuBreakpoint.asm | MSFT\r
c0959b44 389 AArch64/SpeculationBarrier.asm | MSFT\r
da351bdb 390\r
7601b251
AC
391[Sources.RISCV64]\r
392 Math64.c\r
393 Unaligned.c\r
394 RiscV64/InternalSwitchStack.c\r
395 RiscV64/CpuBreakpoint.c\r
396 RiscV64/GetInterruptState.c\r
397 RiscV64/DisableInterrupts.c\r
398 RiscV64/EnableInterrupts.c\r
399 RiscV64/CpuPause.c\r
400 RiscV64/RiscVSetJumpLongJump.S | GCC\r
401 RiscV64/RiscVCpuBreakpoint.S | GCC\r
402 RiscV64/RiscVCpuPause.S | GCC\r
403 RiscV64/RiscVInterrupt.S | GCC\r
404 RiscV64/FlushCache.S | GCC\r
405\r
e1f414b6 406[Packages]\r
407 MdePkg/MdePkg.dec\r
408\r
e1f414b6 409[LibraryClasses]\r
410 PcdLib\r
e1f414b6 411 DebugLib\r
412 BaseMemoryLib\r
413\r
1081f624 414[Pcd]\r
c92c1790
LG
415 gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength ## SOMETIMES_CONSUMES\r
416 gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES\r
417 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES\r
0aac2f77 418 gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask ## SOMETIMES_CONSUMES\r
aec74656 419 gEfiMdePkgTokenSpaceGuid.PcdSpeculationBarrierType ## SOMETIMES_CONSUMES\r
da03183c
LE
420\r
421[FeaturePcd]\r
c92c1790 422 gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList ## CONSUMES\r