18637c099SIngo Molnar #ifndef __LINUX_STACKTRACE_H 28637c099SIngo Molnar #define __LINUX_STACKTRACE_H 38637c099SIngo Molnar 4*9a92a6ceSJoonsoo Kim #include <linux/types.h> 5*9a92a6ceSJoonsoo Kim 6897312bdSAndrew Morton struct task_struct; 79c0729dcSSoeren Sandmann Pedersen struct pt_regs; 8897312bdSAndrew Morton 98637c099SIngo Molnar #ifdef CONFIG_STACKTRACE 10b618ad31SVegard Nossum struct task_struct; 11b618ad31SVegard Nossum 128637c099SIngo Molnar struct stack_trace { 138637c099SIngo Molnar unsigned int nr_entries, max_entries; 148637c099SIngo Molnar unsigned long *entries; 155a1b3999SAndi Kleen int skip; /* input argument: How many entries to skip */ 168637c099SIngo Molnar }; 178637c099SIngo Molnar 18ab1b6f03SChristoph Hellwig extern void save_stack_trace(struct stack_trace *trace); 1939581062SMasami Hiramatsu extern void save_stack_trace_regs(struct pt_regs *regs, 2039581062SMasami Hiramatsu struct stack_trace *trace); 219745512cSArjan van de Ven extern void save_stack_trace_tsk(struct task_struct *tsk, 229745512cSArjan van de Ven struct stack_trace *trace); 238637c099SIngo Molnar 248637c099SIngo Molnar extern void print_stack_trace(struct stack_trace *trace, int spaces); 25*9a92a6ceSJoonsoo Kim extern int snprint_stack_trace(char *buf, size_t size, 26*9a92a6ceSJoonsoo Kim struct stack_trace *trace, int spaces); 2702b67518STörök Edwin 288d26487fSTörök Edwin #ifdef CONFIG_USER_STACKTRACE_SUPPORT 2902b67518STörök Edwin extern void save_stack_trace_user(struct stack_trace *trace); 3002b67518STörök Edwin #else 3102b67518STörök Edwin # define save_stack_trace_user(trace) do { } while (0) 3202b67518STörök Edwin #endif 3302b67518STörök Edwin 348637c099SIngo Molnar #else 35ab1b6f03SChristoph Hellwig # define save_stack_trace(trace) do { } while (0) 369745512cSArjan van de Ven # define save_stack_trace_tsk(tsk, trace) do { } while (0) 3702b67518STörök Edwin # define save_stack_trace_user(trace) do { } while (0) 383b5ad079SJohannes Berg # define print_stack_trace(trace, spaces) do { } while (0) 39*9a92a6ceSJoonsoo Kim # define snprint_stack_trace(buf, size, trace, spaces) do { } while (0) 408637c099SIngo Molnar #endif 418637c099SIngo Molnar 428637c099SIngo Molnar #endif 43