audk/MdePkg/Library/BaseLib
Hao Wu 2ecd829972 MdePkg/BaseLib: Add new AsmLfence API
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1193

This commit will add a new BaseLib API AsmLfence(). This API will perform
a serializing operation on all load-from-memory instructions that were
issued prior to the call of this function. Please note that this API is
only available on IA-32 and x64.

The purpose of adding this API is to mitigate of the [CVE-2017-5753]
Bounds Check Bypass issue when untrusted data are being processed within
SMM. More details can be referred at the 'Bounds check bypass mitigation'
section at the below link:

https://software.intel.com/security-software-guidance/insights/host-firmware-speculative-execution-side-channel-mitigation

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2018-09-30 13:06:42 +08:00
..
AArch64 MdePkg/Library/BaseLib/AArch64: Comment style harmonization 2018-03-20 10:03:05 +08:00
Arm MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
Ebc MdePkg/BaseLib: add attribute 'RETURNS_TWICE' to SetJump 2018-01-10 11:42:17 +08:00
Ia32 MdePkg/BaseLib: Add new AsmLfence API 2018-09-30 13:06:42 +08:00
X64 MdePkg/BaseLib: Add new AsmLfence API 2018-09-30 13:06:42 +08:00
ARShiftU64.c
BaseLib.inf MdePkg/BaseLib: Add new AsmLfence API 2018-09-30 13:06:42 +08:00
BaseLib.uni
BaseLibInternals.h MdePkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:48:21 +08:00
BitField.c MdePkg/BaseLib: Add bit field population calculating methods 2018-07-09 10:29:45 +08:00
CheckSum.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
ChkStkGcc.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
Cpu.c
CpuDeadLoop.c
DivS64x64Remainder.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
DivU64x32.c
DivU64x32Remainder.c
DivU64x64Remainder.c
FilePaths.c
GetPowerOfTwo32.c
GetPowerOfTwo64.c
HighBitSet32.c
HighBitSet64.c
LRotU32.c
LRotU64.c
LShiftU64.c
LinkedList.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
LongJump.c
LowBitSet32.c
LowBitSet64.c
Math64.c
ModU64x32.c
MultS64x64.c
MultU64x32.c
MultU64x64.c
RRotU32.c
RRotU64.c
RShiftU64.c
SafeString.c MdePkg/SafeString: Fix potential out-of-bound memory access 2018-02-06 17:31:08 +08:00
SetJump.c
String.c MdePkg/BaseLib: Add an additional check within AsciiStriCmp 2018-08-06 10:12:13 +08:00
SwapBytes16.c
SwapBytes32.c
SwapBytes64.c
SwitchStack.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
Unaligned.c
X86DisablePaging32.c
X86DisablePaging64.c
X86EnablePaging32.c
X86EnablePaging64.c
X86FxRestore.c
X86FxSave.c
X86GetInterruptState.c
X86MemoryFence.c
X86Msr.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
X86PatchInstruction.c MdePkg/BaseLib: add PatchInstructionX86() 2018-04-04 16:43:58 +02:00
X86RdRand.c
X86ReadGdtr.c
X86ReadIdtr.c
X86Thunk.c MdePkg: Clean up source files 2018-06-28 11:19:47 +08:00
X86WriteGdtr.c
X86WriteIdtr.c Minor grammatical work--mostly adding periods. Items with ONLY period added did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) 2010-06-25 21:56:02 +00:00