stacktrace.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef _ASM_X86_STACKTRACE_H
  2. #define _ASM_X86_STACKTRACE_H
  3. extern int kstack_depth_to_print;
  4. int x86_is_stack_id(int id, char *name);
  5. struct thread_info;
  6. struct stacktrace_ops;
  7. typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
  8. unsigned long *stack,
  9. unsigned long bp,
  10. const struct stacktrace_ops *ops,
  11. void *data,
  12. unsigned long *end,
  13. int *graph);
  14. extern unsigned long
  15. print_context_stack(struct thread_info *tinfo,
  16. unsigned long *stack, unsigned long bp,
  17. const struct stacktrace_ops *ops, void *data,
  18. unsigned long *end, int *graph);
  19. /* Generic stack tracer with callbacks */
  20. struct stacktrace_ops {
  21. void (*warning)(void *data, char *msg);
  22. /* msg must contain %s for the symbol */
  23. void (*warning_symbol)(void *data, char *msg, unsigned long symbol);
  24. void (*address)(void *data, unsigned long address, int reliable);
  25. /* On negative return stop dumping */
  26. int (*stack)(void *data, char *name);
  27. walk_stack_t walk_stack;
  28. };
  29. void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
  30. unsigned long *stack, unsigned long bp,
  31. const struct stacktrace_ops *ops, void *data);
  32. #endif /* _ASM_X86_STACKTRACE_H */