summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/ecbbus/ecbbus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/ecbbus/ecbbus.h')
-rw-r--r--src/devices/bus/ecbbus/ecbbus.h30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/devices/bus/ecbbus/ecbbus.h b/src/devices/bus/ecbbus/ecbbus.h
index 8fb7e51f893..9a4943e0a19 100644
--- a/src/devices/bus/ecbbus/ecbbus.h
+++ b/src/devices/bus/ecbbus/ecbbus.h
@@ -42,10 +42,10 @@
**********************************************************************/
-#pragma once
+#ifndef MAME_BUS_ECBBUS_ECBBUS_H
+#define MAME_BUS_ECBBUS_ECBBUS_H
-#ifndef __ECBBUS__
-#define __ECBBUS__
+#pragma once
@@ -56,9 +56,6 @@
#define ECBBUS_TAG "ecbbus"
-#define MAX_ECBBUS_SLOTS 16
-
-
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
@@ -110,7 +107,7 @@ private:
// device type definition
-extern const device_type ECBBUS_SLOT;
+DECLARE_DEVICE_TYPE(ECBBUS_SLOT, ecbbus_slot_device)
// ======================> ecbbus_interface
@@ -126,8 +123,8 @@ public:
// construction/destruction
ecbbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<ecbbus_device &>(device).m_write_irq.set_callback(object); }
- template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<ecbbus_device &>(device).m_write_nmi.set_callback(object); }
+ template <class Object> static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast<ecbbus_device &>(device).m_write_irq.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast<ecbbus_device &>(device).m_write_nmi.set_callback(std::forward<Object>(cb)); }
void add_card(device_ecbbus_card_interface *card, int pos);
@@ -145,6 +142,8 @@ protected:
virtual void device_start() override;
private:
+ static constexpr unsigned MAX_ECBBUS_SLOTS = 16;
+
devcb_write_line m_write_irq;
devcb_write_line m_write_nmi;
@@ -153,7 +152,7 @@ private:
// device type definition
-extern const device_type ECBBUS;
+DECLARE_DEVICE_TYPE(ECBBUS, ecbbus_device)
// ======================> device_ecbbus_card_interface
@@ -164,17 +163,16 @@ class device_ecbbus_card_interface : public device_slot_card_interface
friend class ecbbus_device;
public:
- // construction/destruction
- device_ecbbus_card_interface(const machine_config &mconfig, device_t &device);
- virtual ~device_ecbbus_card_interface() { }
-
// optional operation overrides
virtual uint8_t ecbbus_mem_r(offs_t offset) { return 0; };
virtual void ecbbus_mem_w(offs_t offset, uint8_t data) { };
virtual uint8_t ecbbus_io_r(offs_t offset) { return 0; };
virtual void ecbbus_io_w(offs_t offset, uint8_t data) { };
-public:
+protected:
+ // construction/destruction
+ device_ecbbus_card_interface(const machine_config &mconfig, device_t &device);
+
ecbbus_slot_device *m_slot;
};
@@ -183,4 +181,4 @@ SLOT_INTERFACE_EXTERN( ecbbus_cards );
-#endif
+#endif // MAME_BUS_ECBBUS_ECBBUS_H