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).