• 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:  whalTrace.h
39  *   PURPOSE: Trace on Rx/Tx packets
40  *
41  ****************************************************************************/
42 
43 #ifndef _WHAL_TRACE_H
44 #define _WHAL_TRACE_H
45 
46 #include "whalCommon.h"
47 #include "whalHwDefs.h"
48 
49 
50 #ifndef TIWLN_WINCE30
51 #define TRACER_MAX_EVENTS		2000
52 #else
53 #define TRACER_MAX_EVENTS		10
54 #endif
55 
56 #define TRACER_MAX_ACT_LEN		5
57 #define TRACER_MAX_OBJ_LEN		3
58 #define TRACER_HDR_LEN			2
59 #define TRACER_MAX_STR_LEN		70
60 
61 
62 
63 typedef enum
64 {
65 	NUM_FREE_DESCRIPTOR,
66 	DESCRIPTOR_OCCUPIED,
67 	CLEAR_DESCRIPTORS,
68 	FREE_BLOCKS,
69 } varSetType_e;
70 
71 typedef struct
72 {
73 	UINT32			time;
74 	UINT16			MpduLen;
75 	UINT8			Ctl;
76 	UINT16			Rate;
77 	UINT8			Status[4];
78 	dot11_header_t	FrameHeader;
79 	int				FrameData;
80 } TRACER_DATA;
81 
82 typedef struct
83 {
84 	char			String[TRACER_MAX_STR_LEN];
85 	int				IntValue;
86 } TRACER_CTRL;
87 
88 typedef struct
89 {
90 	UINT32			TimStamp;
91 	char			Action[TRACER_MAX_ACT_LEN];
92 	char			Object[TRACER_MAX_OBJ_LEN];
93 
94 	union
95 	{
96 		TRACER_DATA		TrcData;
97 		TRACER_CTRL		TrcCtrl;
98 	}Info;
99 
100 } TRACER_EVENT;
101 
102 typedef struct _WhalTrace_T
103 {
104 	int Enable;
105 	int Idx;
106 	int Num;
107 #ifdef TNETW_MASTER_MODE
108 	TRACER_EVENT Evt[TRACER_MAX_EVENTS];
109 #endif
110 	void *hProtect;
111 	short traceMask;
112 
113 	UINT8			MinNumDescriptorFree;
114 	UINT8			MacOccupiedDescriptor;
115 	UINT8			MaxClearDescriptor;
116 	UINT8			MaxFreeBlks;
117 	UINT8			BugCounter;
118 	UINT8			reBug;
119 
120 
121 	TI_HANDLE		hTNETWIF;
122 
123 	TI_HANDLE hOs;
124 	TI_HANDLE hReport;
125 } WhalTrace_T;
126 
127 extern WhalTrace_T *whal_traceCreate(TI_HANDLE hOs);
128 extern int whal_traceDestroy(WhalTrace_T *pTrc);
129 extern int whal_traceConfig(WhalTrace_T *pTrc, TI_HANDLE hTNETWIF, TI_HANDLE hReport);
130 #ifdef TNETW_MASTER_MODE
131 extern int  whal_traceAddTx(WhalTrace_T *pTrc, HwTxDesc_T *pHwTxDesc, char *Action);
132 #endif
133 extern int  whal_traceIsEnable(WhalTrace_T *pTrc);
134 extern void whal_traceEnable(WhalTrace_T *pTrc, int val);
135 
136 #endif
137