Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[sfrench/cifs-2.6.git] / include / linux / unwind.h
1 #ifndef _LINUX_UNWIND_H
2 #define _LINUX_UNWIND_H
3
4 /*
5  * Copyright (C) 2002-2006 Novell, Inc.
6  *      Jan Beulich <jbeulich@novell.com>
7  * This code is released under version 2 of the GNU GPL.
8  *
9  * A simple API for unwinding kernel stacks.  This is used for
10  * debugging and error reporting purposes.  The kernel doesn't need
11  * full-blown stack unwinding with all the bells and whistles, so there
12  * is not much point in implementing the full Dwarf2 unwind API.
13  */
14
15 struct module;
16
17 struct unwind_frame_info {};
18
19 static inline void unwind_init(void) {}
20 static inline void unwind_setup(void) {}
21
22 #ifdef CONFIG_MODULES
23
24 static inline void *unwind_add_table(struct module *mod,
25                                      const void *table_start,
26                                      unsigned long table_size)
27 {
28         return NULL;
29 }
30
31 static inline void unwind_remove_table(void *handle, int init_only)
32 {
33 }
34
35 #endif
36
37 static inline int unwind_init_frame_info(struct unwind_frame_info *info,
38                                          struct task_struct *tsk,
39                                          const struct pt_regs *regs)
40 {
41         return -ENOSYS;
42 }
43
44 static inline int unwind_init_blocked(struct unwind_frame_info *info,
45                                       struct task_struct *tsk)
46 {
47         return -ENOSYS;
48 }
49
50 static inline int unwind_init_running(struct unwind_frame_info *info,
51                                       asmlinkage int (*cb)(struct unwind_frame_info *,
52                                                            void *arg),
53                                       void *arg)
54 {
55         return -ENOSYS;
56 }
57
58 static inline int unwind(struct unwind_frame_info *info)
59 {
60         return -ENOSYS;
61 }
62
63 static inline int unwind_to_user(struct unwind_frame_info *info)
64 {
65         return -ENOSYS;
66 }
67
68 #endif /* _LINUX_UNWIND_H */