kdebug.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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, 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 notifier_call_chain(&i386die_chain, val, &args);
  48. }
  49. #endif