target/riscv: cleanup `get_riscv_debug_reg_ctx()`

This commit makes the function safe to use throughout the lifetime of a
target.

Change-Id: I7a573e5d3b70daec2cf8f47a2aa1e30e39321549
This commit is contained in:
Evgeniy Naydanov 2024-01-11 14:05:05 +03:00
parent 4fc0d86ff0
commit cd07c4447b
2 changed files with 9 additions and 5 deletions

View File

@ -280,13 +280,17 @@ static dm013_info_t *get_dm(struct target *target)
return dm; return dm;
} }
static riscv_debug_reg_ctx_t get_riscv_debug_reg_ctx(struct target *target) static riscv_debug_reg_ctx_t get_riscv_debug_reg_ctx(const struct target *target)
{ {
RISCV_INFO(r); if (!target_was_examined(target)) {
const riscv_debug_reg_ctx_t default_context = {0};
return default_context;
}
RISCV013_INFO(info); RISCV013_INFO(info);
const riscv_debug_reg_ctx_t context = { const riscv_debug_reg_ctx_t context = {
.XLEN = { .value = r->xlen, .is_set = true }, .XLEN = { .value = riscv_xlen(target), .is_set = true },
.DXLEN = { .value = r->xlen, .is_set = true }, .DXLEN = { .value = riscv_xlen(target), .is_set = true },
.abits = { .value = info->abits, .is_set = true }, .abits = { .value = info->abits, .is_set = true },
}; };
return context; return context;

View File

@ -438,7 +438,7 @@ const char *target_type_name(struct target *target);
int target_examine_one(struct target *target); int target_examine_one(struct target *target);
/** @returns @c true if target_set_examined() has been called. */ /** @returns @c true if target_set_examined() has been called. */
static inline bool target_was_examined(struct target *target) static inline bool target_was_examined(const struct target *target)
{ {
return target->examined; return target->examined;
} }