Issue
From kernel headers netdevice.h
below.
I searched the source code for the implementation of netdev_info()
from the path of kernel/driver/net
and kernel/include
, but still nothing found. Where is it defined? Any idea?
// include/linux/netdevice.h
void netdev_info(const struct net_device *dev, const char *format, ...);
Solution
You won't find them so easily because those functions are defined through a macro in net/core/dev.c
#define define_netdev_printk_level(func, level) \
void func(const struct net_device *dev, const char *fmt, ...) \
{ \
struct va_format vaf; \
va_list args; \
\
va_start(args, fmt); \
\
vaf.fmt = fmt; \
vaf.va = &args; \
\
__netdev_printk(level, dev, &vaf); \
\
va_end(args); \
} \
EXPORT_SYMBOL(func);
define_netdev_printk_level(netdev_emerg, KERN_EMERG);
define_netdev_printk_level(netdev_alert, KERN_ALERT);
define_netdev_printk_level(netdev_crit, KERN_CRIT);
define_netdev_printk_level(netdev_err, KERN_ERR);
define_netdev_printk_level(netdev_warn, KERN_WARNING);
define_netdev_printk_level(netdev_notice, KERN_NOTICE);
define_netdev_printk_level(netdev_info, KERN_INFO);
Answered By - Marco Bonelli Answer Checked By - Robin (WPSolving Admin)