Changes in kernel/arch/abs32le/src/debug/stacktrace.c [fb52db8:50fda24] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/abs32le/src/debug/stacktrace.c
rfb52db8 r50fda24 27 27 */ 28 28 29 /** @addtogroup abs32le29 /** @addtogroup ia32 30 30 * @{ 31 31 */ … … 38 38 #include <typedefs.h> 39 39 40 #define FRAME_OFFSET_FP_PREV 0 41 #define FRAME_OFFSET_RA 1 42 40 43 bool kernel_frame_pointer_validate(uintptr_t fp) 41 44 { 42 return true;45 return fp != 0; 43 46 } 44 47 45 48 bool kernel_frame_pointer_prev(uintptr_t fp, uintptr_t *prev) 46 49 { 50 uint32_t *stack = (void *) fp; 51 *prev = stack[FRAME_OFFSET_FP_PREV]; 47 52 return true; 48 53 } … … 50 55 bool kernel_return_address_get(uintptr_t fp, uintptr_t *ra) 51 56 { 57 uint32_t *stack = (void *) fp; 58 *ra = stack[FRAME_OFFSET_RA]; 52 59 return true; 53 60 } … … 55 62 bool uspace_frame_pointer_validate(uintptr_t fp) 56 63 { 57 return true;64 return fp != 0; 58 65 } 59 66 60 67 bool uspace_frame_pointer_prev(uintptr_t fp, uintptr_t *prev) 61 68 { 62 return true; 69 return !copy_from_uspace((void *) prev, 70 (uint32_t *) fp + FRAME_OFFSET_FP_PREV, sizeof(*prev)); 63 71 } 64 72 65 73 bool uspace_return_address_get(uintptr_t fp, uintptr_t *ra) 66 74 { 67 return true; 68 } 69 70 uintptr_t frame_pointer_get(void) 71 { 72 return 0; 73 } 74 75 uintptr_t program_counter_get(void) 76 { 77 return 0; 75 return !copy_from_uspace((void *) ra, (uint32_t *) fp + FRAME_OFFSET_RA, 76 sizeof(*ra)); 78 77 } 79 78
Note:
See TracChangeset
for help on using the changeset viewer.