summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/macpds/macpds.h
diff options
context:
space:
mode:
author Miodrag Milanović <mmicko@gmail.com>2021-07-05 09:56:08 +0200
committer GitHub <noreply@github.com>2021-07-05 09:56:08 +0200
commit68df03a7d236bc63deb648cc019b3e2fc22d222c (patch)
treea7bdaad63eab0ef70b76ef99a00933ce715da4df /src/devices/bus/macpds/macpds.h
parent4a00d428c96946c3a27227718a29a317aa055701 (diff)
Remove some tag lookups by name (#8252)
Diffstat (limited to 'src/devices/bus/macpds/macpds.h')
-rw-r--r--src/devices/bus/macpds/macpds.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/bus/macpds/macpds.h b/src/devices/bus/macpds/macpds.h
index cd3f84659d0..ad0ce6a2416 100644
--- a/src/devices/bus/macpds/macpds.h
+++ b/src/devices/bus/macpds/macpds.h
@@ -31,13 +31,14 @@ public:
option_reset();
opts(*this);
set_default_option(dflt);
- set_macpds_slot(nbtag, tag);
+ set_macpds_slot(nbtag);
}
macpds_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// inline configuration
- void set_macpds_slot(const char *tag, const char *slottag) { m_macpds_tag = tag; m_macpds_slottag = slottag; }
+ template <typename T>
+ void set_macpds_slot(T &&tag) { m_macpds.set_tag(std::forward<T>(tag));}
protected:
macpds_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@@ -46,7 +47,7 @@ protected:
virtual void device_start() override;
// configuration
- const char *m_macpds_tag, *m_macpds_slottag;
+ required_device<macpds_device> m_macpds;
};
// device type definition
@@ -70,7 +71,9 @@ public:
~macpds_device() { m_device_list.detach_all(); }
// inline configuration
- void set_cputag(const char *tag) { m_cputag = tag; }
+ template <typename T>
+ void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); }
+
void add_macpds_card(device_macpds_card_interface *card);
template<typename R, typename W> void install_device(offs_t start, offs_t end, R rhandler, W whandler, uint32_t mask=0xffffffff);
@@ -85,10 +88,9 @@ protected:
virtual void device_reset() override;
// internal state
- cpu_device *m_maincpu;
+ required_device<cpu_device> m_maincpu;
simple_list<device_macpds_card_interface> m_device_list;
- const char *m_cputag;
};
@@ -115,13 +117,13 @@ public:
void install_rom(device_t *dev, const char *romregion, uint32_t addr);
// inline configuration
- void set_macpds_tag(const char *tag, const char *slottag) { m_macpds_tag = tag; m_macpds_slottag = slottag; }
+ void set_macpds_and_slot(macpds_device *macpds, macpds_slot_device *macpds_slot) { m_macpds = macpds; m_macpds_slot = macpds_slot; }
protected:
device_macpds_card_interface(const machine_config &mconfig, device_t &device);
- macpds_device *m_macpds;
- const char *m_macpds_tag, *m_macpds_slottag;
+ macpds_device *m_macpds;
+ macpds_slot_device *m_macpds_slot;
private:
device_macpds_card_interface *m_next;