Le pr_*() les fonctions sont les mêmes que le simple printk() , mais avec le KERN_xxx niveau de journalisation déjà inclus.
Le dev_*() les fonctions sont les mêmes que le pr_*() correspondant fonctions, mais aussi imprimer des informations d'identification sur le struct device .
Si votre message est lié à un périphérique (ce qui est normalement le cas dans les pilotes), vous devez utiliser dev_*() .Par exemple, dans un pilote 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");
ou dans un pilote PCI :
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_* les fonctions sont similaires à pr_* , mais également imprimer des informations sur l'appareil (struct device ), leur est passé comme premier argument. Ces informations peuvent aider à filtrer le journal système pour les messages appartenant à un appareil concret.
Ainsi, vous pouvez utiliser dev_* fonction au lieu de pr_* chaque fois que le message s'applique à un appareil concret (et que vous en avez un destripteur).