⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixqmgr.h

📁 AMCC POWERPC 44X系列的U-BOOT文件
💻 H
📖 第 1 页 / 共 5 页
字号:
 */#define ixQMgrDispatcherLoopRun ixQMgrDispatcherLoopRunA0/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_QUEUE * * @brief  Definition of AQM queue numbers * */#define IX_QMGR_QUEUE_0 (0)      /**< Queue Number 0 */#define IX_QMGR_QUEUE_1 (1)      /**< Queue Number 1 */#define IX_QMGR_QUEUE_2 (2)      /**< Queue Number 2 */#define IX_QMGR_QUEUE_3 (3)      /**< Queue Number 3 */#define IX_QMGR_QUEUE_4 (4)      /**< Queue Number 4 */#define IX_QMGR_QUEUE_5 (5)      /**< Queue Number 5 */#define IX_QMGR_QUEUE_6 (6)      /**< Queue Number 6 */#define IX_QMGR_QUEUE_7 (7)      /**< Queue Number 7 */#define IX_QMGR_QUEUE_8 (8)      /**< Queue Number 8 */#define IX_QMGR_QUEUE_9 (9)      /**< Queue Number 9 */#define IX_QMGR_QUEUE_10 (10)    /**< Queue Number 10 */#define IX_QMGR_QUEUE_11 (11)    /**< Queue Number 11 */#define IX_QMGR_QUEUE_12 (12)    /**< Queue Number 12 */#define IX_QMGR_QUEUE_13 (13)    /**< Queue Number 13 */#define IX_QMGR_QUEUE_14 (14)    /**< Queue Number 14 */#define IX_QMGR_QUEUE_15 (15)    /**< Queue Number 15 */#define IX_QMGR_QUEUE_16 (16)    /**< Queue Number 16 */#define IX_QMGR_QUEUE_17 (17)    /**< Queue Number 17 */#define IX_QMGR_QUEUE_18 (18)    /**< Queue Number 18 */#define IX_QMGR_QUEUE_19 (19)    /**< Queue Number 19 */#define IX_QMGR_QUEUE_20 (20)    /**< Queue Number 20 */#define IX_QMGR_QUEUE_21 (21)    /**< Queue Number 21 */#define IX_QMGR_QUEUE_22 (22)    /**< Queue Number 22 */#define IX_QMGR_QUEUE_23 (23)    /**< Queue Number 23 */#define IX_QMGR_QUEUE_24 (24)    /**< Queue Number 24 */#define IX_QMGR_QUEUE_25 (25)    /**< Queue Number 25 */#define IX_QMGR_QUEUE_26 (26)    /**< Queue Number 26 */#define IX_QMGR_QUEUE_27 (27)    /**< Queue Number 27 */#define IX_QMGR_QUEUE_28 (28)    /**< Queue Number 28 */#define IX_QMGR_QUEUE_29 (29)    /**< Queue Number 29 */#define IX_QMGR_QUEUE_30 (30)    /**< Queue Number 30 */#define IX_QMGR_QUEUE_31 (31)    /**< Queue Number 31 */#define IX_QMGR_QUEUE_32 (32)    /**< Queue Number 32 */#define IX_QMGR_QUEUE_33 (33)    /**< Queue Number 33 */#define IX_QMGR_QUEUE_34 (34)    /**< Queue Number 34 */#define IX_QMGR_QUEUE_35 (35)    /**< Queue Number 35 */#define IX_QMGR_QUEUE_36 (36)    /**< Queue Number 36 */#define IX_QMGR_QUEUE_37 (37)    /**< Queue Number 37 */#define IX_QMGR_QUEUE_38 (38)    /**< Queue Number 38 */#define IX_QMGR_QUEUE_39 (39)    /**< Queue Number 39 */#define IX_QMGR_QUEUE_40 (40)    /**< Queue Number 40 */#define IX_QMGR_QUEUE_41 (41)    /**< Queue Number 41 */#define IX_QMGR_QUEUE_42 (42)    /**< Queue Number 42 */#define IX_QMGR_QUEUE_43 (43)    /**< Queue Number 43 */#define IX_QMGR_QUEUE_44 (44)    /**< Queue Number 44 */#define IX_QMGR_QUEUE_45 (45)    /**< Queue Number 45 */#define IX_QMGR_QUEUE_46 (46)    /**< Queue Number 46 */#define IX_QMGR_QUEUE_47 (47)    /**< Queue Number 47 */#define IX_QMGR_QUEUE_48 (48)    /**< Queue Number 48 */#define IX_QMGR_QUEUE_49 (49)    /**< Queue Number 49 */#define IX_QMGR_QUEUE_50 (50)    /**< Queue Number 50 */#define IX_QMGR_QUEUE_51 (51)    /**< Queue Number 51 */#define IX_QMGR_QUEUE_52 (52)    /**< Queue Number 52 */#define IX_QMGR_QUEUE_53 (53)    /**< Queue Number 53 */#define IX_QMGR_QUEUE_54 (54)    /**< Queue Number 54 */#define IX_QMGR_QUEUE_55 (55)    /**< Queue Number 55 */#define IX_QMGR_QUEUE_56 (56)    /**< Queue Number 56 */#define IX_QMGR_QUEUE_57 (57)    /**< Queue Number 57 */#define IX_QMGR_QUEUE_58 (58)    /**< Queue Number 58 */#define IX_QMGR_QUEUE_59 (59)    /**< Queue Number 59 */#define IX_QMGR_QUEUE_60 (60)    /**< Queue Number 60 */#define IX_QMGR_QUEUE_61 (61)    /**< Queue Number 61 */#define IX_QMGR_QUEUE_62 (62)    /**< Queue Number 62 */#define IX_QMGR_QUEUE_63 (63)    /**< Queue Number 63 */#define IX_QMGR_QUEUE_INVALID (64)     /**< AQM Queue Number Delimiter *//* * Typedefs *//** * @typedef IxQMgrQId * * @ingroup IxQMgrAPI * * @brief Used in the API to identify the AQM queues. * */typedef int IxQMgrQId;/** * @typedef IxQMgrQStatus * * @ingroup IxQMgrAPI * * @brief 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<br>  *        UF - bit-4<br>  *         F - bit-3<br>  *        NF - bit-2<br>  *        NE - bit-1<br> *         E - bit-0<br>  * */typedef UINT32 IxQMgrQStatus;/** * @enum IxQMgrQStatusMask * * @ingroup IxQMgrAPI * * @brief Queue status mask. * * Masks for extracting the individual status flags from the IxQMgrStatus * word. * */typedef enum{    IX_QMGR_Q_STATUS_E_BIT_MASK  = 0x1,    IX_QMGR_Q_STATUS_NE_BIT_MASK = 0x2,    IX_QMGR_Q_STATUS_NF_BIT_MASK = 0x4,    IX_QMGR_Q_STATUS_F_BIT_MASK  = 0x8,    IX_QMGR_Q_STATUS_UF_BIT_MASK = 0x10,    IX_QMGR_Q_STATUS_OF_BIT_MASK = 0x20} IxQMgrQStatusMask;/** * @enum IxQMgrSourceId * * @ingroup IxQMgrAPI * * @brief 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. * */typedef enum{    IX_QMGR_Q_SOURCE_ID_E = 0,  /**< 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          */} IxQMgrSourceId;/** * @enum IxQMgrQEntrySizeInWords * * @ingroup IxQMgrAPI * * @brief QMgr queue entry sizes. * * The entry size of a queue specifies the size of a queues entry in words. * */typedef enum{    IX_QMGR_Q_ENTRY_SIZE1 = 1,   /**< 1 word entry       */    IX_QMGR_Q_ENTRY_SIZE2 = 2,   /**< 2 word entry       */    IX_QMGR_Q_ENTRY_SIZE4 = 4    /**< 4 word entry       */} IxQMgrQEntrySizeInWords;/** * @enum IxQMgrQSizeInWords * * @ingroup IxQMgrAPI * * @brief QMgr queue sizes. * * These values define the allowed queue sizes for AQM queue. The sizes are * specified in words. * */typedef enum{    IX_QMGR_Q_SIZE16 = 16,   /**< 16 word buffer     */    IX_QMGR_Q_SIZE32 = 32,   /**< 32 word buffer     */    IX_QMGR_Q_SIZE64 = 64,   /**< 64 word buffer     */    IX_QMGR_Q_SIZE128 = 128, /**< 128 word buffer    */    IX_QMGR_Q_SIZE_INVALID = 129  /**< Insure that this is greater than largest				    * queue size supported by the hardware				    */} IxQMgrQSizeInWords;/** * @enum IxQMgrWMLevel * * @ingroup IxQMgrAPI * * @brief 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. */typedef enum{    IX_QMGR_Q_WM_LEVEL0 = 0,    /**< 0 entry watermark  */    IX_QMGR_Q_WM_LEVEL1 = 1,    /**< 1 entry watermark  */    IX_QMGR_Q_WM_LEVEL2 = 2,    /**< 2 entry watermark  */    IX_QMGR_Q_WM_LEVEL4 = 4,    /**< 4 entry watermark  */    IX_QMGR_Q_WM_LEVEL8 = 8,    /**< 8 entry watermark  */    IX_QMGR_Q_WM_LEVEL16 = 16,  /**< 16 entry watermark */    IX_QMGR_Q_WM_LEVEL32 = 32,  /**< 32 entry watermark */    IX_QMGR_Q_WM_LEVEL64 = 64   /**< 64 entry watermark */} IxQMgrWMLevel;/** * @ingroup IxQMgrAPI *  * @enum IxQMgrDispatchGroup * * @brief 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 * @a ixQMgrDispatcherLoopRunA0, @a ixQMgrDispatcherLoopRunB0  * or @a ixQMgrDispatcherLoopRunB0LLP. * */typedef enum{    IX_QMGR_QUELOW_GROUP = 0, /**< Queues 0-31  */    IX_QMGR_QUEUPP_GROUP      /**< Queues 32-63 */} IxQMgrDispatchGroup;/** * @ingroup IxQMgrAPI *  * @enum IxQMgrPriority * * @brief Dispatcher priority levels. * * This enum defines the different queue dispatch priority levels. * The lowest priority number (0) is the highest priority level. * */typedef enum{  IX_QMGR_Q_PRIORITY_0 = 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 */} IxQMgrPriority;/** * @ingroup IxQMgrAPI * * @enum IxQMgrType * * @brief Callback types as used with livelock prevention * * This enum defines the different callback types.  * These types are only used when Livelock prevention is enabled. * The default is IX_QMGR_TYPE_REALTIME_OTHER.  * */typedef enum{  IX_QMGR_TYPE_REALTIME_OTHER = 0, /**< Real time callbacks-always allowed run*/  IX_QMGR_TYPE_REALTIME_PERIODIC,  /**< Periodic callbacks-always allowed run */  IX_QMGR_TYPE_REALTIME_SPORADIC   /**< Sporadic callbacks-only run if no                                        periodic callbacks are in progress    */} IxQMgrType;/** * @ingroup IxQMgrAPI *  * @typedef IxQMgrCallbackId * * @brief Uniquely identifies a callback function. * * A unique callback identifier associated with each callback * registered by clients. * */typedef unsigned IxQMgrCallbackId;/** * @typedef IxQMgrCallback * * @brief QMgr notification callback type. * * This defines the interface to all client callback functions. * * @param qId @ref IxQMgrQId [in] - the queue identifier * @param cbId @ref IxQMgrCallbackId [in] - the callback identifier */typedef void (*IxQMgrCallback)(IxQMgrQId qId,                               IxQMgrCallbackId cbId);/** * @ingroup IxQMgrAPI * * @typedef IxQMgrDispatcherFuncPtr * * @brief QMgr Dispatcher Loop function pointer. * * This defines the interface for QMgr Dispather functions. * * @param group @ref IxQMgrDispatchGroup [in] - the group of the  *                  queue of which the dispatcher will run    */typedef void (*IxQMgrDispatcherFuncPtr)(IxQMgrDispatchGroup group);/* * Function Prototypes *//* ------------------------------------------------------------   Initialisation related functions   ---------------------------------------------------------- *//** * * @ingroup IxQMgrAPI * * @fn ixQMgrInit (void) * * @brief Initialise the QMgr. * * This function must be called before and other QMgr function. It * sets up internal data structures. * * @return @li IX_SUCCESS, the IxQMgr successfully initialised * @return @li IX_FAIL, failed to initialize the Qmgr * */PUBLIC IX_STATUSixQMgrInit (void);/** * * @ingroup IxQMgrAPI * * @fn ixQMgrUnload (void) * * @brief 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. * * @pre It should only be called if @ref ixQMgrInit has already been called. * * @post No QMgr functions should be called until ixQMgrInit is called again. * * @return @li IX_SUCCESS, the IxQMgr successfully uninitialised * @return @li IX_FAIL, failed to uninitialize the Qmgr * */PUBLIC IX_STATUSixQMgrUnload (void);/** * * @ingroup IxQMgrAPI * * @fn ixQMgrShow (void) * * @brief Describe queue configuration and statistics for active queues. * * This function shows active queues, their configurations and statistics. * * @return @li void * */PUBLIC voidixQMgrShow (void);/** * * @ingroup IxQMgrAPI * * @fn ixQMgrQShow (IxQMgrQId qId) * * @brief Display aqueue configuration and statistics for a queue. * * This function shows queue configuration and statistics for a queue. * * @param qId @ref IxQMgrQId [in] - the queue identifier. * * @return @li IX_SUCCESS, success * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId * */PUBLIC IX_STATUSixQMgrQShow (IxQMgrQId qId);/* ------------------------------------------------------------   Configuration related functions   ---------------------------------------------------------- *//** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQConfig (char *qName,	       IxQMgrQId qId,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -