debug.h revision 26634c4b1868323f49f8cd24c3493b57819867fd
10c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/****************************************************************************** 20c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 3a8d760668eebc98915383481cb3d9eaf74c2a615Larry Finger * Copyright(c) 2009-2012 Realtek Corporation. 40c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 50c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Tmis program is free software; you can redistribute it and/or modify it 60c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * under the terms of version 2 of the GNU General Public License as 70c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * published by the Free Software Foundation. 80c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 90c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Tmis program is distributed in the hope that it will be useful, but WITHOUT 100c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 110c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 120c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * more details. 130c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 140c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * You should have received a copy of the GNU General Public License along with 150c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * tmis program; if not, write to the Free Software Foundation, Inc., 160c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 170c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 180c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Tme full GNU General Public License is included in this distribution in the 190c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * file called LICENSE. 200c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 210c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Contact Information: 220c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * wlanfae <wlanfae@realtek.com> 230c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 240c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Hsinchu 300, Taiwan. 250c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 260c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Larry Finger <Larry.Finger@lwfinger.net> 270c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *****************************************************************************/ 280c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 290c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#ifndef __RTL_DEBUG_H__ 300c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define __RTL_DEBUG_H__ 310c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 320c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 330c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Debug level 340c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 350c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 360c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Fatal bug. 370c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Tx/Rx/IO locked up, 380c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *memory access violation, 390c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *resource allocation failed, 400c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *unexpected HW behavior, HW BUG 410c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *and so on. 420c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 430c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_EMERG 0 440c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 450c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 460c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Abnormal, rare, or unexpeted cases. 470c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Packet/IO Ctl canceled, 480c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *device suprisely unremoved and so on. 490c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 500c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_WARNING 2 510c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 520c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 530c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case driver developer should 540c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *open, we can see link status like 550c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *assoc/AddBA/DHCP/adapter start and 560c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *so on basic and useful infromations. 570c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 580c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_DMESG 3 590c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 600c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 610c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case with useful information 620c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *about current SW or HW state. 630c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Tx/Rx descriptor to fill, 640c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Tx/Rx descriptor completed status, 650c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *SW protocol state change, dynamic 660c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *mechanism state change and so on. 670c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 680c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_LOUD 4 690c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 700c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 710c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case with detail execution 720c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *flow or information. 730c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 740c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_TRACE 5 750c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 760c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 770c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Define the rt_trace components 780c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 790c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_ERR BIT(0) 800c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_FW BIT(1) 810c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_INIT BIT(2) /*For init/deinit */ 820c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RECV BIT(3) /*For Rx. */ 830c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SEND BIT(4) /*For Tx. */ 840c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_MLME BIT(5) /*For MLME. */ 850c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SCAN BIT(6) /*For Scan. */ 860c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_INTR BIT(7) /*For interrupt Related. */ 870c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_LED BIT(8) /*For LED. */ 880c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SEC BIT(9) /*For sec. */ 890c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_BEACON BIT(10) /*For beacon. */ 900c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RATE BIT(11) /*For rate. */ 910c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RXDESC BIT(12) /*For rx desc. */ 920c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_DIG BIT(13) /*For DIG */ 930c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_TXAGC BIT(14) /*For Tx power */ 940c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_HIPWR BIT(15) /*For High Power Mechanism */ 950c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_POWER BIT(16) /*For lps/ips/aspm. */ 960c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_POWER_TRACKING BIT(17) /*For TX POWER TRACKING */ 970c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_BB_POWERSAVING BIT(18) 980c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SWAS BIT(19) /*For SW Antenna Switch */ 990c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RF BIT(20) /*For RF. */ 1000c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_TURBO BIT(21) /*For EDCA TURBO. */ 1010c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RATR BIT(22) 1020c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_CMD BIT(23) 1030c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_EFUSE BIT(24) 1040c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_QOS BIT(25) 1050c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_MAC80211 BIT(26) 1060c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_REGD BIT(27) 1070c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_CHAN BIT(28) 10862e63975f47fcc0ebcaca04669098fe3ca7b20a2Larry Finger#define COMP_USB BIT(29) 109a29059359dea80065559cd4d56149cbe10350cf9Larry Finger#define COMP_EASY_CONCURRENT COMP_USB /* reuse of this bit is OK */ 110a29059359dea80065559cd4d56149cbe10350cf9Larry Finger#define COMP_BT_COEXIST BIT(30) 1110c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1120c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 1130c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Define the rt_print components 1140c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 1150c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define EEPROM and EFUSE check module bit*/ 1160c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define EEPROM_W BIT(0) 1170c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define EFUSE_PG BIT(1) 1180c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define EFUSE_READ_ALL BIT(2) 1190c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1200c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define init check for module bit*/ 1210c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_EEPROM BIT(0) 1220c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_TxPower BIT(1) 1230c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_IQK BIT(2) 1240c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_RF BIT(3) 1250c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1260c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define PHY-BB/RF/MAC check module bit */ 1270c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_BBR BIT(0) 1280c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_BBW BIT(1) 1290c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_RFR BIT(2) 1300c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_RFW BIT(3) 1310c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_MACR BIT(4) 1320c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_MACW BIT(5) 1330c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_ALLR BIT(6) 1340c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_ALLW BIT(7) 1350c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_TXPWR BIT(8) 1360c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_PWRDIFF BIT(9) 1370c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 13826634c4b1868323f49f8cd24c3493b57819867fdLarry Finger/* Define Dynamic Mechanism check module bit --> FDM */ 13926634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define WA_IOT BIT(0) 14026634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_PWDB BIT(1) 14126634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_MONITOR BIT(2) 14226634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_DIG BIT(3) 14326634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_EDCA_TURBO BIT(4) 14426634c4b1868323f49f8cd24c3493b57819867fdLarry Finger 1450c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Fingerenum dbgp_flag_e { 1460c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FQOS = 0, 1470c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FTX = 1, 1480c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FRX = 2, 1490c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FSEC = 3, 1500c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMGNT = 4, 1510c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMLME = 5, 1520c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FRESOURCE = 6, 1530c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FBEACON = 7, 1540c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FISR = 8, 1550c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FPHY = 9, 1560c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMP = 10, 1570c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FEEPROM = 11, 1580c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FPWR = 12, 1590c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FDM = 13, 1600c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FDBGCtrl = 14, 1610c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FC2H = 15, 1620c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FBT = 16, 1630c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FINIT = 17, 1640c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FIOCTL = 18, 1650c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger DBGP_TYPE_MAX 1660c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger}; 1670c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 168481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#ifdef CONFIG_RTLWIFI_DEBUG 169481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 1709d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches#define RT_ASSERT(_exp, fmt, ...) \ 171884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 172884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (!(_exp)) { \ 1739d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ":%s(): " fmt, \ 1749d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches __func__, ##__VA_ARGS__); \ 175884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 176884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 177884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 178f30d7507a8116e2099a9135c873411db8c0a3dc6Joe Perches#define RT_TRACE(rtlpriv, comp, level, fmt, ...) \ 179884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 180884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) && \ 181884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches ((level) <= rtlpriv->dbg.global_debuglevel))) { \ 182f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ":%s():<%lx-%x> " fmt, \ 183f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches __func__, in_interrupt(), in_atomic(), \ 184f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches ##__VA_ARGS__); \ 185884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 186884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 187884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 1884c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...) \ 189884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 190884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) { \ 1914c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ": " fmt, \ 1924c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches ##__VA_ARGS__); \ 193884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 194884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 195884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 196884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata, \ 197884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches _hexdatalen) \ 198884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 199884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) && \ 200884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches (_level <= rtlpriv->dbg.global_debuglevel))) { \ 201af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches printk(KERN_DEBUG "%s: In process \"%s\" (pid %i): %s\n", \ 202af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches KBUILD_MODNAME, current->comm, current->pid, \ 203af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches _titlestring); \ 204884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches print_hex_dump_bytes("", DUMP_PREFIX_NONE, \ 205884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches _hexdata, _hexdatalen); \ 206884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 207884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 2080c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 209481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#else 210481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 211481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstruct rtl_priv; 212481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 213481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(2, 3) 214481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_ASSERT(int exp, const char *fmt, ...) 215481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 216481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 217481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 218481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(4, 5) 219481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_TRACE(struct rtl_priv *rtlpriv, 220481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int comp, int level, 221481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *fmt, ...) 222481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 223481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 224481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 225481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(4, 5) 226481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RTPRINT(struct rtl_priv *rtlpriv, 227481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int dbgtype, int dbgflag, 228481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *fmt, ...) 229481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 230481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 231481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 232481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv, 233481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int comp, int level, 234481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *titlestring, 235481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const void *hexdata, size_t hexdatalen) 236481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 237481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 238481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 239481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#endif 240481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 2410c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Fingervoid rtl_dbgp_flag_init(struct ieee80211_hw *hw); 2420c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#endif 243