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