blob: d73f1571bde72ee744109afed9337306fd39a414 [file] [log] [blame]
H. Peter Anvin1965aae2008-10-22 22:26:29 -07001#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,
Thomas Gleixner35cc4612007-10-15 23:28:20 +020016 DIE_KERNELDEBUG,
17 DIE_TRAP,
18 DIE_GPF,
19 DIE_CALL,
Thomas Gleixner35cc4612007-10-15 23:28:20 +020020 DIE_PAGE_FAULT,
Jason Wesseld3597522008-02-15 14:55:53 -060021 DIE_NMIUNKNOWN,
Thomas Gleixner35cc4612007-10-15 23:28:20 +020022};
23
Arjan van de Venbc850d62008-01-30 13:33:07 +010024extern void printk_address(unsigned long address, int reliable);
Joe Perchesf461f132008-03-23 01:02:31 -070025extern void die(const char *, struct pt_regs *,long);
Jan Beulich22f59912008-01-30 13:31:23 +010026extern int __must_check __die(const char *, struct pt_regs *, long);
Thomas Gleixner35cc4612007-10-15 23:28:20 +020027extern void show_registers(struct pt_regs *regs);
Arjan van de Venbc850d62008-01-30 13:33:07 +010028extern void show_trace(struct task_struct *t, struct pt_regs *regs,
Namhyung Kime8e999cf2011-03-18 11:40:06 +090029 unsigned long *sp, unsigned long bp);
Pekka Enberge2ce07c2008-04-03 16:40:48 +030030extern void __show_regs(struct pt_regs *regs, int all);
Thomas Gleixner35cc4612007-10-15 23:28:20 +020031extern unsigned long oops_begin(void);
Jan Beulich22f59912008-01-30 13:31:23 +010032extern void oops_end(unsigned long, struct pt_regs *, int signr);
Cliff Wickman1d6225e2010-08-09 16:11:22 -050033#ifdef CONFIG_KEXEC
Cliff Wickman5edd19a2010-07-20 18:09:05 -050034extern int in_crash_kexec;
Cliff Wickman1d6225e2010-08-09 16:11:22 -050035#else
36/* no crash dump is ever in progress if no crash kernel can be kexec'd */
37#define in_crash_kexec 0
38#endif
Thomas Gleixner35cc4612007-10-15 23:28:20 +020039
H. Peter Anvin1965aae2008-10-22 22:26:29 -070040#endif /* _ASM_X86_KDEBUG_H */