164064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************
264064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
364064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
464064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
564064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved.                                                  |**
664064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
764064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without    |**
864064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions    |**
964064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met:                                                              |**
1064064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1164064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions of source code must retain the above copyright     |**
1264064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer.      |**
1364064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions in binary form must reproduce the above copyright  |**
1464064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer in    |**
1564064216a8433360745f69edddce19a606659163The Android Open Source Project**|    the documentation and/or other materials provided with the         |**
1664064216a8433360745f69edddce19a606659163The Android Open Source Project**|    distribution.                                                      |**
1764064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Neither the name Texas Instruments nor the names of its            |**
1864064216a8433360745f69edddce19a606659163The Android Open Source Project**|    contributors may be used to endorse or promote products derived    |**
1964064216a8433360745f69edddce19a606659163The Android Open Source Project**|    from this software without specific prior written permission.      |**
2064064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
2164064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
2264064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
2364064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
2464064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
2564064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
3264064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
3364064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
3464064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/
3564064216a8433360745f69edddce19a606659163The Android Open Source Project
3664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************
3764064216a8433360745f69edddce19a606659163The Android Open Source Project *
3864064216a8433360745f69edddce19a606659163The Android Open Source Project *   MODULE:  whalTrace.h
3964064216a8433360745f69edddce19a606659163The Android Open Source Project *   PURPOSE: Trace on Rx/Tx packets
4064064216a8433360745f69edddce19a606659163The Android Open Source Project *
4164064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/
4264064216a8433360745f69edddce19a606659163The Android Open Source Project
4364064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef _WHAL_TRACE_H
4464064216a8433360745f69edddce19a606659163The Android Open Source Project#define _WHAL_TRACE_H
4564064216a8433360745f69edddce19a606659163The Android Open Source Project
4664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "whalCommon.h"
4764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "whalHwDefs.h"
4864064216a8433360745f69edddce19a606659163The Android Open Source Project
4964064216a8433360745f69edddce19a606659163The Android Open Source Project
5064064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef TIWLN_WINCE30
5164064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_MAX_EVENTS		2000
5264064216a8433360745f69edddce19a606659163The Android Open Source Project#else
5364064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_MAX_EVENTS		10
5464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
5564064216a8433360745f69edddce19a606659163The Android Open Source Project
5664064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_MAX_ACT_LEN		5
5764064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_MAX_OBJ_LEN		3
5864064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_HDR_LEN			2
5964064216a8433360745f69edddce19a606659163The Android Open Source Project#define TRACER_MAX_STR_LEN		70
6064064216a8433360745f69edddce19a606659163The Android Open Source Project
6164064216a8433360745f69edddce19a606659163The Android Open Source Project
6264064216a8433360745f69edddce19a606659163The Android Open Source Project
6364064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef enum
6464064216a8433360745f69edddce19a606659163The Android Open Source Project{
6564064216a8433360745f69edddce19a606659163The Android Open Source Project	NUM_FREE_DESCRIPTOR,
6664064216a8433360745f69edddce19a606659163The Android Open Source Project	DESCRIPTOR_OCCUPIED,
6764064216a8433360745f69edddce19a606659163The Android Open Source Project	CLEAR_DESCRIPTORS,
6864064216a8433360745f69edddce19a606659163The Android Open Source Project	FREE_BLOCKS,
6964064216a8433360745f69edddce19a606659163The Android Open Source Project} varSetType_e;
7064064216a8433360745f69edddce19a606659163The Android Open Source Project
7164064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct
7264064216a8433360745f69edddce19a606659163The Android Open Source Project{
7364064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32			time;
7464064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT16			MpduLen;
7564064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			Ctl;
7664064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT16			Rate;
7764064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			Status[4];
7864064216a8433360745f69edddce19a606659163The Android Open Source Project	dot11_header_t	FrameHeader;
7964064216a8433360745f69edddce19a606659163The Android Open Source Project	int				FrameData;
8064064216a8433360745f69edddce19a606659163The Android Open Source Project} TRACER_DATA;
8164064216a8433360745f69edddce19a606659163The Android Open Source Project
8264064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct
8364064216a8433360745f69edddce19a606659163The Android Open Source Project{
8464064216a8433360745f69edddce19a606659163The Android Open Source Project	char			String[TRACER_MAX_STR_LEN];
8564064216a8433360745f69edddce19a606659163The Android Open Source Project	int				IntValue;
8664064216a8433360745f69edddce19a606659163The Android Open Source Project} TRACER_CTRL;
8764064216a8433360745f69edddce19a606659163The Android Open Source Project
8864064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct
8964064216a8433360745f69edddce19a606659163The Android Open Source Project{
9064064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT32			TimStamp;
9164064216a8433360745f69edddce19a606659163The Android Open Source Project	char			Action[TRACER_MAX_ACT_LEN];
9264064216a8433360745f69edddce19a606659163The Android Open Source Project	char			Object[TRACER_MAX_OBJ_LEN];
9364064216a8433360745f69edddce19a606659163The Android Open Source Project
9464064216a8433360745f69edddce19a606659163The Android Open Source Project	union
9564064216a8433360745f69edddce19a606659163The Android Open Source Project	{
9664064216a8433360745f69edddce19a606659163The Android Open Source Project		TRACER_DATA		TrcData;
9764064216a8433360745f69edddce19a606659163The Android Open Source Project		TRACER_CTRL		TrcCtrl;
9864064216a8433360745f69edddce19a606659163The Android Open Source Project	}Info;
9964064216a8433360745f69edddce19a606659163The Android Open Source Project
10064064216a8433360745f69edddce19a606659163The Android Open Source Project} TRACER_EVENT;
10164064216a8433360745f69edddce19a606659163The Android Open Source Project
10264064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct _WhalTrace_T
10364064216a8433360745f69edddce19a606659163The Android Open Source Project{
10464064216a8433360745f69edddce19a606659163The Android Open Source Project	int Enable;
10564064216a8433360745f69edddce19a606659163The Android Open Source Project	int Idx;
10664064216a8433360745f69edddce19a606659163The Android Open Source Project	int Num;
10764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TNETW_MASTER_MODE
10864064216a8433360745f69edddce19a606659163The Android Open Source Project	TRACER_EVENT Evt[TRACER_MAX_EVENTS];
10964064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
11064064216a8433360745f69edddce19a606659163The Android Open Source Project	void *hProtect;
11164064216a8433360745f69edddce19a606659163The Android Open Source Project	short traceMask;
11264064216a8433360745f69edddce19a606659163The Android Open Source Project
11364064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			MinNumDescriptorFree;
11464064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			MacOccupiedDescriptor;
11564064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			MaxClearDescriptor;
11664064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			MaxFreeBlks;
11764064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			BugCounter;
11864064216a8433360745f69edddce19a606659163The Android Open Source Project	UINT8			reBug;
11964064216a8433360745f69edddce19a606659163The Android Open Source Project
12064064216a8433360745f69edddce19a606659163The Android Open Source Project
12164064216a8433360745f69edddce19a606659163The Android Open Source Project	TI_HANDLE		hTNETWIF;
12264064216a8433360745f69edddce19a606659163The Android Open Source Project
12364064216a8433360745f69edddce19a606659163The Android Open Source Project	TI_HANDLE hOs;
12464064216a8433360745f69edddce19a606659163The Android Open Source Project	TI_HANDLE hReport;
12564064216a8433360745f69edddce19a606659163The Android Open Source Project} WhalTrace_T;
12664064216a8433360745f69edddce19a606659163The Android Open Source Project
12764064216a8433360745f69edddce19a606659163The Android Open Source Projectextern WhalTrace_T *whal_traceCreate(TI_HANDLE hOs);
12864064216a8433360745f69edddce19a606659163The Android Open Source Projectextern int whal_traceDestroy(WhalTrace_T *pTrc);
12964064216a8433360745f69edddce19a606659163The Android Open Source Projectextern int whal_traceConfig(WhalTrace_T *pTrc, TI_HANDLE hTNETWIF, TI_HANDLE hReport);
13064064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TNETW_MASTER_MODE
13164064216a8433360745f69edddce19a606659163The Android Open Source Projectextern int  whal_traceAddTx(WhalTrace_T *pTrc, HwTxDesc_T *pHwTxDesc, char *Action);
13264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
13364064216a8433360745f69edddce19a606659163The Android Open Source Projectextern int  whal_traceIsEnable(WhalTrace_T *pTrc);
13464064216a8433360745f69edddce19a606659163The Android Open Source Projectextern void whal_traceEnable(WhalTrace_T *pTrc, int val);
13564064216a8433360745f69edddce19a606659163The Android Open Source Project
13664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
137