当前位置:网站首页>printk学习之(三):你还在用printk吗?

printk学习之(三):你还在用printk吗?

2022-06-10 09:02:00 Andy Pines

1.printk的继任者pr_xxx系列函数

前面两节我们介绍了printk的基本原理和printk在驱动调试中的用法,现在我们看一下printk的继任者,pr_xxx系列函数

可以看到,如果没有定义pr_fmt(fmt),那么pr_fmt(fmt)就是fmt,这样的话pr_xxx系列函数仅仅是一个printk的简单封装

但是精髓在于可以自己定义pr_fmt(fmt),让我们封装成自己的打印函数,方便调试

... ...
#ifndef pr_fmt
#define pr_fmt(fmt) fmt
#endif

/*
 * These can be used to print at the various log levels.
 * All of these will print unconditionally, although note that pr_debug()
 * and other debug macros are compiled out unless either DEBUG is defined
 * or CONFIG_DYNAMIC_DEBUG is set.
 */
#define pr_emerg(fmt, ...) \
    printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
#define pr_alert(fmt, ...) \
    printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
#define pr_crit(fmt, ...) \
    printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
#define pr_err(fmt, ...) \
    printk(KERN_ERR pr_fmt(fmt), ##__
原网站

版权声明
本文为[Andy Pines]所创,转载请带上原文链接,感谢
https://blog.csdn.net/liaojunwu/article/details/106881910