dev_err() 函数定义

dev_err() function definition

我可以看到 dev_*() 函数族如 dev_err()include/linux/device.h 中作为原型给出,但我找不到它的定义。我访问过像 lxr.free-electrons 这样的网站,但没有成功。在 linux 内核的源代码中使用了标签,即使那样也失败了。

我想知道的是 dev_err(const struct device *dev, const char *fmt, ...) 如何通过将 const struct device *dev 作为参数在日志中打印来获取设备信息,例如 pci 总线等。

设备的描述在函数 create_syslog_header 中构建,定义在 drivers/base/core.c 中。该函数只是从 struct device 对象中提取一些字段,并通过 snprintf() 将它们发送到字符串中。

函数dev_err是通过同一文件(drivers/base/core.c)中的define_dev_printk_level宏实现的。