summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed/if_edvar.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2009-11-17 14:23:09 +0000
committerjhb <jhb@FreeBSD.org>2009-11-17 14:23:09 +0000
commit081b0ae5b029dcfcb9450d3c84474ec48aef5a71 (patch)
tree5f359fe7d8d28231f609e54385f5f69abdac0fed /sys/dev/ed/if_edvar.h
parent4d92e278180b89aada1affefb8281eb78bd5e5d3 (diff)
downloadFreeBSD-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.h3
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 */
OpenPOWER on IntegriCloud