blob: c9dae1ef0492b8da569eb6f0a3f384a034ffd41b [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/**
2 * @file IxQMgrQCfg_p.h
3 *
4 * @author Intel Corporation
5 * @date 07-Feb-2002
6 *
7 * @brief This file contains the internal functions for config
8 *
9 *
10 * @par
11 * IXP400 SW Release version 2.0
12 *
13 * -- Copyright Notice --
14 *
15 * @par
16 * Copyright 2001-2005, Intel Corporation.
17 * All rights reserved.
18 *
19 * @par
20 * Redistribution and use in source and binary forms, with or without
21 * modification, are permitted provided that the following conditions
22 * are met:
23 * 1. Redistributions of source code must retain the above copyright
24 * notice, this list of conditions and the following disclaimer.
25 * 2. Redistributions in binary form must reproduce the above copyright
26 * notice, this list of conditions and the following disclaimer in the
27 * documentation and/or other materials provided with the distribution.
28 * 3. Neither the name of the Intel Corporation nor the names of its contributors
29 * may be used to endorse or promote products derived from this software
30 * without specific prior written permission.
31 *
32 * @par
33 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
34 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE.
44 *
45 * @par
46 * -- End of Copyright Notice --
47*/
48
49#ifndef IXQMGRQCFG_P_H
50#define IXQMGRQCFG_P_H
51
52/*
53 * User defined header files
54 */
55#include "IxQMgr.h"
56
57/*
58 * Typedefs
59 */
60typedef struct
61{
62 unsigned wmSetCnt;
63
64 struct
65 {
66 char *qName;
67 BOOL isConfigured;
68 unsigned int qSizeInWords;
69 unsigned int qEntrySizeInWords;
70 unsigned int ne;
71 unsigned int nf;
72 unsigned int numEntries;
73 UINT32 baseAddress;
74 UINT32 readPtr;
75 UINT32 writePtr;
76 } qStats[IX_QMGR_MAX_NUM_QUEUES];
77
78} IxQMgrQCfgStats;
79
80/*
81 * Initialize the QCfg subcomponent
82 */
83void
84ixQMgrQCfgInit (void);
85
86/*
87 * Uninitialize the QCfg subcomponent
88 */
89void
90ixQMgrQCfgUninit (void);
91
92/*
93 * Get the Q size in words
94 */
95IxQMgrQSizeInWords
96ixQMgrQSizeInWordsGet (IxQMgrQId qId);
97
98/*
99 * Get the Q entry size in words
100 */
101IxQMgrQEntrySizeInWords
102ixQMgrQEntrySizeInWordsGet (IxQMgrQId qId);
103
104/*
105 * Get the generic cfg stats
106 */
107IxQMgrQCfgStats*
108ixQMgrQCfgStatsGet (void);
109
110/*
111 * Get queue specific stats
112 */
113IxQMgrQCfgStats*
114ixQMgrQCfgQStatsGet (IxQMgrQId qId);
115
116/*
117 * Check is the queue configured
118 */
119BOOL
120ixQMgrQIsConfigured(IxQMgrQId qId);
121
122#endif /* IX_QMGRQCFG_P_H */