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