diff options
Diffstat (limited to 'src/devices/machine/watchdog.h')
-rw-r--r-- | src/devices/machine/watchdog.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/devices/machine/watchdog.h b/src/devices/machine/watchdog.h index 0c93a62ac01..670260a6c1d 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; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + + 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 }; |