summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/nvram.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine/nvram.h')
-rw-r--r--src/emu/machine/nvram.h64
1 files changed, 21 insertions, 43 deletions
diff --git a/src/emu/machine/nvram.h b/src/emu/machine/nvram.h
index 736a6bbac19..06906161ecc 100644
--- a/src/emu/machine/nvram.h
+++ b/src/emu/machine/nvram.h
@@ -50,40 +50,40 @@
#define MCFG_NVRAM_ADD_0FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_0); \
#define MCFG_NVRAM_ADD_1FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_1); \
#define MCFG_NVRAM_ADD_RANDOM_FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_RANDOM); \
#define MCFG_NVRAM_ADD_NO_FILL(_tag) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_NONE); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_NONE); \
#define MCFG_NVRAM_ADD_CUSTOM(_tag, _class, _method) \
MCFG_DEVICE_ADD(_tag, NVRAM, 0) \
- nvram_device_config::static_set_custom_handler(device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \
+ nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \
#define MCFG_NVRAM_REPLACE_0FILL(_tag) \
MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_0); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_0); \
#define MCFG_NVRAM_REPLACE_1FILL(_tag) \
MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_ALL_1); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_ALL_1); \
#define MCFG_NVRAM_REPLACE_RANDOM_FILL(_tag) \
MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \
- nvram_device_config::static_set_default_value(device, nvram_device_config::DEFAULT_RANDOM); \
+ nvram_device::static_set_default_value(*device, nvram_device::DEFAULT_RANDOM); \
#define MCFG_NVRAM_REPLACE_CUSTOM(_tag, _class, _method) \
MCFG_DEVICE_REPLACE(_tag, NVRAM, 0) \
- nvram_device_config::static_set_custom_handler(device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \
+ nvram_device::static_set_custom_handler(*device, nvram_init_delegate(&_class::_method, #_class "::" #_method, (_class *)0)); \
@@ -98,16 +98,11 @@ class nvram_device;
typedef delegate<void (nvram_device &, void *, size_t)> nvram_init_delegate;
-// ======================> nvram_device_config
+// ======================> nvram_device
-class nvram_device_config : public device_config,
- public device_config_nvram_interface
+class nvram_device : public device_t,
+ public device_nvram_interface
{
- friend class nvram_device;
-
- // construction/destruction
- nvram_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
-
public:
// values
enum default_value
@@ -119,32 +114,13 @@ public:
DEFAULT_NONE
};
- // allocators
- static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
- virtual device_t *alloc_device(running_machine &machine) const;
+ // construction/destruction
+ nvram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// inline configuration helpers
- static void static_set_default_value(device_config *device, default_value value);
- static void static_set_custom_handler(device_config *device, nvram_init_delegate callback);
-
-protected:
- // internal state
- default_value m_default_value;
- nvram_init_delegate m_custom_handler;
-};
-
+ static void static_set_default_value(device_t &device, default_value value);
+ static void static_set_custom_handler(device_t &device, nvram_init_delegate callback);
-// ======================> nvram_device
-
-class nvram_device : public device_t,
- public device_nvram_interface
-{
- friend class nvram_device_config;
-
- // construction/destruction
- nvram_device(running_machine &_machine, const nvram_device_config &config);
-
-public:
// controls
void set_base(void *base, size_t length) { m_base = base; m_length = length; }
@@ -160,11 +136,13 @@ protected:
// internal helpers
void determine_final_base();
- // internal state
- const nvram_device_config & m_config;
+ // configuration state
+ default_value m_default_value;
+ nvram_init_delegate m_custom_handler;
+
+ // runtime state
void * m_base;
size_t m_length;
- nvram_init_delegate m_custom_handler;
};