at v2.6.16 57 lines 1.1 kB view raw
1#ifndef _I386_KDEBUG_H 2#define _I386_KDEBUG_H 1 3 4/* 5 * Aug-05 2004 Ported by Prasanna S Panchamukhi <prasanna@in.ibm.com> 6 * from x86_64 architecture. 7 */ 8#include <linux/notifier.h> 9 10struct pt_regs; 11 12struct die_args { 13 struct pt_regs *regs; 14 const char *str; 15 long err; 16 int trapnr; 17 int signr; 18}; 19 20/* Note - you should never unregister because that can race with NMIs. 21 If you really want to do it first unregister - then synchronize_sched - then free. 22 */ 23int register_die_notifier(struct notifier_block *nb); 24extern struct notifier_block *i386die_chain; 25 26 27/* Grossly misnamed. */ 28enum die_val { 29 DIE_OOPS = 1, 30 DIE_INT3, 31 DIE_DEBUG, 32 DIE_PANIC, 33 DIE_NMI, 34 DIE_DIE, 35 DIE_NMIWATCHDOG, 36 DIE_KERNELDEBUG, 37 DIE_TRAP, 38 DIE_GPF, 39 DIE_CALL, 40 DIE_NMI_IPI, 41 DIE_PAGE_FAULT, 42}; 43 44static inline int notify_die(enum die_val val, const char *str, 45 struct pt_regs *regs, long err, int trap, int sig) 46{ 47 struct die_args args = { 48 .regs = regs, 49 .str = str, 50 .err = err, 51 .trapnr = trap, 52 .signr = sig 53 }; 54 return notifier_call_chain(&i386die_chain, val, &args); 55} 56 57#endif