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