?? ixqmgr.h
字號:
/** * @file IxQMgr.h * * @date 30-Oct-2001 * * @brief This file contains the public API of IxQMgr component. * * Some functions contained in this module are inline to achieve better * data-path performance. For this to work, the function definitions are * contained in this header file. The "normal" use of inline functions * is to use the inline functions in the module in which they are * defined. In this case these inline functions are used in external * modules and therefore the use of "inline extern". What this means * is as follows: if a function foo is declared as "inline extern" this * definition is only used for inlining, in no case is the function * compiled on its own. If the compiler cannot inline the function it * becomes an external reference. Therefore in IxQMgrQAccess.c all * inline functions are defined without the "inline extern" specifier * and so define the external references. In all other source files * including this header file, these funtions are defined as "inline * extern". * * * @par * IXP400 SW Release version 2.0 * * -- Copyright Notice -- * * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. * * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @par * -- End of Copyright Notice --*//* ------------------------------------------------------ Doxygen group definitions ------------------------------------------------------ *//** * @defgroup IxQMgrAPI IXP400 Queue Manager (IxQMgr) API * * @brief The public API for the IXP400 QMgr component. * * IxQMgr is a low level interface to the AHB Queue Manager * * @{ */#ifndef IXQMGR_H#define IXQMGR_H/* * User defined include files */#include "IxOsal.h"/* * Define QMgr's IoMem macros, in DC mode if in LE * regular if in BE. (Note: For Linux LSP gold release * may need to adjust mode. */#if defined (__BIG_ENDIAN)#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_BE#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_BE#else#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_DC#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_DC#endif/* * #defines and macros *//**** @ingroup IxQMgrAPI** @def IX_QMGR_INLINE** @brief 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.**/#ifndef __wince#ifdef IXQMGRQACCESS_C/* If IXQMGRQACCESS_C is set then the IxQmgrQAccess.c is including this file and must instantiate a concrete definition for each inlineable API function whether or not that function actually gets inlined. */# ifdef NO_INLINE_APIS# undef NO_INLINE_APIS# endif# define IX_QMGR_INLINE /* Empty Define */#else# ifndef NO_INLINE_APIS# define IX_QMGR_INLINE IX_OSAL_INLINE_EXTERN# else# define IX_QMGR_INLINE /* Empty Define */# endif#endif#else /* ndef __wince */# ifndef NO_INLINE_APIS# define NO_INLINE_APIS# endif# define IX_QMGR_INLINE#endif/**** @ingroup IxQMgrAPI** @def IX_QMGR_MAX_NUM_QUEUES** @brief Number of queues supported by the AQM.** This constant is used to indicate the number of AQM queues**/#define IX_QMGR_MAX_NUM_QUEUES 64/**** @ingroup IxQMgrAPI** @def IX_QMGR_MIN_QID** @brief Minimum queue identifier.** This constant is used to indicate the smallest queue identifier**/#define IX_QMGR_MIN_QID IX_QMGR_QUEUE_0/**** @ingroup IxQMgrAPI** @def IX_QMGR_MAX_QID** @brief Maximum queue identifier.** This constant is used to indicate the largest queue identifier**/#define IX_QMGR_MAX_QID IX_QMGR_QUEUE_63/**** @ingroup IxQMgrAPI** @def IX_QMGR_MIN_QUEUPP_QID** @brief Minimum queue identifier for reduced functionality queues.** This constant is used to indicate Minimum queue identifier for reduced* functionality queues**/#define IX_QMGR_MIN_QUEUPP_QID 32/**** @ingroup IxQMgrAPI** @def IX_QMGR_MAX_QNAME_LEN** @brief Maximum queue name length.** This constant is used to indicate the maximum null terminated string length* (excluding '\0') for a queue name**/#define IX_QMGR_MAX_QNAME_LEN 16/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_WARNING * * @brief Warning return code. * * Execution complete, but there is a special case to handle * */#define IX_QMGR_WARNING 2/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_PARAMETER_ERROR * * @brief Parameter error return code (NULL pointer etc..). * * parameter error out of range/invalid * */#define IX_QMGR_PARAMETER_ERROR 3/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_Q_ENTRY_SIZE * * @brief Invalid entry size return code. * * Invalid queue entry size for a queue read/write * */#define IX_QMGR_INVALID_Q_ENTRY_SIZE 4/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_Q_ID * * @brief Invalid queue identifier return code. * * Invalid queue id, not in range 0-63 * */#define IX_QMGR_INVALID_Q_ID 5/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_CB_ID * * @brief Invalid callback identifier return code. * * Invalid callback id */#define IX_QMGR_INVALID_CB_ID 6/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_CB_ALREADY_SET * * @brief Callback set error return code. * * The specified callback has already been for this queue * */#define IX_QMGR_CB_ALREADY_SET 7/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_NO_AVAILABLE_SRAM * * @brief Sram consumed return code. * * All AQM Sram is consumed by queue configuration * */#define IX_QMGR_NO_AVAILABLE_SRAM 8/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_INT_SOURCE_ID * * @brief Invalid queue interrupt source identifier return code. * * Invalid queue interrupt source given for notification enable */#define IX_QMGR_INVALID_INT_SOURCE_ID 9/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_QSIZE * * @brief Invalid queue size error code. * * Invalid queue size not one of 16,32, 64, 128 * * */#define IX_QMGR_INVALID_QSIZE 10/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_INVALID_Q_WM * * @brief Invalid queue watermark return code. * * Invalid queue watermark given for watermark set */#define IX_QMGR_INVALID_Q_WM 11/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_Q_NOT_CONFIGURED * * @brief Queue not configured return code. * * Returned to the client when a function has been called on an unconfigured * queue * */#define IX_QMGR_Q_NOT_CONFIGURED 12/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_Q_ALREADY_CONFIGURED * * @brief Queue already configured return code. * * Returned to client to indicate that a queue has already been configured */#define IX_QMGR_Q_ALREADY_CONFIGURED 13/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_Q_UNDERFLOW * * @brief Underflow return code. * * Underflow on a queue read has occurred * */#define IX_QMGR_Q_UNDERFLOW 14/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_Q_OVERFLOW * * @brief Overflow return code. * * Overflow on a queue write has occurred * */#define IX_QMGR_Q_OVERFLOW 15/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_Q_INVALID_PRIORITY * * @brief Invalid priority return code. * * Invalid priority, not one of 0,1,2 */#define IX_QMGR_Q_INVALID_PRIORITY 16/** * * @ingroup IxQMgrAPI * * @def IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS * * @brief Entry index out of bounds return code. * * Entry index is greater than number of entries in queue. */#define IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS 17/** * * @ingroup IxQMgrAPI * * @def ixQMgrDispatcherLoopRun * * @brief Map old function name ixQMgrDispatcherLoopRun () * to @ref ixQMgrDispatcherLoopRunA0 (). *
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -