summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h')
-rwxr-xr-xdrivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h1810
1 files changed, 905 insertions, 905 deletions
diff --git a/drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h b/drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h
index 7b7ecfc7ed6a..f8670c9a30e7 100755
--- a/drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h
+++ b/drivers/net/wireless/rtl8723as/hal/OUTSRC/odm_debug.h
@@ -1,905 +1,905 @@
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
- *
- *
- ******************************************************************************/
-
-
-#ifndef __ODM_DBG_H__
-#define __ODM_DBG_H__
-
-
-//-----------------------------------------------------------------------------
-// Define the debug levels
-//
-// 1. DBG_TRACE and DBG_LOUD are used for normal cases.
-// So that, they can help SW engineer to develope or trace states changed
-// and also help HW enginner to trace every operation to and from HW,
-// e.g IO, Tx, Rx.
-//
-// 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases,
-// which help us to debug SW or HW.
-//
-//-----------------------------------------------------------------------------
-//
-// Never used in a call to ODM_RT_TRACE()!
-//
-#define ODM_DBG_OFF 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 ODM_DBG_SERIOUS 2
-
-//
-// Abnormal, rare, or unexpeted cases.
-// For example, IRP/Packet/OID canceled, device suprisely unremoved and so on.
-//
-#define ODM_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 ODM_DBG_LOUD 4
-
-//
-// Normal case with detail execution flow or information.
-//
-#define ODM_DBG_TRACE 5
-
-//-----------------------------------------------------------------------------
-// Define the tracing components
-//
-//-----------------------------------------------------------------------------
-//BB Functions
-#define ODM_COMP_DIG BIT0
-#define ODM_COMP_RA_MASK BIT1
-#define ODM_COMP_DYNAMIC_TXPWR BIT2
-#define ODM_COMP_FA_CNT BIT3
-#define ODM_COMP_RSSI_MONITOR BIT4
-#define ODM_COMP_CCK_PD BIT5
-#define ODM_COMP_ANT_DIV BIT6
-#define ODM_COMP_PWR_SAVE BIT7
-#define ODM_COMP_PWR_TRAIN BIT8
-#define ODM_COMP_RATE_ADAPTIVE BIT9
-#define ODM_COMP_PATH_DIV BIT10
-#define ODM_COMP_PSD BIT11
-#define ODM_COMP_DYNAMIC_PRICCA BIT12
-#define ODM_COMP_RXHP BIT13
-//MAC Functions
-#define ODM_COMP_EDCA_TURBO BIT16
-#define ODM_COMP_EARLY_MODE BIT17
-//RF Functions
-#define ODM_COMP_TX_PWR_TRACK BIT24
-#define ODM_COMP_RX_GAIN_TRACK BIT25
-#define ODM_COMP_CALIBRATION BIT26
-//Common Functions
-#define ODM_COMP_COMMON BIT30
-#define ODM_COMP_INIT BIT31
-
-/*------------------------Export Marco Definition---------------------------*/
-#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
-#define RT_PRINTK DbgPrint
-#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
- #define DbgPrint printk
- #define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);
-#else
- #define DbgPrint panic_printk
-#define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);
-#endif
-
-#ifndef ASSERT
- #define ASSERT(expr)
-#endif
-
-#if DBG
-#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt) \
- if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
- { \
- if(pDM_Odm->SupportICType == ODM_RTL8192C) \
- DbgPrint("[ODM-92C] "); \
- else if(pDM_Odm->SupportICType == ODM_RTL8192D) \
- DbgPrint("[ODM-92D] "); \
- else if(pDM_Odm->SupportICType == ODM_RTL8723A) \
- DbgPrint("[ODM-8723A] "); \
- else if(pDM_Odm->SupportICType == ODM_RTL8188E) \
- DbgPrint("[ODM-8188E] "); \
- else if(pDM_Odm->SupportICType == ODM_RTL8812) \
- DbgPrint("[ODM-8812] "); \
- else if(pDM_Odm->SupportICType == ODM_RTL8821) \
- DbgPrint("[ODM-8821] "); \
- RT_PRINTK fmt; \
- }
-
-#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt) \
- if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
- { \
- RT_PRINTK fmt; \
- }
-
-#define ODM_RT_ASSERT(pDM_Odm, expr, fmt) \
- if(!(expr)) { \
- DbgPrint( "Assertion failed! %s at ......\n", #expr); \
- DbgPrint( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
- RT_PRINTK fmt; \
- ASSERT(FALSE); \
- }
-#define ODM_dbg_enter() { DbgPrint("==> %s\n", __FUNCTION__); }
-#define ODM_dbg_exit() { DbgPrint("<== %s\n", __FUNCTION__); }
-#define ODM_dbg_trace(str) { DbgPrint("%s:%s\n", __FUNCTION__, str); }
-
-#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr) \
- if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
- { \
- int __i; \
- pu1Byte __ptr = (pu1Byte)ptr; \
- DbgPrint("[ODM] "); \
- DbgPrint(title_str); \
- DbgPrint(" "); \
- for( __i=0; __i<6; __i++ ) \
- DbgPrint("%02X%s", __ptr[__i], (__i==5)?"":"-"); \
- DbgPrint("\n"); \
- }
-#else
-#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt)
-#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt)
-#define ODM_RT_ASSERT(pDM_Odm, expr, fmt)
-#define ODM_dbg_enter()
-#define ODM_dbg_exit()
-#define ODM_dbg_trace(str)
-#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr)
-#endif
-
-
-VOID
-ODM_InitDebugSetting(
- IN PDM_ODM_T pDM_Odm
- );
-
-
-
-#if 0
-#if DBG
-#define DbgPrint printk
-
-#define PRINT_DATA(_TitleString, _HexData, _HexDataLen) \
- { \
- char *szTitle = _TitleString; \
- pu1Byte pbtHexData = _HexData; \
- u4Byte u4bHexDataLen = _HexDataLen; \
- u4Byte __i; \
- DbgPrint("%s", szTitle); \
- for (__i=0;__i<u4bHexDataLen;__i++) \
- { \
- if ((__i & 15) == 0) \
- { \
- DbgPrint("\n"); \
- } \
- DbgPrint("%02X%s", pbtHexData[__i], ( ((__i&3)==3) ? " " : " ") ); \
- } \
- DbgPrint("\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) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
- { \
- int __i; \
- pu1Byte ptr = (pu1Byte)_HexData; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- for( __i=0; __i<(int)_HexDataLen; __i++ ) \
- { \
- DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \
- if (((__i + 1) % 16) == 0) DbgPrint("\n"); \
- } \
- DbgPrint("\n"); \
- }
-
-#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr) \
- if(((_Comp) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
- { \
- int __i; \
- pu1Byte ptr = (pu1Byte)_Ptr; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint(" "); \
- for( __i=0; __i<6; __i++ ) \
- DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
- DbgPrint("\n"); \
- }
-
-#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum) \
- if(((_Comp) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
- { \
- int __i, __j; \
- pu1Byte ptr = (pu1Byte)_Ptr; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint("\n"); \
- for( __i=0; __i<(int)_AddNum; __i++ ) \
- { \
- for( __j=0; __j<6; __j++ ) \
- DbgPrint("%02X%s", ptr[__i*6+__j], (__j==5)?"":"-"); \
- DbgPrint("\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) & ODM_GlobalDebugComponents) && (_Level <= ODM_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'; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint(": %d, <%s>\n", _Len, buffer); \
- }
-
-#else // of #if DBG
-#define DbgPrint(...)
-#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)
-#endif // of #if DBG
-
-#endif
-
-
-#if 0
-/* Define debug print header for every service module.*/
-typedef struct tag_ODM_DBGP_Service_Module_Header_Name_Structure
-{
- const char *pMANS;
- const char *pRTOS;
- const char *pALM;
- const char *pPEM;
- const char *pCMPK;
- const char *pRAPD;
- const char *pTXPB;
- const char *pQUMG;
-}ODM_DBGP_HEAD_T;
-
-
-/* Define different debug flag for dedicated service modules in debug flag array. */
-// Each module has independt 32 bit debug flag you cnn define the flag as yout require.
-typedef enum tag_ODM_DBGP_Flag_Type_Definition
-{
- ODM_FTX = 0,
- ODM_FRX ,
- ODM_FPHY ,
- ODM_FPWR ,
- ODM_FDM ,
- ODM_FC2H ,
- ODM_FBT ,
- ODM_DBGP_TYPE_MAX
-}ODM_DBGP_FLAG_E;
-
-
-// Define TX relative debug bit --> FTX
-#define ODM_TX_DESC BIT0
-#define ODM_TX_DESC_TID BIT1
-#define ODM_TX_PATH BIT2
-
-// Define RX relative debug bit --> FRX
-#define ODM_RX_DATA BIT0
-#define ODM_RX_PHY_STS BIT1
-#define ODM_RX_PHY_SS BIT2
-#define ODM_RX_PHY_SQ BIT3
-#define ODM_RX_PHY_ASTS BIT4
-#define ODM_RX_ERR_LEN BIT5
-#define ODM_RX_DEFRAG BIT6
-#define ODM_RX_ERR_RATE BIT7
-#define ODM_RX_PATH BIT8
-#define ODM_RX_BEACON BIT9
-
-// Define PHY-BB/RF/MAC check module bit --> FPHY
-#define ODM_PHY_BBR BIT0
-#define ODM_PHY_BBW BIT1
-#define ODM_PHY_RFR BIT2
-#define ODM_PHY_RFW BIT3
-#define ODM_PHY_MACR BIT4
-#define ODM_PHY_MACW BIT5
-#define ODM_PHY_ALLR BIT6
-#define ODM_PHY_ALLW BIT7
-#define ODM_PHY_TXPWR BIT8
-#define ODM_PHY_PWRDIFF BIT9
-#define ODM_PHY_SICR BIT10
-#define ODM_PHY_SICW BIT11
-
-
-
-
-extern u4Byte ODM_GlobalDebugLevel;
-
-
-#if DBG
-extern u8Byte ODM_GlobalDebugComponents;
-#endif
-#endif
-#if 0
-
-//-----------------------------------------------------------------------------
-// Define the debug levels
-//
-// 1. DBG_TRACE and DBG_LOUD are used for normal cases.
-// So that, they can help SW engineer to develope or trace states changed
-// and also help HW enginner to trace every operation to and from HW,
-// e.g IO, Tx, Rx.
-//
-// 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases,
-// which help us to debug SW or HW.
-//
-//-----------------------------------------------------------------------------
-//
-// Never used in a call to ODM_RT_TRACE(pDM_Odm,)!
-//
-#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_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_DFS BIT62
-
-#define COMP_ALL UINT64_C(0xFFFFFFFFFFFFFFFF) // All components
-// For debug print flag to use
-/*------------------------------Define structure----------------------------*/
-/* 2007/07/13 MH *//*------For DeBuG Print modeue------*/
-
-/* Defnie structure to store different debug flag variable. Every debug flag
- is a UINT32 integer and you can assign 32 different events. */
-typedef struct tag_DBGP_Debug_Flag_Structure
-{
- u4Byte Mans; /* Main Scheduler module. */
- u4Byte Rtos; /* RTOS module. */
- u4Byte Alarm; /* Alarm module. */
- u4Byte Pm; /* Performance monitor module. */
-}DBGP_FLAG_T;
-
-/* Define debug print header for every service module.*/
-typedef struct tag_DBGP_Service_Module_Header_Name_Structure
-{
- const char *pMANS;
- const char *pRTOS;
- const char *pALM;
- const char *pPEM;
- const char *pCMPK;
- const char *pRAPD;
- const char *pTXPB;
- const char *pQUMG;
-}DBGP_HEAD_T;
-
-
-/* Define different debug flag for dedicated service modules in debug flag array. */
-// Each module has independt 32 bit debug flag you cnn define the flag as yout require.
-typedef enum tag_DBGP_Flag_Type_Definition
-{
- FQoS = 0,
- FTX = 1,
- FRX = 2,
- FSEC = 3,
- FMGNT = 4,
- FMLME = 5,
- FRESOURCE = 6,
- FBEACON = 7,
- FISR = 8,
- FPHY = 9,
- FMP = 10,
- FEEPROM = 11,
- FPWR = 12,
- FDM = 13,
- FDBG_CTRL = 14,
- FC2H = 15,
- FBT = 16,
- FINIT = 17,
- FIOCTL = 18,
- FSHORT_CUT = 19,
- DBGP_TYPE_MAX
-}DBGP_FLAG_E;
-
-
-// Define Qos Relative debug flag bit --> FQoS
-#define QoS_INIT BIT0
-#define QoS_VISTA BIT1
-
-// Define TX relative debug bit --> FTX
-#define TX_DESC BIT0
-#define TX_DESC_TID BIT1
-#define TX_PATH BIT2
-
-// Define RX relative debug bit --> FRX
-#define RX_DATA BIT0
-#define RX_PHY_STS BIT1
-#define RX_PHY_SS BIT2
-#define RX_PHY_SQ BIT3
-#define RX_PHY_ASTS BIT4
-#define RX_ERR_LEN BIT5
-#define RX_DEFRAG BIT6
-#define RX_ERR_RATE BIT7
-#define RX_PATH BIT8
-#define RX_BEACON BIT9
-
-// Define Security relative debug bit --> FSEC
-
-// Define MGNT relative debug bit --> FMGNT
-
-// Define MLME relative debug bit --> FMLME
-#define MEDIA_STS BIT0
-#define LINK_STS BIT1
-
-// Define OS resource check module bit --> FRESOURCE
-#define OS_CHK BIT0
-
-// Define beacon content check module bit --> FBEACON
-#define BCN_SHOW BIT0
-#define BCN_PEER BIT1
-
-// Define ISR/IMR check module bit --> FISR
-#define ISR_CHK BIT0
-
-// Define PHY-BB/RF/MAC check module bit --> FPHY
-#define PHY_BBR BIT0
-#define PHY_BBW BIT1
-#define PHY_RFR BIT2
-#define PHY_RFW BIT3
-#define PHY_MACR BIT4
-#define PHY_MACW BIT5
-#define PHY_ALLR BIT6
-#define PHY_ALLW BIT7
-#define PHY_TXPWR BIT8
-#define PHY_PWRDIFF BIT9
-#define PHY_SICR BIT10
-#define PHY_SICW BIT11
-
-// Define MPT driver check module bit --> FMP
-#define MP_RX BIT0
-#define MP_SWICH_CH BIT1
-
-// Define EEPROM and EFUSE check module bit --> FEEPROM
-#define EEPROM_W BIT0
-#define EFUSE_PG BIT1
-#define EFUSE_READ_ALL BIT2
-#define EFUSE_ANALYSIS BIT3
-#define EFUSE_PG_DETAIL BIT4
-
-// Define power save check module bit --> FPWR
-#define LPS BIT0
-#define IPS BIT1
-#define PWRSW BIT2
-#define PWRHW BIT3
-#define PWRHAL BIT4
-
-// Define Dynamic Mechanism check module bit --> FDM
-#define WA_IOT BIT0
-#define DM_PWDB BIT1
-#define DM_Monitor BIT2
-#define DM_DIG BIT3
-#define DM_EDCA_Turbo BIT4
-#define DM_BT30 BIT5
-
-// Define Dbg Control module bit --> FDBG_CTRL
-#define DBG_CTRL_TRACE BIT0
-#define DBG_CTRL_INBAND_NOISE BIT1
-
-// Define FW C2H Cmd check module bit --> FC2H
-#define C2H_Summary BIT0
-#define C2H_PacketData BIT1
-#define C2H_ContentData BIT2
-// Define BT Cmd check module bit --> FBT
-#define BT_TRACE BIT0
-#define BT_RFPoll BIT1
-
-// Define init check for module bit --> FINIT
-#define INIT_EEPROM BIT0
-#define INIT_TxPower BIT1
-#define INIT_IQK BIT2
-#define INIT_RF BIT3
-
-// Define IOCTL Cmd check module bit --> FIOCTL
-// section 1 : IRP related
-#define IOCTL_IRP BIT0
-#define IOCTL_IRP_DETAIL BIT1
-#define IOCTL_IRP_STATISTICS BIT2
-#define IOCTL_IRP_HANDLE BIT3
-// section 2 : HCI command/event
-#define IOCTL_BT_HCICMD BIT8
-#define IOCTL_BT_HCICMD_DETAIL BIT9
-#define IOCTL_BT_HCICMD_EXT BIT10
-#define IOCTL_BT_EVENT BIT11
-#define IOCTL_BT_EVENT_DETAIL BIT12
-#define IOCTL_BT_EVENT_PERIODICAL BIT13
-// section 3 : BT tx/rx data and throughput
-#define IOCTL_BT_TX_ACLDATA BIT16
-#define IOCTL_BT_TX_ACLDATA_DETAIL BIT17
-#define IOCTL_BT_RX_ACLDATA BIT18
-#define IOCTL_BT_RX_ACLDATA_DETAIL BIT19
-#define IOCTL_BT_TP BIT20
-// section 4 : BT connection state machine.
-#define IOCTL_STATE BIT21
-#define IOCTL_BT_LOGO BIT22
-// section 5 : BT function trace
-#define IOCTL_CALLBACK_FUN BIT24
-#define IOCTL_PARSE_BT_PKT BIT25
-#define IOCTL_BT_TX_PKT BIT26
-#define IOCTL_BT_FLAG_MON BIT27
-
-//
-// Define init check for module bit --> FSHORT_CUT
-// 2011/07/20 MH Add for short but definition.
-//
-#define SHCUT_TX BIT0
-#define SHCUT_RX BIT1
-
-
-/* 2007/07/13 MH *//*------For DeBuG Print modeue------*/
-/*------------------------------Define structure----------------------------*/
-
-
-/*------------------------Export Marco Definition---------------------------*/
-#if (DM_ODM_SUPPORT_TYPE != ODM_MP)
-#define RT_PRINTK(fmt, args...) printk( "%s(): " fmt, __FUNCTION__, ## args);
-
-#if DBG
-#define ODM_RT_TRACE(pDM_Odm,comp, level, fmt) \
- if(((comp) & GlobalDebugComponents) && (level <= GlobalDebugLevel)) \
- { \
- RT_PRINTK fmt; \
- }
-
-#define RT_TRACE_F(comp, level, fmt) \
- if(((comp) & GlobalDebugComponents) && (level <= GlobalDebugLevel)) \
- { \
- RT_PRINTK fmt; \
- }
-
-#define RT_ASSERT(expr,fmt) \
- if(!(expr)) { \
- printk( "Assertion failed! %s at ......\n", #expr); \
- printk( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
- }
-#define dbg_enter() { printk("==> %s\n", __FUNCTION__); }
-#define dbg_exit() { printk("<== %s\n", __FUNCTION__); }
-#define dbg_trace(str) { printk("%s:%s\n", __FUNCTION__, str); }
-#else
-#define ODM_RT_TRACE(pDM_Odm,comp, level, fmt)
-#define RT_TRACE_F(comp, level, fmt)
-#define RT_ASSERT(expr, fmt)
-#define dbg_enter()
-#define dbg_exit()
-#define dbg_trace(str)
-#endif
-
-#if DBG
-#define DbgPrint printk
-
-#define PRINT_DATA(_TitleString, _HexData, _HexDataLen) \
- { \
- char *szTitle = _TitleString; \
- pu1Byte pbtHexData = _HexData; \
- u4Byte u4bHexDataLen = _HexDataLen; \
- u4Byte __i; \
- DbgPrint("%s", szTitle); \
- for (__i=0;__i<u4bHexDataLen;__i++) \
- { \
- if ((__i & 15) == 0) \
- { \
- DbgPrint("\n"); \
- } \
- DbgPrint("%02X%s", pbtHexData[__i], ( ((__i&3)==3) ? " " : " ") ); \
- } \
- DbgPrint("\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; \
- pu1Byte ptr = (pu1Byte)_HexData; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- for( __i=0; __i<(int)_HexDataLen; __i++ ) \
- { \
- DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \
- if (((__i + 1) % 16) == 0) DbgPrint("\n"); \
- } \
- DbgPrint("\n"); \
- }
-
-#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr) \
- if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
- { \
- int __i; \
- pu1Byte ptr = (pu1Byte)_Ptr; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint(" "); \
- for( __i=0; __i<6; __i++ ) \
- DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
- DbgPrint("\n"); \
- }
-
-#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum) \
- if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
- { \
- int __i, __j; \
- pu1Byte ptr = (pu1Byte)_Ptr; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint("\n"); \
- for( __i=0; __i<(int)_AddNum; __i++ ) \
- { \
- for( __j=0; __j<6; __j++ ) \
- DbgPrint("%02X%s", ptr[__i*6+__j], (__j==5)?"":"-"); \
- DbgPrint("\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'; \
- DbgPrint("Rtl819x: "); \
- DbgPrint(_TitleString); \
- DbgPrint(": %d, <%s>\n", _Len, buffer); \
- }
-
-#else // of #if DBG
-#define DbgPrint(...)
-#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)
-#endif // of #if DBG
-
-
-
-#endif // #if (DM_ODM_SUPPORT_TYPE != ODM_MP)
-
-#define DEBUG_PRINT 1
-
-// Please add new OS's print API by yourself
-
-//#if (RT_PLATFORM==PLATFORM_WINDOWS)
-#if (DEBUG_PRINT == 1) && DBG
-#define RTPRINT(dbgtype, dbgflag, printstr)\
-{\
- if (DBGP_Type[dbgtype] & dbgflag)\
- {\
- DbgPrint printstr;\
- }\
-}
-
-#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr)\
-{\
- if (DBGP_Type[dbgtype] & dbgflag)\
- {\
- int __i; \
- pu1Byte ptr = (pu1Byte)_Ptr; \
- DbgPrint printstr; \
- DbgPrint(" "); \
- for( __i=0; __i<6; __i++ ) \
- DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
- DbgPrint("\n"); \
- }\
-}
-
-#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen)\
-{\
- if (DBGP_Type[dbgtype] & dbgflag)\
- {\
- int __i; \
- pu1Byte ptr = (pu1Byte)_HexData; \
- DbgPrint(_TitleString); \
- for( __i=0; __i<(int)_HexDataLen; __i++ ) \
- { \
- DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" ");\
- if (((__i + 1) % 16) == 0) DbgPrint("\n");\
- } \
- DbgPrint("\n"); \
- }\
-}
-#define FuncEntry FunctionIn(COMP_FUNC)
-#define FuncExit FunctionOut(COMP_FUNC)
-
-#define FunctionIn(_comp) ODM_RT_TRACE(pDM_Odm,(_comp), DBG_LOUD, ("==========> %s\n", __FUNCTION__))
-#define FunctionOut(_comp) ODM_RT_TRACE(pDM_Odm,(_comp), DBG_LOUD, ("<========== %s\n", __FUNCTION__))
-
-
-#else
-
-#define DBGP(dbgtype, dbgflag, printstr)
-#define RTPRINT(dbgtype, dbgflag, printstr)
-#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr)
-#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen)
-#define FuncEntry
-#define FuncExit
-#define FunctionIn(_comp)
-#define FunctionOut(_comp)
-#endif
-/*------------------------Export Marco Definition---------------------------*/
-
-
-/*------------------------Export global variable----------------------------*/
-extern u4Byte DBGP_Type[DBGP_TYPE_MAX];
-extern DBGP_HEAD_T DBGP_Head;
-
-/*------------------------Export global variable----------------------------*/
-
-
-/*--------------------------Exported Function prototype---------------------*/
-extern void DBGP_Flag_Init(void);
-extern void DBG_PrintAllFlag(void);
-extern void DBG_PrintAllComp(void);
-extern void DBG_PrintFlagEvent(u1Byte DbgFlag);
-extern void DBG_DumpMem(const u1Byte DbgComp,
- const u1Byte DbgLevel,
- pu1Byte pMem,
- u2Byte Len);
-
-/*--------------------------Exported Function prototype---------------------*/
-
-
-
-
-
-
-
-
-
-extern u4Byte GlobalDebugLevel;
-extern u8Byte GlobalDebugComponents;
-
-
-#endif
-
-
-#endif // __ODM_DBG_H__
-
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ *
+ ******************************************************************************/
+
+
+#ifndef __ODM_DBG_H__
+#define __ODM_DBG_H__
+
+
+//-----------------------------------------------------------------------------
+// Define the debug levels
+//
+// 1. DBG_TRACE and DBG_LOUD are used for normal cases.
+// So that, they can help SW engineer to develope or trace states changed
+// and also help HW enginner to trace every operation to and from HW,
+// e.g IO, Tx, Rx.
+//
+// 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases,
+// which help us to debug SW or HW.
+//
+//-----------------------------------------------------------------------------
+//
+// Never used in a call to ODM_RT_TRACE()!
+//
+#define ODM_DBG_OFF 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 ODM_DBG_SERIOUS 2
+
+//
+// Abnormal, rare, or unexpeted cases.
+// For example, IRP/Packet/OID canceled, device suprisely unremoved and so on.
+//
+#define ODM_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 ODM_DBG_LOUD 4
+
+//
+// Normal case with detail execution flow or information.
+//
+#define ODM_DBG_TRACE 5
+
+//-----------------------------------------------------------------------------
+// Define the tracing components
+//
+//-----------------------------------------------------------------------------
+//BB Functions
+#define ODM_COMP_DIG BIT0
+#define ODM_COMP_RA_MASK BIT1
+#define ODM_COMP_DYNAMIC_TXPWR BIT2
+#define ODM_COMP_FA_CNT BIT3
+#define ODM_COMP_RSSI_MONITOR BIT4
+#define ODM_COMP_CCK_PD BIT5
+#define ODM_COMP_ANT_DIV BIT6
+#define ODM_COMP_PWR_SAVE BIT7
+#define ODM_COMP_PWR_TRAIN BIT8
+#define ODM_COMP_RATE_ADAPTIVE BIT9
+#define ODM_COMP_PATH_DIV BIT10
+#define ODM_COMP_PSD BIT11
+#define ODM_COMP_DYNAMIC_PRICCA BIT12
+#define ODM_COMP_RXHP BIT13
+//MAC Functions
+#define ODM_COMP_EDCA_TURBO BIT16
+#define ODM_COMP_EARLY_MODE BIT17
+//RF Functions
+#define ODM_COMP_TX_PWR_TRACK BIT24
+#define ODM_COMP_RX_GAIN_TRACK BIT25
+#define ODM_COMP_CALIBRATION BIT26
+//Common Functions
+#define ODM_COMP_COMMON BIT30
+#define ODM_COMP_INIT BIT31
+
+/*------------------------Export Marco Definition---------------------------*/
+#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
+#define RT_PRINTK DbgPrint
+#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
+ #define DbgPrint printk
+ #define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);
+#else
+ #define DbgPrint panic_printk
+#define RT_PRINTK(fmt, args...) DbgPrint( "%s(): " fmt, __FUNCTION__, ## args);
+#endif
+
+#ifndef ASSERT
+ #define ASSERT(expr)
+#endif
+
+#if DBG
+#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt) \
+ if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
+ { \
+ if(pDM_Odm->SupportICType == ODM_RTL8192C) \
+ DbgPrint("[ODM-92C] "); \
+ else if(pDM_Odm->SupportICType == ODM_RTL8192D) \
+ DbgPrint("[ODM-92D] "); \
+ else if(pDM_Odm->SupportICType == ODM_RTL8723A) \
+ DbgPrint("[ODM-8723A] "); \
+ else if(pDM_Odm->SupportICType == ODM_RTL8188E) \
+ DbgPrint("[ODM-8188E] "); \
+ else if(pDM_Odm->SupportICType == ODM_RTL8812) \
+ DbgPrint("[ODM-8812] "); \
+ else if(pDM_Odm->SupportICType == ODM_RTL8821) \
+ DbgPrint("[ODM-8821] "); \
+ RT_PRINTK fmt; \
+ }
+
+#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt) \
+ if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
+ { \
+ RT_PRINTK fmt; \
+ }
+
+#define ODM_RT_ASSERT(pDM_Odm, expr, fmt) \
+ if(!(expr)) { \
+ DbgPrint( "Assertion failed! %s at ......\n", #expr); \
+ DbgPrint( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
+ RT_PRINTK fmt; \
+ ASSERT(FALSE); \
+ }
+#define ODM_dbg_enter() { DbgPrint("==> %s\n", __FUNCTION__); }
+#define ODM_dbg_exit() { DbgPrint("<== %s\n", __FUNCTION__); }
+#define ODM_dbg_trace(str) { DbgPrint("%s:%s\n", __FUNCTION__, str); }
+
+#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr) \
+ if(((comp) & pDM_Odm->DebugComponents) && (level <= pDM_Odm->DebugLevel)) \
+ { \
+ int __i; \
+ pu1Byte __ptr = (pu1Byte)ptr; \
+ DbgPrint("[ODM] "); \
+ DbgPrint(title_str); \
+ DbgPrint(" "); \
+ for( __i=0; __i<6; __i++ ) \
+ DbgPrint("%02X%s", __ptr[__i], (__i==5)?"":"-"); \
+ DbgPrint("\n"); \
+ }
+#else
+#define ODM_RT_TRACE(pDM_Odm, comp, level, fmt)
+#define ODM_RT_TRACE_F(pDM_Odm, comp, level, fmt)
+#define ODM_RT_ASSERT(pDM_Odm, expr, fmt)
+#define ODM_dbg_enter()
+#define ODM_dbg_exit()
+#define ODM_dbg_trace(str)
+#define ODM_PRINT_ADDR(pDM_Odm, comp, level, title_str, ptr)
+#endif
+
+
+VOID
+ODM_InitDebugSetting(
+ IN PDM_ODM_T pDM_Odm
+ );
+
+
+
+#if 0
+#if DBG
+#define DbgPrint printk
+
+#define PRINT_DATA(_TitleString, _HexData, _HexDataLen) \
+ { \
+ char *szTitle = _TitleString; \
+ pu1Byte pbtHexData = _HexData; \
+ u4Byte u4bHexDataLen = _HexDataLen; \
+ u4Byte __i; \
+ DbgPrint("%s", szTitle); \
+ for (__i=0;__i<u4bHexDataLen;__i++) \
+ { \
+ if ((__i & 15) == 0) \
+ { \
+ DbgPrint("\n"); \
+ } \
+ DbgPrint("%02X%s", pbtHexData[__i], ( ((__i&3)==3) ? " " : " ") ); \
+ } \
+ DbgPrint("\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) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
+ { \
+ int __i; \
+ pu1Byte ptr = (pu1Byte)_HexData; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ for( __i=0; __i<(int)_HexDataLen; __i++ ) \
+ { \
+ DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \
+ if (((__i + 1) % 16) == 0) DbgPrint("\n"); \
+ } \
+ DbgPrint("\n"); \
+ }
+
+#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr) \
+ if(((_Comp) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
+ { \
+ int __i; \
+ pu1Byte ptr = (pu1Byte)_Ptr; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint(" "); \
+ for( __i=0; __i<6; __i++ ) \
+ DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
+ DbgPrint("\n"); \
+ }
+
+#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum) \
+ if(((_Comp) & ODM_GlobalDebugComponents) && (_Level <= ODM_GlobalDebugLevel)) \
+ { \
+ int __i, __j; \
+ pu1Byte ptr = (pu1Byte)_Ptr; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint("\n"); \
+ for( __i=0; __i<(int)_AddNum; __i++ ) \
+ { \
+ for( __j=0; __j<6; __j++ ) \
+ DbgPrint("%02X%s", ptr[__i*6+__j], (__j==5)?"":"-"); \
+ DbgPrint("\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) & ODM_GlobalDebugComponents) && (_Level <= ODM_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'; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint(": %d, <%s>\n", _Len, buffer); \
+ }
+
+#else // of #if DBG
+#define DbgPrint(...)
+#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)
+#endif // of #if DBG
+
+#endif
+
+
+#if 0
+/* Define debug print header for every service module.*/
+typedef struct tag_ODM_DBGP_Service_Module_Header_Name_Structure
+{
+ const char *pMANS;
+ const char *pRTOS;
+ const char *pALM;
+ const char *pPEM;
+ const char *pCMPK;
+ const char *pRAPD;
+ const char *pTXPB;
+ const char *pQUMG;
+}ODM_DBGP_HEAD_T;
+
+
+/* Define different debug flag for dedicated service modules in debug flag array. */
+// Each module has independt 32 bit debug flag you cnn define the flag as yout require.
+typedef enum tag_ODM_DBGP_Flag_Type_Definition
+{
+ ODM_FTX = 0,
+ ODM_FRX ,
+ ODM_FPHY ,
+ ODM_FPWR ,
+ ODM_FDM ,
+ ODM_FC2H ,
+ ODM_FBT ,
+ ODM_DBGP_TYPE_MAX
+}ODM_DBGP_FLAG_E;
+
+
+// Define TX relative debug bit --> FTX
+#define ODM_TX_DESC BIT0
+#define ODM_TX_DESC_TID BIT1
+#define ODM_TX_PATH BIT2
+
+// Define RX relative debug bit --> FRX
+#define ODM_RX_DATA BIT0
+#define ODM_RX_PHY_STS BIT1
+#define ODM_RX_PHY_SS BIT2
+#define ODM_RX_PHY_SQ BIT3
+#define ODM_RX_PHY_ASTS BIT4
+#define ODM_RX_ERR_LEN BIT5
+#define ODM_RX_DEFRAG BIT6
+#define ODM_RX_ERR_RATE BIT7
+#define ODM_RX_PATH BIT8
+#define ODM_RX_BEACON BIT9
+
+// Define PHY-BB/RF/MAC check module bit --> FPHY
+#define ODM_PHY_BBR BIT0
+#define ODM_PHY_BBW BIT1
+#define ODM_PHY_RFR BIT2
+#define ODM_PHY_RFW BIT3
+#define ODM_PHY_MACR BIT4
+#define ODM_PHY_MACW BIT5
+#define ODM_PHY_ALLR BIT6
+#define ODM_PHY_ALLW BIT7
+#define ODM_PHY_TXPWR BIT8
+#define ODM_PHY_PWRDIFF BIT9
+#define ODM_PHY_SICR BIT10
+#define ODM_PHY_SICW BIT11
+
+
+
+
+extern u4Byte ODM_GlobalDebugLevel;
+
+
+#if DBG
+extern u8Byte ODM_GlobalDebugComponents;
+#endif
+#endif
+#if 0
+
+//-----------------------------------------------------------------------------
+// Define the debug levels
+//
+// 1. DBG_TRACE and DBG_LOUD are used for normal cases.
+// So that, they can help SW engineer to develope or trace states changed
+// and also help HW enginner to trace every operation to and from HW,
+// e.g IO, Tx, Rx.
+//
+// 2. DBG_WARNNING and DBG_SERIOUS are used for unusual or error cases,
+// which help us to debug SW or HW.
+//
+//-----------------------------------------------------------------------------
+//
+// Never used in a call to ODM_RT_TRACE(pDM_Odm,)!
+//
+#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_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_DFS BIT62
+
+#define COMP_ALL UINT64_C(0xFFFFFFFFFFFFFFFF) // All components
+// For debug print flag to use
+/*------------------------------Define structure----------------------------*/
+/* 2007/07/13 MH *//*------For DeBuG Print modeue------*/
+
+/* Defnie structure to store different debug flag variable. Every debug flag
+ is a UINT32 integer and you can assign 32 different events. */
+typedef struct tag_DBGP_Debug_Flag_Structure
+{
+ u4Byte Mans; /* Main Scheduler module. */
+ u4Byte Rtos; /* RTOS module. */
+ u4Byte Alarm; /* Alarm module. */
+ u4Byte Pm; /* Performance monitor module. */
+}DBGP_FLAG_T;
+
+/* Define debug print header for every service module.*/
+typedef struct tag_DBGP_Service_Module_Header_Name_Structure
+{
+ const char *pMANS;
+ const char *pRTOS;
+ const char *pALM;
+ const char *pPEM;
+ const char *pCMPK;
+ const char *pRAPD;
+ const char *pTXPB;
+ const char *pQUMG;
+}DBGP_HEAD_T;
+
+
+/* Define different debug flag for dedicated service modules in debug flag array. */
+// Each module has independt 32 bit debug flag you cnn define the flag as yout require.
+typedef enum tag_DBGP_Flag_Type_Definition
+{
+ FQoS = 0,
+ FTX = 1,
+ FRX = 2,
+ FSEC = 3,
+ FMGNT = 4,
+ FMLME = 5,
+ FRESOURCE = 6,
+ FBEACON = 7,
+ FISR = 8,
+ FPHY = 9,
+ FMP = 10,
+ FEEPROM = 11,
+ FPWR = 12,
+ FDM = 13,
+ FDBG_CTRL = 14,
+ FC2H = 15,
+ FBT = 16,
+ FINIT = 17,
+ FIOCTL = 18,
+ FSHORT_CUT = 19,
+ DBGP_TYPE_MAX
+}DBGP_FLAG_E;
+
+
+// Define Qos Relative debug flag bit --> FQoS
+#define QoS_INIT BIT0
+#define QoS_VISTA BIT1
+
+// Define TX relative debug bit --> FTX
+#define TX_DESC BIT0
+#define TX_DESC_TID BIT1
+#define TX_PATH BIT2
+
+// Define RX relative debug bit --> FRX
+#define RX_DATA BIT0
+#define RX_PHY_STS BIT1
+#define RX_PHY_SS BIT2
+#define RX_PHY_SQ BIT3
+#define RX_PHY_ASTS BIT4
+#define RX_ERR_LEN BIT5
+#define RX_DEFRAG BIT6
+#define RX_ERR_RATE BIT7
+#define RX_PATH BIT8
+#define RX_BEACON BIT9
+
+// Define Security relative debug bit --> FSEC
+
+// Define MGNT relative debug bit --> FMGNT
+
+// Define MLME relative debug bit --> FMLME
+#define MEDIA_STS BIT0
+#define LINK_STS BIT1
+
+// Define OS resource check module bit --> FRESOURCE
+#define OS_CHK BIT0
+
+// Define beacon content check module bit --> FBEACON
+#define BCN_SHOW BIT0
+#define BCN_PEER BIT1
+
+// Define ISR/IMR check module bit --> FISR
+#define ISR_CHK BIT0
+
+// Define PHY-BB/RF/MAC check module bit --> FPHY
+#define PHY_BBR BIT0
+#define PHY_BBW BIT1
+#define PHY_RFR BIT2
+#define PHY_RFW BIT3
+#define PHY_MACR BIT4
+#define PHY_MACW BIT5
+#define PHY_ALLR BIT6
+#define PHY_ALLW BIT7
+#define PHY_TXPWR BIT8
+#define PHY_PWRDIFF BIT9
+#define PHY_SICR BIT10
+#define PHY_SICW BIT11
+
+// Define MPT driver check module bit --> FMP
+#define MP_RX BIT0
+#define MP_SWICH_CH BIT1
+
+// Define EEPROM and EFUSE check module bit --> FEEPROM
+#define EEPROM_W BIT0
+#define EFUSE_PG BIT1
+#define EFUSE_READ_ALL BIT2
+#define EFUSE_ANALYSIS BIT3
+#define EFUSE_PG_DETAIL BIT4
+
+// Define power save check module bit --> FPWR
+#define LPS BIT0
+#define IPS BIT1
+#define PWRSW BIT2
+#define PWRHW BIT3
+#define PWRHAL BIT4
+
+// Define Dynamic Mechanism check module bit --> FDM
+#define WA_IOT BIT0
+#define DM_PWDB BIT1
+#define DM_Monitor BIT2
+#define DM_DIG BIT3
+#define DM_EDCA_Turbo BIT4
+#define DM_BT30 BIT5
+
+// Define Dbg Control module bit --> FDBG_CTRL
+#define DBG_CTRL_TRACE BIT0
+#define DBG_CTRL_INBAND_NOISE BIT1
+
+// Define FW C2H Cmd check module bit --> FC2H
+#define C2H_Summary BIT0
+#define C2H_PacketData BIT1
+#define C2H_ContentData BIT2
+// Define BT Cmd check module bit --> FBT
+#define BT_TRACE BIT0
+#define BT_RFPoll BIT1
+
+// Define init check for module bit --> FINIT
+#define INIT_EEPROM BIT0
+#define INIT_TxPower BIT1
+#define INIT_IQK BIT2
+#define INIT_RF BIT3
+
+// Define IOCTL Cmd check module bit --> FIOCTL
+// section 1 : IRP related
+#define IOCTL_IRP BIT0
+#define IOCTL_IRP_DETAIL BIT1
+#define IOCTL_IRP_STATISTICS BIT2
+#define IOCTL_IRP_HANDLE BIT3
+// section 2 : HCI command/event
+#define IOCTL_BT_HCICMD BIT8
+#define IOCTL_BT_HCICMD_DETAIL BIT9
+#define IOCTL_BT_HCICMD_EXT BIT10
+#define IOCTL_BT_EVENT BIT11
+#define IOCTL_BT_EVENT_DETAIL BIT12
+#define IOCTL_BT_EVENT_PERIODICAL BIT13
+// section 3 : BT tx/rx data and throughput
+#define IOCTL_BT_TX_ACLDATA BIT16
+#define IOCTL_BT_TX_ACLDATA_DETAIL BIT17
+#define IOCTL_BT_RX_ACLDATA BIT18
+#define IOCTL_BT_RX_ACLDATA_DETAIL BIT19
+#define IOCTL_BT_TP BIT20
+// section 4 : BT connection state machine.
+#define IOCTL_STATE BIT21
+#define IOCTL_BT_LOGO BIT22
+// section 5 : BT function trace
+#define IOCTL_CALLBACK_FUN BIT24
+#define IOCTL_PARSE_BT_PKT BIT25
+#define IOCTL_BT_TX_PKT BIT26
+#define IOCTL_BT_FLAG_MON BIT27
+
+//
+// Define init check for module bit --> FSHORT_CUT
+// 2011/07/20 MH Add for short but definition.
+//
+#define SHCUT_TX BIT0
+#define SHCUT_RX BIT1
+
+
+/* 2007/07/13 MH *//*------For DeBuG Print modeue------*/
+/*------------------------------Define structure----------------------------*/
+
+
+/*------------------------Export Marco Definition---------------------------*/
+#if (DM_ODM_SUPPORT_TYPE != ODM_MP)
+#define RT_PRINTK(fmt, args...) printk( "%s(): " fmt, __FUNCTION__, ## args);
+
+#if DBG
+#define ODM_RT_TRACE(pDM_Odm,comp, level, fmt) \
+ if(((comp) & GlobalDebugComponents) && (level <= GlobalDebugLevel)) \
+ { \
+ RT_PRINTK fmt; \
+ }
+
+#define RT_TRACE_F(comp, level, fmt) \
+ if(((comp) & GlobalDebugComponents) && (level <= GlobalDebugLevel)) \
+ { \
+ RT_PRINTK fmt; \
+ }
+
+#define RT_ASSERT(expr,fmt) \
+ if(!(expr)) { \
+ printk( "Assertion failed! %s at ......\n", #expr); \
+ printk( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
+ }
+#define dbg_enter() { printk("==> %s\n", __FUNCTION__); }
+#define dbg_exit() { printk("<== %s\n", __FUNCTION__); }
+#define dbg_trace(str) { printk("%s:%s\n", __FUNCTION__, str); }
+#else
+#define ODM_RT_TRACE(pDM_Odm,comp, level, fmt)
+#define RT_TRACE_F(comp, level, fmt)
+#define RT_ASSERT(expr, fmt)
+#define dbg_enter()
+#define dbg_exit()
+#define dbg_trace(str)
+#endif
+
+#if DBG
+#define DbgPrint printk
+
+#define PRINT_DATA(_TitleString, _HexData, _HexDataLen) \
+ { \
+ char *szTitle = _TitleString; \
+ pu1Byte pbtHexData = _HexData; \
+ u4Byte u4bHexDataLen = _HexDataLen; \
+ u4Byte __i; \
+ DbgPrint("%s", szTitle); \
+ for (__i=0;__i<u4bHexDataLen;__i++) \
+ { \
+ if ((__i & 15) == 0) \
+ { \
+ DbgPrint("\n"); \
+ } \
+ DbgPrint("%02X%s", pbtHexData[__i], ( ((__i&3)==3) ? " " : " ") ); \
+ } \
+ DbgPrint("\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; \
+ pu1Byte ptr = (pu1Byte)_HexData; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ for( __i=0; __i<(int)_HexDataLen; __i++ ) \
+ { \
+ DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \
+ if (((__i + 1) % 16) == 0) DbgPrint("\n"); \
+ } \
+ DbgPrint("\n"); \
+ }
+
+#define RT_PRINT_ADDR(_Comp, _Level, _TitleString, _Ptr) \
+ if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
+ { \
+ int __i; \
+ pu1Byte ptr = (pu1Byte)_Ptr; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint(" "); \
+ for( __i=0; __i<6; __i++ ) \
+ DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
+ DbgPrint("\n"); \
+ }
+
+#define RT_PRINT_ADDRS(_Comp, _Level, _TitleString, _Ptr, _AddNum) \
+ if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) \
+ { \
+ int __i, __j; \
+ pu1Byte ptr = (pu1Byte)_Ptr; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint("\n"); \
+ for( __i=0; __i<(int)_AddNum; __i++ ) \
+ { \
+ for( __j=0; __j<6; __j++ ) \
+ DbgPrint("%02X%s", ptr[__i*6+__j], (__j==5)?"":"-"); \
+ DbgPrint("\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'; \
+ DbgPrint("Rtl819x: "); \
+ DbgPrint(_TitleString); \
+ DbgPrint(": %d, <%s>\n", _Len, buffer); \
+ }
+
+#else // of #if DBG
+#define DbgPrint(...)
+#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)
+#endif // of #if DBG
+
+
+
+#endif // #if (DM_ODM_SUPPORT_TYPE != ODM_MP)
+
+#define DEBUG_PRINT 1
+
+// Please add new OS's print API by yourself
+
+//#if (RT_PLATFORM==PLATFORM_WINDOWS)
+#if (DEBUG_PRINT == 1) && DBG
+#define RTPRINT(dbgtype, dbgflag, printstr)\
+{\
+ if (DBGP_Type[dbgtype] & dbgflag)\
+ {\
+ DbgPrint printstr;\
+ }\
+}
+
+#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr)\
+{\
+ if (DBGP_Type[dbgtype] & dbgflag)\
+ {\
+ int __i; \
+ pu1Byte ptr = (pu1Byte)_Ptr; \
+ DbgPrint printstr; \
+ DbgPrint(" "); \
+ for( __i=0; __i<6; __i++ ) \
+ DbgPrint("%02X%s", ptr[__i], (__i==5)?"":"-"); \
+ DbgPrint("\n"); \
+ }\
+}
+
+#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen)\
+{\
+ if (DBGP_Type[dbgtype] & dbgflag)\
+ {\
+ int __i; \
+ pu1Byte ptr = (pu1Byte)_HexData; \
+ DbgPrint(_TitleString); \
+ for( __i=0; __i<(int)_HexDataLen; __i++ ) \
+ { \
+ DbgPrint("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" ");\
+ if (((__i + 1) % 16) == 0) DbgPrint("\n");\
+ } \
+ DbgPrint("\n"); \
+ }\
+}
+#define FuncEntry FunctionIn(COMP_FUNC)
+#define FuncExit FunctionOut(COMP_FUNC)
+
+#define FunctionIn(_comp) ODM_RT_TRACE(pDM_Odm,(_comp), DBG_LOUD, ("==========> %s\n", __FUNCTION__))
+#define FunctionOut(_comp) ODM_RT_TRACE(pDM_Odm,(_comp), DBG_LOUD, ("<========== %s\n", __FUNCTION__))
+
+
+#else
+
+#define DBGP(dbgtype, dbgflag, printstr)
+#define RTPRINT(dbgtype, dbgflag, printstr)
+#define RTPRINT_ADDR(dbgtype, dbgflag, printstr, _Ptr)
+#define RTPRINT_DATA(dbgtype, dbgflag, _TitleString, _HexData, _HexDataLen)
+#define FuncEntry
+#define FuncExit
+#define FunctionIn(_comp)
+#define FunctionOut(_comp)
+#endif
+/*------------------------Export Marco Definition---------------------------*/
+
+
+/*------------------------Export global variable----------------------------*/
+extern u4Byte DBGP_Type[DBGP_TYPE_MAX];
+extern DBGP_HEAD_T DBGP_Head;
+
+/*------------------------Export global variable----------------------------*/
+
+
+/*--------------------------Exported Function prototype---------------------*/
+extern void DBGP_Flag_Init(void);
+extern void DBG_PrintAllFlag(void);
+extern void DBG_PrintAllComp(void);
+extern void DBG_PrintFlagEvent(u1Byte DbgFlag);
+extern void DBG_DumpMem(const u1Byte DbgComp,
+ const u1Byte DbgLevel,
+ pu1Byte pMem,
+ u2Byte Len);
+
+/*--------------------------Exported Function prototype---------------------*/
+
+
+
+
+
+
+
+
+
+extern u4Byte GlobalDebugLevel;
+extern u8Byte GlobalDebugComponents;
+
+
+#endif
+
+
+#endif // __ODM_DBG_H__
+