[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