1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __LINUX_STACKTRACE_H 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define __LINUX_STACKTRACE_H 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef CONFIG_STACKTRACE 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stack_trace { 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int nr_entries, max_entries; 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long *entries; 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void save_stack_trace(struct stack_trace *trace, 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru struct task_struct *task, int all_contexts, 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int skip); 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void print_stack_trace(struct stack_trace *trace, int spaces); 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define save_stack_trace(trace, task, all, skip) do { } while (0) 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define print_stack_trace(trace) do { } while (0) 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 21