IOBasicOutputQueue
A concrete implementation of an IOOutputQueue.
Declaration
class IOBasicOutputQueue : IOOutputQueueOverview
This object uses a mutex to protect the packet queue from multiple producers. A single producer is promoted to become a consumer when the queue is not active. Otherwise, the producer will simply queue the packet and return without blocking.
The flow of packets from the queue to its target can be controlled by calling methods such as start(), stop(), or service(). The target is expected to call those methods from a single threaded context, i.e. the work loop context in a network driver. In addition, the target must also return a status for every packet delivered by the consumer thread. This return value is the only mechanism that the target can use to manage the queue when it is running on the consumer thread.
Topics
Miscellaneous
enqueueflushfreegetCapacitygetDropCountgetOutputCountgetRetryCountgetSizegetStallCountgetStategetStatisticsDatahandleNetworkDataAccessinitoutputserviceserviceThreadsetCapacitystartstopwithTarget(IONetworkController *, UInt32)withTarget(IONetworkController *, UInt32, UInt32)withTarget(OSObject *, IOOutputAction, UInt32)withTarget(OSObject *, IOOutputAction, UInt32, UInt32)
Constants
Instance Methods
dequeueenqueueflushfreegetCapacitygetDropCountgetMetaClassgetOutputCountgetRetryCountgetSizegetStallCountgetStategetStatisticsDatahandleNetworkDataAccessoutputserviceserviceThreadsetCapacitystartstop