X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Frtos%2Frtos.h;fp=src%2Frtos%2Frtos.h;h=d082fb7a72eedfac16b8b1bf9c405cd7d4b3e2d2;hp=7750f3c7fa8ee4c8227bff53b1b146e839002560;hb=9413a7a814755f3fab92f460bfbdd518f24ffaf5;hpb=ddc3317c54c3f2327cdd07d87f997197200a385e diff --git a/src/rtos/rtos.h b/src/rtos/rtos.h index 7750f3c7fa..d082fb7a72 100644 --- a/src/rtos/rtos.h +++ b/src/rtos/rtos.h @@ -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; };