PageRenderTime 141ms CodeModel.GetById 119ms app.highlight 7ms RepoModel.GetById 13ms app.codeStats 0ms

/drivers/net/wireless/tiwlan1251/common/src/BusAccess/Shm_Common/whalTrace.h

http://github.com/CyanogenMod/cm-kernel
C++ Header | 136 lines | 75 code | 21 blank | 40 comment | 0 complexity | ef41d7de19c6d832d31df3a793f04b1a MD5 | raw file
  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
 63typedef enum
 64{
 65	NUM_FREE_DESCRIPTOR,
 66	DESCRIPTOR_OCCUPIED,
 67	CLEAR_DESCRIPTORS,
 68	FREE_BLOCKS,
 69} varSetType_e;
 70
 71typedef 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
 82typedef struct
 83{
 84	char			String[TRACER_MAX_STR_LEN];
 85	int				IntValue;
 86} TRACER_CTRL;
 87
 88typedef 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
102typedef 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
127extern WhalTrace_T *whal_traceCreate(TI_HANDLE hOs);
128extern int whal_traceDestroy(WhalTrace_T *pTrc);
129extern int whal_traceConfig(WhalTrace_T *pTrc, TI_HANDLE hTNETWIF, TI_HANDLE hReport);
130#ifdef TNETW_MASTER_MODE
131extern int  whal_traceAddTx(WhalTrace_T *pTrc, HwTxDesc_T *pHwTxDesc, char *Action);
132#endif
133extern int  whal_traceIsEnable(WhalTrace_T *pTrc);
134extern void whal_traceEnable(WhalTrace_T *pTrc, int val);
135
136#endif