El pr_*()
las funciones son las mismas que las simples printk()
, pero con el KERN_xxx
nivel de registro ya incluido.
El dev_*()
las funciones son las mismas que las pr_*()
correspondientes funciones, sino también imprimir información de identificación sobre el struct device
.
Si su mensaje está relacionado con algún dispositivo (que suele ser el caso de los controladores), debe usar dev_*()
.Por ejemplo, en un controlador 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 en un controlador PCI:
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_*
las funciones son similares a pr_*
, pero también imprime información sobre el dispositivo (struct device
), se les pasa como primer argumento. Esta información puede ayudar a filtrar el registro del sistema para mensajes pertenecientes a dispositivos concretos.
Entonces, puedes usar dev_*
función en lugar de pr_*
siempre que el mensaje sea aplicable a un dispositivo concreto (y tenga un destripador).