分类: LINUX
2013-04-11 16:08:53
/*
* Macros to help debugging
*/
#undef PDEBUG /* undef it, just in case */
#ifdef SCULL_DEBUG
# ifdef __KERNEL__
/* This one if debugging is on, and kernel space */
# define PDEBUG(fmt, args...) printk( KERN_DEBUG "scull: " fmt, ## args)
# else
/* This one for user space */
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
# endif
#else
# define PDEBUG(fmt, args...) /* not debugging: nothing */
#endif
解释:不管是否定义了PDEBUG,取消对PDEBUG定义,以防重复。
如果定义了SCULL_DEBUG,则开启调试功能,否则PDEBUG什么事情不做。
如果定义了__KERNEL__,表明处于内核空间,需要调用printk进行调试信息打印,否则在用户控件,调用fprintf将调试信息打印到stderr中。