IxEthAccQueueAssign_p.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /**
  2. * @file IxEthAccQueueAssign_p.h
  3. *
  4. * @author Intel Corporation
  5. * @date 06-Mar-2002
  6. *
  7. * @brief Mapping from QMgr Q's to internal assignment
  8. *
  9. * Design Notes:
  10. *
  11. *
  12. * @par
  13. * IXP400 SW Release version 2.0
  14. *
  15. * -- Copyright Notice --
  16. *
  17. * @par
  18. * Copyright 2001-2005, Intel Corporation.
  19. * All rights reserved.
  20. *
  21. * @par
  22. * SPDX-License-Identifier: BSD-3-Clause
  23. * @par
  24. * -- End of Copyright Notice --
  25. */
  26. /**
  27. * @addtogroup IxEthAccPri
  28. *@{
  29. */
  30. /*
  31. * Os/System dependancies.
  32. */
  33. #include "IxOsal.h"
  34. /*
  35. * Intermodule dependancies
  36. */
  37. #include "IxQMgr.h"
  38. #include "IxQueueAssignments.h"
  39. /* Check range of Q's assigned to this component. */
  40. #if IX_ETH_ACC_RX_FRAME_ETH_Q >= (IX_QMGR_MIN_QUEUPP_QID ) | \
  41. IX_ETH_ACC_RX_FREE_BUFF_ENET0_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
  42. IX_ETH_ACC_RX_FREE_BUFF_ENET1_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
  43. IX_ETH_ACC_TX_FRAME_ENET0_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
  44. IX_ETH_ACC_TX_FRAME_ENET1_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
  45. IX_ETH_ACC_TX_FRAME_DONE_ETH_Q >= (IX_QMGR_MIN_QUEUPP_QID)
  46. #error "Not all Ethernet Access Queues are betweem 1-31, requires full functionalty Q's unless otherwise validated "
  47. #endif
  48. /**
  49. *
  50. * @typedef IxEthAccQregInfo
  51. *
  52. * @brief
  53. *
  54. */
  55. typedef struct
  56. {
  57. IxQMgrQId qId;
  58. char *qName;
  59. IxQMgrCallback qCallback;
  60. IxQMgrCallbackId callbackTag;
  61. IxQMgrQSizeInWords qSize;
  62. IxQMgrQEntrySizeInWords qWords;
  63. BOOL qNotificationEnableAtStartup;
  64. IxQMgrSourceId qConditionSource;
  65. IxQMgrWMLevel AlmostEmptyThreshold;
  66. IxQMgrWMLevel AlmostFullThreshold;
  67. } IxEthAccQregInfo;
  68. /*
  69. * Prototypes for all QM callbacks.
  70. */
  71. /*
  72. * Rx Callbacks
  73. */
  74. IX_ETH_ACC_PUBLIC
  75. void ixEthRxFrameQMCallback(IxQMgrQId, IxQMgrCallbackId);
  76. IX_ETH_ACC_PUBLIC
  77. void ixEthRxMultiBufferQMCallback(IxQMgrQId, IxQMgrCallbackId);
  78. IX_ETH_ACC_PUBLIC
  79. void ixEthRxFreeQMCallback(IxQMgrQId, IxQMgrCallbackId);
  80. /*
  81. * Tx Callback.
  82. */
  83. IX_ETH_ACC_PUBLIC
  84. void ixEthTxFrameQMCallback(IxQMgrQId, IxQMgrCallbackId);
  85. IX_ETH_ACC_PUBLIC
  86. void ixEthTxFrameDoneQMCallback(IxQMgrQId, IxQMgrCallbackId );
  87. #define IX_ETH_ACC_QM_QUEUE_DISPATCH_PRIORITY (IX_QMGR_Q_PRIORITY_0) /* Highest priority */
  88. /*
  89. * Queue watermarks
  90. */
  91. #define IX_ETH_ACC_RX_FRAME_ETH_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_NOT_E )
  92. #define IX_ETH_ACC_RX_FREE_BUFF_ENET0_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  93. #define IX_ETH_ACC_RX_FREE_BUFF_ENET1_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  94. #define IX_ETH_ACC_RX_FREE_BUFF_ENET2_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  95. #define IX_ETH_ACC_TX_FRAME_ENET0_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  96. #define IX_ETH_ACC_TX_FRAME_ENET1_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  97. #define IX_ETH_ACC_TX_FRAME_ENET2_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
  98. #define IX_ETH_ACC_TX_FRAME_DONE_ETH_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_NOT_E )