diff options
Diffstat (limited to 'arch/x86/kernel/dumpstack.h')
| -rw-r--r-- | arch/x86/kernel/dumpstack.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/kernel/dumpstack.h b/arch/x86/kernel/dumpstack.h index 4fd1420faffa..e39e77168a37 100644 --- a/arch/x86/kernel/dumpstack.h +++ b/arch/x86/kernel/dumpstack.h | |||
| @@ -29,4 +29,24 @@ struct stack_frame { | |||
| 29 | struct stack_frame *next_frame; | 29 | struct stack_frame *next_frame; |
| 30 | unsigned long return_address; | 30 | unsigned long return_address; |
| 31 | }; | 31 | }; |
| 32 | |||
| 33 | struct stack_frame_ia32 { | ||
| 34 | u32 next_frame; | ||
| 35 | u32 return_address; | ||
| 36 | }; | ||
| 37 | |||
| 38 | static inline unsigned long rewind_frame_pointer(int n) | ||
| 39 | { | ||
| 40 | struct stack_frame *frame; | ||
| 41 | |||
| 42 | get_bp(frame); | ||
| 43 | |||
| 44 | #ifdef CONFIG_FRAME_POINTER | ||
| 45 | while (n--) | ||
| 46 | frame = frame->next_frame; | ||
| 32 | #endif | 47 | #endif |
| 48 | |||
| 49 | return (unsigned long)frame; | ||
| 50 | } | ||
| 51 | |||
| 52 | #endif /* DUMPSTACK_H */ | ||
