Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
x86
include
asm
traps.h
Go to the documentation of this file.
1
#ifndef _ASM_X86_TRAPS_H
2
#define _ASM_X86_TRAPS_H
3
4
#include <
linux/kprobes.h
>
5
6
#include <
asm/debugreg.h
>
7
#include <asm/siginfo.h>
/* TRAP_TRACE, ... */
8
9
#ifdef CONFIG_X86_32
10
#define dotraplinkage
11
#else
12
#define dotraplinkage asmlinkage
13
#endif
14
15
asmlinkage
void
divide_error
(
void
);
16
asmlinkage
void
debug
(
void
);
17
asmlinkage
void
nmi
(
void
);
18
asmlinkage
void
int3
(
void
);
19
asmlinkage
void
xen_debug
(
void
);
20
asmlinkage
void
xen_int3
(
void
);
21
asmlinkage
void
xen_stack_segment
(
void
);
22
asmlinkage
void
overflow
(
void
);
23
asmlinkage
void
bounds
(
void
);
24
asmlinkage
void
invalid_op
(
void
);
25
asmlinkage
void
device_not_available
(
void
);
26
#ifdef CONFIG_X86_64
27
asmlinkage
void
double_fault
(
void
);
28
#endif
29
asmlinkage
void
coprocessor_segment_overrun
(
void
);
30
asmlinkage
void
invalid_TSS
(
void
);
31
asmlinkage
void
segment_not_present
(
void
);
32
asmlinkage
void
stack_segment
(
void
);
33
asmlinkage
void
general_protection
(
void
);
34
asmlinkage
void
page_fault
(
void
);
35
asmlinkage
void
async_page_fault
(
void
);
36
asmlinkage
void
spurious_interrupt_bug
(
void
);
37
asmlinkage
void
coprocessor_error
(
void
);
38
asmlinkage
void
alignment_check
(
void
);
39
#ifdef CONFIG_X86_MCE
40
asmlinkage
void
machine_check(
void
);
41
#endif
/* CONFIG_X86_MCE */
42
asmlinkage
void
simd_coprocessor_error
(
void
);
43
44
dotraplinkage
void
do_divide_error
(
struct
pt_regs
*,
long
);
45
dotraplinkage
void
do_debug
(
struct
pt_regs
*,
long
);
46
dotraplinkage
void
do_nmi
(
struct
pt_regs
*,
long
);
47
dotraplinkage
void
do_int3
(
struct
pt_regs
*,
long
);
48
dotraplinkage
void
do_overflow
(
struct
pt_regs
*,
long
);
49
dotraplinkage
void
do_bounds
(
struct
pt_regs
*,
long
);
50
dotraplinkage
void
do_invalid_op
(
struct
pt_regs
*,
long
);
51
dotraplinkage
void
do_device_not_available
(
struct
pt_regs
*,
long
);
52
dotraplinkage
void
do_coprocessor_segment_overrun
(
struct
pt_regs
*,
long
);
53
dotraplinkage
void
do_invalid_TSS
(
struct
pt_regs
*,
long
);
54
dotraplinkage
void
do_segment_not_present
(
struct
pt_regs
*,
long
);
55
dotraplinkage
void
do_stack_segment
(
struct
pt_regs
*,
long
);
56
#ifdef CONFIG_X86_64
57
dotraplinkage
void
do_double_fault
(
struct
pt_regs
*,
long
);
58
asmlinkage
__kprobes
struct
pt_regs
*sync_regs(
struct
pt_regs
*);
59
#endif
60
dotraplinkage
void
do_general_protection
(
struct
pt_regs
*,
long
);
61
dotraplinkage
void
do_page_fault
(
struct
pt_regs
*,
unsigned
long
);
62
dotraplinkage
void
do_spurious_interrupt_bug
(
struct
pt_regs
*,
long
);
63
dotraplinkage
void
do_coprocessor_error
(
struct
pt_regs
*,
long
);
64
dotraplinkage
void
do_alignment_check
(
struct
pt_regs
*,
long
);
65
#ifdef CONFIG_X86_MCE
66
dotraplinkage
void
do_machine_check
(
struct
pt_regs
*,
long
);
67
#endif
68
dotraplinkage
void
do_simd_coprocessor_error
(
struct
pt_regs
*,
long
);
69
#ifdef CONFIG_X86_32
70
dotraplinkage
void
do_iret_error(
struct
pt_regs
*,
long
);
71
#endif
72
73
static
inline
int
get_si_code(
unsigned
long
condition)
74
{
75
if
(condition &
DR_STEP
)
76
return
TRAP_TRACE
;
77
else
if
(condition & (
DR_TRAP0
|
DR_TRAP1
|
DR_TRAP2
|
DR_TRAP3
))
78
return
TRAP_HWBKPT
;
79
else
80
return
TRAP_BRKPT
;
81
}
82
83
extern
int
panic_on_unrecovered_nmi
;
84
85
void
math_error
(
struct
pt_regs
*,
int
,
int
);
86
void
math_emulate
(
struct
math_emu_info
*);
87
#ifndef CONFIG_X86_32
88
asmlinkage
void
smp_thermal_interrupt
(
void
);
89
asmlinkage
void
mce_threshold_interrupt
(
void
);
90
#endif
91
92
/* Interrupts/Exceptions */
93
enum
{
94
X86_TRAP_DE
= 0,
/* 0, Divide-by-zero */
95
X86_TRAP_DB
,
/* 1, Debug */
96
X86_TRAP_NMI
,
/* 2, Non-maskable Interrupt */
97
X86_TRAP_BP
,
/* 3, Breakpoint */
98
X86_TRAP_OF
,
/* 4, Overflow */
99
X86_TRAP_BR
,
/* 5, Bound Range Exceeded */
100
X86_TRAP_UD
,
/* 6, Invalid Opcode */
101
X86_TRAP_NM
,
/* 7, Device Not Available */
102
X86_TRAP_DF
,
/* 8, Double Fault */
103
X86_TRAP_OLD_MF
,
/* 9, Coprocessor Segment Overrun */
104
X86_TRAP_TS
,
/* 10, Invalid TSS */
105
X86_TRAP_NP
,
/* 11, Segment Not Present */
106
X86_TRAP_SS
,
/* 12, Stack Segment Fault */
107
X86_TRAP_GP
,
/* 13, General Protection Fault */
108
X86_TRAP_PF
,
/* 14, Page Fault */
109
X86_TRAP_SPURIOUS
,
/* 15, Spurious Interrupt */
110
X86_TRAP_MF
,
/* 16, x87 Floating-Point Exception */
111
X86_TRAP_AC
,
/* 17, Alignment Check */
112
X86_TRAP_MC
,
/* 18, Machine Check */
113
X86_TRAP_XF
,
/* 19, SIMD Floating-Point Exception */
114
X86_TRAP_IRET
= 32,
/* 32, IRET Exception */
115
};
116
117
#endif
/* _ASM_X86_TRAPS_H */
Generated on Thu Jan 10 2013 12:55:25 for Linux Kernel by
1.8.2