2007-10-15 23:28:20 +02:00
|
|
|
#ifndef _ASM_X86_KDEBUG_H
|
|
|
|
#define _ASM_X86_KDEBUG_H
|
|
|
|
|
|
|
|
#include <linux/notifier.h>
|
|
|
|
|
|
|
|
struct pt_regs;
|
|
|
|
|
|
|
|
/* Grossly misnamed. */
|
|
|
|
enum die_val {
|
|
|
|
DIE_OOPS = 1,
|
|
|
|
DIE_INT3,
|
|
|
|
DIE_DEBUG,
|
|
|
|
DIE_PANIC,
|
|
|
|
DIE_NMI,
|
|
|
|
DIE_DIE,
|
|
|
|
DIE_NMIWATCHDOG,
|
|
|
|
DIE_KERNELDEBUG,
|
|
|
|
DIE_TRAP,
|
|
|
|
DIE_GPF,
|
|
|
|
DIE_CALL,
|
|
|
|
DIE_NMI_IPI,
|
|
|
|
DIE_PAGE_FAULT,
|
2008-02-15 21:55:53 +01:00
|
|
|
DIE_NMIUNKNOWN,
|
2007-10-15 23:28:20 +02:00
|
|
|
};
|
|
|
|
|
2008-01-30 13:33:07 +01:00
|
|
|
extern void printk_address(unsigned long address, int reliable);
|
2008-03-23 09:02:31 +01:00
|
|
|
extern void die(const char *, struct pt_regs *,long);
|
2008-01-30 13:31:23 +01:00
|
|
|
extern int __must_check __die(const char *, struct pt_regs *, long);
|
2007-10-15 23:28:20 +02:00
|
|
|
extern void show_registers(struct pt_regs *regs);
|
2008-01-30 13:30:17 +01:00
|
|
|
extern void __show_registers(struct pt_regs *, int all);
|
2008-01-30 13:33:07 +01:00
|
|
|
extern void show_trace(struct task_struct *t, struct pt_regs *regs,
|
2008-03-23 09:02:31 +01:00
|
|
|
unsigned long *sp, unsigned long bp);
|
2008-01-30 13:30:17 +01:00
|
|
|
extern void __show_regs(struct pt_regs *regs);
|
|
|
|
extern void show_regs(struct pt_regs *regs);
|
2007-10-15 23:28:20 +02:00
|
|
|
extern unsigned long oops_begin(void);
|
2008-01-30 13:31:23 +01:00
|
|
|
extern void oops_end(unsigned long, struct pt_regs *, int signr);
|
2007-10-15 23:28:20 +02:00
|
|
|
|
2008-05-12 21:20:56 +02:00
|
|
|
struct pf_handler {
|
|
|
|
struct hlist_node hlist;
|
|
|
|
int (*handler)(struct pt_regs *regs, unsigned long error_code,
|
|
|
|
unsigned long address);
|
|
|
|
};
|
|
|
|
|
|
|
|
extern void register_page_fault_handler(struct pf_handler *new_pfh);
|
|
|
|
extern void unregister_page_fault_handler(struct pf_handler *old_pfh);
|
|
|
|
|
2007-10-11 11:20:03 +02:00
|
|
|
#endif
|