blob: dea8cafa259fca741e3cb54cb41897c02791a029 [file] [log] [blame]
Wolfgang Denk4646d2a2006-05-30 15:56:48 +02001/**
2 * @file IxNpeMhUnsolicitedCbMgr_p.h
3 *
4 * @author Intel Corporation
5 * @date 18 Jan 2002
6 *
7 * @brief This file contains the private API for the Unsolicited Callback
8 * Manager module.
9 *
10 *
11 * @par
12 * IXP400 SW Release version 2.0
13 *
14 * -- Copyright Notice --
15 *
16 * @par
17 * Copyright 2001-2005, Intel Corporation.
18 * All rights reserved.
19 *
20 * @par
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions
23 * are met:
24 * 1. Redistributions of source code must retain the above copyright
25 * notice, this list of conditions and the following disclaimer.
26 * 2. Redistributions in binary form must reproduce the above copyright
27 * notice, this list of conditions and the following disclaimer in the
28 * documentation and/or other materials provided with the distribution.
29 * 3. Neither the name of the Intel Corporation nor the names of its contributors
30 * may be used to endorse or promote products derived from this software
31 * without specific prior written permission.
32 *
33 * @par
34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
35 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
36 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
37 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
38 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
41 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
42 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
43 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * SUCH DAMAGE.
45 *
46 * @par
47 * -- End of Copyright Notice --
48 */
49
50/**
51 * @defgroup IxNpeMhUnsolicitedCbMgr_p IxNpeMhUnsolicitedCbMgr_p
52 *
53 * @brief The private API for the Unsolicited Callback Manager module.
54 *
55 * @{
56 */
57
58#ifndef IXNPEMHUNSOLICITEDCBMGR_P_H
59#define IXNPEMHUNSOLICITEDCBMGR_P_H
60
61#include "IxNpeMh.h"
62#include "IxOsalTypes.h"
63
64/*
65 * #defines for function return types, etc.
66 */
67
68/*
69 * Prototypes for interface functions.
70 */
71
72/**
73 * @fn void ixNpeMhUnsolicitedCbMgrInitialize (void)
74 *
75 * @brief This function initializes the Unsolicited Callback Manager
76 * module, setting up a callback data structure for each NPE.
77 *
78 * @return No return value.
79 */
80
81void ixNpeMhUnsolicitedCbMgrInitialize (void);
82
83/**
84 * @fn void ixNpeMhUnsolicitedCbMgrCallbackSave (
85 IxNpeMhNpeId npeId,
86 IxNpeMhMessageId unsolicitedMessageId,
87 IxNpeMhCallback unsolicitedCallback)
88 *
89 * @brief This function saves a callback in the specified NPE's callback
90 * table. If a callback already exists for the specified ID then it will
91 * be overwritten.
92 *
93 * @param IxNpeMhNpeId npeId (in) - The ID of the NPE in whose callback
94 * table the callback will be saved.
95 * @param IxNpeMhMessageId unsolicitedMessageId (in) - The ID of the
96 * messages that this callback is for.
97 * @param IxNpeMhCallback unsolicitedCallback (in) - The callback function
98 * pointer to save.
99 *
100 * @return No return value.
101 */
102
103void ixNpeMhUnsolicitedCbMgrCallbackSave (
104 IxNpeMhNpeId npeId,
105 IxNpeMhMessageId unsolicitedMessageId,
106 IxNpeMhCallback unsolicitedCallback);
107
108/**
109 * @fn void ixNpeMhUnsolicitedCbMgrCallbackRetrieve (
110 IxNpeMhNpeId npeId,
111 IxNpeMhMessageId unsolicitedMessageId,
112 IxNpeMhCallback *unsolicitedCallback)
113 *
114 * @brief This function retrieves the callback for the specified ID from
115 * the specified NPE's callback table. If no callback is registered for
116 * the specified ID and NPE then a callback value of NULL will be returned.
117 *
118 * @param IxNpeMhNpeId npeId (in) - The ID of the NPE from whose callback
119 * table the callback will be retrieved.
120 * @param IxNpeMhMessageId unsolicitedMessageId (in) - The ID of the
121 * messages that the callback is for.
122 * @param IxNpeMhCallback unsolicitedCallback (out) - The callback function
123 * pointer retrieved.
124 *
125 * @return No return value.
126 */
127
128void ixNpeMhUnsolicitedCbMgrCallbackRetrieve (
129 IxNpeMhNpeId npeId,
130 IxNpeMhMessageId unsolicitedMessageId,
131 IxNpeMhCallback *unsolicitedCallback);
132
133/**
134 * @fn void ixNpeMhUnsolicitedCbMgrShow (
135 IxNpeMhNpeId npeId)
136 *
137 * @brief This function will display the current state of the Unsolicited
138 * Callback Manager module.
139 *
140 * @param IxNpeMhNpeId npeId (in) - The ID of the NPE to display state
141 * information for.
142 *
143 * @return No return value.
144 */
145
146void ixNpeMhUnsolicitedCbMgrShow (
147 IxNpeMhNpeId npeId);
148
149/**
150 * @fn void ixNpeMhUnsolicitedCbMgrShowReset (
151 IxNpeMhNpeId npeId)
152 *
153 * @brief This function will reset the current state of the Unsolicited
154 * Callback Manager module.
155 *
156 * @param IxNpeMhNpeId npeId (in) - The ID of the NPE to reset state
157 * information for.
158 *
159 * @return No return value.
160 */
161
162void ixNpeMhUnsolicitedCbMgrShowReset (
163 IxNpeMhNpeId npeId);
164
165#endif /* IXNPEMHUNSOLICITEDCBMGR_P_H */
166
167/**
168 * @} defgroup IxNpeMhUnsolicitedCbMgr_p
169 */