at v2.6.13 1.1 kB view raw
1#ifndef _SPARC64_KDEBUG_H 2#define _SPARC64_KDEBUG_H 3 4/* Nearly identical to x86_64/i386 code. */ 5 6#include <linux/notifier.h> 7 8struct pt_regs; 9 10struct die_args { 11 struct pt_regs *regs; 12 const char *str; 13 long err; 14 int trapnr; 15 int signr; 16}; 17 18/* Note - you should never unregister because that can race with NMIs. 19 * If you really want to do it first unregister - then synchronize_sched 20 * - then free. 21 */ 22int register_die_notifier(struct notifier_block *nb); 23extern struct notifier_block *sparc64die_chain; 24 25extern void bad_trap(struct pt_regs *, long); 26 27/* Grossly misnamed. */ 28enum die_val { 29 DIE_OOPS = 1, 30 DIE_DEBUG, /* ta 0x70 */ 31 DIE_DEBUG_2, /* ta 0x71 */ 32 DIE_DIE, 33 DIE_TRAP, 34 DIE_TRAP_TL1, 35 DIE_GPF, 36 DIE_CALL, 37 DIE_PAGE_FAULT, 38}; 39 40static inline int notify_die(enum die_val val,char *str, struct pt_regs *regs, 41 long err, int trap, int sig) 42{ 43 struct die_args args = { .regs = regs, 44 .str = str, 45 .err = err, 46 .trapnr = trap, 47 .signr = sig }; 48 49 return notifier_call_chain(&sparc64die_chain, val, &args); 50} 51 52#endif