summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/include/bochs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/i386/include/bochs.h')
-rw-r--r--src/arch/i386/include/bochs.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/arch/i386/include/bochs.h b/src/arch/i386/include/bochs.h
new file mode 100644
index 00000000..73f43c36
--- /dev/null
+++ b/src/arch/i386/include/bochs.h
@@ -0,0 +1,27 @@
+#ifndef BOCHS_H
+#define BOCHS_H
+
+/*
+ * This file defines "bochsbp", the magic breakpoint instruction that
+ * is incredibly useful when debugging under bochs.
+ *
+ */
+
+#ifdef ASSEMBLY
+
+/* Breakpoint for when debugging under bochs */
+#define bochsbp xchgw %bx, %bx
+#define BOCHSBP bochsbp
+
+#else /* ASSEMBLY */
+
+/* Breakpoint for when debugging under bochs */
+static inline void bochsbp ( void ) {
+ __asm__ __volatile__ ( "xchgw %bx, %bx" );
+}
+
+#endif /* ASSEMBLY */
+
+#warning "bochs.h should not be included into production code"
+
+#endif /* BOCHS_H */