OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / ti / wlan / wl1271 / TWD / FW_Transfer / Export_Inc / FwEvent_api.h
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