mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-15 15:51:44 +00:00
35 lines
747 B
C
35 lines
747 B
C
#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 */
|