arch: riscv: optionally stores a pointer to csf in `struct arch_esf`
The callee-saved-registers can be helpful to debug the state of a core upon an exception, however, currently there's no way to access that information in user-implemented `k_sys_fatal_error_handler()`, even though the csf is already stored in the stack. This patch conditionally add a `csf` member in the `arch_esf` when `CONFIG_EXTRA_EXCEPTION_INFO=y`*, which the `_isr_wrapper` would update when a fatal error occurs before invoking `z_riscv_fatal_error_csf()`. Functions such as `k_sys_fatal_error_handler()` would then be able to access the callee-saved-registers at the time of exception via `esf->csf`. * For SoCs that select `RISCV_SOC_HAS_ISR_STACKING`, the `SOC_ISR_STACKING_ESF_DECLARE` has to include the `csf` member, otherwise the build would fail. Signed-off-by:Yong Cong Sin <ycsin@meta.com> Signed-off-by:
Yong Cong Sin <yongcong.sin@gmail.com>
Loading
Please sign in to comment