[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] xen: Split x86/debugger.h into common and arch specific parts
commit d6f3f1277acfba5067a149c82ae56333464e3bb0 Author: Bobby Eshleman <bobby.eshleman@xxxxxxxxx> AuthorDate: Tue Sep 28 13:30:29 2021 -0700 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Fri Apr 22 20:39:34 2022 +0100 xen: Split x86/debugger.h into common and arch specific parts With all the non-CONFIG_CRASH_DEBUG functionality moved elsewhere, split x86/debugger.h in two, with the stubs and explanation moved to xen/debugger.h. In particular, this means that arches only need to provide an $arch/debugger.h if they implement CONFIG_CRASH_DEBUG, and ARM's stub can be deleted. Signed-off-by: Bobby Eshleman <bobby.eshleman@xxxxxxxxx> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Julien Grall <jgrall@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/arm/include/asm/debugger.h | 15 ------------- xen/arch/x86/include/asm/debugger.h | 34 ++-------------------------- xen/arch/x86/traps.c | 2 +- xen/common/keyhandler.c | 2 +- xen/common/shutdown.c | 2 +- xen/drivers/char/console.c | 2 +- xen/include/xen/debugger.h | 44 +++++++++++++++++++++++++++++++++++++ 7 files changed, 50 insertions(+), 51 deletions(-) diff --git a/xen/arch/arm/include/asm/debugger.h b/xen/arch/arm/include/asm/debugger.h deleted file mode 100644 index ac776efa78..0000000000 --- a/xen/arch/arm/include/asm/debugger.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __ARM_DEBUGGER_H__ -#define __ARM_DEBUGGER_H__ - -#define debugger_trap_fatal(v, r) (0) -#define debugger_trap_immediate() ((void) 0) - -#endif /* __ARM_DEBUGGER_H__ */ -/* - * Local variables: - * mode: C - * c-file-style: "BSD" - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - */ diff --git a/xen/arch/x86/include/asm/debugger.h b/xen/arch/x86/include/asm/debugger.h index 5bac2ee4c2..a5c299c6c3 100644 --- a/xen/arch/x86/include/asm/debugger.h +++ b/xen/arch/x86/include/asm/debugger.h @@ -1,30 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0 */ /****************************************************************************** - * asm/debugger.h - * - * Generic hooks into arch-dependent Xen. - * - * Each debugger should define two functions here: - * - * debugger_trap_fatal(): - * Called when Xen is about to give up and crash. Typically you will use this - * hook to drop into a debug session. It can also be used to hook off - * deliberately caused traps (which you then handle and return non-zero). + * xen/arch/x86/include/asm/debugger.h * - * debugger_trap_immediate(): - * Called if we want to drop into a debugger now. This is essentially the - * same as debugger_trap_fatal, except that we use the current register state - * rather than the state which was in effect when we took the trap. - * For example: if we're dying because of an unhandled exception, we call - * debugger_trap_fatal; if we're dying because of a panic() we call - * debugger_trap_immediate(). + * x86-specific debugger hooks. */ - #ifndef __X86_DEBUGGER_H__ #define __X86_DEBUGGER_H__ -#ifdef CONFIG_CRASH_DEBUG - #include <xen/gdbstub.h> #include <xen/stdbool.h> @@ -45,16 +27,4 @@ static inline bool debugger_trap_fatal( /* Int3 is a trivial way to gather cpu_user_regs context. */ #define debugger_trap_immediate() __asm__ __volatile__ ( "int3" ) -#else - -static inline bool debugger_trap_fatal( - unsigned int vector, struct cpu_user_regs *regs) -{ - return false; -} - -#define debugger_trap_immediate() ((void)0) - -#endif - #endif /* __X86_DEBUGGER_H__ */ diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index d915324611..25bffe47d7 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -36,6 +36,7 @@ #include <xen/shutdown.h> #include <xen/guest_access.h> #include <asm/regs.h> +#include <xen/debugger.h> #include <xen/delay.h> #include <xen/event.h> #include <xen/spinlock.h> @@ -64,7 +65,6 @@ #include <asm/uaccess.h> #include <asm/i387.h> #include <asm/xstate.h> -#include <asm/debugger.h> #include <asm/msr.h> #include <asm/nmi.h> #include <asm/xenoprof.h> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c index ca9ee07901..0a551033c4 100644 --- a/xen/common/keyhandler.c +++ b/xen/common/keyhandler.c @@ -3,6 +3,7 @@ */ #include <asm/regs.h> +#include <xen/debugger.h> #include <xen/delay.h> #include <xen/keyhandler.h> #include <xen/param.h> @@ -20,7 +21,6 @@ #include <xen/mm.h> #include <xen/watchdog.h> #include <xen/init.h> -#include <asm/debugger.h> #include <asm/div64.h> static unsigned char keypress_key; diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c index abde48aa4c..a933ee001e 100644 --- a/xen/common/shutdown.c +++ b/xen/common/shutdown.c @@ -2,13 +2,13 @@ #include <xen/lib.h> #include <xen/param.h> #include <xen/sched.h> +#include <xen/debugger.h> #include <xen/domain.h> #include <xen/delay.h> #include <xen/watchdog.h> #include <xen/shutdown.h> #include <xen/console.h> #include <xen/kexec.h> -#include <asm/debugger.h> #include <public/sched.h> /* opt_noreboot: If true, machine will need manual reset on error. */ diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index d9d6556c22..f9937c5134 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -15,6 +15,7 @@ #include <xen/init.h> #include <xen/event.h> #include <xen/console.h> +#include <xen/debugger.h> #include <xen/param.h> #include <xen/serial.h> #include <xen/softirq.h> @@ -26,7 +27,6 @@ #include <xen/kexec.h> #include <xen/ctype.h> #include <xen/warning.h> -#include <asm/debugger.h> #include <asm/div64.h> #include <xen/hypercall.h> /* for do_console_io */ #include <xen/early_printk.h> diff --git a/xen/include/xen/debugger.h b/xen/include/xen/debugger.h new file mode 100644 index 0000000000..72684268af --- /dev/null +++ b/xen/include/xen/debugger.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/****************************************************************************** + * Arch specific debuggers should implement: + * + * debugger_trap_fatal(): + * Called when Xen is about to give up and crash. Typically you will use this + * hook to drop into a debug session. It can also be used to hook off + * deliberately caused traps (which you then handle and return non-zero). + * + * debugger_trap_immediate(): + * Called if we want to drop into a debugger now. This is essentially the + * same as debugger_trap_fatal, except that we use the current register state + * rather than the state which was in effect when we took the trap. + * For example: if we're dying because of an unhandled exception, we call + * debugger_trap_fatal; if we're dying because of a panic() we call + * debugger_trap_immediate(). + */ + +#ifndef __XEN_DEBUGGER_H__ +#define __XEN_DEBUGGER_H__ + +#ifdef CONFIG_CRASH_DEBUG + +#include <asm/debugger.h> + +#else + +#include <xen/stdbool.h> + +struct cpu_user_regs; + +static inline bool debugger_trap_fatal( + unsigned int vector, const struct cpu_user_regs *regs) +{ + return false; +} + +static inline void debugger_trap_immediate(void) +{ +} + +#endif /* CONFIG_CRASH_DEBUG */ + +#endif /* __XEN_DEBUGGER_H__ */ -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |