summaryrefslogtreecommitdiffstats
path: root/include/linux/stacktrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/stacktrace.h')
-rw-r--r--include/linux/stacktrace.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
index ba29a0613e66..a24340b3e9e1 100644
--- a/include/linux/stacktrace.h
+++ b/include/linux/stacktrace.h
@@ -3,11 +3,26 @@
3#define __LINUX_STACKTRACE_H 3#define __LINUX_STACKTRACE_H
4 4
5#include <linux/types.h> 5#include <linux/types.h>
6#include <asm/errno.h>
6 7
7struct task_struct; 8struct task_struct;
8struct pt_regs; 9struct pt_regs;
9 10
10#ifdef CONFIG_STACKTRACE 11#ifdef CONFIG_STACKTRACE
12void stack_trace_print(unsigned long *trace, unsigned int nr_entries,
13 int spaces);
14int stack_trace_snprint(char *buf, size_t size, unsigned long *entries,
15 unsigned int nr_entries, int spaces);
16unsigned int stack_trace_save(unsigned long *store, unsigned int size,
17 unsigned int skipnr);
18unsigned int stack_trace_save_tsk(struct task_struct *task,
19 unsigned long *store, unsigned int size,
20 unsigned int skipnr);
21unsigned int stack_trace_save_regs(struct pt_regs *regs, unsigned long *store,
22 unsigned int size, unsigned int skipnr);
23unsigned int stack_trace_save_user(unsigned long *store, unsigned int size);
24
25/* Internal interfaces. Do not use in generic code */
11struct stack_trace { 26struct stack_trace {
12 unsigned int nr_entries, max_entries; 27 unsigned int nr_entries, max_entries;
13 unsigned long *entries; 28 unsigned long *entries;
@@ -41,4 +56,16 @@ extern void save_stack_trace_user(struct stack_trace *trace);
41# define save_stack_trace_tsk_reliable(tsk, trace) ({ -ENOSYS; }) 56# define save_stack_trace_tsk_reliable(tsk, trace) ({ -ENOSYS; })
42#endif /* CONFIG_STACKTRACE */ 57#endif /* CONFIG_STACKTRACE */
43 58
59#if defined(CONFIG_STACKTRACE) && defined(CONFIG_HAVE_RELIABLE_STACKTRACE)
60int stack_trace_save_tsk_reliable(struct task_struct *tsk, unsigned long *store,
61 unsigned int size);
62#else
63static inline int stack_trace_save_tsk_reliable(struct task_struct *tsk,
64 unsigned long *store,
65 unsigned int size)
66{
67 return -ENOSYS;
68}
69#endif
70
44#endif /* __LINUX_STACKTRACE_H */ 71#endif /* __LINUX_STACKTRACE_H */