X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Frtos%2Frtos.h;h=d082fb7a72eedfac16b8b1bf9c405cd7d4b3e2d2;hb=e7d165f3dbff0fbe11f458becdccbb3d4fa8ccc4;hp=980d95d51802e03f165ded8e257bd2a240d1a46a;hpb=03410e92dae6efbb2dc474fb7556117cc60c3f82;p=fw%2Fopenocd diff --git a/src/rtos/rtos.h b/src/rtos/rtos.h index 980d95d51..d082fb7a7 100644 --- a/src/rtos/rtos.h +++ b/src/rtos/rtos.h @@ -35,7 +35,7 @@ struct reg; typedef struct symbol_table_elem_struct { const char *symbol_name; symbol_address_t address; - + bool optional; } symbol_table_elem_t; struct thread_detail { @@ -83,7 +83,15 @@ struct rtos_register_stacking { unsigned char stack_registers_size; signed char stack_growth_direction; unsigned char num_output_registers; - unsigned char stack_alignment; + /* Some targets require evaluating the stack to determine the + * actual stack pointer for a process. If this field is NULL, + * just use stacking->stack_registers_size * stack_growth_direction + * to calculate adjustment. + */ + int64_t (*calculate_process_stack)(struct target *target, + const uint8_t *stack_data, + const struct rtos_register_stacking *stacking, + int64_t stack_ptr); const struct stack_register_offset *register_offsets; };