*参照元 [#e8ed485c]
#backlinks

*説明 [#p863dd85]
-パス: [[linux-4.4.1/include/linux/printk.h]]

-pr_info() などのフォーマット引数を(必要ならば加工して)返すマクロ。
--pr_info() などの出力にヘッダをつけるなど、区別しやすくするために使う。
--各 *.c の先頭で定義し、その後、linux/printk.h をインクルードする。
--linux/printk.h の実装は、未定義エラーが出ないようにするためのデフォルト実装。


使い方のイメージは下記の通り。

 #define pr_fmt(fmt)    "Header: " fmt
 
 #include <linux/printk.h>
 
 ...
 
 void some_func()
 {
         pr_info("hoge.\n");
 }

pr_fmt を上記の例のように定義したとき、出力は、

 Header: hoge.

となる。

pr_fmt が未定義のとき、フォーマット引数は加工されないので、
出力は、

 hoge.

となる。

もしどうしても linux/printk.h のインクルードを先に行いたいなら、#undef する方法もある。

 #include <linux/printk.h>
 
 ...
 
 #ifdef pr_fmt
 #undef pr_fmt
 #endif
 #define pr_fmt(fmt)    "Header: " fmt


**引数 [#l805b4da]
-fmt
--printk のフォーマット引数。


**返り値 [#kbaf497b]
-const char * など
--フォーマット引数。


**参考 [#o0cb1b2c]

pr_fmt() の影響を受けるマクロ達。

-[[linux-4.4.1/pr_emerg()]]
-[[linux-4.4.1/pr_alert()]]
-[[linux-4.4.1/pr_crit()]]
-[[linux-4.4.1/pr_err()]]
-[[linux-4.4.1/pr_warning()]]
-[[linux-4.4.1/pr_warn()]]
-[[linux-4.4.1/pr_notice()]]
-[[linux-4.4.1/pr_info()]]


*実装 [#cab6f26f]
 #ifndef pr_fmt
 #define pr_fmt(fmt) fmt
 #endif
-特に定義されていなければ、引数 fmt をそのまま返す。


*コメント [#b8a9bb14]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS