[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v5 6/6] xen: Split x86/debugger.h into common and arch specific parts
From: Bobby Eshleman <bobby.eshleman@xxxxxxxxx> 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> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien@xxxxxxx> CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx> CC: Bertrand Marquis <bertrand.marquis@xxxxxxx> v5: * Clean up includes * Drop rendundant comments --- 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 +- .../x86/include/asm => include/xen}/debugger.h | 44 +++++++--------------- 7 files changed, 20 insertions(+), 81 deletions(-) delete mode 100644 xen/arch/arm/include/asm/debugger.h copy xen/{arch/x86/include/asm => include/xen}/debugger.h (54%) diff --git a/xen/arch/arm/include/asm/debugger.h b/xen/arch/arm/include/asm/debugger.h deleted file mode 100644 index ac776efa7899..000000000000 --- 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 5bac2ee4c2a4..a5c299c6c34d 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 d91532461189..25bffe47d7ae 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 ca9ee0790149..0a551033c443 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 abde48aa4ca0..a933ee001ea4 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 d9d6556c2293..f9937c5134c0 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/arch/x86/include/asm/debugger.h b/xen/include/xen/debugger.h similarity index 54% copy from xen/arch/x86/include/asm/debugger.h copy to xen/include/xen/debugger.h index 5bac2ee4c2a4..72684268aff7 100644 --- a/xen/arch/x86/include/asm/debugger.h +++ b/xen/include/xen/debugger.h @@ -1,11 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /****************************************************************************** - * asm/debugger.h - * - * Generic hooks into arch-dependent Xen. - * - * Each debugger should define two functions here: - * + * 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 @@ -20,41 +16,29 @@ * debugger_trap_immediate(). */ -#ifndef __X86_DEBUGGER_H__ -#define __X86_DEBUGGER_H__ +#ifndef __XEN_DEBUGGER_H__ +#define __XEN_DEBUGGER_H__ #ifdef CONFIG_CRASH_DEBUG -#include <xen/gdbstub.h> -#include <xen/stdbool.h> - -#include <asm/x86-defns.h> - -/* Returns true if GDB handled the trap, or it is surviveable. */ -static inline bool debugger_trap_fatal( - unsigned int vector, struct cpu_user_regs *regs) -{ - int rc = __trap_to_gdb(regs, vector); - - if ( rc == 0 ) - return true; +#include <asm/debugger.h> - return vector == X86_EXC_BP; -} +#else -/* Int3 is a trivial way to gather cpu_user_regs context. */ -#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" ) +#include <xen/stdbool.h> -#else +struct cpu_user_regs; static inline bool debugger_trap_fatal( - unsigned int vector, struct cpu_user_regs *regs) + unsigned int vector, const struct cpu_user_regs *regs) { return false; } -#define debugger_trap_immediate() ((void)0) +static inline void debugger_trap_immediate(void) +{ +} -#endif +#endif /* CONFIG_CRASH_DEBUG */ -#endif /* __X86_DEBUGGER_H__ */ +#endif /* __XEN_DEBUGGER_H__ */ -- 2.11.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |