Changes in kernel/arch/ppc32/src/debug/stacktrace.c [4afd4ab:b92ee1e] in mainline
- File:
-
- 1 edited
-
kernel/arch/ppc32/src/debug/stacktrace.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/debug/stacktrace.c
r4afd4ab rb92ee1e 35 35 #include <stacktrace.h> 36 36 #include <syscall/copy.h> 37 #include <arch/types.h>38 37 #include <typedefs.h> 39 38 40 bool kernel_frame_pointer_validate(uintptr_t fp) 39 #define FRAME_OFFSET_FP_PREV 0 40 #define FRAME_OFFSET_RA 1 41 42 bool kernel_stack_trace_context_validate(stack_trace_context_t *ctx) 41 43 { 42 return false;44 return ctx->fp != 0; 43 45 } 44 46 45 bool kernel_frame_pointer_prev( uintptr_t fp, uintptr_t *prev)47 bool kernel_frame_pointer_prev(stack_trace_context_t *ctx, uintptr_t *prev) 46 48 { 47 return false; 49 uint32_t *stack = (void *) ctx->fp; 50 *prev = stack[FRAME_OFFSET_FP_PREV]; 51 return true; 48 52 } 49 53 50 bool kernel_return_address_get( uintptr_t fp, uintptr_t *ra)54 bool kernel_return_address_get(stack_trace_context_t *ctx, uintptr_t *ra) 51 55 { 52 return false; 56 uint32_t *stack = (void *) ctx->fp; 57 *ra = stack[FRAME_OFFSET_RA]; 58 return true; 53 59 } 54 60 55 bool uspace_ frame_pointer_validate(uintptr_t fp)61 bool uspace_stack_trace_context_validate(stack_trace_context_t *ctx) 56 62 { 57 return false;63 return ctx->fp != 0; 58 64 } 59 65 60 bool uspace_frame_pointer_prev( uintptr_t fp, uintptr_t *prev)66 bool uspace_frame_pointer_prev(stack_trace_context_t *ctx, uintptr_t *prev) 61 67 { 62 return false; 68 return !copy_from_uspace((void *) prev, 69 (uint32_t *) ctx->fp + FRAME_OFFSET_FP_PREV, sizeof(*prev)); 63 70 } 64 71 65 bool uspace_return_address_get( uintptr_t fp, uintptr_t *ra)72 bool uspace_return_address_get(stack_trace_context_t *ctx, uintptr_t *ra) 66 73 { 67 return false; 74 return !copy_from_uspace((void *) ra, 75 (uint32_t *) ctx->fp + FRAME_OFFSET_RA, sizeof(*ra)); 68 76 } 69 77
Note:
See TracChangeset
for help on using the changeset viewer.
