#ifndef BOCHS_H #define BOCHS_H /** @file * * bochs breakpoints * * This file defines @c bochsbp, the magic breakpoint instruction that * is incredibly useful when debugging under bochs. This file should * never be included in production code. * * Use the pseudo-instruction @c bochsbp in assembly code, or the * bochsbp() function in C code. * */ #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 */