• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * txXfer_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 /****************************************************************************
36  *
37  *   MODULE:  txXfer_api.h
38  *
39  *   PURPOSE: Tx Xfer module API.
40  *
41  ****************************************************************************/
42 
43 #ifndef _TX_XFER_API_H
44 #define _TX_XFER_API_H
45 
46 
47 #include "TWDriver.h"
48 
49 
50 /*
51  *   Public Function Definitions:
52  *   ============================
53  */
54 
55 
56 /**
57  * \fn     txXfer_Create
58  * \brief  Create module
59  *
60  * Create module
61  *
62  * \note
63  * \param  hOs - The OS API handle
64  * \return The created module handle
65  * \sa
66  */
67 TI_HANDLE txXfer_Create (TI_HANDLE hOs);
68 
69 
70 /**
71  * \fn     txXfer_Destroy
72  * \brief  Destroy module
73  *
74  * Destroy module
75  *
76  * \note
77  * \param  hTxXfer - Module handle
78  * \return TI_OK
79  * \sa
80  */
81 TI_STATUS txXfer_Destroy (TI_HANDLE hTxXfer);
82 
83 
84 /**
85  * \fn     txXfer_Init
86  * \brief  Initialize module variables
87  *
88  * Initialize module variables including saving other modules handles
89  *
90  * \note
91  * \param  hTxXfer - Module handle
92  * \param  hXXX    - Other modules handles
93  * \return TI_OK
94  * \sa
95  */
96 TI_STATUS txXfer_Init (TI_HANDLE hTxXfer, TI_HANDLE hReport, TI_HANDLE hTwIf);
97 
98 
99 /**
100  * \fn     txXfer_Restart
101  * \brief  Restart some module variables
102  *
103  * Restart some module variables upon init, stop or recovery
104  *
105  * \note
106  * \param  hTxXfer - Module handle
107  * \return TI_OK
108  * \sa
109  */
110 TI_STATUS txXfer_Restart (TI_HANDLE hTxXfer);
111 
112 
113 /**
114  * \fn     txXfer_SetDefaults
115  * \brief  Configure module default settings
116  *
117  * Configure module default settings from ini file
118  *
119  * \note
120  * \param  hTxXfer     - Module handle
121  * \param  pInitParams - The default paremeters structure
122  * \return void
123  * \sa
124  */
125 void txXfer_SetDefaults (TI_HANDLE hTxXfer, TTwdInitParams *pInitParams);
126 
127 
128 /**
129  * \fn     txXfer_SetBusParams
130  * \brief  Configure bus related parameters
131  *
132  * Configure bus driver DMA-able buffer length to be used as a limit to the aggragation length.
133  *
134  * \note
135  * \param  hTxXfer     - Module handle
136  * \param  uDmaBufLen  - The bus driver DMA-able buffer length
137  * \return void
138  * \sa
139  */
140 void txXfer_SetBusParams (TI_HANDLE hTxXfer, TI_UINT32 uDmaBufLen);
141 
142 
143 /**
144  * \fn     txXfer_RegisterCb
145  * \brief  Register callback functions
146  *
147  * Called by Tx upper layers to register their CB for packet transfer completion.
148  * Registered only if needed (currently used only by WHA layer).
149  *
150  * \note
151  * \param  hTxXfer    - Module handle
152  * \param  CallBackID - Type of CB being registered (currently only transfer completion)
153  * \param  CBFunc     - The CB function
154  * \param  CBObj      - The parameter to provide when calling the CB
155  * \return void
156  * \sa
157  */
158 void txXfer_RegisterCb (TI_HANDLE hTxXfer, TI_UINT32 CallBackID, void *CBFunc, TI_HANDLE CBObj);
159 
160 
161 /**
162  * \fn     txXfer_SendPacket
163  * \brief  Send a Tx packet to the FW
164  *
165  * Called by the Tx upper layers to send a new Tx packet to the FW (after FW resources were allocated).
166  * Aggregate the packet if possible, and if needed call txXfer_SendAggregatedPkts to forward
167  *     the aggregation to the FW.
168  *
169  * \note
170  * \param  hTxXfer     - Module handle
171  * \param  pPktCtrlBlk - The new packet to send
172  * \return COMPLETE if completed in this context, PENDING if not, ERROR if failed
173  * \sa
174  */
175 ETxnStatus txXfer_SendPacket (TI_HANDLE hTxXfer, TTxCtrlBlk *pPktCtrlBlk);
176 
177 
178 /**
179  * \fn     txXfer_EndOfBurst
180  * \brief  Indicates that current packets burst stopped
181  *
182  * Called by the Tx upper layers to indicate that the current packets burst stopped.
183  * Sends the current aggregation of packets to the FW.
184  *
185  * \note
186  * \param  hTxXfer - module handle
187  * \return void
188  * \sa
189  */
190 void txXfer_EndOfBurst (TI_HANDLE hTxXfer);
191 
192 
193 
194 #ifdef TI_DBG
195 void txXfer_ClearStats (TI_HANDLE hTxXfer);
196 void txXfer_PrintStats (TI_HANDLE hTxXfer);
197 #endif
198 
199 
200 
201 #endif /* _TX_XFER_API_H */
202