home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-x86_64 / kdebug.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.2 KB  |  59 lines

  1. #ifndef _X86_64_KDEBUG_H
  2. #define _X86_64_KDEBUG_H 1
  3.  
  4. #include <linux/notifier.h>
  5.  
  6. struct pt_regs;
  7.  
  8. struct die_args {
  9.     struct pt_regs *regs;
  10.     const char *str;
  11.     long err;
  12.     int trapnr;
  13.     int signr;
  14. };
  15.  
  16. extern int register_die_notifier(struct notifier_block *);
  17. extern int unregister_die_notifier(struct notifier_block *);
  18. extern struct atomic_notifier_head die_chain;
  19.  
  20. /* Grossly misnamed. */
  21. enum die_val {
  22.     DIE_OOPS = 1,
  23.     DIE_INT3,
  24.     DIE_DEBUG,
  25.     DIE_PANIC,
  26.     DIE_NMI,
  27.     DIE_DIE,
  28.     DIE_NMIWATCHDOG,
  29.     DIE_KERNELDEBUG,
  30.     DIE_TRAP,
  31.     DIE_GPF,
  32.     DIE_CALL,
  33.     DIE_NMI_IPI,
  34.     DIE_PAGE_FAULT,
  35. };
  36.  
  37. static inline int notify_die(enum die_val val, const char *str,
  38.             struct pt_regs *regs, long err, int trap, int sig)
  39. {
  40.     struct die_args args = {
  41.         .regs = regs,
  42.         .str = str,
  43.         .err = err,
  44.         .trapnr = trap,
  45.         .signr = sig
  46.     };
  47.     return atomic_notifier_call_chain(&die_chain, val, &args);
  48.  
  49. extern int printk_address(unsigned long address);
  50. extern void die(const char *,struct pt_regs *,long);
  51. extern void __die(const char *,struct pt_regs *,long);
  52. extern void show_registers(struct pt_regs *regs);
  53. extern void dump_pagetable(unsigned long);
  54. extern unsigned long oops_begin(void);
  55. extern void oops_end(unsigned long);
  56.  
  57. #endif
  58.