aboutsummaryrefslogtreecommitdiff
path: root/target/i386/tcg/helper-tcg.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-09-17 19:10:25 -0700
committerRichard Henderson <richard.henderson@linaro.org>2021-11-02 07:00:52 -0400
commitf74bd157c62f5c064418d038f9003c9c4b3dad0e (patch)
treee27f0cb209ae71fccc0cb8ef099d3ce4a6cce9ed /target/i386/tcg/helper-tcg.h
parent860e0b965be0ac3b8e455c3d80d4ca6f5e30a97a (diff)
downloadqemu-f74bd157c62f5c064418d038f9003c9c4b3dad0e.zip
qemu-f74bd157c62f5c064418d038f9003c9c4b3dad0e.tar.gz
qemu-f74bd157c62f5c064418d038f9003c9c4b3dad0e.tar.bz2
target/i386: Implement x86_cpu_record_sigsegv
Record cr2, error_code, and exception_index. That last means that we must exit to cpu_loop ourselves, instead of letting exception_index being overwritten. Use the maperr parameter to properly set PG_ERROR_P_MASK. Reviewed by: Warner Losh <imp@bsdimp.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/i386/tcg/helper-tcg.h')
-rw-r--r--target/i386/tcg/helper-tcg.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h
index 60ca09e..0a4401e 100644
--- a/target/i386/tcg/helper-tcg.h
+++ b/target/i386/tcg/helper-tcg.h
@@ -43,9 +43,15 @@ bool x86_cpu_exec_interrupt(CPUState *cpu, int int_req);
#endif
/* helper.c */
+#ifdef CONFIG_USER_ONLY
+void x86_cpu_record_sigsegv(CPUState *cs, vaddr addr,
+ MMUAccessType access_type,
+ bool maperr, uintptr_t ra);
+#else
bool x86_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
MMUAccessType access_type, int mmu_idx,
bool probe, uintptr_t retaddr);
+#endif
void breakpoint_handler(CPUState *cs);