#ifndef __LINUX_STACKTRACE_H#define __LINUX_STACKTRACE_Hstructtask_struct;structpt_regs;#ifdef CONFIG_STACKTRACEstructtask_struct;structstack_trace{unsignedintnr_entries,max_entries;unsignedlong*entries;intskip;/* input argument: How many entries to skip */};externvoidsave_stack_trace(structstack_trace*trace);externvoidsave_stack_trace_regs(structpt_regs*regs,structstack_trace*trace);externvoidsave_stack_trace_tsk(structtask_struct*tsk,structstack_trace*trace);externvoidprint_stack_trace(structstack_trace*trace,intspaces);#ifdef CONFIG_USER_STACKTRACE_SUPPORTexternvoidsave_stack_trace_user(structstack_trace*trace);#else# define save_stack_trace_user(trace) do { } while (0)#endif#else# define save_stack_trace(trace) do { } while (0)# define save_stack_trace_tsk(tsk, trace) do { } while (0)# define save_stack_trace_user(trace) do { } while (0)# define print_stack_trace(trace, spaces) do { } while (0)#endif#endif