pr_*()
関数はプレーンな printk()
と同じです 、しかし KERN_xxx
ログ レベルは既に含まれています。
dev_*()
関数は対応する pr_*()
と同じです 関数だけでなく、 struct device
に関する識別情報も出力します .
メッセージが何らかのデバイスに関連している場合 (通常はドライバーの場合)、dev_*()
を使用する必要があります。 .たとえば、USB ドライバーでは:
struct usb_device *usb_dev;
dev_info(&usb_dev->dev, "hello\n");
struct usb_interface *usb_intf;
dev_info(&usb_intf->dev, "hello\n");
または PCI ドライバーで:
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_*
関数は pr_*
に似ています だけでなく、デバイスに関する情報も出力します(struct device
)、最初の引数として渡されます。この情報は、具体的なデバイスに属するメッセージのシステム ログをフィルタリングするのに役立つ場合があります。
したがって、 dev_*
を使用できます pr_*
の代わりの関数 メッセージが具体的なデバイスに適用可能な場合 (およびそのデストリプタがある場合)。