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:
parent
4fc0d86ff0
commit
cd07c4447b
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue