11965aae3c98397aad957412413c07e97b1bd4e64H. Peter Anvin#ifndef _ASM_X86_KDEBUG_H
21965aae3c98397aad957412413c07e97b1bd4e64H. Peter Anvin#define _ASM_X86_KDEBUG_H
335cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner
435cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner#include <linux/notifier.h>
535cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner
635cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixnerstruct pt_regs;
735cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner
835cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner/* Grossly misnamed. */
935cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixnerenum die_val {
1035cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_OOPS = 1,
1135cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_INT3,
1235cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_DEBUG,
1335cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_PANIC,
1435cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_NMI,
1535cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_DIE,
1635cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_KERNELDEBUG,
1735cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_TRAP,
1835cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_GPF,
1935cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_CALL,
2035cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner	DIE_PAGE_FAULT,
21d359752407f8916c29ad53a5c30ac73e338f2797Jason Wessel	DIE_NMIUNKNOWN,
2235cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner};
2335cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner
24bc850d6b374fffd08336996f4b4d3bbd6bf427f6Arjan van de Venextern void printk_address(unsigned long address, int reliable);
25f461f1372cef1853534df2115f9ff5b7fbfc6958Joe Perchesextern void die(const char *, struct pt_regs *,long);
2622f5991c85dec1281cce5c8df9ee92b43b1738c8Jan Beulichextern int __must_check __die(const char *, struct pt_regs *, long);
2735cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixnerextern void show_registers(struct pt_regs *regs);
28bc850d6b374fffd08336996f4b4d3bbd6bf427f6Arjan van de Venextern void show_trace(struct task_struct *t, struct pt_regs *regs,
29e8e999cf3cc733482e390b02ff25a64cecdc0b64Namhyung Kim		       unsigned long *sp, unsigned long bp);
30e2ce07c8042975e52df4cec1f41faf15b83f2e42Pekka Enbergextern void __show_regs(struct pt_regs *regs, int all);
3135cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixnerextern unsigned long oops_begin(void);
3222f5991c85dec1281cce5c8df9ee92b43b1738c8Jan Beulichextern void oops_end(unsigned long, struct pt_regs *, int signr);
331d6225e8cc5598f2bc5c992f9c88b1137763e8e1Cliff Wickman#ifdef CONFIG_KEXEC
345edd19af18a36a4e22c570b1b969179e0ca1fe4cCliff Wickmanextern int in_crash_kexec;
351d6225e8cc5598f2bc5c992f9c88b1137763e8e1Cliff Wickman#else
361d6225e8cc5598f2bc5c992f9c88b1137763e8e1Cliff Wickman/* no crash dump is ever in progress if no crash kernel can be kexec'd */
371d6225e8cc5598f2bc5c992f9c88b1137763e8e1Cliff Wickman#define in_crash_kexec 0
381d6225e8cc5598f2bc5c992f9c88b1137763e8e1Cliff Wickman#endif
3935cc46119d256364f179d7b3554f06ba468af3f7Thomas Gleixner
401965aae3c98397aad957412413c07e97b1bd4e64H. Peter Anvin#endif /* _ASM_X86_KDEBUG_H */
41