1#ifndef BOCHS_H
2#define BOCHS_H
3
4/** @file
5 *
6 * bochs breakpoints
7 *
8 * This file defines @c bochsbp, the magic breakpoint instruction that
9 * is incredibly useful when debugging under bochs.  This file should
10 * never be included in production code.
11 *
12 * Use the pseudo-instruction @c bochsbp in assembly code, or the
13 * bochsbp() function in C code.
14 *
15 */
16
17#ifdef ASSEMBLY
18
19/* Breakpoint for when debugging under bochs */
20#define bochsbp xchgw %bx, %bx
21#define BOCHSBP bochsbp
22
23#else /* ASSEMBLY */
24
25/** Breakpoint for when debugging under bochs */
26static inline void bochsbp ( void ) {
27	__asm__ __volatile__ ( "xchgw %bx, %bx" );
28}
29
30#endif /* ASSEMBLY */
31
32#warning "bochs.h should not be included into production code"
33
34#endif /* BOCHS_H */
35