aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/x86/smm/smm_module_handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/x86/smm/smm_module_handler.c')
-rw-r--r--src/cpu/x86/smm/smm_module_handler.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cpu/x86/smm/smm_module_handler.c b/src/cpu/x86/smm/smm_module_handler.c
index 404b0ccdaa..37af199080 100644
--- a/src/cpu/x86/smm/smm_module_handler.c
+++ b/src/cpu/x86/smm/smm_module_handler.c
@@ -2,6 +2,7 @@
#include <arch/io.h>
#include <console/console.h>
+#include <commonlib/region.h>
#include <cpu/x86/smm.h>
#include <rmodule.h>
@@ -103,6 +104,14 @@ void *smm_get_save_state(int cpu)
return base;
}
+bool smm_region_overlaps_handler(const struct region *r)
+{
+ const struct region r_smm = {smm_runtime->smbase, smm_runtime->smm_size};
+ const struct region r_aseg = {SMM_BASE, SMM_DEFAULT_SIZE};
+
+ return region_overlap(&r_smm, r) || region_overlap(&r_aseg, r);
+}
+
asmlinkage void smm_handler_start(void *arg)
{
const struct smm_module_params *p;