Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/stacktrace.h

    rd32358f r257ceb1  
    2727 */
    2828
    29 /** @addtogroup genericdebug 
     29/** @addtogroup genericdebug
    3030 * @{
    3131 */
     
    3636#define KERN_STACKTRACE_H_
    3737
    38 #include <arch/types.h>
    3938#include <typedefs.h>
    4039
    41 /* Forward declarations. */
     40/* Forward declaration. */
    4241struct istate;
    4342
    4443typedef struct {
    45         bool (* frame_pointer_validate)(uintptr_t);
    46         bool (* frame_pointer_prev)(uintptr_t, uintptr_t *);
    47         bool (* return_address_get)(uintptr_t, uintptr_t *);
    48         bool (* symbol_resolve)(uintptr_t, char **, uintptr_t *);
     44        uintptr_t fp;
     45        uintptr_t pc;
     46        struct istate *istate;
     47} stack_trace_context_t;
     48
     49typedef struct {
     50        bool (* stack_trace_context_validate)(stack_trace_context_t *);
     51        bool (* frame_pointer_prev)(stack_trace_context_t *, uintptr_t *);
     52        bool (* return_address_get)(stack_trace_context_t *, uintptr_t *);
     53        bool (* symbol_resolve)(uintptr_t, const char **, uintptr_t *);
    4954} stack_trace_ops_t;
    5055
     
    5459extern void stack_trace(void);
    5560extern void stack_trace_istate(struct istate *);
    56 extern void stack_trace_fp_pc(stack_trace_ops_t *, uintptr_t, uintptr_t);
     61extern void stack_trace_ctx(stack_trace_ops_t *, stack_trace_context_t *);
    5762
    5863/*
     
    6267extern uintptr_t program_counter_get(void);
    6368
    64 extern bool kernel_frame_pointer_validate(uintptr_t);
    65 extern bool kernel_frame_pointer_prev(uintptr_t, uintptr_t *);
    66 extern bool kernel_return_address_get(uintptr_t, uintptr_t *);
     69extern bool kernel_stack_trace_context_validate(stack_trace_context_t *);
     70extern bool kernel_frame_pointer_prev(stack_trace_context_t *, uintptr_t *);
     71extern bool kernel_return_address_get(stack_trace_context_t *, uintptr_t *);
    6772
    68 extern bool uspace_frame_pointer_validate(uintptr_t);
    69 extern bool uspace_frame_pointer_prev(uintptr_t, uintptr_t *);
    70 extern bool uspace_return_address_get(uintptr_t, uintptr_t *);
     73extern bool uspace_stack_trace_context_validate(stack_trace_context_t *);
     74extern bool uspace_frame_pointer_prev(stack_trace_context_t *, uintptr_t *);
     75extern bool uspace_return_address_get(stack_trace_context_t *, uintptr_t *);
    7176
    7277#endif
Note: See TracChangeset for help on using the changeset viewer.