audk/UefiCpuPkg/PiSmmCpuDxeSmm
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
..
Ia32 UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
X64 UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
CpuS3.c UefiCpuPkg/PiSmmCpuDxeSmm: Add check to void use null pointer. 2017-10-09 14:52:46 +08:00
CpuService.c UefiCpuPkg/LocalApicLib: Rename GetProcessorLocation() 2016-11-02 09:16:21 +08:00
CpuService.h
MpService.c UefiCpuPkg/PiSmmCpuDxeSmm: Fix bitwise size issue 2017-10-16 09:03:41 +08:00
PiSmmCpuDxeSmm.c UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
PiSmmCpuDxeSmm.h UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
PiSmmCpuDxeSmm.inf UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
PiSmmCpuDxeSmm.uni UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
PiSmmCpuDxeSmmExtra.uni UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SmmCpuMemoryManagement.c UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol 2017-11-17 11:03:18 +08:00
SmmProfile.c UefiCpuPkg/PiSmmCpuDxeSmm: Fix logic check error 2017-05-11 16:33:27 +08:00
SmmProfile.h UefiCpuPkg/PiSmmCpu: Correct exception message. 2016-11-24 10:51:16 +08:00
SmmProfileInternal.h UefiCpuPkg/PiSmmCpuDxeSmm: Consume new APIs 2017-04-07 09:43:48 +08:00
SmramSaveState.c UefiCpuPkg: Refine casting expression result to bigger size 2017-03-06 14:33:26 +08:00
SyncTimer.c