stacktrace.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef __LINUX_STACKTRACE_H
  2. #define __LINUX_STACKTRACE_H
  3. #include <linux/types.h>
  4. struct task_struct;
  5. struct pt_regs;
  6. #ifdef CONFIG_STACKTRACE
  7. struct stack_trace {
  8. unsigned int nr_entries, max_entries;
  9. unsigned long *entries;
  10. int skip; /* input argument: How many entries to skip */
  11. };
  12. extern void save_stack_trace(struct stack_trace *trace);
  13. extern void save_stack_trace_regs(struct pt_regs *regs,
  14. struct stack_trace *trace);
  15. extern void save_stack_trace_tsk(struct task_struct *tsk,
  16. struct stack_trace *trace);
  17. extern void print_stack_trace(struct stack_trace *trace, int spaces);
  18. extern int snprint_stack_trace(char *buf, size_t size,
  19. struct stack_trace *trace, int spaces);
  20. #ifdef CONFIG_USER_STACKTRACE_SUPPORT
  21. extern void save_stack_trace_user(struct stack_trace *trace);
  22. #else
  23. # define save_stack_trace_user(trace) do { } while (0)
  24. #endif
  25. #else
  26. # define save_stack_trace(trace) do { } while (0)
  27. # define save_stack_trace_tsk(tsk, trace) do { } while (0)
  28. # define save_stack_trace_user(trace) do { } while (0)
  29. # define print_stack_trace(trace, spaces) do { } while (0)
  30. # define snprint_stack_trace(buf, size, trace, spaces) do { } while (0)
  31. #endif
  32. #endif