• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * FwEvent_api.h
3  *
4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  *  * Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *  * Neither the name Texas Instruments nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 
35 /** \file FwEvent_api.h
36  *  \brief FwEvent api
37  *
38  *  \see FwEvent.c
39  */
40 
41 
42 #ifndef _FW_EVENT_API_H
43 #define _FW_EVENT_API_H
44 
45 /* Public Function Definitions */
46 
47 /*
48  * \brief	Create the FwEvent module object
49  *
50  * \param  hOs  - OS module object handle
51  * \return Handle to the created object
52  *
53  * \par Description
54  * Calling this function creates a FwEvent object
55  *
56  * \sa fwEvent_Destroy
57  */
58 TI_HANDLE       fwEvent_Create              (TI_HANDLE hOs);
59 
60 
61 /*
62  * \brief	Destroys the FwEvent object
63  *
64  * \param  hFwEvent  - The object to free
65  * \return TI_OK
66  *
67  * \par Description
68  * Calling this function destroys a FwEvent object
69  *
70  * \sa fwEvent_Create
71  */
72 TI_STATUS       fwEvent_Destroy             (TI_HANDLE hFwEvent);
73 
74 
75 /*
76  * \brief	Requests the context engine to schedule the driver task
77  *
78  * \param  hFwEvent  - FwEvent Driver handle
79  * \return void
80  *
81  * \par Description
82  * Called by the FW-Interrupt ISR.
83  * Requests the context engine to schedule the driver task
84  * for handling the FW-Events (FwEvent callback).
85  *
86  * \sa
87  */
88 void            fwEvent_InterruptRequest    (TI_HANDLE hFwEvent);
89 
90 
91 /*
92  * \brief	Config the FwEvent module object
93  *
94  * \param  hFwEvent  - FwEvent Driver handle
95  * \param  hTWD  - Handle to TWD module
96  * \return TI_OK
97  *
98  * \par Description
99  * From hTWD we extract : hOs, hReport, hTwIf, hContext,
100  *      hHealthMonitor, hEventMbox, hCmdMbox, hRxXfer,
101  *      hTxHwQueue, hTxResult
102  * In this function we also register the FwEvent to the context engine
103  *
104  * \sa
105  */
106 TI_STATUS       fwEvent_Init                (TI_HANDLE hFwEvent, TI_HANDLE hTWD);
107 
108 
109 /*
110  * \brief	Called by any handler that completed after pending
111  *
112  * \param  hFwEvent  - FwEvent Driver handle
113  *
114  * \par Description
115  *
116  * Decrement pending handlers counter and if 0 call the SM to complete its process.
117  *
118  * \sa
119  */
120 void            fwEvent_HandlerCompleted    (TI_HANDLE hFwEvent);
121 
122 
123 /*
124  * \brief	Stop & reset FwEvent (called by the driver stop process)
125  *
126  * \param  hFwEvent  - FwEvent Driver handle
127  * \return TI_OK
128  *
129  * \par Description
130  *
131  * \sa
132  */
133 TI_STATUS       fwEvent_Stop                (TI_HANDLE hFwEvent);
134 
135 
136 /*
137  * \brief	Translate host to FW time (Usec)
138  *
139  * \param  hFwEvent  - FwEvent Driver handle
140  * \param  uHostTime - The host time in MS to translate
141  *
142  * \return FW Time in Usec
143  *
144  * \par Description
145  *
146  * \sa
147  */
148 TI_UINT32       fwEvent_TranslateToFwTime (TI_HANDLE hFwEvent, TI_UINT32 uHostTime);
149 
150 
151 /*
152  * \brief	Disable the FwEvent client of the context thread handler
153  *
154  * \param  hFwEvent  - FwEvent Driver handle
155  * \return void
156  *
157  * \par Description
158  *
159  * \sa
160  */
161 void            fwEvent_DisableInterrupts   (TI_HANDLE hFwEvent);
162 
163 
164 /*
165  * \brief	Enable the FwEvent client of the context thread handler
166  *
167  * \param  hFwEvent  - FwEvent Driver handle
168  * \return void
169  *
170  * \par Description
171  *
172  * \sa
173  */
174 void            fwEvent_EnableInterrupts    (TI_HANDLE hFwEvent);
175 
176 
177 /*
178  * \brief	Unmask all interrupts, set Rx interrupt bit and call FwEvent_Handle
179  *
180  * \param  hFwEvent  - FwEvent Driver handle
181  * \return void
182  *
183  * \par Description
184  * Called when driver Start or recovery process is completed.
185  * Unmask all interrupts, set Rx interrupt bit and call FwEvent_Handle
186  * (in case we missed an Rx interrupt in a recovery process).
187  *
188  * \sa
189  */
190 void            fwEvent_EnableExternalEvents(TI_HANDLE hFwEvent);
191 
192 
193 /*
194  * \brief	Unmask only cmd-cmplt and events interrupts (needed for init phase)
195  *
196  * \param  hFwEvent  - FwEvent Driver handle
197  * \return Event mask
198  *
199  * \par Description
200  * Unmask only cmd-cmplt and events interrupts (needed for init phase).
201 
202  *
203  * \sa
204  */
205 void            fwEvent_SetInitMask         (TI_HANDLE hFwEvent);
206 
207 
208 
209 #ifdef TI_DBG
210 
211 void            fwEvent_PrintStat           (TI_HANDLE hFwEvent);
212 
213 #endif  /* TI_DBG */
214 
215 
216 
217 #endif /* _FW_EVENT_API_H */
218 
219 
220 
221 
222 
223 
224 
225