blob: 5ec3ad3e825c4dadfcbcff6b6f9c880f6ec02c7a [file] [log] [blame]
Vegard Nossum77ef50a2008-06-18 17:08:48 +02001#ifndef ASM_X86__KDEBUG_H
2#define ASM_X86__KDEBUG_H
Thomas Gleixner35cc4612007-10-15 23:28:20 +02003
4#include <linux/notifier.h>
5
6struct pt_regs;
7
8/* Grossly misnamed. */
9enum die_val {
10 DIE_OOPS = 1,
11 DIE_INT3,
12 DIE_DEBUG,
13 DIE_PANIC,
14 DIE_NMI,
15 DIE_DIE,
16 DIE_NMIWATCHDOG,
17 DIE_KERNELDEBUG,
18 DIE_TRAP,
19 DIE_GPF,
20 DIE_CALL,
21 DIE_NMI_IPI,
22 DIE_PAGE_FAULT,
Jason Wesseld3597522008-02-15 14:55:53 -060023 DIE_NMIUNKNOWN,
Thomas Gleixner35cc4612007-10-15 23:28:20 +020024};
25
Arjan van de Venbc850d62008-01-30 13:33:07 +010026extern void printk_address(unsigned long address, int reliable);
Joe Perchesf461f132008-03-23 01:02:31 -070027extern void die(const char *, struct pt_regs *,long);
Jan Beulich22f59912008-01-30 13:31:23 +010028extern int __must_check __die(const char *, struct pt_regs *, long);
Thomas Gleixner35cc4612007-10-15 23:28:20 +020029extern void show_registers(struct pt_regs *regs);
Thomas Gleixner718fc132008-01-30 13:30:17 +010030extern void __show_registers(struct pt_regs *, int all);
Arjan van de Venbc850d62008-01-30 13:33:07 +010031extern void show_trace(struct task_struct *t, struct pt_regs *regs,
Joe Perchesf461f132008-03-23 01:02:31 -070032 unsigned long *sp, unsigned long bp);
Thomas Gleixner718fc132008-01-30 13:30:17 +010033extern void __show_regs(struct pt_regs *regs);
34extern void show_regs(struct pt_regs *regs);
Thomas Gleixner35cc4612007-10-15 23:28:20 +020035extern unsigned long oops_begin(void);
Jan Beulich22f59912008-01-30 13:31:23 +010036extern void oops_end(unsigned long, struct pt_regs *, int signr);
Thomas Gleixner35cc4612007-10-15 23:28:20 +020037
Vegard Nossum77ef50a2008-06-18 17:08:48 +020038#endif /* ASM_X86__KDEBUG_H */