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