diff options
Diffstat (limited to 'include/linux/stacktrace.h')
-rw-r--r-- | include/linux/stacktrace.h | 27 |
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 | ||
7 | struct task_struct; | 8 | struct task_struct; |
8 | struct pt_regs; | 9 | struct pt_regs; |
9 | 10 | ||
10 | #ifdef CONFIG_STACKTRACE | 11 | #ifdef CONFIG_STACKTRACE |
12 | void stack_trace_print(unsigned long *trace, unsigned int nr_entries, | ||
13 | int spaces); | ||
14 | int stack_trace_snprint(char *buf, size_t size, unsigned long *entries, | ||
15 | unsigned int nr_entries, int spaces); | ||
16 | unsigned int stack_trace_save(unsigned long *store, unsigned int size, | ||
17 | unsigned int skipnr); | ||
18 | unsigned int stack_trace_save_tsk(struct task_struct *task, | ||
19 | unsigned long *store, unsigned int size, | ||
20 | unsigned int skipnr); | ||
21 | unsigned int stack_trace_save_regs(struct pt_regs *regs, unsigned long *store, | ||
22 | unsigned int size, unsigned int skipnr); | ||
23 | unsigned int stack_trace_save_user(unsigned long *store, unsigned int size); | ||
24 | |||
25 | /* Internal interfaces. Do not use in generic code */ | ||
11 | struct stack_trace { | 26 | struct 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) | ||
60 | int stack_trace_save_tsk_reliable(struct task_struct *tsk, unsigned long *store, | ||
61 | unsigned int size); | ||
62 | #else | ||
63 | static 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 */ |