OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / ti / wlan / wl1271 / TWD / FW_Transfer / RxXfer.h
1 /*
2  * RxXfer.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:  rxXfer.h
38  *
39  *   PURPOSE: Rx Xfer module header file.
40  * 
41  ****************************************************************************/
42
43 #ifndef _RX_XFER_H
44 #define _RX_XFER_H
45
46 #include "rxXfer_api.h"
47 #include "TwIf.h"
48
49
50 #define RX_DESCRIPTOR_SIZE (sizeof(RxIfDescriptor_t))
51 #ifdef PLATFORM_SYMBIAN /* UMAC is using only one buffer and therefore we can't use consecutive reads */
52     #define MAX_CONSECUTIVE_READS    1
53 #else
54     #define MAX_CONSECUTIVE_READS    8
55 #endif
56
57 #define MAX_PACKETS_NUMBER  8
58 #define MAX_CONSECUTIVE_READ_TXN   16
59 /* Max Txn size */
60 #define MAX_PACKET_SIZE     4096
61
62 typedef struct 
63 {
64     TI_UINT32      numPacketsRead;
65     TI_UINT32      numBytesRead;
66     TI_UINT32      numPacketsDroppedNoMem;
67     TI_UINT32      numPacketsDroppedPacketIDMismatch;
68     TI_UINT32      counters;
69     TI_UINT32      numAck0;
70 } RxXferStats_T;
71
72
73 typedef struct 
74 {
75     TTxnStruct              tTxnStruct;
76     TI_UINT32               uRegData; 
77     TI_UINT32               uRegAdata; 
78
79 } TRegTxn;
80
81 typedef struct 
82 {
83     TTxnStruct              tTxnStruct;
84     TI_UINT32               uCounter; 
85     
86 } TCounterTxn;
87
88 typedef struct 
89 {
90     TTxnStruct              tTxnStruct;
91     TI_UINT32               uData; 
92     
93 } TDummyTxn;
94
95 typedef struct 
96 {
97     TI_HANDLE               hOs;
98     TI_HANDLE               hReport;
99     TI_HANDLE               hTwIf;
100     TI_HANDLE               hFwEvent;
101     TI_HANDLE               hRxQueue;
102
103     TI_UINT32               aRxPktsDesc[NUM_RX_PKT_DESC]; /* Array of Rx packets short descriptors (see RX_DESC_SET/GET...) */
104     TI_UINT32               uFwRxCntr;
105     TI_UINT32               uDrvRxCntr;
106
107     TI_UINT32               uPacketMemoryPoolStart;
108
109     TRequestForBufferCb     RequestForBufferCB;
110     TI_HANDLE               RequestForBufferCB_handle;  
111
112     TRegTxn                 aSlaveRegTxn[MAX_CONSECUTIVE_READ_TXN];
113     TTxnStruct              aTxnStruct[MAX_CONSECUTIVE_READ_TXN];
114     TCounterTxn             aCounterTxn[MAX_CONSECUTIVE_READ_TXN];
115     TDummyTxn               aDummyTxn[MAX_CONSECUTIVE_READ_TXN];
116     TI_BOOL                 bChipIs1273Pg10;
117
118     TI_UINT8                aTempBuffer[MAX_PACKET_SIZE];
119
120     TI_UINT32               uAvailableTxn;
121     
122 #ifdef TI_DBG
123     RxXferStats_T           DbgStats;
124 #endif /* TI_DBG */
125
126 } RxXfer_t;
127
128
129 #endif /* _RX_XFER_H */