Home | History | Annotate | Download | only in include
      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 */
     26 static 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