Der pr_*()
Funktionen sind dieselben wie beim einfachen printk()
, aber mit dem KERN_xxx
Loglevel bereits enthalten.
Die dev_*()
Funktionen sind die gleichen wie die entsprechenden pr_*()
Funktionen, sondern auch identifizierende Informationen über struct device
drucken .
Wenn sich Ihre Nachricht auf ein Gerät bezieht (was normalerweise bei Treibern der Fall ist), sollten Sie dev_*()
verwenden .Zum Beispiel in einem USB-Treiber:
struct usb_device *usb_dev;
dev_info(&usb_dev->dev, "hello\n");
struct usb_interface *usb_intf;
dev_info(&usb_intf->dev, "hello\n");
oder in einem PCI-Treiber:
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_*
Funktionen sind ähnlich wie pr_*
, sondern gibt auch einige Informationen über das Gerät aus (struct device
), als erstes Argument an sie übergeben. Diese Informationen können helfen, das Systemprotokoll nach Nachrichten zu filtern, die zu einem bestimmten Gerät gehören.
Sie können also dev_*
verwenden Funktion anstelle von pr_*
wann immer die Nachricht auf ein konkretes Gerät anwendbar ist (und Sie einen Detriptor davon haben).