18637c099SIngo Molnar #ifndef __LINUX_STACKTRACE_H 28637c099SIngo Molnar #define __LINUX_STACKTRACE_H 38637c099SIngo Molnar 48637c099SIngo Molnar #ifdef CONFIG_STACKTRACE 58637c099SIngo Molnar struct stack_trace { 68637c099SIngo Molnar unsigned int nr_entries, max_entries; 78637c099SIngo Molnar unsigned long *entries; 85a1b3999SAndi Kleen int skip; /* input argument: How many entries to skip */ 98637c099SIngo Molnar }; 108637c099SIngo Molnar 11ab1b6f03SChristoph Hellwig extern void save_stack_trace(struct stack_trace *trace); 12*9745512cSArjan van de Ven extern void save_stack_trace_tsk(struct task_struct *tsk, 13*9745512cSArjan van de Ven struct stack_trace *trace); 148637c099SIngo Molnar 158637c099SIngo Molnar extern void print_stack_trace(struct stack_trace *trace, int spaces); 168637c099SIngo Molnar #else 17ab1b6f03SChristoph Hellwig # define save_stack_trace(trace) do { } while (0) 18*9745512cSArjan van de Ven # define save_stack_trace_tsk(tsk, trace) do { } while (0) 193b5ad079SJohannes Berg # define print_stack_trace(trace, spaces) do { } while (0) 208637c099SIngo Molnar #endif 218637c099SIngo Molnar 228637c099SIngo Molnar #endif 23