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