audk/MdeModulePkg/Universal/EbcDxe
Ard Biesheuvel 16dc5b68fc MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks
The EBC driver emits thunks for native to EBC calls, which are short
instructions sequences that bridge the gap between the native execution
environment and the EBC virtual machine.

Since these thunks are allocated using MemoryAllocationLib::AllocatePool(),
they are emitted into EfiBootServicesData regions, which does not reflect
the nature of these thunks accurately, and interferes with strict memory
protection policies that map data regions non-executable.

So instead, create a new helper EbcAllocatePoolForThunk() that invokes the
AllocatePool() boot service directly to allocate EfiBootServicesCode pool
memory explicitly, and wire up this helper for the various architecture
specific thunk generation routines.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2017-02-28 14:59:50 +00:00
..
AArch64 MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
EbcDebugger MdeModulePkg: Fix some typos of "according" 2017-02-08 14:48:02 +08:00
Ia32 MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
Ipf MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
X64 MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
EbcDebugger.inf MdeModulePkg/EbcDxe: add EBC Debugger configuration application 2016-11-29 12:48:33 +08:00
EbcDebugger.uni MdeModulePkg/EbcDxe: add EBC Debugger 2016-11-23 10:20:26 +08:00
EbcDebuggerConfig.inf MdeModulePkg/EbcDxe: add EBC Debugger configuration application 2016-11-29 12:48:33 +08:00
EbcDebuggerConfig.uni MdeModulePkg/EbcDxe: add EBC Debugger configuration application 2016-11-29 12:48:33 +08:00
EbcDebuggerConfigExtra.uni MdeModulePkg/EbcDxe: add EBC Debugger configuration application 2016-11-29 12:48:33 +08:00
EbcDebuggerExtra.uni MdeModulePkg/EbcDxe: add EBC Debugger 2016-11-23 10:20:26 +08:00
EbcDebuggerHook.c MdeModulePkg/EbcDxe: Add comments for functions 2016-12-06 18:40:19 +08:00
EbcDebuggerHook.h MdeModulePkg/EbcDxe: Add comments for functions 2016-12-06 18:40:19 +08:00
EbcDxe.inf MdeModulePkg/EbcDxe: prepare support for EBC Debugger 2016-11-23 10:20:25 +08:00
EbcDxe.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
EbcDxeExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
EbcExecute.c MdeModulePkg/EbcDxe: Avoid Non-Boolean type used as Boolean 2016-12-06 18:40:19 +08:00
EbcExecute.h MdeModulePkg/EbcDxe: reorganize EBC header definitions 2016-11-23 10:20:28 +08:00
EbcInt.c MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
EbcInt.h MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00