From bb7dc53d0a1eebc751bcc283357dce8210508379 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Wed, 9 Nov 2016 16:24:57 +0100 Subject: [PATCH] addrmap: Change setters into passthroughs [O. Galibert] --- src/emu/addrmap.cpp | 45 ++++++++++++++++++++++++------------- src/emu/addrmap.h | 54 ++++++++++++++++++++++----------------------- 2 files changed, 57 insertions(+), 42 deletions(-) diff --git a/src/emu/addrmap.cpp b/src/emu/addrmap.cpp index d4140dbbe22..5a24b98ee8e 100644 --- a/src/emu/addrmap.cpp +++ b/src/emu/addrmap.cpp @@ -65,11 +65,12 @@ address_map_entry::address_map_entry(device_t &device, address_map &map, offs_t // set_mask - set the mask value //------------------------------------------------- -void address_map_entry::set_mask(offs_t _mask) +address_map_entry *address_map_entry::set_mask(offs_t _mask) { m_addrmask = _mask; if (m_map.m_globalmask != 0) m_addrmask &= m_map.m_globalmask; + return this; } @@ -78,7 +79,7 @@ void address_map_entry::set_mask(offs_t _mask) // retrieve a submap from a device //------------------------------------------------- -void address_map_entry::set_submap(const char *tag, address_map_delegate func, int bits, uint64_t mask) +address_map_entry *address_map_entry::set_submap(const char *tag, address_map_delegate func, int bits, uint64_t mask) { if(!bits) bits = m_map.m_databits; @@ -93,6 +94,7 @@ void address_map_entry::set_submap(const char *tag, address_map_delegate func, i m_write.m_mask = mask; m_submap_delegate = func; m_submap_bits = bits; + return this; } @@ -101,7 +103,7 @@ void address_map_entry::set_submap(const char *tag, address_map_delegate func, i // 8-bit read/write handlers //------------------------------------------------- -void address_map_entry::set_handler(read8_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read8_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(8, unitmask, func.name())); @@ -110,10 +112,11 @@ void address_map_entry::set_handler(read8_delegate func, uint64_t unitmask) m_read.m_mask = unitmask; m_read.m_name = func.name(); m_rproto8 = func; + return this; } -void address_map_entry::set_handler(write8_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(write8_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(8, unitmask, func.name())); @@ -122,13 +125,15 @@ void address_map_entry::set_handler(write8_delegate func, uint64_t unitmask) m_write.m_mask = unitmask; m_write.m_name = func.name(); m_wproto8 = func; + return this; } -void address_map_entry::set_handler(read8_delegate rfunc, write8_delegate wfunc, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read8_delegate rfunc, write8_delegate wfunc, uint64_t unitmask) { set_handler(rfunc, unitmask); set_handler(wfunc, unitmask); + return this; } @@ -137,7 +142,7 @@ void address_map_entry::set_handler(read8_delegate rfunc, write8_delegate wfunc, // 16-bit read/write handlers //------------------------------------------------- -void address_map_entry::set_handler(read16_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read16_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(16, unitmask, func.name())); @@ -146,10 +151,11 @@ void address_map_entry::set_handler(read16_delegate func, uint64_t unitmask) m_read.m_mask = unitmask; m_read.m_name = func.name(); m_rproto16 = func; + return this; } -void address_map_entry::set_handler(write16_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(write16_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(16, unitmask, func.name())); @@ -158,13 +164,15 @@ void address_map_entry::set_handler(write16_delegate func, uint64_t unitmask) m_write.m_mask = unitmask; m_write.m_name = func.name(); m_wproto16 = func; + return this; } -void address_map_entry::set_handler(read16_delegate rfunc, write16_delegate wfunc, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read16_delegate rfunc, write16_delegate wfunc, uint64_t unitmask) { set_handler(rfunc, unitmask); set_handler(wfunc, unitmask); + return this; } @@ -173,7 +181,7 @@ void address_map_entry::set_handler(read16_delegate rfunc, write16_delegate wfun // 32-bit read/write handlers //------------------------------------------------- -void address_map_entry::set_handler(read32_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read32_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(32, unitmask, func.name())); @@ -182,10 +190,11 @@ void address_map_entry::set_handler(read32_delegate func, uint64_t unitmask) m_read.m_mask = unitmask; m_read.m_name = func.name(); m_rproto32 = func; + return this; } -void address_map_entry::set_handler(write32_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(write32_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(32, unitmask, func.name())); @@ -194,13 +203,15 @@ void address_map_entry::set_handler(write32_delegate func, uint64_t unitmask) m_write.m_mask = unitmask; m_write.m_name = func.name(); m_wproto32 = func; + return this; } -void address_map_entry::set_handler(read32_delegate rfunc, write32_delegate wfunc, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read32_delegate rfunc, write32_delegate wfunc, uint64_t unitmask) { set_handler(rfunc, unitmask); set_handler(wfunc, unitmask); + return this; } @@ -209,7 +220,7 @@ void address_map_entry::set_handler(read32_delegate rfunc, write32_delegate wfun // 64-bit read/write handlers //------------------------------------------------- -void address_map_entry::set_handler(read64_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read64_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(64, unitmask, func.name())); @@ -218,10 +229,11 @@ void address_map_entry::set_handler(read64_delegate func, uint64_t unitmask) m_read.m_mask = 0; m_read.m_name = func.name(); m_rproto64 = func; + return this; } -void address_map_entry::set_handler(write64_delegate func, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(write64_delegate func, uint64_t unitmask) { assert(!func.isnull()); assert(unitmask_is_appropriate(64, unitmask, func.name())); @@ -230,13 +242,15 @@ void address_map_entry::set_handler(write64_delegate func, uint64_t unitmask) m_write.m_mask = 0; m_write.m_name = func.name(); m_wproto64 = func; + return this; } -void address_map_entry::set_handler(read64_delegate rfunc, write64_delegate wfunc, uint64_t unitmask) +address_map_entry *address_map_entry::set_handler(read64_delegate rfunc, write64_delegate wfunc, uint64_t unitmask) { set_handler(rfunc, unitmask); set_handler(wfunc, unitmask); + return this; } @@ -244,7 +258,7 @@ void address_map_entry::set_handler(read64_delegate rfunc, write64_delegate wfun // set_handler - handler setter for setoffset //------------------------------------------------- -void address_map_entry::set_handler(setoffset_delegate func) +address_map_entry *address_map_entry::set_handler(setoffset_delegate func) { assert(!func.isnull()); m_setoffsethd.m_type = AMH_DEVICE_DELEGATE; @@ -252,6 +266,7 @@ void address_map_entry::set_handler(setoffset_delegate func) m_setoffsethd.m_mask = 0; m_setoffsethd.m_name = func.name(); m_soproto = func; + return this; } //------------------------------------------------- diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h index 8598b3067ae..c0f5c90aeb3 100644 --- a/src/emu/addrmap.h +++ b/src/emu/addrmap.h @@ -80,31 +80,31 @@ public: address_map_entry *next() const { return m_next; } // simple inline setters - void set_mirror(offs_t _mirror) { m_addrmirror = _mirror; } - void set_select(offs_t _select) { m_addrselect = _select; } - void set_read_type(map_handler_type _type) { m_read.m_type = _type; } - void set_write_type(map_handler_type _type) { m_write.m_type = _type; } - void set_region(const char *tag, offs_t offset) { m_region = tag; m_rgnoffs = offset; } - void set_share(const char *tag) { m_share = tag; } + address_map_entry *set_mirror(offs_t _mirror) { m_addrmirror = _mirror; return this; } + address_map_entry *set_select(offs_t _select) { m_addrselect = _select; return this; } + address_map_entry *set_read_type(map_handler_type _type) { m_read.m_type = _type; return this; } + address_map_entry *set_write_type(map_handler_type _type) { m_write.m_type = _type; return this; } + address_map_entry *set_region(const char *tag, offs_t offset) { m_region = tag; m_rgnoffs = offset; return this; } + address_map_entry *set_share(const char *tag) { m_share = tag; return this; } // mask setting - void set_mask(offs_t _mask); + address_map_entry *set_mask(offs_t _mask); // I/O port configuration - void set_read_port(const char *tag) { m_read.m_type = AMH_PORT; m_read.m_tag = tag; } - void set_write_port(const char *tag) { m_write.m_type = AMH_PORT; m_write.m_tag = tag; } - void set_readwrite_port(const char *tag) { set_read_port(tag); set_write_port(tag); } + address_map_entry *set_read_port(const char *tag) { m_read.m_type = AMH_PORT; m_read.m_tag = tag; return this; } + address_map_entry *set_write_port(const char *tag) { m_write.m_type = AMH_PORT; m_write.m_tag = tag; return this; } + address_map_entry *set_readwrite_port(const char *tag) { set_read_port(tag); set_write_port(tag); return this; } // memory bank configuration - void set_read_bank(const char *tag) { m_read.m_type = AMH_BANK; m_read.m_tag = tag; } - void set_write_bank(const char *tag) { m_write.m_type = AMH_BANK; m_write.m_tag = tag; } - void set_readwrite_bank(const char *tag) { set_read_bank(tag); set_write_bank(tag); } + address_map_entry *set_read_bank(const char *tag) { m_read.m_type = AMH_BANK; m_read.m_tag = tag; return this; } + address_map_entry *set_write_bank(const char *tag) { m_write.m_type = AMH_BANK; m_write.m_tag = tag; return this; } + address_map_entry *set_readwrite_bank(const char *tag) { set_read_bank(tag); set_write_bank(tag); return this; } // set offset handler (only one version, since there is no data width to consider) - void set_handler(setoffset_delegate func); + address_map_entry *set_handler(setoffset_delegate func); // submap referencing - void set_submap(const char *tag, address_map_delegate func, int bits, uint64_t mask); + address_map_entry *set_submap(const char *tag, address_map_delegate func, int bits, uint64_t mask); // public state address_map_entry * m_next; // pointer to the next entry @@ -146,24 +146,24 @@ public: offs_t m_bytemask; // byte-adjusted mask bits // handler setters for 8-bit functions - void set_handler(read8_delegate func, uint64_t mask = 0); - void set_handler(write8_delegate func, uint64_t mask = 0); - void set_handler(read8_delegate rfunc, write8_delegate wfunc, uint64_t mask = 0); + address_map_entry *set_handler(read8_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(write8_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(read8_delegate rfunc, write8_delegate wfunc, uint64_t mask = 0); // handler setters for 16-bit functions - void set_handler(read16_delegate func, uint64_t mask = 0); - void set_handler(write16_delegate func, uint64_t mask = 0); - void set_handler(read16_delegate rfunc, write16_delegate wfunc, uint64_t mask = 0); + address_map_entry *set_handler(read16_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(write16_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(read16_delegate rfunc, write16_delegate wfunc, uint64_t mask = 0); // handler setters for 32-bit functions - void set_handler(read32_delegate func, uint64_t mask = 0); - void set_handler(write32_delegate func, uint64_t mask = 0); - void set_handler(read32_delegate rfunc, write32_delegate wfunc, uint64_t mask = 0); + address_map_entry *set_handler(read32_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(write32_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(read32_delegate rfunc, write32_delegate wfunc, uint64_t mask = 0); // handler setters for 64-bit functions - void set_handler(read64_delegate func, uint64_t mask = 0); - void set_handler(write64_delegate func, uint64_t mask = 0); - void set_handler(read64_delegate rfunc, write64_delegate wfunc, uint64_t mask = 0); + address_map_entry *set_handler(read64_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(write64_delegate func, uint64_t mask = 0); + address_map_entry *set_handler(read64_delegate rfunc, write64_delegate wfunc, uint64_t mask = 0); private: // helper functions