+
+/*
+ * Watchdog routine, request statistics from board.
+ */
+ilwatch(unit)
+ int unit;
+{
+ register struct il_softc *is = &il_softc[unit];
+ register struct ifnet *ifp = &is->is_if;
+ int s;
+
+ if (is->is_flags & ILF_STATPENDING) {
+ ifp->if_timer = is->is_scaninterval;
+ return;
+ }
+ s = splimp();
+ is->is_flags |= ILF_STATPENDING;
+ if ((is->is_flags & ILF_OACTIVE) == 0)
+ ilstart(ifp->if_unit);
+ splx(s);
+ ifp->if_timer = is->is_scaninterval;
+}
+
+/*
+ * Total up the on-board statistics.
+ */
+iltotal(is)
+ register struct il_softc *is;
+{
+ register u_short *interval, *sum, *end;
+
+ interval = &is->is_stats.ils_frames;
+ sum = &is->is_sum.ils_frames;
+ end = is->is_sum.ils_fill2;
+ while (sum < end)
+ *sum++ += *interval++;
+ is->is_if.if_collisions = is->is_sum.ils_collis;
+}