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_* の代わりの関数 メッセージが具体的なデバイスに適用可能な場合 (およびそのデストリプタがある場合)。