audk/UefiCpuPkg/PiSmmCpuDxeSmm/X64
Jian J Wang af4f4b3468 UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol
Heap guard makes use of paging mechanism to implement its functionality. But
there's no protocol or library available to change page attribute in SMM mode.
A new protocol gEdkiiSmmMemoryAttributeProtocolGuid is introduced to make it
happen. This protocol provide three interfaces

struct _EDKII_SMM_MEMORY_ATTRIBUTE_PROTOCOL {
  EDKII_SMM_GET_MEMORY_ATTRIBUTES       GetMemoryAttributes;
  EDKII_SMM_SET_MEMORY_ATTRIBUTES       SetMemoryAttributes;
  EDKII_SMM_CLEAR_MEMORY_ATTRIBUTES     ClearMemoryAttributes;
};

Since heap guard feature need to update page attributes. The page table
should not set to be read-only if heap guard feature is enabled for SMM
mode. Otherwise this feature cannot work.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Suggested-by: Ayellet Wolman <ayellet.wolman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2017-11-17 11:03:18 +08:00
..
MpFuncs.S UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00
MpFuncs.asm UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00
MpFuncs.nasm UefiCpuPkg PiSmmCpuDxeSmm: Update X64/MpFuncs.nasm 2016-06-28 09:52:16 +08:00
PageTbl.c UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
Semaphore.c UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00
SmiEntry.S UefiCpuPkg/PiSmmCpuDxeSmm: Fix .S & .asm build failure 2016-12-16 08:27:59 +08:00
SmiEntry.asm UefiCpuPkg/PiSmmCpuDxeSmm: Fix .S & .asm build failure 2016-12-16 08:27:59 +08:00
SmiEntry.nasm UefiCpuPkg/PiSmmCpuDxeSmm: Add paging protection. 2016-11-17 16:30:07 +08:00
SmiException.S UefiCpuPkg/PiSmmCpuDxeSmm: Remove MTRR field from PSD 2016-12-06 23:34:16 -08:00
SmiException.asm UefiCpuPkg/PiSmmCpuDxeSmm: Remove MTRR field from PSD 2016-12-06 23:34:16 -08:00
SmiException.nasm UefiCpuPkg/PiSmmCpuDxeSmm: Remove MTRR field from PSD 2016-12-06 23:34:16 -08:00
SmmFuncsArch.c UefiCpuPkg/PiSmmCpu: Fixed #double fault on #page fault. 2016-12-07 13:13:55 +08:00
SmmInit.S UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00
SmmInit.asm UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00
SmmInit.nasm UefiCpuPkg PiSmmCpuDxeSmm: Convert X64/SmmInit.asm to NASM 2016-06-28 09:52:18 +08:00
SmmProfileArch.c UefiCpuPkg/PiSmmCpuDxeSmm: Add support for PCD PcdPteMemoryEncryptionAddressOrMask 2017-03-01 12:53:03 +08:00
SmmProfileArch.h UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files 2015-10-19 19:13:31 +00:00