Implement hwthread_get_thread_reg_list.
MulticoreRegTest now gets past the first check on all GPRs. Change-Id: I35f3c51273542668985f7a86965c1e947fc12194
This commit is contained in:
parent
a9d436e77f
commit
4bb8bd005c
|
@ -211,7 +211,7 @@ static inline int gdb_reg_pos(struct target *target, int pos, int len)
|
||||||
|
|
||||||
|
|
||||||
static int hwthread_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
|
static int hwthread_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
|
||||||
struct rtos_reg **reg_list, int *num_regs)
|
struct rtos_reg **rtos_reg_list, int *rtos_reg_list_size)
|
||||||
{
|
{
|
||||||
struct target_list *head;
|
struct target_list *head;
|
||||||
struct target *target;
|
struct target *target;
|
||||||
|
@ -238,14 +238,32 @@ static int hwthread_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
|
||||||
curr = target;
|
curr = target;
|
||||||
if (thread_id != threadid_from_target(curr))
|
if (thread_id != threadid_from_target(curr))
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!target_was_examined(curr))
|
if (!target_was_examined(curr))
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
|
||||||
LOG_ERROR("TODO: not implemented");
|
struct reg **reg_list;
|
||||||
|
int retval = target_get_gdb_reg_list(curr, ®_list, rtos_reg_list_size,
|
||||||
|
REG_CLASS_GENERAL);
|
||||||
|
if (retval != ERROR_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
*rtos_reg_list = calloc(*rtos_reg_list_size, sizeof(struct rtos_reg));
|
||||||
|
if (*rtos_reg_list == NULL) {
|
||||||
|
free(reg_list);
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < *rtos_reg_list_size; i++) {
|
||||||
|
(*rtos_reg_list)[i].number = (*reg_list)[i].number;
|
||||||
|
(*rtos_reg_list)[i].size = (*reg_list)[i].size;
|
||||||
|
memcpy((*rtos_reg_list)[i].value, (*reg_list)[i].value,
|
||||||
|
((*reg_list)[i].size + 7) / 8);
|
||||||
|
}
|
||||||
|
free(reg_list);
|
||||||
|
|
||||||
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hwthread_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[])
|
static int hwthread_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[])
|
||||||
|
|
Loading…
Reference in New Issue