diff --git a/src/emu/devcpu.c b/src/emu/devcpu.c index 0caebc29d70..92108c737c3 100644 --- a/src/emu/devcpu.c +++ b/src/emu/devcpu.c @@ -579,3 +579,5 @@ void legacy_cpu_device::state_string_export(const device_state_entry &entry, ast else if (m_string_export != NULL) (*m_string_export)(this, entry, string); } + +const device_type CPU = legacy_cpu_device_config::static_alloc_device_config; diff --git a/src/emu/devcpu.h b/src/emu/devcpu.h index 6a0d6352166..c825cdca0fb 100644 --- a/src/emu/devcpu.h +++ b/src/emu/devcpu.h @@ -466,7 +466,7 @@ protected: address_space_config m_space_config[3]; // array of address space configs }; -const device_type CPU = legacy_cpu_device_config::static_alloc_device_config; +extern const device_type CPU; diff --git a/src/emu/devlegcy.h b/src/emu/devlegcy.h index ad68f598976..4299096d79d 100644 --- a/src/emu/devlegcy.h +++ b/src/emu/devlegcy.h @@ -199,7 +199,7 @@ public: \ virtual device_t *alloc_device(running_machine &machine) const; \ }; \ \ -const device_type name = configclass::static_alloc_device_config +extern const device_type name // macro for defining the implementation needed for configuration and device classes #define _DEFINE_LEGACY_DEVICE(name, basename, configclass, deviceclass, baseconfigclass, basedeviceclass) \ @@ -222,7 +222,8 @@ device_config *configclass::static_alloc_device_config(const machine_config &mco device_t *configclass::alloc_device(running_machine &machine) const \ { \ return pool_alloc(machine_get_pool(machine), deviceclass(machine, *this)); \ -} +} \ +const device_type name = configclass::static_alloc_device_config // reduced macros that are easier to use, and map to the above two macros #define DECLARE_LEGACY_DEVICE(name, basename) _DECLARE_LEGACY_DEVICE(name, basename, basename##_device_config, basename##_device, legacy_device_config_base, legacy_device_base) diff --git a/src/emu/machine/eeprom.c b/src/emu/machine/eeprom.c index bd4735bb15f..7605a6581c4 100644 --- a/src/emu/machine/eeprom.c +++ b/src/emu/machine/eeprom.c @@ -572,3 +572,4 @@ bool eeprom_device::command_match(const char *buf, const char *cmd, int len) return (*cmd==0); } +const device_type EEPROM = eeprom_device_config::static_alloc_device_config; diff --git a/src/emu/machine/eeprom.h b/src/emu/machine/eeprom.h index f5f18eaa561..41efe5ffa44 100644 --- a/src/emu/machine/eeprom.h +++ b/src/emu/machine/eeprom.h @@ -153,7 +153,7 @@ protected: // device type definition -const device_type EEPROM = eeprom_device_config::static_alloc_device_config; +extern const device_type EEPROM; diff --git a/src/emu/machine/z80ctc.c b/src/emu/machine/z80ctc.c index 800489d9f65..cd65fb36010 100644 --- a/src/emu/machine/z80ctc.c +++ b/src/emu/machine/z80ctc.c @@ -559,3 +559,5 @@ WRITE_LINE_DEVICE_HANDLER( z80ctc_trg0_w ) { downcast(device)-> WRITE_LINE_DEVICE_HANDLER( z80ctc_trg1_w ) { downcast(device)->trigger(1, state); } WRITE_LINE_DEVICE_HANDLER( z80ctc_trg2_w ) { downcast(device)->trigger(2, state); } WRITE_LINE_DEVICE_HANDLER( z80ctc_trg3_w ) { downcast(device)->trigger(3, state); } + +const device_type Z80CTC = z80ctc_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80ctc.h b/src/emu/machine/z80ctc.h index 4960ac4ca0c..d0d50670763 100644 --- a/src/emu/machine/z80ctc.h +++ b/src/emu/machine/z80ctc.h @@ -155,7 +155,7 @@ private: // device type definition -const device_type Z80CTC = z80ctc_device_config::static_alloc_device_config; +extern const device_type Z80CTC; diff --git a/src/emu/machine/z80dart.c b/src/emu/machine/z80dart.c index 25e1af82070..86e2162cf6d 100644 --- a/src/emu/machine/z80dart.c +++ b/src/emu/machine/z80dart.c @@ -1405,3 +1405,5 @@ WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w ) else z80dart_d_w(device, channel, data); } + +const device_type Z80DART = z80dart_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80dart.h b/src/emu/machine/z80dart.h index 3742bd2c96f..5c3c55b4482 100644 --- a/src/emu/machine/z80dart.h +++ b/src/emu/machine/z80dart.h @@ -264,7 +264,7 @@ private: // device type definition -const device_type Z80DART = z80dart_device_config::static_alloc_device_config; +extern const device_type Z80DART; /* #define Z8470 DEVICE_GET_INFO_NAME(z8470) #define LH0081 DEVICE_GET_INFO_NAME(lh0088) diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c index 3727e413e90..6bf006f857a 100644 --- a/src/emu/machine/z80dma.c +++ b/src/emu/machine/z80dma.c @@ -898,3 +898,5 @@ WRITE8_DEVICE_HANDLER( z80dma_w ) { downcast(device)->write(dat WRITE_LINE_DEVICE_HANDLER( z80dma_rdy_w ) { downcast(device)->rdy_w(state); } WRITE_LINE_DEVICE_HANDLER( z80dma_wait_w ) { downcast(device)->wait_w(state); } WRITE_LINE_DEVICE_HANDLER( z80dma_bai_w ) { downcast(device)->bai_w(state); } + +const device_type Z80DMA = z80dma_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80dma.h b/src/emu/machine/z80dma.h index f5f54e41622..efe15ff78ef 100644 --- a/src/emu/machine/z80dma.h +++ b/src/emu/machine/z80dma.h @@ -182,7 +182,7 @@ private: // device type definition -const device_type Z80DMA = z80dma_device_config::static_alloc_device_config; +extern const device_type Z80DMA; diff --git a/src/emu/machine/z80pio.c b/src/emu/machine/z80pio.c index 29b85e49bb9..27768771f9c 100644 --- a/src/emu/machine/z80pio.c +++ b/src/emu/machine/z80pio.c @@ -878,3 +878,5 @@ WRITE8_DEVICE_HANDLER( z80pio_ba_cd_w ) BIT(offset, 0) ? z80pio_c_w(device, index, data) : z80pio_d_w(device, index, data); } + +const device_type Z80PIO = z80pio_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80pio.h b/src/emu/machine/z80pio.h index 44bef52f3bf..3c5e5c493fb 100644 --- a/src/emu/machine/z80pio.h +++ b/src/emu/machine/z80pio.h @@ -204,7 +204,7 @@ private: // device type definition -const device_type Z80PIO = z80pio_device_config::static_alloc_device_config; +extern const device_type Z80PIO; diff --git a/src/emu/machine/z80sio.c b/src/emu/machine/z80sio.c index 2e2aae7c826..8bd67212ca1 100644 --- a/src/emu/machine/z80sio.c +++ b/src/emu/machine/z80sio.c @@ -896,3 +896,5 @@ WRITE8_DEVICE_HANDLER( z80sio_ba_cd_w ) case 3: z80sio_c_w(device, 1, data); break; } } + +const device_type Z80SIO = z80sio_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80sio.h b/src/emu/machine/z80sio.h index a59d53ebaef..b4c8f9bcfac 100644 --- a/src/emu/machine/z80sio.h +++ b/src/emu/machine/z80sio.h @@ -161,7 +161,7 @@ private: // device type definition -const device_type Z80SIO = z80sio_device_config::static_alloc_device_config; +extern const device_type Z80SIO; diff --git a/src/emu/machine/z80sti.c b/src/emu/machine/z80sti.c index faf1539cc16..a2746cc5ca9 100644 --- a/src/emu/machine/z80sti.c +++ b/src/emu/machine/z80sti.c @@ -779,3 +779,5 @@ WRITE_LINE_DEVICE_HANDLER( z80sti_i4_w ) { downcast(device)->gp WRITE_LINE_DEVICE_HANDLER( z80sti_i5_w ) { downcast(device)->gpip_input(5, state); } WRITE_LINE_DEVICE_HANDLER( z80sti_i6_w ) { downcast(device)->gpip_input(6, state); } WRITE_LINE_DEVICE_HANDLER( z80sti_i7_w ) { downcast(device)->gpip_input(7, state); } + +const device_type Z80STI = z80sti_device_config::static_alloc_device_config; diff --git a/src/emu/machine/z80sti.h b/src/emu/machine/z80sti.h index f15104e947d..fe3f1fa13a6 100644 --- a/src/emu/machine/z80sti.h +++ b/src/emu/machine/z80sti.h @@ -200,7 +200,7 @@ private: // device type definition -const device_type Z80STI = z80sti_device_config::static_alloc_device_config; +extern const device_type Z80STI; diff --git a/src/emu/sound.c b/src/emu/sound.c index 6549f453413..49d638e5ff9 100644 --- a/src/emu/sound.c +++ b/src/emu/sound.c @@ -821,3 +821,5 @@ const char *sound_get_user_gain_name(running_machine *machine, int index) speaker_device *speaker = index_to_input(machine, index, inputnum); return (speaker != NULL) ? speaker->input_name(inputnum) : 0; } + +const device_type SPEAKER = speaker_device_config::static_alloc_device_config; diff --git a/src/emu/sound.h b/src/emu/sound.h index 67d7e6bd799..84f3ab2b0e0 100644 --- a/src/emu/sound.h +++ b/src/emu/sound.h @@ -122,7 +122,7 @@ protected: // device type definition -const device_type SPEAKER = speaker_device_config::static_alloc_device_config; +extern const device_type SPEAKER; diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c index a42534e395d..655f1248849 100644 --- a/src/emu/sound/okim6295.c +++ b/src/emu/sound/okim6295.c @@ -529,3 +529,5 @@ void adpcm_state::compute_tables() } } } + +const device_type SOUND_OKIM6295 = okim6295_device_config::static_alloc_device_config; diff --git a/src/emu/sound/okim6295.h b/src/emu/sound/okim6295.h index 4784355f75b..b0311fb467d 100644 --- a/src/emu/sound/okim6295.h +++ b/src/emu/sound/okim6295.h @@ -168,7 +168,7 @@ protected: // device type definition -const device_type SOUND_OKIM6295 = okim6295_device_config::static_alloc_device_config; +extern const device_type SOUND_OKIM6295; diff --git a/src/emu/timer.c b/src/emu/timer.c index 09b07d1b958..21b2999cc00 100644 --- a/src/emu/timer.c +++ b/src/emu/timer.c @@ -1169,3 +1169,5 @@ void timer_device::scanline_timer_callback(int scanline) // adjust the timer timer_adjust_oneshot(m_timer, m_screen->time_until_pos(next_vpos), 0); } + +const device_type TIMER = timer_device_config::static_alloc_device_config; diff --git a/src/emu/timer.h b/src/emu/timer.h index 10b915a5a3c..5551e9ddcaf 100644 --- a/src/emu/timer.h +++ b/src/emu/timer.h @@ -332,7 +332,7 @@ private: // device type definition -const device_type TIMER = timer_device_config::static_alloc_device_config; +extern const device_type TIMER; #endif /* __TIMER_H__ */ diff --git a/src/emu/video.c b/src/emu/video.c index 5e3efd40e05..8e38286e809 100644 --- a/src/emu/video.c +++ b/src/emu/video.c @@ -2564,3 +2564,5 @@ void screen_device::finalize_burnin() #define BILINEAR_FILTER 1 #include "rendersw.c" + +const device_type SCREEN = screen_device_config::static_alloc_device_config; diff --git a/src/emu/video.h b/src/emu/video.h index 1d6db728e13..ed341f96b8b 100644 --- a/src/emu/video.h +++ b/src/emu/video.h @@ -269,7 +269,7 @@ private: // device type definition -const device_type SCREEN = screen_device_config::static_alloc_device_config; +extern const device_type SCREEN;