日期:2014-05-16  浏览次数:20750 次

求高手驱动程序调试printk的使用问题??
今天在看DM9000网卡驱动程序时候,有下面一段驱动调试代码··看不懂啊··
#define dm9000_dbg(db, lev, msg...) do { \
if ((lev) < CONFIG_DM9000_DEBUGLEVEL && \
(lev) < db->debug_level) { \
dev_dbg(db->dev, msg); \
} \
} while (0)

------解决方案--------------------
很明显啊,这是分级别打印debug语句呀。lev如果小于CONFIG_DM9000_DEBUGLEVEL 宏,并且小于db->debug_level,那就打印。lev应该是用户当前设定的debug级别吧?
------解决方案--------------------
对啊!你看看lev是如何取值的。while(0)的目的是只执行一次