aboutsummaryrefslogtreecommitdiffstats
path: root/target-s390x/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-s390x/helper.c')
-rw-r--r--target-s390x/helper.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/target-s390x/helper.c b/target-s390x/helper.c
index 4a198ae32..4c2dc8211 100644
--- a/target-s390x/helper.c
+++ b/target-s390x/helper.c
@@ -27,6 +27,9 @@
#include "gdbstub.h"
#include "qemu-common.h"
+#include <linux/kvm.h>
+#include "kvm.h"
+
CPUS390XState *cpu_s390x_init(const char *cpu_model)
{
CPUS390XState *env;
@@ -60,3 +63,22 @@ void cpu_reset(CPUS390XState *env)
/* FIXME: reset vector? */
tlb_flush(env, 1);
}
+
+#ifndef CONFIG_USER_ONLY
+
+int cpu_s390x_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
+ int mmu_idx, int is_softmmu)
+{
+ target_ulong phys;
+ int prot;
+
+ /* XXX: implement mmu */
+
+ phys = address;
+ prot = PAGE_READ | PAGE_WRITE;
+
+ return tlb_set_page(env, address & TARGET_PAGE_MASK,
+ phys & TARGET_PAGE_MASK, prot,
+ mmu_idx, is_softmmu);
+}
+#endif /* CONFIG_USER_ONLY */