[gdb] Allow CPU architectures to omit support for GDB Move the <gdbmach.h> file to <bits/gdbmach.h>, and provide a common dummy implementation for all architectures that have not yet implemented support for GDB. Signed-off-by: Michael Brown <mcb30@ipxe.org>
diff --git a/src/arch/arm64/include/gdbmach.h b/src/arch/arm64/include/gdbmach.h deleted file mode 100644 index cd152ee..0000000 --- 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 <stdint.h> - -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 cd152ee..0000000 --- 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 <stdint.h> - -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 af6abfe..d4d187e 100644 --- a/src/arch/x86/core/gdbmach.c +++ b/src/arch/x86/core/gdbmach.c
@@ -31,7 +31,6 @@ #include <ipxe/uaccess.h> #include <ipxe/gdbstub.h> #include <librm.h> -#include <gdbmach.h> /** @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 8b57ddf..d668f45 100644 --- a/src/core/gdbstub.c +++ b/src/core/gdbstub.c
@@ -36,7 +36,6 @@ #include <ctype.h> #include <byteswap.h> #include <ipxe/gdbstub.h> -#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 cd152ee..7e34985 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 @@ 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 13ca33d..2240cca 100644 --- a/src/include/ipxe/gdbstub.h +++ b/src/include/ipxe/gdbstub.h
@@ -11,7 +11,7 @@ #include <stdint.h> #include <ipxe/tables.h> -#include <gdbmach.h> +#include <bits/gdbmach.h> /** * A transport mechanism for the GDB protocol