xref: /linux-6.15/include/linux/stacktrace.h (revision 897312bd)
18637c099SIngo Molnar #ifndef __LINUX_STACKTRACE_H
28637c099SIngo Molnar #define __LINUX_STACKTRACE_H
38637c099SIngo Molnar 
4*897312bdSAndrew Morton struct task_struct;
5*897312bdSAndrew Morton 
68637c099SIngo Molnar #ifdef CONFIG_STACKTRACE
78637c099SIngo Molnar struct stack_trace {
88637c099SIngo Molnar 	unsigned int nr_entries, max_entries;
98637c099SIngo Molnar 	unsigned long *entries;
105a1b3999SAndi Kleen 	int skip;	/* input argument: How many entries to skip */
118637c099SIngo Molnar };
128637c099SIngo Molnar 
13ab1b6f03SChristoph Hellwig extern void save_stack_trace(struct stack_trace *trace);
149745512cSArjan van de Ven extern void save_stack_trace_tsk(struct task_struct *tsk,
159745512cSArjan van de Ven 				struct stack_trace *trace);
168637c099SIngo Molnar 
178637c099SIngo Molnar extern void print_stack_trace(struct stack_trace *trace, int spaces);
188637c099SIngo Molnar #else
19ab1b6f03SChristoph Hellwig # define save_stack_trace(trace)			do { } while (0)
209745512cSArjan van de Ven # define save_stack_trace_tsk(tsk, trace)		do { } while (0)
213b5ad079SJohannes Berg # define print_stack_trace(trace, spaces)		do { } while (0)
228637c099SIngo Molnar #endif
238637c099SIngo Molnar 
248637c099SIngo Molnar #endif
25