IONetworkController
Abstract: IONetworkController implements the framework for a generic
network controller. A subclass of IONetworkController must provide
additional functionality specific for a particular network family.
In addition, the driver must implement (override) a basic set of
hardware dependent methods to create a working driver.
IONetworkController attaches itself to the network layer via an
IONetworkInterface object. A controller object without a companion
interface is not known to the networking system. The controller
interacts with the network layer by calling methods defined by
the interface object. And conversely, the network layer issues
command and packets to the controller through its interface object.
IONetworkController allocates an IOWorkLoop and an IOCommandGate object.
Most commands (requests) sent from the interface object are handled
by instructing the IOCommandGate instance to call one or more methods,
usually implemented by the driver, that may require hardware access.
Thus interface requests are always serialized. Outbound packets sent
from the interface to the controller have no implicit serialization.
Drivers must implement an output function that is thread safe, or use
an IOOutputQueue object which will provide a serialization model.
© 2000 Apple Computer, Inc. (Last Updated 2/23/2000)