summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/am79c90.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/am79c90.h')
-rw-r--r--src/devices/machine/am79c90.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/devices/machine/am79c90.h b/src/devices/machine/am79c90.h
index 258c5f27506..25d7078615e 100644
--- a/src/devices/machine/am79c90.h
+++ b/src/devices/machine/am79c90.h
@@ -6,7 +6,7 @@
#pragma once
-#include "hashing.h"
+#include "dinetwork.h"
class am7990_device_base : public device_t, public device_network_interface
{
@@ -15,8 +15,8 @@ public:
auto dma_in() { return m_dma_in_cb.bind(); }
auto dma_out() { return m_dma_out_cb.bind(); }
- DECLARE_READ16_MEMBER(regs_r);
- DECLARE_WRITE16_MEMBER(regs_w);
+ u16 regs_r(address_space &space, offs_t offset);
+ void regs_w(offs_t offset, u16 data);
void reset_w(int state) { if (!state) device_reset(); }
@@ -24,8 +24,8 @@ protected:
am7990_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock = 0);
// device_t overrides
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
// device_network_interface overrides
virtual int recv_start_cb(u8 *buf, int length) override;
@@ -34,9 +34,10 @@ protected:
// device helpers
void initialize();
- void update_interrupts();
+ void interrupt(s32 param);
+ void update_interrupts(attotime const delay = attotime::zero);
int receive(u8 *buf, int length);
- TIMER_CALLBACK_MEMBER(transmit_poll);
+ void transmit_poll(s32 param);
void transmit();
bool address_filter(u8 *buf);
@@ -163,6 +164,7 @@ private:
u8 m_tx_ring_pos;
u16 m_tx_md[4];
+ emu_timer *m_interrupt;
emu_timer *m_transmit_poll;
int m_intr_out_state;
bool m_idon;