summaryrefslogtreecommitdiff
path: root/sim/common/sim-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/common/sim-core.c')
-rw-r--r--sim/common/sim-core.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sim/common/sim-core.c b/sim/common/sim-core.c
index 586c25e4fa7..65c28d733b1 100644
--- a/sim/common/sim-core.c
+++ b/sim/common/sim-core.c
@@ -801,6 +801,25 @@ sim_core_xor_write_buffer (SIM_DESC sd,
}
#endif
+#if EXTERN_SIM_CORE_P
+void *
+sim_core_trans_addr (SIM_DESC sd,
+ sim_cpu *cpu,
+ unsigned map,
+ address_word addr)
+{
+ sim_core_common *core = (cpu == NULL ? &STATE_CORE (sd)->common : &CPU_CORE (cpu)->common);
+ sim_core_mapping *mapping =
+ sim_core_find_mapping (core, map,
+ addr, /*nr-bytes*/1,
+ write_transfer,
+ 0 /*dont-abort*/, NULL, NULL_CIA);
+ if (mapping == NULL)
+ return NULL;
+ return sim_core_translate(mapping, addr);
+}
+#endif
+
/* define the read/write 1/2/4/8/16/word functions */