blob: 65661a0dd5d3e4c06ec9b8fbf074735a47820436 [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/**
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
Wolfgang Denkc57eadc2013-07-28 22:12:47 +020022 * SPDX-License-Identifier: BSD-3-Clause
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020023 * @par
24 * -- End of Copyright Notice --
25 */
26
27/**
28 * @addtogroup IxEthAccPri
29 *@{
30 */
31
32/*
33 * Os/System dependancies.
34 */
35#include "IxOsal.h"
36
37/*
38 * Intermodule dependancies
39 */
40#include "IxQMgr.h"
41#include "IxQueueAssignments.h"
42
43/* Check range of Q's assigned to this component. */
44#if IX_ETH_ACC_RX_FRAME_ETH_Q >= (IX_QMGR_MIN_QUEUPP_QID ) | \
45 IX_ETH_ACC_RX_FREE_BUFF_ENET0_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
46 IX_ETH_ACC_RX_FREE_BUFF_ENET1_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
47 IX_ETH_ACC_TX_FRAME_ENET0_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
48 IX_ETH_ACC_TX_FRAME_ENET1_Q >= (IX_QMGR_MIN_QUEUPP_QID) | \
49 IX_ETH_ACC_TX_FRAME_DONE_ETH_Q >= (IX_QMGR_MIN_QUEUPP_QID)
50#error "Not all Ethernet Access Queues are betweem 1-31, requires full functionalty Q's unless otherwise validated "
51#endif
52
53/**
54*
55* @typedef IxEthAccQregInfo
56*
57* @brief
58*
59*/
60typedef struct
61{
62 IxQMgrQId qId;
63 char *qName;
64 IxQMgrCallback qCallback;
65 IxQMgrCallbackId callbackTag;
66 IxQMgrQSizeInWords qSize;
67 IxQMgrQEntrySizeInWords qWords;
68 BOOL qNotificationEnableAtStartup;
69 IxQMgrSourceId qConditionSource;
70 IxQMgrWMLevel AlmostEmptyThreshold;
71 IxQMgrWMLevel AlmostFullThreshold;
72
73} IxEthAccQregInfo;
74
75/*
76 * Prototypes for all QM callbacks.
77 */
78
79/*
80 * Rx Callbacks
81 */
82IX_ETH_ACC_PUBLIC
83void ixEthRxFrameQMCallback(IxQMgrQId, IxQMgrCallbackId);
84
85IX_ETH_ACC_PUBLIC
86void ixEthRxMultiBufferQMCallback(IxQMgrQId, IxQMgrCallbackId);
87
88IX_ETH_ACC_PUBLIC
89void ixEthRxFreeQMCallback(IxQMgrQId, IxQMgrCallbackId);
90
91/*
92 * Tx Callback.
93 */
94IX_ETH_ACC_PUBLIC
95void ixEthTxFrameQMCallback(IxQMgrQId, IxQMgrCallbackId);
96
97IX_ETH_ACC_PUBLIC
98void ixEthTxFrameDoneQMCallback(IxQMgrQId, IxQMgrCallbackId );
99
100
101#define IX_ETH_ACC_QM_QUEUE_DISPATCH_PRIORITY (IX_QMGR_Q_PRIORITY_0) /* Highest priority */
102
103/*
104 * Queue watermarks
105 */
106#define IX_ETH_ACC_RX_FRAME_ETH_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_NOT_E )
107#define IX_ETH_ACC_RX_FREE_BUFF_ENET0_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
108#define IX_ETH_ACC_RX_FREE_BUFF_ENET1_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
109#define IX_ETH_ACC_RX_FREE_BUFF_ENET2_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
110#define IX_ETH_ACC_TX_FRAME_ENET0_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
111#define IX_ETH_ACC_TX_FRAME_ENET1_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
112#define IX_ETH_ACC_TX_FRAME_ENET2_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_E )
113#define IX_ETH_ACC_TX_FRAME_DONE_ETH_Q_SOURCE (IX_QMGR_Q_SOURCE_ID_NOT_E )