summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/watchdog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/watchdog.h')
-rw-r--r--src/devices/machine/watchdog.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/devices/machine/watchdog.h b/src/devices/machine/watchdog.h
index 0c93a62ac01..56714bc4b9e 100644
--- a/src/devices/machine/watchdog.h
+++ b/src/devices/machine/watchdog.h
@@ -26,10 +26,10 @@ public:
// watchdog control
void watchdog_reset();
- void watchdog_enable(bool enable = true);
+ void watchdog_enable(int state = 1);
int32_t get_vblank_counter() const { return m_counter; }
- // read/write handlers
+ // watchdog reset read/write handlers (strobe on R/W pin)
void reset_w(u8 data = 0);
u8 reset_r(address_space &space);
void reset16_w(u16 data = 0);
@@ -37,12 +37,16 @@ public:
void reset32_w(u32 data = 0);
u32 reset32_r(address_space &space);
+ // watchdog reset writeline strobe
+ void reset_line_w(int state);
+
protected:
// device-level overrides
virtual void device_validity_check(validity_checker &valid) const override;
virtual void device_start() override;
virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
+ TIMER_CALLBACK_MEMBER(watchdog_expired);
private:
// internal helpers
@@ -56,6 +60,7 @@ private:
// internal state
bool m_enabled; // is the watchdog enabled?
+ int m_reset_line; // watchdog reset writeline state
int32_t m_counter; // counter for VBLANK tracking
emu_timer * m_timer; // timer for triggering reset
};