The architecture here follows that of the vax port -- each device has its
evcnt in its softc, but defers actually incrementing it to the IRQ
dispatcher. This way, devices can attach sub-counts (e.g. Rx and Tx counts
for Ethernet interfaces), but don't all have to have code to increment the
counters.
Drivers deliberately call evcnt_attach_dynamic() before establishing their
interrupt handler so that the establish routine can attach a parent event if
that's appropriate. At present, it isn't.
and a front-end driver for the Ether3. Only semantic change is to remove
ea_claimirq() and ea_releaseirq() on the grounds that the seem too spurious
to warrant a callback to the front-end.
driver and make it MI):
Set the ByteSwap bit on big-endian hosts, so we can use 16-bit transfers to get
at packets whatever.
Treat Tx/Rx headers as arrays of four bytes rather than as 32-bit words.
Transmit and receive buffer sizes aren't an intrinsic property of the card,
so they belong in if_ea.c rather than if_eareg.h.
Correct some comments in if_ea.c
- Get the Ethernet address from the card's description string, rather than
relying on RISC OS to set it.
- Don't mention this is a SEEQ8005 -- that's all an "ea" can be.
- Use format_bytes to display the amount of buffer RAM.