diff options
Diffstat (limited to 'src/devices/machine/am9517a.h')
-rw-r--r-- | src/devices/machine/am9517a.h | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/devices/machine/am9517a.h b/src/devices/machine/am9517a.h index 8527dfaa42f..dd262cec356 100644 --- a/src/devices/machine/am9517a.h +++ b/src/devices/machine/am9517a.h @@ -53,13 +53,20 @@ public: template <class Object> devcb_base &set_out_hreq_callback(Object &&cb) { return m_out_hreq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_out_eop_callback(Object &&cb) { return m_out_eop_cb.set_callback(std::forward<Object>(cb)); } + auto out_hreq_callback() { return m_out_hreq_cb.bind(); } + auto out_eop_callback() { return m_out_eop_cb.bind(); } template <class Object> devcb_base &set_in_memr_callback(Object &&cb) { return m_in_memr_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_out_memw_callback(Object &&cb) { return m_out_memw_cb.set_callback(std::forward<Object>(cb)); } + auto in_memr_callback() { return m_in_memr_cb.bind(); } + auto out_memw_callback() { return m_out_memw_cb.bind(); } template <unsigned C, class Object> devcb_base &set_in_ior_callback(Object &&cb) { return m_in_ior_cb[C].set_callback(std::forward<Object>(cb)); } template <unsigned C, class Object> devcb_base &set_out_iow_callback(Object &&cb) { return m_out_iow_cb[C].set_callback(std::forward<Object>(cb)); } template <unsigned C, class Object> devcb_base &set_out_dack_callback(Object &&cb) { return m_out_dack_cb[C].set_callback(std::forward<Object>(cb)); } + template <unsigned C> auto in_ior_callback() { return m_in_ior_cb[C].bind(); } + template <unsigned C> auto out_iow_callback() { return m_out_iow_cb[C].bind(); } + template <unsigned C> auto out_dack_callback() { return m_out_dack_cb[C].bind(); } virtual DECLARE_READ8_MEMBER( read ); virtual DECLARE_WRITE8_MEMBER( write ); @@ -179,52 +186,52 @@ DECLARE_DEVICE_TYPE(PCXPORT_DMAC, pcxport_dmac_device) ***************************************************************************/ #define MCFG_AM9517A_OUT_HREQ_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_hreq_callback(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_hreq_callback(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_EOP_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_eop_callback(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_eop_callback(DEVCB_##_devcb); #define MCFG_AM9517A_IN_MEMR_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_in_memr_callback(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_in_memr_callback(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_MEMW_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_memw_callback(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_memw_callback(DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_0_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_in_ior_callback<0>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_in_ior_callback<0>(DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_1_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_in_ior_callback<1>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_in_ior_callback<1>(DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_2_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_in_ior_callback<2>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_in_ior_callback<2>(DEVCB_##_devcb); #define MCFG_AM9517A_IN_IOR_3_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_in_ior_callback<3>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_in_ior_callback<3>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_0_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_iow_callback<0>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_iow_callback<0>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_1_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_iow_callback<1>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_iow_callback<1>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_2_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_iow_callback<2>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_iow_callback<2>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_IOW_3_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_iow_callback<3>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_iow_callback<3>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_0_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_dack_callback<0>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_dack_callback<0>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_1_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_dack_callback<1>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_dack_callback<1>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_2_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_dack_callback<2>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_dack_callback<2>(DEVCB_##_devcb); #define MCFG_AM9517A_OUT_DACK_3_CB(_devcb) \ - devcb = &downcast<am9517a_device &>(*device).set_out_dack_callback<3>(DEVCB_##_devcb); + downcast<am9517a_device &>(*device).set_out_dack_callback<3>(DEVCB_##_devcb); #define MCFG_I8237_OUT_HREQ_CB MCFG_AM9517A_OUT_HREQ_CB #define MCFG_I8237_OUT_EOP_CB MCFG_AM9517A_OUT_EOP_CB |