From 2b82007571dbe02b85338dc9fa85251cd5d68028 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 4 Sep 2024 13:29:30 +0100 Subject: [PATCH] [gdb] Allow CPU architectures to omit support for GDB Move the file to , and provide a common dummy implementation for all architectures that have not yet implemented support for GDB. Signed-off-by: Michael Brown --- src/arch/arm64/include/gdbmach.h | 45 ------------------- src/arch/i386/include/{ => bits}/gdbmach.h | 0 src/arch/loong64/include/gdbmach.h | 45 ------------------- src/arch/x86/core/gdbmach.c | 1 - src/arch/x86_64/include/{ => bits}/gdbmach.h | 0 src/core/gdbstub.c | 1 - .../arm32/include => include/bits}/gdbmach.h | 12 ++--- src/include/ipxe/gdbstub.h | 2 +- 8 files changed, 7 insertions(+), 99 deletions(-) delete mode 100644 src/arch/arm64/include/gdbmach.h rename src/arch/i386/include/{ => bits}/gdbmach.h (100%) delete mode 100644 src/arch/loong64/include/gdbmach.h rename src/arch/x86_64/include/{ => bits}/gdbmach.h (100%) rename src/{arch/arm32/include => include/bits}/gdbmach.h (76%) diff --git a/src/arch/arm64/include/gdbmach.h b/src/arch/arm64/include/gdbmach.h deleted file mode 100644 index cd152eedd..000000000 --- a/src/arch/arm64/include/gdbmach.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef GDBMACH_H -#define GDBMACH_H - -/** @file - * - * GDB architecture specifics - * - * This file declares functions for manipulating the machine state and - * debugging context. - * - */ - -#include - -typedef unsigned long gdbreg_t; - -/* Register snapshot */ -enum { - /* Not yet implemented */ - GDBMACH_NREGS, -}; - -#define GDBMACH_SIZEOF_REGS ( GDBMACH_NREGS * sizeof ( gdbreg_t ) ) - -static inline void gdbmach_set_pc ( gdbreg_t *regs, gdbreg_t pc ) { - /* Not yet implemented */ - ( void ) regs; - ( void ) pc; -} - -static inline void gdbmach_set_single_step ( gdbreg_t *regs, int step ) { - /* Not yet implemented */ - ( void ) regs; - ( void ) step; -} - -static inline void gdbmach_breakpoint ( void ) { - /* Not yet implemented */ -} - -extern int gdbmach_set_breakpoint ( int type, unsigned long addr, size_t len, - int enable ); -extern void gdbmach_init ( void ); - -#endif /* GDBMACH_H */ diff --git a/src/arch/i386/include/gdbmach.h b/src/arch/i386/include/bits/gdbmach.h similarity index 100% rename from src/arch/i386/include/gdbmach.h rename to src/arch/i386/include/bits/gdbmach.h diff --git a/src/arch/loong64/include/gdbmach.h b/src/arch/loong64/include/gdbmach.h deleted file mode 100644 index cd152eedd..000000000 --- a/src/arch/loong64/include/gdbmach.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef GDBMACH_H -#define GDBMACH_H - -/** @file - * - * GDB architecture specifics - * - * This file declares functions for manipulating the machine state and - * debugging context. - * - */ - -#include - -typedef unsigned long gdbreg_t; - -/* Register snapshot */ -enum { - /* Not yet implemented */ - GDBMACH_NREGS, -}; - -#define GDBMACH_SIZEOF_REGS ( GDBMACH_NREGS * sizeof ( gdbreg_t ) ) - -static inline void gdbmach_set_pc ( gdbreg_t *regs, gdbreg_t pc ) { - /* Not yet implemented */ - ( void ) regs; - ( void ) pc; -} - -static inline void gdbmach_set_single_step ( gdbreg_t *regs, int step ) { - /* Not yet implemented */ - ( void ) regs; - ( void ) step; -} - -static inline void gdbmach_breakpoint ( void ) { - /* Not yet implemented */ -} - -extern int gdbmach_set_breakpoint ( int type, unsigned long addr, size_t len, - int enable ); -extern void gdbmach_init ( void ); - -#endif /* GDBMACH_H */ diff --git a/src/arch/x86/core/gdbmach.c b/src/arch/x86/core/gdbmach.c index af6abfedd..d4d187e35 100644 --- a/src/arch/x86/core/gdbmach.c +++ b/src/arch/x86/core/gdbmach.c @@ -31,7 +31,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include #include -#include /** @file * diff --git a/src/arch/x86_64/include/gdbmach.h b/src/arch/x86_64/include/bits/gdbmach.h similarity index 100% rename from src/arch/x86_64/include/gdbmach.h rename to src/arch/x86_64/include/bits/gdbmach.h diff --git a/src/core/gdbstub.c b/src/core/gdbstub.c index 8b57ddf56..d668f454a 100644 --- a/src/core/gdbstub.c +++ b/src/core/gdbstub.c @@ -36,7 +36,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include #include -#include "gdbmach.h" enum { POSIX_EINVAL = 0x1c, /* used to report bad arguments to GDB */ diff --git a/src/arch/arm32/include/gdbmach.h b/src/include/bits/gdbmach.h similarity index 76% rename from src/arch/arm32/include/gdbmach.h rename to src/include/bits/gdbmach.h index cd152eedd..7e349856f 100644 --- a/src/arch/arm32/include/gdbmach.h +++ b/src/include/bits/gdbmach.h @@ -1,12 +1,12 @@ -#ifndef GDBMACH_H -#define GDBMACH_H +#ifndef _BITS_GDBMACH_H +#define _BITS_GDBMACH_H /** @file * - * GDB architecture specifics + * Dummy GDB architecture specifics * - * This file declares functions for manipulating the machine state and - * debugging context. + * This file is included only if the architecture does not provide its + * own version of this file. * */ @@ -42,4 +42,4 @@ extern int gdbmach_set_breakpoint ( int type, unsigned long addr, size_t len, int enable ); extern void gdbmach_init ( void ); -#endif /* GDBMACH_H */ +#endif /* _BITS_GDBMACH_H */ diff --git a/src/include/ipxe/gdbstub.h b/src/include/ipxe/gdbstub.h index 13ca33ddb..2240cca42 100644 --- a/src/include/ipxe/gdbstub.h +++ b/src/include/ipxe/gdbstub.h @@ -11,7 +11,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include #include -#include +#include /** * A transport mechanism for the GDB protocol