blob: 363622fba61ba55d2e81e362ada968fc5a3aacd3 [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/**
2 * @file IxQMgrQAccess_p.h
3 *
4 * @author Intel Corporation
5 * @date 30-Oct-2001
6 *
7 * @brief QAccess private header file
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
Wolfgang Denkc57eadc2013-07-28 22:12:47 +020020 * SPDX-License-Identifier: BSD-3-Clause
Wolfgang Denk4646d2a2006-05-30 15:56:48 +020021 * @par
22 * -- End of Copyright Notice --
23*/
24
25#ifndef IXQMGRQACCESS_P_H
26#define IXQMGRQACCESS_P_H
27
28/*
29 * User defined header files
30 */
31#include "IxQMgr.h"
32
33/*
34 * Global variables declarations.
35 */
36extern volatile UINT32 * ixQMgrAqmIfQueAccRegAddr[];
37
38/*
39 * Initialise the Queue Access component
40 */
41void
42ixQMgrQAccessInit (void);
43
44/*
45 * read the remainder of a multi-word queue entry
46 * (the first word is already read)
47 */
48IX_STATUS
49ixQMgrQReadMWordsMinus1 (IxQMgrQId qId,
50 UINT32 *entry);
51
52/*
53 * Fast access : pop a q entry from a single word queue
54 */
55extern __inline__ UINT32 ixQMgrQAccessPop(IxQMgrQId qId);
56
57extern __inline__ UINT32 ixQMgrQAccessPop(IxQMgrQId qId)
58{
59 return *(ixQMgrAqmIfQueAccRegAddr[qId]);
60}
61
62/*
63 * Fast access : push a q entry in a single word queue
64 */
65extern __inline__ void ixQMgrQAccessPush(IxQMgrQId qId, UINT32 entry);
66
67extern __inline__ void ixQMgrQAccessPush(IxQMgrQId qId, UINT32 entry)
68{
69 *(ixQMgrAqmIfQueAccRegAddr[qId]) = entry;
70}
71
72#endif/*IXQMGRQACCESS_P_H*/