summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/include/bochs.h
blob: 73f43c364e88c4ebf5c05856bc6d061118e4d700 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef BOCHS_H
#define BOCHS_H

/*
 * This file defines "bochsbp", the magic breakpoint instruction that
 * is incredibly useful when debugging under bochs.
 *
 */

#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 */