Il pr_*()
le funzioni sono le stesse del semplice printk()
, ma con KERN_xxx
livello di log già incluso.
Il dev_*()
le funzioni sono le stesse del corrispondente pr_*()
funzioni, ma stampa anche informazioni identificative sul struct device
.
Se il tuo messaggio è correlato a qualche dispositivo (come normalmente accade nei driver), dovresti usare dev_*()
.Ad esempio, in un driver 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");
o in un driver PCI:
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_*
le funzioni sono simili a pr_*
, ma stampa anche alcune informazioni sul dispositivo (struct device
), passato loro come primo argomento. Queste informazioni possono aiutare a filtrare il registro di sistema per i messaggi, appartenenti al dispositivo concreto.
Quindi, puoi usare dev_*
function invece di pr_*
ogni volta che il messaggio è applicabile a un dispositivo concreto (e ne hai il destritor).