diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-11-18 14:42:27 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-11-18 14:42:27 +1100 |
commit | efa6bbc48ff549cd70352106b8d93f6e156295f5 (patch) | |
tree | 479897d503b4740467ee41f0dbb2f4fe5c44652b /include/stack.h | |
parent | 71664fd8d2d2550a56cc6a9c2b81797bfe90d613 (diff) | |
download | skiboot-efa6bbc48ff549cd70352106b8d93f6e156295f5.zip skiboot-efa6bbc48ff549cd70352106b8d93f6e156295f5.tar.gz skiboot-efa6bbc48ff549cd70352106b8d93f6e156295f5.tar.bz2 |
Add functions to backtrace into a non-text buffer
Separate text translation from capture of the backtrace
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'include/stack.h')
-rw-r--r-- | include/stack.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/stack.h b/include/stack.h index 57771b4..d4664dd 100644 --- a/include/stack.h +++ b/include/stack.h @@ -99,6 +99,32 @@ struct stack_frame { uint64_t srr1; } __attribute__((aligned(16))); +/* Backtrace */ +struct bt_entry { + unsigned long sp; + unsigned long pc; +}; + +/* Boot stack top */ +extern void *boot_stack_top; + +/* Create a backtrace */ +extern void __backtrace(struct bt_entry *entries, unsigned int *count); + +/* Convert a backtrace to ASCII */ +extern void __print_backtrace(unsigned int pir, struct bt_entry *entries, + unsigned int count, char *out_buf, + unsigned int *len); + +/* For use by debug code, create and print backtrace, uses a static buffer */ +extern void backtrace(void); + +#ifdef STACK_CHECK_ENABLED +extern void check_stacks(void); +#else +static inline void check_stacks(void) { } +#endif + #endif /* __ASSEMBLY__ */ #endif /* __STACKFRAME_H */ |