summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/rsp/rsp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/rsp/rsp.h')
-rw-r--r--src/devices/cpu/rsp/rsp.h25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h
index 0e07b732ad2..70e68867d6a 100644
--- a/src/devices/cpu/rsp/rsp.h
+++ b/src/devices/cpu/rsp/rsp.h
@@ -83,21 +83,6 @@ enum
#define RSPDRC_STRICT_VERIFY 0x0001 /* verify all instructions */
-#define MCFG_RSP_DP_REG_R_CB(_devcb) \
- downcast<rsp_device &>(*device).set_dp_reg_r_callback(DEVCB_##_devcb);
-
-#define MCFG_RSP_DP_REG_W_CB(_devcb) \
- downcast<rsp_device &>(*device).set_dp_reg_w_callback(DEVCB_##_devcb);
-
-#define MCFG_RSP_SP_REG_R_CB(_devcb) \
- downcast<rsp_device &>(*device).set_sp_reg_r_callback(DEVCB_##_devcb);
-
-#define MCFG_RSP_SP_REG_W_CB(_devcb) \
- downcast<rsp_device &>(*device).set_sp_reg_w_callback(DEVCB_##_devcb);
-
-#define MCFG_RSP_SP_SET_STATUS_CB(_devcb) \
- downcast<rsp_device &>(*device).set_status_callback(DEVCB_##_devcb);
-
class rsp_device : public cpu_device
{
@@ -111,11 +96,11 @@ public:
virtual ~rsp_device() override;
void resolve_cb();
- template <class Object> devcb_base &set_dp_reg_r_callback(Object &&cb) { return m_dp_reg_r_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_dp_reg_w_callback(Object &&cb) { return m_dp_reg_w_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_sp_reg_r_callback(Object &&cb) { return m_sp_reg_r_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_sp_reg_w_callback(Object &&cb) { return m_sp_reg_w_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_status_callback(Object &&cb) { return m_sp_set_status_func.set_callback(std::forward<Object>(cb)); }
+ auto dp_reg_r() { return m_dp_reg_r_func.bind(); }
+ auto dp_reg_w() { return m_dp_reg_w_func.bind(); }
+ auto sp_reg_r() { return m_sp_reg_r_func.bind(); }
+ auto sp_reg_w() { return m_sp_reg_w_func.bind(); }
+ auto status_set() { return m_sp_set_status_func.bind(); }
void rspdrc_flush_drc_cache();
void rspdrc_set_options(uint32_t options);