1
2#ifndef _ASM_X86_KGDB_H
3#define _ASM_X86_KGDB_H
4
5
6
7
8
9
10#include <asm/ptrace.h>
11
12
13
14
15
16
17#define BUFMAX 1024
18
19
20
21
22
23
24
25
26#ifdef CONFIG_X86_32
27enum regnames {
28 GDB_AX,
29 GDB_CX,
30 GDB_DX,
31 GDB_BX,
32 GDB_SP,
33 GDB_BP,
34 GDB_SI,
35 GDB_DI,
36 GDB_PC,
37 GDB_PS,
38 GDB_CS,
39 GDB_SS,
40 GDB_DS,
41 GDB_ES,
42 GDB_FS,
43 GDB_GS,
44};
45#define GDB_ORIG_AX 41
46#define DBG_MAX_REG_NUM 16
47#define NUMREGBYTES ((GDB_GS+1)*4)
48#else
49enum regnames {
50 GDB_AX,
51 GDB_BX,
52 GDB_CX,
53 GDB_DX,
54 GDB_SI,
55 GDB_DI,
56 GDB_BP,
57 GDB_SP,
58 GDB_R8,
59 GDB_R9,
60 GDB_R10,
61 GDB_R11,
62 GDB_R12,
63 GDB_R13,
64 GDB_R14,
65 GDB_R15,
66 GDB_PC,
67 GDB_PS,
68 GDB_CS,
69 GDB_SS,
70 GDB_DS,
71 GDB_ES,
72 GDB_FS,
73 GDB_GS,
74};
75#define GDB_ORIG_AX 57
76#define DBG_MAX_REG_NUM 24
77
78#define NUMREGBYTES ((17 * 8) + (5 * 4))
79#endif
80
81static inline void arch_kgdb_breakpoint(void)
82{
83 asm(" int $3");
84}
85#define BREAK_INSTR_SIZE 1
86#define CACHE_FLUSH_IS_SAFE 1
87#define GDB_ADJUSTS_BREAK_OFFSET
88
89extern int kgdb_ll_trap(int cmd, const char *str,
90 struct pt_regs *regs, long err, int trap, int sig);
91
92#endif
93