diff options
Diffstat (limited to 'src/devices/bus/nubus/nubus.cpp')
-rw-r--r-- | src/devices/bus/nubus/nubus.cpp | 45 |
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) { |