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, 21 unsigned long *end, int *graph); 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 40