Main Page Modules Alphabetical List Data Structures File List Data Fields Globals # IXP425 Queue Manager (IxQMgr) API The public API for the IXP425 QMgr component. More...
## Data Structures
struct | IxQMgrQInlinedReadWriteInfo
| Internal structure to facilitate inlining functions in IxQMgr.h. More...
## Defines
#define | IX_QMGR_SAVED_COMPONENT_NAME
| Because this file contains inline functions which will be compiled into other components, we need to ensure that the IX_COMPONENT_NAME define is set to ix_qmgr while this code is being compiled.
#define | IX_COMPONENT_NAME
#define | IX_QMGR_INLINE
| Inline definition, for inlining of Queue Access functions on API.
#define | IX_QMGR_MAX_NUM_QUEUES
| Number of queues supported by the AQM.
#define | IX_QMGR_MIN_QID
| Minimum queue identifier.
#define | IX_QMGR_MAX_QID
| Maximum queue identifier.
#define | IX_QMGR_MIN_QUEUPP_QID
| Minimum queue identifier for reduced functionality queues.
#define | IX_QMGR_MAX_QNAME_LEN
| Maximum queue name length.
#define | IX_QMGR_WARNING
| Warning return code.
#define | IX_QMGR_PARAMETER_ERROR
| Parameter error return code (NULL pointer etc..).
#define | IX_QMGR_INVALID_Q_ENTRY_SIZE
| Invalid entry size return code.
#define | IX_QMGR_INVALID_Q_ID
| Invalid queue identifier return code.
#define | IX_QMGR_INVALID_CB_ID
| Invalid callback identifier return code.
#define | IX_QMGR_CB_ALREADY_SET
| Callback set error return code.
#define | IX_QMGR_NO_AVAILABLE_SRAM
| Sram consumed return code.
#define | IX_QMGR_INVALID_INT_SOURCE_ID
| Invalid queue interrupt source identifier return code.
#define | IX_QMGR_INVALID_QSIZE
| Invalid queue size error code.
#define | IX_QMGR_INVALID_Q_WM
| Invalid queue watermark return code.
#define | IX_QMGR_Q_NOT_CONFIGURED
| Queue not configured return code.
#define | IX_QMGR_Q_ALREADY_CONFIGURED
| Queue already configured return code.
#define | IX_QMGR_Q_UNDERFLOW
| Underflow return code.
#define | IX_QMGR_Q_OVERFLOW
| Overflow return code.
#define | IX_QMGR_Q_INVALID_PRIORITY
| Invalid priority return code.
#define | IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS
| Entry index out of bounds return code.
#define | ixQMgrDispatcherLoopRun
| Map old function name ixQMgrDispatcherLoopRun() to ixQMgrDispatcherLoopRunA0().
## Typedefs
typedef UINT32 | IxQMgrQStatus
| Queue status.
typedef unsigned | IxQMgrCallbackId
| Uniquely identifies a callback function.
typedef void(* | IxQMgrCallback )(IxQMgrQId qId, IxQMgrCallbackId cbId)
| QMgr notification callback type.
typedef void(* | IxQMgrDispatcherFuncPtr )(IxQMgrDispatchGroup group)
| QMgr Dispatcher Loop function pointer.
## Enumerations
enum | IxQMgrQId { IX_QMGR_QUEUE_0, IX_QMGR_QUEUE_1, IX_QMGR_QUEUE_2, IX_QMGR_QUEUE_3, IX_QMGR_QUEUE_4, IX_QMGR_QUEUE_5, IX_QMGR_QUEUE_6, IX_QMGR_QUEUE_7, IX_QMGR_QUEUE_8, IX_QMGR_QUEUE_9, IX_QMGR_QUEUE_10, IX_QMGR_QUEUE_11, IX_QMGR_QUEUE_12, IX_QMGR_QUEUE_13, IX_QMGR_QUEUE_14, IX_QMGR_QUEUE_15, IX_QMGR_QUEUE_16, IX_QMGR_QUEUE_17, IX_QMGR_QUEUE_18, IX_QMGR_QUEUE_19, IX_QMGR_QUEUE_20, IX_QMGR_QUEUE_21, IX_QMGR_QUEUE_22, IX_QMGR_QUEUE_23, IX_QMGR_QUEUE_24, IX_QMGR_QUEUE_25, IX_QMGR_QUEUE_26, IX_QMGR_QUEUE_27, IX_QMGR_QUEUE_28, IX_QMGR_QUEUE_29, IX_QMGR_QUEUE_30, IX_QMGR_QUEUE_31, IX_QMGR_QUEUE_32, IX_QMGR_QUEUE_33, IX_QMGR_QUEUE_34, IX_QMGR_QUEUE_35, IX_QMGR_QUEUE_36, IX_QMGR_QUEUE_37, IX_QMGR_QUEUE_38, IX_QMGR_QUEUE_39, IX_QMGR_QUEUE_40, IX_QMGR_QUEUE_41, IX_QMGR_QUEUE_42, IX_QMGR_QUEUE_43, IX_QMGR_QUEUE_44, IX_QMGR_QUEUE_45, IX_QMGR_QUEUE_46, IX_QMGR_QUEUE_47, IX_QMGR_QUEUE_48, IX_QMGR_QUEUE_49, IX_QMGR_QUEUE_50, IX_QMGR_QUEUE_51, IX_QMGR_QUEUE_52, IX_QMGR_QUEUE_53, IX_QMGR_QUEUE_54, IX_QMGR_QUEUE_55, IX_QMGR_QUEUE_56, IX_QMGR_QUEUE_57, IX_QMGR_QUEUE_58, IX_QMGR_QUEUE_59, IX_QMGR_QUEUE_60, IX_QMGR_QUEUE_61, IX_QMGR_QUEUE_62, IX_QMGR_QUEUE_63, IX_QMGR_QUEUE_INVALID }
| Generic identifiers for AQM queues. More...
enum | IxQMgrQStatusMask { IX_QMGR_Q_STATUS_E_BIT_MASK, IX_QMGR_Q_STATUS_NE_BIT_MASK, IX_QMGR_Q_STATUS_NF_BIT_MASK, IX_QMGR_Q_STATUS_F_BIT_MASK, IX_QMGR_Q_STATUS_UF_BIT_MASK, IX_QMGR_Q_STATUS_OF_BIT_MASK }
| Queue status mask. More...
enum | IxQMgrSourceId { IX_QMGR_Q_SOURCE_ID_E, IX_QMGR_Q_SOURCE_ID_NE, IX_QMGR_Q_SOURCE_ID_NF, IX_QMGR_Q_SOURCE_ID_F, IX_QMGR_Q_SOURCE_ID_NOT_E, IX_QMGR_Q_SOURCE_ID_NOT_NE, IX_QMGR_Q_SOURCE_ID_NOT_NF, IX_QMGR_Q_SOURCE_ID_NOT_F }
| Queue interrupt source select. More...
enum | IxQMgrQEntrySizeInWords { IX_QMGR_Q_ENTRY_SIZE1, IX_QMGR_Q_ENTRY_SIZE2, IX_QMGR_Q_ENTRY_SIZE4 }
| QMgr queue entry sizes. More...
enum | IxQMgrQSizeInWords { IX_QMGR_Q_SIZE16, IX_QMGR_Q_SIZE32, IX_QMGR_Q_SIZE64, IX_QMGR_Q_SIZE128, IX_QMGR_Q_SIZE_INVALID }
| QMgr queue sizes. More...
enum | IxQMgrWMLevel { IX_QMGR_Q_WM_LEVEL0, IX_QMGR_Q_WM_LEVEL1, IX_QMGR_Q_WM_LEVEL2, IX_QMGR_Q_WM_LEVEL4, IX_QMGR_Q_WM_LEVEL8, IX_QMGR_Q_WM_LEVEL16, IX_QMGR_Q_WM_LEVEL32, IX_QMGR_Q_WM_LEVEL64 }
| QMgr watermark levels. More...
enum | IxQMgrDispatchGroup { IX_QMGR_QUELOW_GROUP, IX_QMGR_QUEUPP_GROUP }
| QMgr dispatch group select identifiers. More...
enum | IxQMgrPriority { IX_QMGR_Q_PRIORITY_0, IX_QMGR_Q_PRIORITY_1, IX_QMGR_Q_PRIORITY_2, IX_QMGR_Q_PRIORITY_INVALID }
| Dispatcher priority levels. More...
## Functions
PUBLIC IX_STATUS | ixQMgrInit (void)
| Initialise the QMgr.
PUBLIC IX_STATUS | ixQMgrUnload (void)
| Uninitialise the QMgr.
PUBLIC void | ixQMgrShow (void)
| Describe queue configuration and statistics for active queues.
PUBLIC IX_STATUS | ixQMgrQShow (IxQMgrQId qId)
| Display aqueue configuration and statistics for a queue.
PUBLIC IX_STATUS | ixQMgrQConfig (char *qName, IxQMgrQId qId, IxQMgrQSizeInWords qSizeInWords, IxQMgrQEntrySizeInWords qEntrySizeInWords)
| Configure an AQM queue.
PUBLIC IX_STATUS | ixQMgrQSizeInEntriesGet (IxQMgrQId qId, unsigned *qSizeInEntries)
| Return the size of a queue in entries.
PUBLIC IX_STATUS | ixQMgrWatermarkSet (IxQMgrQId qId, IxQMgrWMLevel ne, IxQMgrWMLevel nf)
| Set the Nearly Empty and Nearly Full Watermarks fo a queue.
PUBLIC IX_STATUS | ixQMgrAvailableSramAddressGet (UINT32 *address, unsigned *sizeOfFreeSram)
| Return the address of available AQM SRAM.
PUBLIC IX_STATUS | ixQMgrQReadWithChecks (IxQMgrQId qId, UINT32 *entry)
| Read an entry from a queue.
IX_STATUS | ixQMgrQReadMWordsMinus1 (IxQMgrQId qId, UINT32 *entry)
| This function reads the remaining of the q entry for queues configured with many words. (the first word of the entry is already read in the inlined function and the entry pointer already incremented.
IX_QMGR_INLINE PUBLIC IX_STATUS | ixQMgrQRead (IxQMgrQId qId, UINT32 *entryPtr)
| Fast read of an entry from a queue.
IX_QMGR_INLINE PUBLIC IX_STATUS | ixQMgrQBurstRead (IxQMgrQId qId, UINT32 numEntries, UINT32 *entries)
| Read a number of entries from an AQM queue.
IX_STATUS | ixQMgrQPeek (IxQMgrQId qId, unsigned int entryIndex, UINT32 *entry)
| Read an entry from a queue without moving the read pointer.
PUBLIC IX_STATUS | ixQMgrQWriteWithChecks (IxQMgrQId qId, UINT32 *entry)
| Write an entry to an AQM queue.
IX_QMGR_INLINE PUBLIC IX_STATUS | ixQMgrQWrite (IxQMgrQId qId, UINT32 *entry)
| Fast write of an entry to a queue.
IX_QMGR_INLINE PUBLIC IX_STATUS | ixQMgrQBurstWrite (IxQMgrQId qId, unsigned numEntries, UINT32 *entries)
| Write a number of entries to an AQM queue.
IX_STATUS | ixQMgrQPoke (IxQMgrQId qId, unsigned int entryIndex, UINT32 *entry)
| Write an entry to a queue without moving the write pointer.
PUBLIC IX_STATUS | ixQMgrQNumEntriesGet (IxQMgrQId qId, unsigned *numEntries)
| Get a snapshot of the number of entries in a queue.
PUBLIC IX_STATUS | ixQMgrQStatusGetWithChecks (IxQMgrQId qId, IxQMgrQStatus *qStatus)
| Get a queues status.
IX_QMGR_INLINE PUBLIC IX_STATUS | ixQMgrQStatusGet (IxQMgrQId qId, IxQMgrQStatus *qStatus)
| Fast get of a queue's status.
PUBLIC IX_STATUS | ixQMgrDispatcherPrioritySet (IxQMgrQId qId, IxQMgrPriority priority)
| Set the dispatch priority of a queue.
PUBLIC IX_STATUS | ixQMgrNotificationEnable (IxQMgrQId qId, IxQMgrSourceId sourceId)
| Enable notification on a queue for a specified queue source flag.
PUBLIC IX_STATUS | ixQMgrNotificationDisable (IxQMgrQId qId)
| Disable notifications on a queue.
PUBLIC void | ixQMgrDispatcherLoopRunA0 (IxQMgrDispatchGroup group)
| Run the callback dispatcher.
PUBLIC void | ixQMgrDispatcherLoopRunB0 (IxQMgrDispatchGroup group)
| Run the callback dispatcher.
PUBLIC IX_STATUS | ixQMgrNotificationCallbackSet (IxQMgrQId qId, IxQMgrCallback callback, IxQMgrCallbackId callbackId)
| Set the notification callback for a queue.
PUBLIC void | ixQMgrDispatcherLoopGet (IxQMgrDispatcherFuncPtr *qDispatcherFuncPtr)
| Get QMgr DispatcherLoopRun for respective silicon device.
PUBLIC void | ixQMgrStickyInterruptRegEnable (void)
| Enable AQM's sticky interrupt register behaviour only available on B0 Silicon.
## Variables
IxQMgrQInlinedReadWriteInfo | ixQMgrQInlinedReadWriteInfo []
UINT32 | ixQMgrAqmIfQueLowStatRegAddr []
UINT32 | ixQMgrAqmIfQueLowStatBitsOffset []
UINT32 | ixQMgrAqmIfQueLowStatBitsMask
UINT32 | ixQMgrAqmIfQueUppStat0RegAddr
UINT32 | ixQMgrAqmIfQueUppStat1RegAddr
UINT32 | ixQMgrAqmIfQueUppStat0BitMask []
UINT32 | ixQMgrAqmIfQueUppStat1BitMask []
## Detailed Description The public API for the IXP425 QMgr component. IxQMgr is a low level interface to the AHB Queue Manager ## Define Documentation
#define IX_QMGR_CB_ALREADY_SET
| Callback set error return code. The specified callback has already been for this queue Definition at line 273 of file IxQMgr.h.
#define IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS
| Entry index out of bounds return code. Entry index is greater than number of entries in queue. Definition at line 400 of file IxQMgr.h.
#define IX_QMGR_INLINE
| Inline definition, for inlining of Queue Access functions on API. Please read the header information in this file for more details on the use of function inlining in this component. Definition at line 125 of file IxQMgr.h.
#define IX_QMGR_INVALID_CB_ID
| Invalid callback identifier return code. Invalid callback id Definition at line 260 of file IxQMgr.h.
#define IX_QMGR_INVALID_INT_SOURCE_ID
| Invalid queue interrupt source identifier return code. Invalid queue interrupt source given for notification enable Definition at line 298 of file IxQMgr.h.
#define IX_QMGR_INVALID_Q_ENTRY_SIZE
| Invalid entry size return code. Invalid queue entry size for a queue read/write Definition at line 235 of file IxQMgr.h.
#define IX_QMGR_INVALID_Q_ID
| Invalid queue identifier return code. Invalid queue id, not in range 0-63 Definition at line 248 of file IxQMgr.h.
#define IX_QMGR_INVALID_Q_WM
| Invalid queue watermark return code. Invalid queue watermark given for watermark set Definition at line 324 of file IxQMgr.h.
#define IX_QMGR_INVALID_QSIZE
| Invalid queue size error code. Invalid queue size not one of 16,32, 64, 128 Definition at line 312 of file IxQMgr.h.
#define IX_QMGR_MAX_NUM_QUEUES
| Number of queues supported by the AQM. This constant is used to indicate the number of AQM queues Definition at line 142 of file IxQMgr.h.
#define IX_QMGR_MAX_QID
| Maximum queue identifier. This constant is used to indicate the largest queue identifier Definition at line 168 of file IxQMgr.h.
#define IX_QMGR_MAX_QNAME_LEN
| Maximum queue name length. This constant is used to indicate the maximum null terminated string length (excluding '') for a queue name Definition at line 196 of file IxQMgr.h.
#define IX_QMGR_MIN_QID
| Minimum queue identifier. This constant is used to indicate the smallest queue identifier Definition at line 155 of file IxQMgr.h.
#define IX_QMGR_MIN_QUEUPP_QID
| Minimum queue identifier for reduced functionality queues. This constant is used to indicate Minimum queue identifier for reduced functionality queues Definition at line 182 of file IxQMgr.h. Referenced by ixQMgrQBurstRead(), ixQMgrQBurstWrite(), ixQMgrQRead(), ixQMgrQStatusGet(), and ixQMgrQWrite().
#define IX_QMGR_NO_AVAILABLE_SRAM
| Sram consumed return code. All AQM Sram is consumed by queue configuration Definition at line 286 of file IxQMgr.h.
#define IX_QMGR_PARAMETER_ERROR
| Parameter error return code (NULL pointer etc..). parameter error out of range/invalid Definition at line 222 of file IxQMgr.h.
#define IX_QMGR_Q_ALREADY_CONFIGURED
| Queue already configured return code. Returned to client to indicate that a queue has already been configured Definition at line 350 of file IxQMgr.h.
#define IX_QMGR_Q_INVALID_PRIORITY
| Invalid priority return code. Invalid priority, not one of 0,1,2 Definition at line 388 of file IxQMgr.h.
#define IX_QMGR_Q_NOT_CONFIGURED
| Queue not configured return code. Returned to the client when a function has been called on an unconfigured queue Definition at line 338 of file IxQMgr.h.
#define IX_QMGR_Q_OVERFLOW
| Overflow return code. Overflow on a queue write has occurred Definition at line 376 of file IxQMgr.h. Referenced by ixQMgrQBurstWrite(), and ixQMgrQWrite().
#define IX_QMGR_Q_UNDERFLOW
| Underflow return code. Underflow on a queue read has occurred Definition at line 363 of file IxQMgr.h. Referenced by ixQMgrQBurstRead(), and ixQMgrQRead().
#define IX_QMGR_SAVED_COMPONENT_NAME
| Because this file contains inline functions which will be compiled into other components, we need to ensure that the IX_COMPONENT_NAME define is set to ix_qmgr while this code is being compiled. This will ensure that the correct implementation is provided for the memory access macros IX_OSSERV_READ_LONG and IX_OSSERV_WRITE_LONG which are used in this file. This must be done before including "IxOsServicesMemAccess.h" Definition at line 93 of file IxQMgr.h.
#define IX_QMGR_WARNING
| Warning return code. Execution complete, but there is a special case to handle Definition at line 209 of file IxQMgr.h.
#define ixQMgrDispatcherLoopRun
| Map old function name ixQMgrDispatcherLoopRun() to ixQMgrDispatcherLoopRunA0(). Definition at line 412 of file IxQMgr.h.
## Typedef Documentation
IxQMgrCallback
  | QMgr notification callback type. This defines the interface to all client callback functions. Parameters:
  IxQMgrQId | qId(in) - the queue identifier
  IxQMgrCallbackId | cbId(in) - the callback identifier
Definition at line 699 of file IxQMgr.h.
IxQMgrCallbackId
| Uniquely identifies a callback function. A unique callback identifier associated with each callback registered by clients. Definition at line 687 of file IxQMgr.h.
IxQMgrDispatcherFuncPtr
  | QMgr Dispatcher Loop function pointer. This defines the interface for QMgr Dispather functions. Parameters:
  IxQMgrDispatchGroup | group(in) - the group of the queue of which the dispatcher will run
Definition at line 714 of file IxQMgr.h.
IxQMgrQStatus
| Queue status. A queues status is defined by its relative fullness or relative emptiness. Each of the queues 0-31 have Nearly Empty, Nearly Full, Empty, Full, Underflow and Overflow status flags. Queues 32-63 have just Nearly Empty and Full status flags. The flags bit positions are outlined below: OF - bit-5 UF - bit-4 F - bit-3 NF - bit-2 NE - bit-1 E - bit-0 Definition at line 523 of file IxQMgr.h.
## Enumeration Type Documentation
enum IxQMgrDispatchGroup
  | QMgr dispatch group select identifiers. This enum defines the groups over which the dispatcher will process when called. One of the enum values must be used as a input to ixQMgrDispatcherLoopRun(). Enumeration values:
  IX_QMGR_QUELOW_GROUP | Queues 0-31.
  IX_QMGR_QUEUPP_GROUP | Queues 32-63.
Definition at line 651 of file IxQMgr.h.
enum IxQMgrPriority
  | Dispatcher priority levels. This enum defines the different queue dispatch priority levels. The lowest priority number (0) is the highest priority level. Enumeration values:
  IX_QMGR_Q_PRIORITY_0 | Priority level 0.
  IX_QMGR_Q_PRIORITY_1 | Priority level 1.
  IX_QMGR_Q_PRIORITY_2 | Priority level 2.
  IX_QMGR_Q_PRIORITY_INVALID | Invalid Priority level.
Definition at line 668 of file IxQMgr.h.
enum IxQMgrQEntrySizeInWords
  | QMgr queue entry sizes. The entry size of a queue specifies the size of a queues entry in words. Enumeration values:
  IX_QMGR_Q_ENTRY_SIZE1 | 1 word entry
  IX_QMGR_Q_ENTRY_SIZE2 | 2 word entry
  IX_QMGR_Q_ENTRY_SIZE4 | 4 word entry
Definition at line 581 of file IxQMgr.h. Referenced by ixQMgrQBurstRead(), and ixQMgrQBurstWrite().
enum IxQMgrQId
| Generic identifiers for AQM queues. These enum values are used in the AQM queue config header file. This enum defines generic identifiers for the queues in that the application of the queue is not specified. The connection between queue number and queue application is done in the AQM queue config header file. Clients of this component should NOT use these values to identify queues, the #defines in the AQM queue configuration header should be used. Definition at line 433 of file IxQMgr.h.
enum IxQMgrQSizeInWords
  | QMgr queue sizes. These values define the allowed queue sizes for AQM queue. The sizes are specified in words. Enumeration values:
  IX_QMGR_Q_SIZE16 | 16 word buffer
  IX_QMGR_Q_SIZE32 | 32 word buffer
  IX_QMGR_Q_SIZE64 | 64 word buffer
  IX_QMGR_Q_SIZE128 | 128 word buffer
  IX_QMGR_Q_SIZE_INVALID | Insure that this is greater than largest queue size supported by the hardware.
Definition at line 599 of file IxQMgr.h.
enum IxQMgrQStatusMask
| Queue status mask. Masks for extracting the individual status flags from the IxQMgrStatus word. Definition at line 536 of file IxQMgr.h.
enum IxQMgrSourceId
  | Queue interrupt source select. This enum defines the different source conditions on a queue that result in an interupt being fired by the AQM. Interrupt source is configurable for queues 0-31 only. The interrupt source for queues 32-63 is hardwired to the NE(Nearly Empty) status flag. Enumeration values:
  IX_QMGR_Q_SOURCE_ID_E | Queue Empty due to last read.
  IX_QMGR_Q_SOURCE_ID_NE | Queue Nearly Empty due to last read.
  IX_QMGR_Q_SOURCE_ID_NF | Queue Nearly Full due to last write.
  IX_QMGR_Q_SOURCE_ID_F | Queue Full due to last write.
  IX_QMGR_Q_SOURCE_ID_NOT_E | Queue Not Empty due to last write.
  IX_QMGR_Q_SOURCE_ID_NOT_NE | Queue Not Nearly Empty due to last write.
  IX_QMGR_Q_SOURCE_ID_NOT_NF | Queue Not Nearly Full due to last read.
  IX_QMGR_Q_SOURCE_ID_NOT_F | Queue Not Full due to last read.
Definition at line 559 of file IxQMgr.h.
enum IxQMgrWMLevel
  | QMgr watermark levels. These values define the valid watermark levels(in ENTRIES) for queues. Each queue 0-63 have configurable Nearly full and Nearly empty watermarks. For queues 32-63 the Nearly full watermark has NO EFFECT. If the Nearly full watermark is set to IX_QMGR_Q_WM_LEVEL16 this means that the nearly full flag will be set by the hardware when there are >= 16 empty entries in the specified queue. If the Nearly empty watermark is set to IX_QMGR_Q_WM_LEVEL16 this means that the Nearly empty flag will be set by the hardware when there are <= 16 full entries in the specified queue. Enumeration values:
  IX_QMGR_Q_WM_LEVEL0 | 0 entry watermark
  IX_QMGR_Q_WM_LEVEL1 | 1 entry watermark
  IX_QMGR_Q_WM_LEVEL2 | 2 entry watermark
  IX_QMGR_Q_WM_LEVEL4 | 4 entry watermark
  IX_QMGR_Q_WM_LEVEL8 | 8 entry watermark
  IX_QMGR_Q_WM_LEVEL16 | 16 entry watermark
  IX_QMGR_Q_WM_LEVEL32 | 32 entry watermark
  IX_QMGR_Q_WM_LEVEL64 | 64 entry watermark
Definition at line 627 of file IxQMgr.h.
## Function Documentation
ixQMgrAvailableSramAddressGet | ( | UINT32 * | address,
|  | unsigned * | sizeOfFreeSram
| ) |
  | Return the address of available AQM SRAM. This function returns the starting address in AQM SRAM not used by the current queue configuration and should only be called after all queues have been configured. Calling this function before all queues have been configured will will return the currently available SRAM. A call to configure another queue will use some of the available SRAM. The amount of SRAM available is specified in sizeOfFreeSram. The address is the address of the bottom of available SRAM. Available SRAM extends from address from address to address + sizeOfFreeSram. Parameters:
  UINT32(out) | **address - the address of the available SRAM, NULL if none available.
  unsigned(out) | *sizeOfFreeSram - the size in words of available SRAM
Returns: IX_SUCCESS, there is available SRAM and is pointed to by address IX_QMGR_PARAMETER_ERROR, invalid parameter(s) IX_QMGR_NO_AVAILABLE_SRAM, all AQM SRAM is consumed by the queue configuration.
ixQMgrDispatcherLoopGet | ( | IxQMgrDispatcherFuncPtr * | qDispatcherFuncPtr | ) |
  | Get QMgr DispatcherLoopRun for respective silicon device. This function get the function pointer for ixQMgrDispatcherLoopRunA0() for A0 or ixQMgrDispatcherLoopRunB0() for B0 Silicon. Parameters:
  IxQMgrDispatcherFuncPtr(out) | *qDispatcherFuncPtr - the function pointer of QMgr Dispatcher
ixQMgrDispatcherLoopRunA0 | ( | IxQMgrDispatchGroup | group | ) |
  | Run the callback dispatcher. The function runs the dispatcher for a group of queues. Callbacks are made for interrupts that have occurred on queues within the group that have registered callbacks. The order in which queues are serviced depends on the queue priorities set by the client. This function may be called from interrupt or task context. This function is not re-entrant. Parameters:
  IxQMgrDispatchGroup(in) | group - the group of queues over which the dispatcher will run
Returns: void Note: This function may be called from interrupt or task context. However, for optimal performance the choice of context depends also on the operating system used. For optimal performance with the WindRiver VxWorks OS the recommendation is to use a polling task to call the Dispatcher, for the following reasons: The system cannot handle more than 42000 interrupts per second. As a result, the system may crash at 25% of the maximum traffic rate for Ethernet traffic. Using a polling task to call the Dispatcher works fine. For optimal performance with the Linux OS the recommendation is to use interrupts to call the Dispatcher, for the following reasons: A task loop cannot run more than 100 times per second (HZ). As an example, if an Ethernet port uses a queue size of 128 entries, the maximum achievable traffic rate is 12800 packets per second. (the system does not crash, but this is 8% of wire speed) Using queue interrupts to call the Dispatcher works fine.
ixQMgrDispatcherLoopRunB0 | ( | IxQMgrDispatchGroup | group | ) |
  | Run the callback dispatcher. The enhanced version of ixQMgrDispatcherLoopRun () for B0 silicon. The function runs the dispatcher for a group of queues. Callbacks are made for interrupts that have occurred on queues within the group that have registered callbacks. The order in which queues are serviced depends on the queue priorities set by the client. This function may be called from interrupt or task context. This function is not re-entrant. Parameters:
  IxQMgrDispatchGroup(in) | group - the group of queues over which the dispatcher will run
Returns: void Note: Compared with ixQMgrDispatcherLoopRunA0(), ixQMgrDispatcherLoopRunB0() is more efficient and takes advantange of QMgr optimization in B0 silicon . This function may be called from interrupt or task context. However, for optimal performance the choice of context depends also on the operating system used. For optimal performance with the WindRiver VxWorks OS the recommendation is to use a polling task to call the Dispatcher, for the following reasons: The system cannot handle more than 42000 interrupts per second. As a result, the system may crash at 25% of the maximum traffic rate for Ethernet traffic. Using a polling task to call the Dispatcher works fine. For optimal performance with the Linux OS the recommendation is to use interrupts to call the Dispatcher, for the following reasons: A task loop cannot run more than 100 times per second (HZ). As an example, if an Ethernet port uses a queue size of 128 entries, the maximum achievable traffic rate is 12800 packets per second. (the system does not crash, but this is 8% of wire speed) Using queue interrupts to call the Dispatcher works fine.
ixQMgrDispatcherPrioritySet | ( | IxQMgrQId | qId,
|  | IxQMgrPriority | priority
| ) |
  | Set the dispatch priority of a queue. This function is called to set the disptach priority of queue. The effect of this function is to add a priority change request to a queue. This queue is serviced by ixQMgrDispatcherLoopRun. This function is re-entrant. and can be used from an interrupt context Parameters:
  IxQMgrQId(in) | qId - the queue identifier
  IxQMgrPriority(in) | priority - the new queue dispatch priority
Returns: IX_SUCCESS, priority change request is queued IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured IX_QMGR_Q_INVALID_PRIORITY, specified priority is invalid
ixQMgrInit | ( | void |  | ) |
| Initialise the QMgr. This function must be called before and other QMgr function. It sets up internal data structures. Returns: IX_SUCCESS, the IxQMgr successfully initialised IX_FAIL, failed to initialize the Qmgr
ixQMgrNotificationCallbackSet | ( | IxQMgrQId | qId,
|  | IxQMgrCallback | callback,
|  | IxQMgrCallbackId | callbackId
| ) |
  | Set the notification callback for a queue. This function sets the callback for the specified queue. This callback will be called by the dispatcher, and may be called in the context of a interrupt If callback has a value of NULL the previously registered callback, if one exists will be unregistered. Parameters:
  IxQMgrQId(in) | qId - the queue idenfifier
  IxQMgrCallback(in) | callback - the callback registered for this queue
  IxQMgrCallbackId(in) | callbackid - the callback identifier
Returns: IX_SUCCESS, the callback for the specified queue has been set IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured
ixQMgrNotificationDisable | ( | IxQMgrQId | qId | ) |
  | Disable notifications on a queue. This function is called to disable notifications on a specified queue. This function is re-entrant. and can be used from an interrupt context Parameters:
  IxQMgrQId(in) | qId - the queue identifier
Returns: IX_SUCCESS, the interrupt has been disabled IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured
ixQMgrNotificationEnable | ( | IxQMgrQId | qId,
|  | IxQMgrSourceId | sourceId
| ) |
  | Enable notification on a queue for a specified queue source flag. This function is called by a client of the QMgr to enable notifications on a specified condition. If the condition for the notification is set after the client has called this function but before the function has enabled the interrupt source, then the notification will not occur. For queues 32-63 the notification source is fixed to the NE(Nearly Empty) flag and cannot be changed so the sourceId parameter is ignored for these queues. The status register is read before the notofication is enabled and is read again after the notification has been enabled, if they differ then the warning status is returned. This function is re-entrant. and can be used from an interrupt context Parameters:
  IxQMgrQId(in) | qId - the queue identifier
  IxQMgrSourceId(in) | sourceId - the interrupt src condition identifier
Returns: IX_SUCCESS, the interrupt has been enabled for the specified source IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured IX_QMGR_INVALID_INT_SOURCE_ID, interrupt source invalid for this queue IX_QMGR_WARNING, the status register may not be constistent
IX_QMGR_INLINE PUBLIC IX_STATUS ixQMgrQBurstRead | ( | IxQMgrQId | qId,
|  | UINT32 | numEntries,
|  | UINT32 * | entries
| ) |
  | Read a number of entries from an AQM queue. This function will burst read a number of entries from the specified queue. The entry size of queue is auto-detected. The function will attempt to read as many entries as specified by the numEntries parameter and will return an UNDERFLOW if any one of the individual entry reads fail. Warning: IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 do not have an underflow status maintained, hence there is a potential for silent failure here. This function must be used with caution. Note: This function is intended for fast draining of queues, so to make it as efficient as possible, it has the following features: This function is inlined, to reduce unnecessary function call overhead. It does not perform any parameter checks, or update any statistics. It does not check that the queue specified by qId has been configured. It does not check that the queue has the number of full entries that have been specified to be read. It will read until it finds a NULL entry or until the number of specified entries have been read. It always checks for underflow after all the reads have been performed. Therefore, the client should ensure before calling this function that there are enough entries in the queue to read. ixQMgrQNumEntriesGet() will provide the number of full entries in a queue. ixQMgrQRead() or ixQMgrQReadWithChecks(), which only reads a single queue entry per call, should be used instead if the user requires checks for UNDERFLOW after each entry read. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  unsigned(in) | numEntries - the number of entries to read. This number should be greater than 0
  UINT32(out) | *entries - the word(s) read.
Returns: IX_SUCCESS, entries were successfully read. IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue Definition at line 1219 of file IxQMgr.h. References IX_QMGR_MIN_QUEUPP_QID, IX_QMGR_Q_ENTRY_SIZE1, IX_QMGR_Q_UNDERFLOW, IX_SUCCESS, IxQMgrQEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qAccRegAddr, IxQMgrQInlinedReadWriteInfo::qEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qReadCount, IxQMgrQInlinedReadWriteInfo::qUflowStatBitMask, and IxQMgrQInlinedReadWriteInfo::qUOStatRegAddr.
IX_QMGR_INLINE PUBLIC IX_STATUS ixQMgrQBurstWrite | ( | IxQMgrQId | qId,
|  | unsigned | numEntries,
|  | UINT32 * | entries
| ) |
  | Write a number of entries to an AQM queue. This function will burst write a number of entries to the specified queue. The entry size of queue is auto-detected. The function will attempt to write as many entries as specified by the numEntries parameter and will return an OVERFLOW if any one of the individual entry writes fail. Warning: IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 do not have an overflow status maintained, hence there is a potential for silent failure here. This function must be used with caution. Note: This function is intended for fast population of queues, so to make it as efficient as possible, it has the following features: This function is inlined, to reduce unnecessary function call overhead. It does not perform any parameter checks, or update any statistics. It does not check that the queue specified by qId has been configured. It does not check that the queue has enough free space to hold the entries before writing, and only checks for overflow after all writes have been performed. Therefore, the client should ensure before calling this function that there is enough free space in the queue to hold the number of entries to be written. ixQMgrQWrite() or ixQMgrQWriteWithChecks(), which only writes a single queue entry per call, should be used instead if the user requires checks for OVERFLOW after each entry written. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  unsigned(in) | numEntries - the number of entries to write.
  UINT32(in) | *entries - the word(s) to write.
Returns: IX_SUCCESS, value was successfully written. IX_QMGR_Q_OVERFLOW, attempt to write to a full queue Definition at line 1561 of file IxQMgr.h. References IX_QMGR_MIN_QUEUPP_QID, IX_QMGR_Q_ENTRY_SIZE1, IX_QMGR_Q_OVERFLOW, IX_SUCCESS, IxQMgrQEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qAccRegAddr, IxQMgrQInlinedReadWriteInfo::qEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qOflowStatBitMask, IxQMgrQInlinedReadWriteInfo::qSizeInEntries, IxQMgrQInlinedReadWriteInfo::qUOStatRegAddr, and IxQMgrQInlinedReadWriteInfo::qWriteCount.
ixQMgrQConfig | ( | char * | qName,
|  | IxQMgrQId | qId,
|  | IxQMgrQSizeInWords | qSizeInWords,
|  | IxQMgrQEntrySizeInWords | qEntrySizeInWords
| ) |
  | Configure an AQM queue. This function is called by a client to setup a queue. The size and entrySize qId and qName(NULL pointer) are checked for valid values. This function must be called for each queue, before any queue accesses are made and after ixQMgrInit() has been called. qName is assumed to be a '' terminated array of 16 charachters or less. Parameters:
  char(in) | *qName - is the name provided by the client and is associated with a QId by the QMgr.
  IxQMgrQId(in) | qId - the qId of this queue
  IxQMgrQSize(in) | qSizeInWords - the size of the queue can be one of 16,32 64, 128 words.
  IxQMgrQEntrySizeInWords(in) | qEntrySizeInWords - the size of a queue entry can be one of 1,2,4 words.
Returns: IX_SUCCESS, a specified queue has been successfully configured. IX_FAIL, IxQMgr has not been initialised. IX_QMGR_PARAMETER_ERROR, invalid parameter(s). IX_QMGR_INVALID_QSIZE, invalid queue size IX_QMGR_INVALID_Q_ID, invalid queue id IX_QMGR_INVALID_Q_ENTRY_SIZE, invalid queue entry size IX_QMGR_Q_ALREADY_CONFIGURED, queue already configured
ixQMgrQNumEntriesGet | ( | IxQMgrQId | qId,
|  | unsigned * | numEntries
| ) |
  | Get a snapshot of the number of entries in a queue. This function gets the number of entries in a queue. Parameters:
  IxQMgrQId(in) | qId - the queue idenfifier
  unsigned(out) | *numEntries - the number of entries in a queue
Returns: IX_SUCCESS, got the number of entries for the queue IX_QMGR_PARAMETER_ERROR, invalid paramter(s). IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured IX_QMGR_WARNING, could not determine num entries at this time
ixQMgrQPeek | ( | IxQMgrQId | qId,
|  | unsigned int | entryIndex,
|  | UINT32 * | entry
| ) |
  | Read an entry from a queue without moving the read pointer. This function inspects an entry in a queue. The entry is inspected directly in AQM SRAM and is not read from queue access registers. The entry is NOT removed from the queue and the read/write pointers are unchanged. N.B: The queue should not be accessed when this function is called. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  unsigned | int(in) entryIndex - index of entry in queue in the range [0].......[current number of entries in queue].
  UINT32(out) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully inspected. IX_QMGR_PARAMETER_ERROR, invalid paramter(s). IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId. IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS, an entry does not exist at specified index. IX_FAIL, failed to inpected the queue entry.
ixQMgrQPoke | ( | IxQMgrQId | qId,
|  | unsigned int | entryIndex,
|  | UINT32 * | entry
| ) |
  | Write an entry to a queue without moving the write pointer. This function modifies an entry in a queue. The entry is modified directly in AQM SRAM and not using the queue access registers. The entry is NOT added to the queue and the read/write pointers are unchanged. N.B: The queue should not be accessed when this function is called. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  unsigned | int(in) entryIndex - index of entry in queue in the range [0].......[current number of entries in queue].
  UINT32(in) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully modified. IX_QMGR_PARAMETER_ERROR, invalid paramter(s). IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId. IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS, an entry does not exist at specified index. IX_FAIL, failed to modify the queue entry.
IX_QMGR_INLINE PUBLIC IX_STATUS ixQMgrQRead | ( | IxQMgrQId | qId,
|  | UINT32 * | entryPtr
| ) |
  | Fast read of an entry from a queue. This function is a heavily streamlined version of ixQMgrQReadWithChecks(), but performs essentially the same task. It reads an entire entry from a queue, returning it in entry which must be a pointer to a previously allocated array of sufficient size to hold an entry. Note: - This function is inlined, to reduce unnecessary function call overhead. It does not perform any parameter checks, or update any statistics. Also, it does not check that the queue specified by qId has been configured. or is in range. It simply reads an entry from the queue, and checks for underflow. - IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 do not have an underflow status maintained. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  UINT32(out) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully read. IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue Definition at line 1068 of file IxQMgr.h. References IX_QMGR_MIN_QUEUPP_QID, IX_QMGR_Q_ENTRY_SIZE1, IX_QMGR_Q_UNDERFLOW, IX_SUCCESS, ixQMgrQReadMWordsMinus1(), IxQMgrQInlinedReadWriteInfo::qAccRegAddr, IxQMgrQInlinedReadWriteInfo::qConfigRegAddr, IxQMgrQInlinedReadWriteInfo::qEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qReadCount, IxQMgrQInlinedReadWriteInfo::qSizeInEntries, IxQMgrQInlinedReadWriteInfo::qUflowStatBitMask, and IxQMgrQInlinedReadWriteInfo::qUOStatRegAddr.
IX_STATUS ixQMgrQReadMWordsMinus1 | ( | IxQMgrQId | qId,
|  | UINT32 * | entry
| ) |
  | This function reads the remaining of the q entry for queues configured with many words. (the first word of the entry is already read in the inlined function and the entry pointer already incremented. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  UINT32(out) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully read. IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue Referenced by ixQMgrQRead().
ixQMgrQReadWithChecks | ( | IxQMgrQId | qId,
|  | UINT32 * | entry
| ) |
  | Read an entry from a queue. This function reads an entire entry from a queue returning it in entry. The queue configuration word is read to determine what entry size this queue is configured for and then the number of words specified by the entry size is read. entry must be a pointer to a previously allocated array of sufficient size to hold an entry. Note: - IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 do not have an underflow status maintained. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  UINT32(out) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully read. IX_QMGR_PARAMETER_ERROR, invalid paramter(s). IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue
ixQMgrQShow | ( | IxQMgrQId | qId | ) |
  | Display aqueue configuration and statistics for a queue. This function shows queue configuration and statistics for a queue. Parameters:
  IxQMgrQId | (in)qId - the queue identifier.
Returns: IX_SUCCESS, success IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId
ixQMgrQSizeInEntriesGet | ( | IxQMgrQId | qId,
|  | unsigned * | qSizeInEntries
| ) |
  | Return the size of a queue in entries. This function returns the the size of the queue in entriese. Parameters:
  IxQMgrQId(in) | qId - the queue identifier
  IxQMgrQSize(out) | *qSizeInEntries - queue size in entries
Returns: IX_SUCCESS, successfully retrieved the number of full entrie IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId IX_QMGR_PARAMETER_ERROR, invalid parameter(s).
IX_QMGR_INLINE PUBLIC IX_STATUS ixQMgrQStatusGet | ( | IxQMgrQId | qId,
|  | IxQMgrQStatus * | qStatus
| ) |
  | Fast get of a queue's status. This function is a streamlined version of ixQMgrQStatusGetWithChecks(), but performs essentially the same task. It reads the specified queue's status. A queues status is defined by its status flags. For queues 0-31 these flags are E,NE,NF,F. For queues 32-63 these flags are NE and F. Note: - This function is inlined, to reduce unnecessary function call overhead. It does not perform any parameter checks, or update any statistics. Also, it does not check that the queue specified by qId has been configured. It simply reads the specified queue's status. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  IxQMgrQStatus(out) | *qStatus - the status of the specified queue.
Returns: void. Definition at line 1756 of file IxQMgr.h. References IX_QMGR_MIN_QUEUPP_QID, and IX_SUCCESS.
ixQMgrQStatusGetWithChecks | ( | IxQMgrQId | qId,
|  | IxQMgrQStatus * | qStatus
| ) |
  | Get a queues status. This function reads the specified queues status. A queues status is defined by its status flags. For queues 0-31 these flags are E,NE,NF,F. For queues 32-63 these flags are NE and F. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  IxQMgrQStatus(out) | *qStatus - the status of the specified queue.
Returns: IX_SUCCESS, queue status was successfully read. IX_QMGR_Q_NOT_CONFIGURED, the specified qId has not been configured IX_QMGR_PARAMETER_ERROR, invalid paramter.
IX_QMGR_INLINE PUBLIC IX_STATUS ixQMgrQWrite | ( | IxQMgrQId | qId,
|  | UINT32 * | entry
| ) |
  | Fast write of an entry to a queue. This function is a heavily streamlined version of ixQMgrQWriteWithChecks(), but performs essentially the same task. It will write the entry size number of words pointed to by entry to the queue specified by qId. Note: - This function is inlined, to reduce unnecessary function call overhead. It does not perform any parameter checks, or update any statistics. Also, it does not check that the queue specified by qId has been configured. It simply writes an entry to the queue, and checks for overflow. - IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 do not have an overflow status maintained. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  UINT32(in) | *entry - pointer to the entry word(s).
Returns: IX_SUCCESS, entry was successfully read. IX_QMGR_Q_OVERFLOW, attempt to write to a full queue Definition at line 1414 of file IxQMgr.h. References IX_QMGR_MIN_QUEUPP_QID, IX_QMGR_Q_ENTRY_SIZE1, IX_QMGR_Q_OVERFLOW, IX_SUCCESS, IxQMgrQInlinedReadWriteInfo::qAccRegAddr, IxQMgrQInlinedReadWriteInfo::qConfigRegAddr, IxQMgrQInlinedReadWriteInfo::qEntrySizeInWords, IxQMgrQInlinedReadWriteInfo::qOflowStatBitMask, IxQMgrQInlinedReadWriteInfo::qSizeInEntries, IxQMgrQInlinedReadWriteInfo::qUOStatRegAddr, and IxQMgrQInlinedReadWriteInfo::qWriteCount.
ixQMgrQWriteWithChecks | ( | IxQMgrQId | qId,
|  | UINT32 * | entry
| ) |
  | Write an entry to an AQM queue. This function will write the entry size number of words pointed to by entry to the queue specified by qId. The queue configuration word is read to determine the entry size of queue and the corresponding number of words is then written to the queue. Note: - IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 do not have an overflow status maintained. Parameters:
  IxQMgrQId(in) | qId - the queue identifier.
  UINT32(in) | *entry - the word(s) to write.
Returns: IX_SUCCESS, value was successfully written. IX_QMGR_PARAMETER_ERROR, invalid paramter(s). IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId IX_QMGR_Q_OVERFLOW, attempt to write to a full queue
ixQMgrShow | ( | void |  | ) |
| Describe queue configuration and statistics for active queues. This function shows active queues, their configurations and statistics. Returns: void
ixQMgrStickyInterruptRegEnable | ( | void |  | ) |
| Enable AQM's sticky interrupt register behaviour only available on B0 Silicon. When AQM's sticky interrupt register is enabled, interrupt register bit will only be cleared when a '1' is written to interrupt register bit and the interrupting condition is satisfied, i.e.queue condition does not exist. Note: This function must be called before any queue is enabled. Calling this function after queue is enabled will cause undefined results. Returns: none
ixQMgrUnload | ( | void |  | ) |
| Uninitialise the QMgr. This function will perform the tasks required to unload the QMgr component cleanly. This includes unmapping kernel memory. This should be called before a soft reboot or unloading of a kernel module. Precondition: It should only be called if ixQMgrInit has already been called. Postcondition: No QMgr functions should be called until ixQMgrInit is called again. Returns: IX_SUCCESS, the IxQMgr successfully uninitialised IX_FAIL, failed to uninitialize the Qmgr
ixQMgrWatermarkSet | ( | IxQMgrQId | qId,
|  | IxQMgrWMLevel | ne,
|  | IxQMgrWMLevel | nf
| ) |
  | Set the Nearly Empty and Nearly Full Watermarks fo a queue. This function is called by a client to set the watermarks NE and NF for the queue specified by qId. The queue must be empty at the time this function is called, it is the clients responsibility to ensure that the queue is empty. This function will read the status of the queue before the watermarks are set and again after the watermarks are set. If the status register has changed, due to a queue access by an NPE for example, a warning is returned. Queues 32-63 only support the NE flag, therefore the value of nf will be ignored for these queues. Parameters:
  IxQMgrQId(in) | qId - the QId of the queue.
  IxQMgrWMLevel(in) | ne - the NE(Nearly Empty) watermark for this queue. Valid values are 0,1,2,4,8,16,32 and 64 entries.
  IxQMgrWMLevel(in) | nf - the NF(Nearly Full) watermark for this queue. Valid values are 0,1,2,4,8,16,32 and 64 entries.
Returns: IX_SUCCESS, watermarks have been set for the queu IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId IX_QMGR_INVALID_Q_WM, invalid watermark IX_QMGR_WARNING, the status register may not be constistent
Automatically generated from sources. © Intel Corp. 2003