diff options
Diffstat (limited to 'src/devices/bus/a2bus/a2bus.h')
-rw-r--r-- | src/devices/bus/a2bus/a2bus.h | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/devices/bus/a2bus/a2bus.h b/src/devices/bus/a2bus/a2bus.h index 16433f5b814..f76a5e1166c 100644 --- a/src/devices/bus/a2bus/a2bus.h +++ b/src/devices/bus/a2bus/a2bus.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_A2BUS_A2BUS_H +#define MAME_BUS_A2BUS_A2BUS_H -#ifndef __A2BUS_H__ -#define __A2BUS_H__ +#pragma once // /INH special addresses @@ -63,7 +63,6 @@ class a2bus_slot_device : public device_t, public: // construction/destruction a2bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // device-level overrides virtual void device_start() override; @@ -71,12 +70,14 @@ public: // inline configuration static void static_set_a2bus_slot(device_t &device, const char *tag, const char *slottag); protected: + a2bus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // configuration const char *m_a2bus_tag, *m_a2bus_slottag; }; // device type definition -extern const device_type A2BUS_SLOT; +DECLARE_DEVICE_TYPE(A2BUS_SLOT, a2bus_slot_device) class device_a2bus_card_interface; @@ -88,13 +89,12 @@ class a2bus_device : public device_t public: // construction/destruction a2bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - a2bus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); // inline configuration static void static_set_cputag(device_t &device, const char *tag); - template<class _Object> static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast<a2bus_device &>(device).m_out_irq_cb.set_callback(object); } - template<class _Object> static devcb_base &set_out_nmi_callback(device_t &device, _Object object) { return downcast<a2bus_device &>(device).m_out_nmi_cb.set_callback(object); } - template<class _Object> static devcb_base &set_out_inh_callback(device_t &device, _Object object) { return downcast<a2bus_device &>(device).m_out_inh_cb.set_callback(object); } + template <class Object> static devcb_base &set_out_irq_callback(device_t &device, Object &&cb) { return downcast<a2bus_device &>(device).m_out_irq_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_out_nmi_callback(device_t &device, Object &&cb) { return downcast<a2bus_device &>(device).m_out_nmi_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_out_inh_callback(device_t &device, Object &&cb) { return downcast<a2bus_device &>(device).m_out_inh_cb.set_callback(std::forward<Object>(cb)); } void add_a2bus_card(int slot, device_a2bus_card_interface *card); device_a2bus_card_interface *get_a2bus_card(int slot); @@ -114,6 +114,8 @@ public: DECLARE_WRITE_LINE_MEMBER( nmi_w ); protected: + a2bus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -135,7 +137,7 @@ protected: // device type definition -extern const device_type A2BUS; +DECLARE_DEVICE_TYPE(A2BUS, a2bus_device) // ======================> device_a2bus_card_interface @@ -145,7 +147,6 @@ class device_a2bus_card_interface : public device_slot_card_interface friend class a2bus_device; public: // construction/destruction - device_a2bus_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_a2bus_card_interface(); virtual uint8_t read_c0nx(address_space &space, uint8_t offset) { m_device.logerror("a2bus: unhandled read at C0n%x\n", offset); return 0; } // C0nX - /DEVSEL @@ -186,11 +187,14 @@ public: // inline configuration static void static_set_a2bus_tag(device_t &device, const char *tag, const char *slottag); -public: + +protected: + device_a2bus_card_interface(const machine_config &mconfig, device_t &device); + a2bus_device *m_a2bus; const char *m_a2bus_tag, *m_a2bus_slottag; int m_slot; device_a2bus_card_interface *m_next; }; -#endif /* __A2BUS_H__ */ +#endif // MAME_BUS_A2BUS_A2BUS_H |