Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: Queue Manager (IxQMgr) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 267
For queues 32-63, the notification source is the assertion or de-assertion of the Nearly
Empty flag and cannot be changed.
Performs queue-status query.
For queues 0-31, the status consists of the flags Nearly Empty, Empty, Nearly Full, and
Full, Underflow and Overflow.
For queues 32-63, the status consists of the flags Nearly Empty and Full.
Determines the number of full entries in a queue.
Determines the size of a queue in entries.
Reads and writes entries from/to AQM.
Dispatches queue notification callbacks registered by clients. These are called in a defined
order, based on a set of conditions.
18.4 IxQMgr Initialization and Uninitialization
The initialization of IxQMgr first requires a call to ixQMgrInit(), which takes no parameters and
returns success or failure. No other ixQMgr functions may be called before this. Following
initialization, the queues must be configured, and the dispatcher function should be called. Only
one dispatcher can be invoked per each set of upper and lower 32 queues.
To uninitialize the IxQMgr component, call the ixQMgrUnload() function, which also takes no
parameters and returns success or failure. Uninitialization should be done prior to unloading
components that are dependant on IxQMgr. Uninitialization will unmap kernel memory mapped by
the component. As an example, uninitialization should be done before unloading a kernel module
or (if possible) before a soft reset.
To avoid unpredictable results, the ixQMgrUnload function should not be called twice in sequence
before a call to ixQMgrInit. No other ixQMgr functions may be called after ixQMgrUnload except
for ixQMgrInit.
18.5 Queue Configuration
The queue base address in AQM SRAM is calculated at run time. The IxQMgr access-layer
component must be initialized by calling ixQMgrInit() before any queue is configured. Queue
configurations include queue size, queue entry size, queue watermarks, interrupt enable/disable
and callback registration. A check is performed on the queue configuration to ensure that the
amount of SRAM required by the configuration does not exceed the amount available. The Queue
configuration function ixQMgrQConfig( ) provides a configuration interface to the AQM queues.
With the exception of ixQMgrQWatermarkSet(), the queue-configuration information to which this
interface provides access can only be set once.
18.6 Queue Identifiers
An AQM hardware queue is identified by one of the 64 unique identifiers. Each IxQMgr interface
function that operates on a queue takes one of the 64 identifiers (
defined in IxQMgr.h) as a
parameter and it is the clients responsibility to provide the correct identifier.