|
@@ -1301,6 +1301,13 @@ static const char *riscv_gdb_get_dynamic_xml(CPUState *cs, const char *xmlname)
|
|
}
|
|
}
|
|
|
|
|
|
#ifndef CONFIG_USER_ONLY
|
|
#ifndef CONFIG_USER_ONLY
|
|
|
|
+static int64_t riscv_get_arch_id(CPUState *cs)
|
|
|
|
+{
|
|
|
|
+ RISCVCPU *cpu = RISCV_CPU(cs);
|
|
|
|
+
|
|
|
|
+ return cpu->env.mhartid;
|
|
|
|
+}
|
|
|
|
+
|
|
#include "hw/core/sysemu-cpu-ops.h"
|
|
#include "hw/core/sysemu-cpu-ops.h"
|
|
|
|
|
|
static const struct SysemuCPUOps riscv_sysemu_ops = {
|
|
static const struct SysemuCPUOps riscv_sysemu_ops = {
|
|
@@ -1355,6 +1362,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data)
|
|
cc->disas_set_info = riscv_cpu_disas_set_info;
|
|
cc->disas_set_info = riscv_cpu_disas_set_info;
|
|
#ifndef CONFIG_USER_ONLY
|
|
#ifndef CONFIG_USER_ONLY
|
|
cc->sysemu_ops = &riscv_sysemu_ops;
|
|
cc->sysemu_ops = &riscv_sysemu_ops;
|
|
|
|
+ cc->get_arch_id = riscv_get_arch_id;
|
|
#endif
|
|
#endif
|
|
cc->gdb_arch_name = riscv_gdb_arch_name;
|
|
cc->gdb_arch_name = riscv_gdb_arch_name;
|
|
cc->gdb_get_dynamic_xml = riscv_gdb_get_dynamic_xml;
|
|
cc->gdb_get_dynamic_xml = riscv_gdb_get_dynamic_xml;
|