diff options
Diffstat (limited to 'src/devices/machine/idectrl.h')
-rw-r--r-- | src/devices/machine/idectrl.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/devices/machine/idectrl.h b/src/devices/machine/idectrl.h index c0e84e3c562..21b129d7320 100644 --- a/src/devices/machine/idectrl.h +++ b/src/devices/machine/idectrl.h @@ -13,7 +13,7 @@ #pragma once -#include "ataintf.h" +#include "bus/ata/ataintf.h" class ide_controller_device : public abstract_ata_interface_device { @@ -46,10 +46,10 @@ public: void write_cs0(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); void write_cs1(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); - DECLARE_READ16_MEMBER(cs0_r) { return read_cs0(offset, mem_mask); } - DECLARE_READ16_MEMBER(cs1_r) { return read_cs1(offset, mem_mask); } - DECLARE_WRITE16_MEMBER(cs0_w) { write_cs0(offset, data, mem_mask); } - DECLARE_WRITE16_MEMBER(cs1_w) { write_cs1(offset, data, mem_mask); } + uint16_t cs0_r(offs_t offset, uint16_t mem_mask = ~0) { return read_cs0(offset, mem_mask); } + uint16_t cs1_r(offs_t offset, uint16_t mem_mask = ~0) { return read_cs1(offset, mem_mask); } + void cs0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) { write_cs0(offset, data, mem_mask); } + void cs1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) { write_cs1(offset, data, mem_mask); } protected: ide_controller_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -89,10 +89,10 @@ public: void write_cs0(offs_t offset, uint32_t data, uint32_t mem_mask = 0xffffffff); void write_cs1(offs_t offset, uint32_t data, uint32_t mem_mask = 0xffffffff); - DECLARE_READ32_MEMBER(cs0_r) { return read_cs0(offset, mem_mask); } - DECLARE_READ32_MEMBER(cs1_r) { return read_cs1(offset, mem_mask); } - DECLARE_WRITE32_MEMBER(cs0_w) { write_cs0(offset, data, mem_mask); } - DECLARE_WRITE32_MEMBER(cs1_w) { write_cs1(offset, data, mem_mask); } + uint32_t cs0_r(offs_t offset, uint32_t mem_mask = ~0) { return read_cs0(offset, mem_mask); } + uint32_t cs1_r(offs_t offset, uint32_t mem_mask = ~0) { return read_cs1(offset, mem_mask); } + void cs0_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { write_cs0(offset, data, mem_mask); } + void cs1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { write_cs1(offset, data, mem_mask); } protected: ide_controller_32_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -105,7 +105,8 @@ class bus_master_ide_controller_device : public ide_controller_32_device { public: bus_master_ide_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template <typename T> void set_bus_master_space(T &&bmtag, int bmspace) { m_dma_space.set_tag(std::forward<T>(bmtag), bmspace); } + template <typename... T> void set_bus_master_space(T &&... args) { m_dma_space.set_tag(std::forward<T>(args)...); } + template <bool R> void set_bus_master_space(const address_space_finder<R> &finder) { m_dma_space.set_tag(finder); } template <typename T> bus_master_ide_controller_device &master(T &&opts, const char *dflt = nullptr, bool fixed = false) { @@ -128,11 +129,11 @@ public: return *this; } - DECLARE_READ32_MEMBER( bmdma_r ); - DECLARE_WRITE32_MEMBER( bmdma_w ); + uint32_t bmdma_r(offs_t offset, uint32_t mem_mask = ~0); + void bmdma_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); protected: - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; virtual void set_irq(int state) override; virtual void set_dmarq(int state) override; |