kdebug.h 1.0 KB

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