audk/ArmPkg/Library
Ard Biesheuvel 6650d78558 ArmPkg/ArmDmaLib: remove dependency on UncachedMemoryAllocationLib
Now that ArmDmaLib no longer uses uncached mappings for short-lived
bounce buffers used for streaming DMA, the only place we allocate
uncached memory is in DmaAllocateBuffer (), which is used for static
mappings shared between the host and the device, e.g., for packet
descriptor rings etc.

There is no performance concern around such long lived mappings, and
so we can really do without the overhead of UncachedMemoryAllocationLib,
which is a sizable chunk of poorly maintained code that never actually
releases any memory, and despite the fact that it implements pool based
routines, it always performs page based allocations anyway.

So let's invoke the DXE services directly to manage memory attributes
on allocations, and keep track of the allocations in a linked list so
we can restore the attributes and free the memory properly after use.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-08-24 18:18:14 +01:00
..
ArmArchTimerLib ArmPkg/ArmArchTimerLib: correct typos 2016-04-01 17:19:24 +02:00
ArmCacheMaintenanceLib ArmPkg/ArmLib: don't invalidate entire I-cache on range operation 2016-05-12 13:53:08 +02:00
ArmDisassemblerLib ArmPkg/ArmDisassemblerLib: replace AsciiStrCat() with AsciiStrCatS() 2016-10-25 10:46:40 +02:00
ArmDmaLib ArmPkg/ArmDmaLib: remove dependency on UncachedMemoryAllocationLib 2017-08-24 18:18:14 +01:00
ArmExceptionLib ArmPkg/ArmExceptionLib: use EL0 stack for synchronous exceptions 2017-03-27 13:54:26 +01:00
ArmGenericTimerPhyCounterLib ArmPkg/ArmLib: remove indirection layer from timer register accessors 2017-01-20 15:51:34 +00:00
ArmGenericTimerVirtCounterLib ArmPkg/ArmLib: remove indirection layer from timer register accessors 2017-01-20 15:51:34 +00:00
ArmGicArchLib
ArmGicArchSecLib
ArmHvcLib ArmPkg: copy/paste fixes in ARM ArmHvcLib/ArmSmcLib 2017-04-13 10:58:28 +01:00
ArmLib ArmPkg: Add CNTHCTL_EL2 support functions 2017-05-22 15:19:34 +01:00
ArmMmuLib ArmPkg/ArmMmuLib ARM: implement memory permission control routines 2017-03-07 10:31:53 +01:00
ArmPsciResetSystemLib
ArmSmcLib ArmPkg: copy/paste fixes in ARM ArmHvcLib/ArmSmcLib 2017-04-13 10:58:28 +01:00
ArmSmcLibNull ArmPkg/ArmSmcLibNull: move to generic C implementation 2016-08-11 12:29:31 +02:00
ArmSmcPsciResetSystemLib ArmPkg: implement ResetSystemLib using PSCI 0.2 calls 2017-07-03 16:53:33 +01:00
ArmSoftFloatLib ArmPkg/ArmSoftFloatLib: disable LTO build for GCC 2016-08-05 16:32:35 +02:00
BdsLib ArmPkg: Move IS_DEVICE_PATH_NODE for sharing 2017-08-01 15:57:47 +01:00
CompilerIntrinsicsLib ArmPkg: Fix modsi3.S compilation across toolchains. 2017-03-14 08:02:09 +00:00
DebugAgentSymbolsBaseLib ArmPkg: Fix typos in comments 2016-10-19 16:31:22 +01:00
DebugPeCoffExtraActionLib ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
DefaultExceptionHandlerLib ArmPkg/DefaultExceptionHandlerLib: walk call stack unconditionally 2017-03-22 15:48:01 +00:00
GccLto ArmPkg: add prebuilt glue binaries for GCC5 LTO support 2016-08-02 10:53:57 +02:00
PeiServicesTablePointerLib ArmPkg/PeiServicesTablePointerLib: add missing MigratePeiServicesTablePointer() 2015-11-25 20:06:41 +00:00
PlatformBootManagerLib ArmPkg/PlatformBootManagerLib: move to BootLogoLib for boot splash support 2017-03-22 15:44:55 +00:00
RvdPeCoffExtraActionLib
SemiHostingDebugLib
SemiHostingSerialPortLib
SemihostLib ArmPkg/SemihostLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:52 +02:00
UncachedMemoryAllocationLib ArmPkg/UncachedMemoryAllocationLib: set XP bit via CPU arch protocol 2017-03-15 19:36:10 +00:00