| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 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 |  | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 15 | struct module; | 
 | 16 |  | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 17 | struct unwind_frame_info {}; | 
 | 18 |  | 
 | 19 | static inline void unwind_init(void) {} | 
| Jan Beulich | 690a973 | 2006-10-21 18:37:01 +0200 | [diff] [blame] | 20 | static inline void unwind_setup(void) {} | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 21 |  | 
| Jan Beulich | 83f4fcc | 2006-06-26 13:57:50 +0200 | [diff] [blame] | 22 | #ifdef CONFIG_MODULES | 
 | 23 |  | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 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 |  | 
| Linus Torvalds | d1526e2 | 2006-12-15 08:43:13 -0800 | [diff] [blame] | 35 | #endif | 
 | 36 |  | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 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, | 
| Jan Beulich | c33bd9a | 2006-06-26 13:57:47 +0200 | [diff] [blame] | 51 |                                       asmlinkage int (*cb)(struct unwind_frame_info *, | 
 | 52 |                                                            void *arg), | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 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 |  | 
| Jan Beulich | 4552d5d | 2006-06-26 13:57:28 +0200 | [diff] [blame] | 68 | #endif /* _LINUX_UNWIND_H */ |