summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nubus/nubus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nubus/nubus.cpp')
-rw-r--r--src/devices/bus/nubus/nubus.cpp45
1 files changed, 13 insertions, 32 deletions
diff --git a/src/devices/bus/nubus/nubus.cpp b/src/devices/bus/nubus/nubus.cpp
index 118d7f50f1a..5bb45cb95d5 100644
--- a/src/devices/bus/nubus/nubus.cpp
+++ b/src/devices/bus/nubus/nubus.cpp
@@ -110,7 +110,7 @@ void nubus_device::add_nubus_card(device_nubus_card_interface *card)
m_device_list.append(*card);
}
-void nubus_device::install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, uint32_t mask)
+template<typename R, typename W> void nubus_device::install_device(offs_t start, offs_t end, R rhandler, W whandler, uint32_t mask)
{
int buswidth = m_space->data_width();
switch(buswidth)
@@ -126,37 +126,18 @@ void nubus_device::install_device(offs_t start, offs_t end, read8_delegate rhand
}
}
-void nubus_device::install_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler, uint32_t mask)
-{
- int buswidth = m_space->data_width();
- switch(buswidth)
- {
- case 32:
- m_space->install_readwrite_handler(start, end, rhandler, whandler, mask);
- break;
- case 64:
- m_space->install_readwrite_handler(start, end, rhandler, whandler, ((uint64_t)mask<<32)|mask);
- break;
- default:
- fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
- }
-}
-
-void nubus_device::install_device(offs_t start, offs_t end, read32_delegate rhandler, write32_delegate whandler, uint32_t mask)
-{
- int buswidth = m_space->data_width();
- switch(buswidth)
- {
- case 32:
- m_space->install_readwrite_handler(start, end, rhandler, whandler, mask);
- break;
- case 64:
- m_space->install_readwrite_handler(start, end, rhandler, whandler, ((uint64_t)mask<<32)|mask);
- break;
- default:
- fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
- }
-}
+template void nubus_device::install_device<read8_delegate, write8_delegate >(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read8s_delegate, write8s_delegate >(offs_t start, offs_t end, read8s_delegate rhandler, write8s_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read8sm_delegate, write8sm_delegate >(offs_t start, offs_t end, read8sm_delegate rhandler, write8sm_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read8smo_delegate, write8smo_delegate >(offs_t start, offs_t end, read8smo_delegate rhandler, write8smo_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read16_delegate, write16_delegate >(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read16s_delegate, write16s_delegate >(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read16sm_delegate, write16sm_delegate >(offs_t start, offs_t end, read16sm_delegate rhandler, write16sm_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read16smo_delegate, write16smo_delegate>(offs_t start, offs_t end, read16smo_delegate rhandler, write16smo_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read32_delegate, write32_delegate >(offs_t start, offs_t end, read32_delegate rhandler, write32_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read32s_delegate, write32s_delegate >(offs_t start, offs_t end, read32s_delegate rhandler, write32s_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read32sm_delegate, write32sm_delegate >(offs_t start, offs_t end, read32sm_delegate rhandler, write32sm_delegate whandler, uint32_t mask);
+template void nubus_device::install_device<read32smo_delegate, write32smo_delegate>(offs_t start, offs_t end, read32smo_delegate rhandler, write32smo_delegate whandler, uint32_t mask);
void nubus_device::install_readonly_device(offs_t start, offs_t end, read32_delegate rhandler, uint32_t mask)
{