diff options
| author | David Vrabel <david.vrabel@csr.com> | 2009-01-02 13:17:13 +0000 |
|---|---|---|
| committer | David Vrabel <david.vrabel@csr.com> | 2009-01-02 13:17:13 +0000 |
| commit | b21a207141d83a06abc5f492b80204602e02ca44 (patch) | |
| tree | f0152cde543008c72d7eb5c12c18095ad92785e6 /arch/x86/kernel/dumpstack.h | |
| parent | 3af373021fa32f8f787bfbdcc1a9277a287bde4e (diff) | |
| parent | b58602a4bac012b5f4fc12fe6b46ab237b610d5d (diff) | |
| download | lwn-b21a207141d83a06abc5f492b80204602e02ca44.tar.gz lwn-b21a207141d83a06abc5f492b80204602e02ca44.zip | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream
Conflicts:
drivers/uwb/wlp/eda.c
Diffstat (limited to 'arch/x86/kernel/dumpstack.h')
| -rw-r--r-- | arch/x86/kernel/dumpstack.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/arch/x86/kernel/dumpstack.h b/arch/x86/kernel/dumpstack.h new file mode 100644 index 000000000000..da87590b8698 --- /dev/null +++ b/arch/x86/kernel/dumpstack.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 1991, 1992 Linus Torvalds + * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs + */ + +#ifndef DUMPSTACK_H +#define DUMPSTACK_H + +#ifdef CONFIG_X86_32 +#define STACKSLOTS_PER_LINE 8 +#define get_bp(bp) asm("movl %%ebp, %0" : "=r" (bp) :) +#else +#define STACKSLOTS_PER_LINE 4 +#define get_bp(bp) asm("movq %%rbp, %0" : "=r" (bp) :) +#endif + +extern unsigned long +print_context_stack(struct thread_info *tinfo, + unsigned long *stack, unsigned long bp, + const struct stacktrace_ops *ops, void *data, + unsigned long *end, int *graph); + +extern void +show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, + unsigned long *stack, unsigned long bp, char *log_lvl); + +extern void +show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, + unsigned long *sp, unsigned long bp, char *log_lvl); + +extern unsigned int code_bytes; +extern int kstack_depth_to_print; + +/* The form of the top of the frame on the stack */ +struct stack_frame { + struct stack_frame *next_frame; + unsigned long return_address; +}; +#endif |
