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