295 lines
11 KiB
C
295 lines
11 KiB
C
|
#ifndef __HALDBGCMD_H__
|
||
|
#define __HALDBGCMD_H__
|
||
|
|
||
|
|
||
|
/*++
|
||
|
Copyright (c) Realtek Semiconductor Corp. All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
HalDbgCmd.h
|
||
|
|
||
|
Abstract:
|
||
|
Defined HAL Debug Command
|
||
|
|
||
|
Major Change History:
|
||
|
When Who What
|
||
|
---------- --------------- -------------------------------
|
||
|
2012-03-29 Filen Create.
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#define DBG_OFF 0
|
||
|
|
||
|
//
|
||
|
// Deprecated! Don't use it!
|
||
|
// TODO: fix related debug message!
|
||
|
//
|
||
|
//#define DBG_SEC 1
|
||
|
|
||
|
//
|
||
|
// Fatal bug.
|
||
|
// For example, Tx/Rx/IO locked up, OS hangs, memory access violation,
|
||
|
// resource allocation failed, unexpected HW behavior, HW BUG and so on.
|
||
|
//
|
||
|
#define DBG_SERIOUS 2
|
||
|
|
||
|
//
|
||
|
// Abnormal, rare, or unexpeted cases.
|
||
|
// For example, IRP/Packet/OID canceled, device suprisely unremoved and so on.
|
||
|
//
|
||
|
#define DBG_WARNING 3
|
||
|
|
||
|
//
|
||
|
// Normal case with useful information about current SW or HW state.
|
||
|
// For example, Tx/Rx descriptor to fill, Tx/Rx descriptor completed status,
|
||
|
// SW protocol state change, dynamic mechanism state change and so on.
|
||
|
//
|
||
|
#define DBG_LOUD 4
|
||
|
|
||
|
//
|
||
|
// Normal case with detail execution flow or information.
|
||
|
//
|
||
|
#define DBG_TRACE 5
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Define the tracing components
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------
|
||
|
#define COMP_TRACE BIT0 // For function call tracing.
|
||
|
#define COMP_DBG BIT1 // Only for temporary debug message.
|
||
|
#define COMP_INIT BIT2 // during driver initialization / halt / reset.
|
||
|
#define COMP_OID_QUERY BIT3 // Query OID.
|
||
|
#define COMP_OID_SET BIT4 // Set OID.
|
||
|
#define COMP_RECV BIT5 // Reveive part data path.
|
||
|
#define COMP_SEND BIT6 // Send part path.
|
||
|
#define COMP_IO BIT7 // I/O Related. Added by Annie, 2006-03-02.
|
||
|
#define COMP_POWER BIT8 // 802.11 Power Save mode or System/Device Power state related.
|
||
|
#define COMP_MLME BIT9 // 802.11 link related: join/start BSS, leave BSS.
|
||
|
#define COMP_SCAN BIT10 // For site survey.
|
||
|
#define COMP_SYSTEM BIT11 // For general platform function.
|
||
|
#define COMP_SEC BIT12 // For Security.
|
||
|
#define COMP_AP BIT13 // For AP mode related.
|
||
|
#define COMP_TURBO BIT14 // For Turbo Mode related. By Annie, 2005-10-21.
|
||
|
#define COMP_QOS BIT15 // For QoS.
|
||
|
#define COMP_AUTHENTICATOR BIT16 // For AP mode Authenticator. Added by Annie, 2006-01-30.
|
||
|
#define COMP_BEACON BIT17 // For Beacon related, by rcnjko.
|
||
|
#define COMP_ANTENNA BIT18 // For Antenna diversity related, by rcnjko.
|
||
|
#define COMP_RATE BIT19 // For Rate Adaptive mechanism, 2006.07.02, by rcnjko. #define COMP_EVENTS 0x00000080 // Event handling
|
||
|
#define COMP_EVENTS BIT20 // Event handling
|
||
|
#define COMP_FPGA BIT21 // For FPGA verfication
|
||
|
#define COMP_RM BIT22 // For Radio Measurement.
|
||
|
#define COMP_MP BIT23 // For mass production test, by shien chang, 2006.07.13
|
||
|
#define COMP_RXDESC BIT24 // Show Rx desc information for SD3 debug. Added by Annie, 2006-07-15.
|
||
|
#define COMP_CKIP BIT25 // For CCX 1 S13: CKIP. Added by Annie, 2006-08-14.
|
||
|
#define COMP_DIG BIT26 // For DIG, 2006.09.25, by rcnjko.
|
||
|
#define COMP_TXAGC BIT27 // For Tx power, 060928, by rcnjko.
|
||
|
#define COMP_HIPWR BIT28 // For High Power Mechanism, 060928, by rcnjko.
|
||
|
#define COMP_HALDM BIT29 // For HW Dynamic Mechanism, 061010, by rcnjko.
|
||
|
#define COMP_RSNA BIT30 // For RSNA IBSS , 061201, by CCW.
|
||
|
#define COMP_INDIC BIT31 // For link indication
|
||
|
#define COMP_LED BIT32 // For LED.
|
||
|
#define COMP_RF BIT33 // For RF.
|
||
|
//1!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
//1//1Attention Please!!!<11n or 8190 specific code should be put below this line>
|
||
|
//1!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
|
||
|
#define COMP_HT BIT34 // For 802.11n HT related information. by Emily 2006-8-11
|
||
|
#define COMP_POWER_TRACKING BIT35 //FOR 8190 TX POWER TRACKING
|
||
|
#define COMP_RX_REORDER BIT36 // 8190 Rx Reorder
|
||
|
#define COMP_AMSDU BIT37 // For A-MSDU Debugging
|
||
|
#define COMP_WPS BIT38 //WPS Debug Message
|
||
|
#define COMP_RATR BIT39
|
||
|
#define COMP_RESET BIT40
|
||
|
// For debug command to print on dbgview!!
|
||
|
#define COMP_CMD BIT41
|
||
|
#define COMP_EFUSE BIT42
|
||
|
#define COMP_MESH_INTERWORKING BIT43
|
||
|
#define COMP_CCX BIT44 //CCX Debug Flag
|
||
|
#define COMP_IOCTL BIT45 // IO Control
|
||
|
#define COMP_GP BIT46 // For generic parser.
|
||
|
#define COMP_TXAGG BIT47
|
||
|
#define COMP_HVL BIT48 // For Ndis 6.2 Context Swirch and Hardware Virtualiztion Layer
|
||
|
#define COMP_TEST BIT49
|
||
|
#define COMP_BB_POWERSAVING BIT50
|
||
|
#define COMP_SWAS BIT51 // For SW Antenna Switch
|
||
|
#define COMP_P2P BIT52
|
||
|
#define COMP_MUX BIT53
|
||
|
#define COMP_FUNC BIT54
|
||
|
#define COMP_TDLS BIT55
|
||
|
#define COMP_OMNIPEEK BIT56
|
||
|
#define COMP_MULTICHANNEL BIT57
|
||
|
#define COMP_DUALMACSWITCH BIT60 // 2010/12/27 Add for Dual mac mode debug
|
||
|
#define COMP_EASY_CONCURRENT BIT61 // 2010/12/27 Add for easy cncurrent mode debug
|
||
|
#define COMP_PSD BIT63 //2011/3/9 Add for WLAN PSD for BT AFH
|
||
|
#define COMP_TCPCHECKSUM BIT58
|
||
|
#define COMP_DFS BIT62
|
||
|
|
||
|
#define COMP_RATE_ADAPTIVE BIT57
|
||
|
|
||
|
#define COMP_ALL UINT64_C(0xFFFFFFFFFFFFFFFF) // All components
|
||
|
|
||
|
#if CFG_HAL_DBG
|
||
|
#define RT_TRACE(_Comp, _Level, Fmt) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
HalDbgPrint Fmt; \
|
||
|
}
|
||
|
|
||
|
// Print Debug Message with prefix function name.
|
||
|
#define RT_TRACE_F(_Comp, _Level, Fmt) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
HalDbgPrint("%s(): ", __FUNCTION__); \
|
||
|
HalDbgPrint Fmt; \
|
||
|
}
|
||
|
|
||
|
// TODO: Filen, add ASSERT marco code
|
||
|
#define RT_ASSERT(_Exp,Fmt) \
|
||
|
if(!(_Exp)) \
|
||
|
{ \
|
||
|
HalDbgPrint("Assertion for exp(%s) at file(%s), line(%d), function[%s]\n", #_Exp, __FILE__, __LINE__, __FUNCTION__); \
|
||
|
HalDbgPrint Fmt; \
|
||
|
ASSERT(FALSE); \
|
||
|
}
|
||
|
|
||
|
#define PRINT_DATA(_TitleString, _HexData, _HexDataLen) \
|
||
|
{ \
|
||
|
char *szTitle = _TitleString; \
|
||
|
pu1Byte pbtHexData = _HexData; \
|
||
|
u4Byte u4bHexDataLen = _HexDataLen; \
|
||
|
u4Byte __i; \
|
||
|
HalDbgPrint("%s", szTitle); \
|
||
|
for (__i=0;__i<u4bHexDataLen;__i++) \
|
||
|
{ \
|
||
|
if ((__i & 15) == 0) \
|
||
|
{ \
|
||
|
HalDbgPrint("\n"); \
|
||
|
} \
|
||
|
HalDbgPrint("%02X%s", pbtHexData[__i], ( ((__i&3)==3) ? " " : " ") ); \
|
||
|
} \
|
||
|
HalDbgPrint("\n"); \
|
||
|
}
|
||
|
|
||
|
// RT_PRINT_XXX macros: implemented for debugging purpose.
|
||
|
// Added by Annie, 2005-11-21.
|
||
|
#define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
int __i = 0, __j = 0, __k = 54; \
|
||
|
pu1Byte ptr = (pu1Byte)_HexData; \
|
||
|
HalDbgPrint("Rtl819x: "); \
|
||
|
HalDbgPrint(_TitleString); \
|
||
|
for( __i=0; __i<(int)_HexDataLen; __i++ ) \
|
||
|
{ \
|
||
|
HalDbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)? " " : " "); \
|
||
|
__k -= (3 + ((((__i + 1) % 4) == 0) ? 1 : 0)); \
|
||
|
if ((((__i + 1) % 16) == 0) || ((__i + 1) == _HexDataLen)) \
|
||
|
{ \
|
||
|
if(FALSE) { \
|
||
|
for( ; __k > 0; __k --) \
|
||
|
HalDbgPrint(" "); \
|
||
|
__k = 54; \
|
||
|
for(__j = ((__i / 16) * 16); __j <= __i; __j ++) \
|
||
|
HalDbgPrint("%c", (ptr[__j] < 31 || ptr[__j] > 127) ? '.' : ptr[__j]); \
|
||
|
} \
|
||
|
HalDbgPrint("\n"); \
|
||
|
} \
|
||
|
} \
|
||
|
}
|
||
|
|
||
|
#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
int __i; \
|
||
|
pu1Byte ptr = (pu1Byte)_Ptr; \
|
||
|
HalDbgPrint("Rtl819x: "); \
|
||
|
HalDbgPrint(_TitleString); \
|
||
|
HalDbgPrint(" "); \
|
||
|
for( __i=0; __i<6; __i++ ) \
|
||
|
HalDbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
|
||
|
HalDbgPrint("\n"); \
|
||
|
}
|
||
|
|
||
|
#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
int __i, __j; \
|
||
|
pu1Byte ptr = (pu1Byte)_Ptr; \
|
||
|
HalDbgPrint("Rtl819x: "); \
|
||
|
HalDbgPrint(_TitleString); \
|
||
|
HalDbgPrint("\n"); \
|
||
|
for( __i=0; __i<(int)_AddNum; __i++ ) \
|
||
|
{ \
|
||
|
for( __j=0; __j<6; __j++ ) \
|
||
|
HalDbgPrint("%02X%s", ptr[__i*6+__j], (__j==5)?"":"-"); \
|
||
|
HalDbgPrint("\n"); \
|
||
|
} \
|
||
|
}
|
||
|
|
||
|
// Added by Annie, 2005-11-22.
|
||
|
#define MAX_STR_LEN 64
|
||
|
|
||
|
#define PRINTABLE(_ch) (_ch>=' ' &&_ch<='~' ) // I want to see ASCII 33 to 126 only. Otherwise, I print '?'. Annie, 2005-11-22.
|
||
|
|
||
|
#define RT_PRINT_STR(_Comp, _Level, _TitleString, _Ptr, _Len) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
int __i; \
|
||
|
u1Byte buffer[MAX_STR_LEN]; \
|
||
|
int length = (_Len<MAX_STR_LEN)? _Len : (MAX_STR_LEN-1) ; \
|
||
|
PlatformZeroMemory( buffer, MAX_STR_LEN ); \
|
||
|
PlatformMoveMemory( buffer, (pu1Byte)_Ptr, length ); \
|
||
|
for( __i=0; __i<MAX_STR_LEN; __i++ ) \
|
||
|
{ \
|
||
|
if( !PRINTABLE(buffer[__i]) ) buffer[__i] = '?'; \
|
||
|
} \
|
||
|
buffer[length] = '\0'; \
|
||
|
HalDbgPrint("Rtl819x: "); \
|
||
|
HalDbgPrint(_TitleString); \
|
||
|
HalDbgPrint(": %d, <%s>\n", _Len, buffer); \
|
||
|
}
|
||
|
|
||
|
#define RT_PRINT_UUID(_Comp, _Level, _TitleString, _UUID) \
|
||
|
{ \
|
||
|
RT_TRACE_F(_Comp, _Level, (" %s ", _TitleString)); \
|
||
|
RT_TRACE(_Comp, _Level, (" %08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X\n", \
|
||
|
(_UUID).Data1, (_UUID).Data2, (_UUID).Data3, (_UUID).Data4[0], (_UUID).Data4[1], \
|
||
|
(_UUID).Data4[2], (_UUID).Data4[3], (_UUID).Data4[4], (_UUID).Data4[5], (_UUID).Data4[6], (_UUID).Data4[7])); \
|
||
|
}
|
||
|
|
||
|
#else // of #if DBG
|
||
|
// 2009/06/22 MH Allow fre build to print info test.
|
||
|
#if 1
|
||
|
#define RT_TRACE(_Comp, _Level, Fmt)
|
||
|
#define RT_TRACE_F(_Comp, _Level, Fmt)
|
||
|
#else
|
||
|
#define RT_TRACE(_Comp, _Level, Fmt) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
HalDbgPrint Fmt; \
|
||
|
}
|
||
|
|
||
|
// Print Debug Message with prefix function name.
|
||
|
#define RT_TRACE_F(_Comp, _Level, Fmt) \
|
||
|
if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
|
||
|
{ \
|
||
|
HalDbgPrint("%s(): ", __FUNCTION__); \
|
||
|
HalDbgPrint Fmt; \
|
||
|
}
|
||
|
#endif
|
||
|
#define RT_ASSERT(_Exp,Fmt)
|
||
|
#define PRINT_DATA(_TitleString, _HexData, _HexDataLen)
|
||
|
#define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen)
|
||
|
#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr)
|
||
|
#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum)
|
||
|
#define RT_PRINT_STR(_Comp, _Level, _TitleString, _Ptr, _Len)
|
||
|
#define RT_PRINT_UUID(_Comp, _Level, _TitleString, _UUID)
|
||
|
#endif // of #if DBG
|
||
|
|
||
|
|
||
|
extern u4Byte GlobalDebugLevel;
|
||
|
extern u8Byte GlobalDebugComponents;
|
||
|
|
||
|
|
||
|
#endif //__HALDBGCMD_H__
|