• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 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  *
38  *   MODULE:  rxXfer.h
39  *
40  *   PURPOSE: Rx Xfer module header file.
41  *
42  ****************************************************************************/
43 
44 #ifndef _RX_XFER_H
45 #define _RX_XFER_H
46 
47 #include "rxXfer_api.h"
48 #include "whalBus_Defs.h"
49 #include "TNETWIF.h"
50 #include "public_descriptors.h"
51 
52 #define RX_DESCRIPTOR_SIZE (sizeof(RxIfDescriptor_t))
53 
54 typedef struct
55 {
56     UINT32      numPacketsRead;
57     UINT32      numBytesRead;
58     UINT32      numPacketsDroppedNoMem;
59     UINT32      numPacketsDroppedPacketIDMismatch;
60     UINT32      numIrq0;
61     UINT32      numIrq1;
62     UINT32      numAck0;
63     UINT32      numAck1;
64 } RxXferStats_T;
65 
66 typedef enum
67 {
68     RX_XFER_STATE_IDLE,
69     RX_XFER_STATE_READING_HDR,
70     RX_XFER_STATE_READING_PKT,
71     RX_XFER_STATE_EXITING       /* Sending Ack to the FW at the end of the packet read */
72 } RxXferState_e;
73 
74 typedef struct
75 {
76     TI_HANDLE               hOs;
77     TI_HANDLE               hReport;
78     TI_HANDLE               hTNETWIF;
79     TI_HANDLE               hFwEvent;
80     TI_HANDLE               hMemMgr;
81 
82     RxXferState_e           state;
83     TI_STATUS               returnValue;
84 
85     /* address of the 2 buffers in the Double Buffer */
86     UINT32                  doubleBuffer[2];
87     UINT32                  currBuffer;
88     UINT32                  lastPacketId;
89     UINT32                  rxPathStatus;
90 
91     /* use a struct to read buffers from the bus - used for extra bytes reserving */
92     PADDING (RxIfDescriptor_t rxDescriptor)
93 
94     void                    *pPacketBuffer;
95     packetReceiveCB_t       ReceivePacketCB;
96     TI_HANDLE               ReceivePacketCB_handle;
97     requestForBufferCB_t    RequestForBufferCB;
98     TI_HANDLE               RequestForBufferCB_handle;
99     BOOL                    bSync;  			   /* indicate if we are in Synch bus or not */
100     TI_STATUS               packetStatus; 	 	   /* OK unless an error occurred ... */
101 
102 #ifdef TI_DBG
103     RxXferStats_T           DbgStats;
104 #endif /* TI_DBG */
105 
106 } RxXfer_t;
107 
108 
109 #endif /* _RX_XFER_H */
110