| Neil Horman | 878719e | 2008-10-23 10:40:06 -0400 | [diff] [blame] | 1 | /* | 
|  | 2 | *  Copyright (C) 1991, 1992  Linus Torvalds | 
|  | 3 | *  Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs | 
|  | 4 | */ | 
|  | 5 |  | 
|  | 6 | #ifndef DUMPSTACK_H | 
|  | 7 | #define DUMPSTACK_H | 
|  | 8 |  | 
|  | 9 | #ifdef CONFIG_X86_32 | 
|  | 10 | #define STACKSLOTS_PER_LINE 8 | 
|  | 11 | #define get_bp(bp) asm("movl %%ebp, %0" : "=r" (bp) :) | 
|  | 12 | #else | 
|  | 13 | #define STACKSLOTS_PER_LINE 4 | 
|  | 14 | #define get_bp(bp) asm("movq %%rbp, %0" : "=r" (bp) :) | 
|  | 15 | #endif | 
|  | 16 |  | 
|  | 17 | extern unsigned long | 
|  | 18 | print_context_stack(struct thread_info *tinfo, | 
|  | 19 | unsigned long *stack, unsigned long bp, | 
|  | 20 | const struct stacktrace_ops *ops, void *data, | 
| Steven Rostedt | 7ee991f | 2008-12-02 23:50:04 -0500 | [diff] [blame] | 21 | unsigned long *end, int *graph); | 
| Neil Horman | 878719e | 2008-10-23 10:40:06 -0400 | [diff] [blame] | 22 |  | 
|  | 23 | extern void | 
|  | 24 | show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, | 
|  | 25 | unsigned long *stack, unsigned long bp, char *log_lvl); | 
|  | 26 |  | 
|  | 27 | extern void | 
|  | 28 | show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, | 
|  | 29 | unsigned long *sp, unsigned long bp, char *log_lvl); | 
|  | 30 |  | 
|  | 31 | extern unsigned int code_bytes; | 
|  | 32 | extern int kstack_depth_to_print; | 
|  | 33 |  | 
|  | 34 | /* The form of the top of the frame on the stack */ | 
|  | 35 | struct stack_frame { | 
|  | 36 | struct stack_frame *next_frame; | 
|  | 37 | unsigned long return_address; | 
|  | 38 | }; | 
|  | 39 | #endif |