diff options
Diffstat (limited to 'c/src/lib/libcpu/powerpc/shared/src/stack.c')
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/src/stack.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/src/stack.c b/c/src/lib/libcpu/powerpc/shared/src/stack.c deleted file mode 100644 index 1e13b3d9ed..0000000000 --- a/c/src/lib/libcpu/powerpc/shared/src/stack.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <inttypes.h> -#include <rtems/bspIo.h> -#include <libcpu/stackTrace.h> -#include <libcpu/spr.h> - -SPR_RO(PPC_LR) - -typedef struct FrameRec_ { - struct FrameRec_ *up; - void *lr; -} FrameRec, *Frame; - -#define CPU_STACK_TRACE_DEPTH 40 - -void CPU_stack_take_snapshot(void **stack, int size, void *pc, void *lr, void *r1) -{ -register Frame p = (Frame)lr; -register int i=0; - if (pc) stack[i++]=pc; - if (!p) - p = (Frame)_read_PPC_LR(); - stack[i++]=p; - p = r1; - if (!p) /* no macro for reading user regs */ - __asm__ __volatile__("mr %0, %%r1":"=r"(p)); - for (; i<size-1 && p->up; p=p->up, i++) { - stack[i]=p->up->lr; - } - stack[i]=0; -} - -void CPU_print_stack(void) -{ - void *stck[CPU_STACK_TRACE_DEPTH]; - int i; - CPU_stack_take_snapshot(stck,CPU_STACK_TRACE_DEPTH,0,0,0); - for (i=0; stck[i]; i++) { - if (i%5) printk("--> "); - else printk("\n"); - printk("0x%08" PRIuPTR, (uintptr_t)stck[i]); - } - printk("\n"); -} |