diff options
author | jhb <jhb@FreeBSD.org> | 2009-11-17 14:23:09 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2009-11-17 14:23:09 +0000 |
commit | 081b0ae5b029dcfcb9450d3c84474ec48aef5a71 (patch) | |
tree | 5f359fe7d8d28231f609e54385f5f69abdac0fed /sys/dev/ed/if_edvar.h | |
parent | 4d92e278180b89aada1affefb8281eb78bd5e5d3 (diff) | |
download | FreeBSD-src-081b0ae5b029dcfcb9450d3c84474ec48aef5a71.zip FreeBSD-src-081b0ae5b029dcfcb9450d3c84474ec48aef5a71.tar.gz |
Use a private callout timer to drive the transmit watchdog instead of using
if_watchdog and if_timer. The driver already contained an optional stats
timer that individual attachments could use to provide a 'tick' event. The
stats timer only ran if the tick function pointer was non-NULL and the
attachment's tick routine had to call callout_reset(), etc. Now the driver
always schedules a stat timer and manages the callout_reset() internally.
This timer is used to drive the watchdog and will also call the attachment's
'tick' handler if one is provided.
Tested by: WATANABE Kazuhiro
Diffstat (limited to 'sys/dev/ed/if_edvar.h')
-rw-r--r-- | sys/dev/ed/if_edvar.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ed/if_edvar.h b/sys/dev/ed/if_edvar.h index 56e241a..e344cd5 100644 --- a/sys/dev/ed/if_edvar.h +++ b/sys/dev/ed/if_edvar.h @@ -65,11 +65,12 @@ struct ed_softc { void (*mii_writebits)(struct ed_softc *, u_int, int); u_int (*mii_readbits)(struct ed_softc *, int); struct callout tick_ch; - void (*sc_tick)(void *); + void (*sc_tick)(struct ed_softc *); void (*readmem)(struct ed_softc *sc, bus_size_t src, uint8_t *dst, uint16_t amount); u_short (*sc_write_mbufs)(struct ed_softc *, struct mbuf *, bus_size_t); + int tx_timer; int nic_offset; /* NIC (DS8390) I/O bus address offset */ int asic_offset; /* ASIC I/O bus address offset */ |