aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/common/dv-core.c18
-rw-r--r--sim/m68hc11/dv-m68hc11.c13
2 files changed, 18 insertions, 13 deletions
diff --git a/sim/common/dv-core.c b/sim/common/dv-core.c
index 4a5f5a0..4cff41b 100644
--- a/sim/common/dv-core.c
+++ b/sim/common/dv-core.c
@@ -72,6 +72,23 @@ dv_core_attach_address_callback (struct hw *me,
}
+static void
+dv_core_detach_address_callback (struct hw *me,
+ int level,
+ int space,
+ address_word addr,
+ address_word nr_bytes,
+ struct hw *client)
+{
+ HW_TRACE ((me, "detach - level=%d, space=%d, addr=0x%lx, nr_bytes=%ld, client=%s",
+ level, space, (unsigned long) addr, (unsigned long) nr_bytes, hw_path (client)));
+ /* NOTE: At preset the space is assumed to be zero. Perhaphs the
+ space should be mapped onto something for instance: space0 -
+ unified memory; space1 - IO memory; ... */
+ sim_core_detach (hw_system (me), NULL, /*cpu*/ level, space, addr);
+}
+
+
static unsigned
dv_core_dma_read_buffer_callback (struct hw *me,
void *dest,
@@ -109,6 +126,7 @@ static void
dv_core_finish (struct hw *me)
{
set_hw_attach_address (me, dv_core_attach_address_callback);
+ set_hw_detach_address (me, dv_core_detach_address_callback);
set_hw_dma_write_buffer (me, dv_core_dma_write_buffer_callback);
set_hw_dma_read_buffer (me, dv_core_dma_read_buffer_callback);
}
diff --git a/sim/m68hc11/dv-m68hc11.c b/sim/m68hc11/dv-m68hc11.c
index cdcc9f8..f255f10 100644
--- a/sim/m68hc11/dv-m68hc11.c
+++ b/sim/m68hc11/dv-m68hc11.c
@@ -254,18 +254,6 @@ dv_m6811_attach_address_callback (struct hw *me,
}
static void
-dv_m6811_detach_address_callback (struct hw *me,
- int level,
- int space,
- address_word addr,
- address_word nr_bytes,
- struct hw *client)
-{
- sim_core_detach (hw_system (me), NULL, /*cpu*/
- level, space, addr);
-}
-
-static void
m68hc11_delete (struct hw* me)
{
struct m68hc11cpu *controller;
@@ -387,7 +375,6 @@ m68hc11cpu_finish (struct hw *me)
set_hw_ports (me, m68hc11cpu_ports);
set_hw_port_event (me, m68hc11cpu_port_event);
set_hw_attach_address (me, dv_m6811_attach_address_callback);
- set_hw_detach_address (me, dv_m6811_detach_address_callback);
#ifdef set_hw_ioctl
set_hw_ioctl (me, m68hc11_ioctl);
#else