c - 为什么 last_rx 总是 0?

标签 c linux-kernel

我需要在 net_device 结构中获取字段 last_rxtrans_start 的值...但出于某种原因 dev->last_rx 始终为 0(trans_start 具有有效值)...这是为什么?是否有另一个字段提供此值?

这是一个片段

struct net_device *dev;
dev = first_net_device(&init_net);

while (dev)
{

        printk(KERN_ALERT "last received time is %li\n", dev->last_rx );
        printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start );
        dev = next_net_device(dev);
}

我正在使用 linux 内核 2.6.35 编写内核模块

最佳答案

我简单的补充了 dev->last_rx = jiffies; 它奏效了! :D

struct net_device *dev;
dev = first_net_device(&init_net);

while (dev)
{

        dev->last_rx = jiffies;
        printk(KERN_ALERT "last received time is %li\n", dev->last_rx );
        printk(KERN_ALERT "last transmit time is %li\n", dev->trans_start );
        dev = next_net_device(dev);
}

关于c - 为什么 last_rx 总是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156724/

相关文章:

c - 使用 mysql_stmt_prepare 时如何引用 char* 而不是使用 char[]

c - 初始化数组 - 警告 : assignment makes integer from pointer without a cast

c - 将一个变量的最低有效字节放入另一个变量

c - 强制创建的文件或文件夹具有特定的统计结构

c - 读取文件。如何将字符串放入字符数组?

c - linux 内核 list_head 与包含 list_head 的空条目

linux - CR3值和pgd_t的区别

linux-kernel - 如何删除/禁用 8250.o 模块并实现我自己的 8250 驱动程序

c - 为什么不能在内核中使用科学记数法

linux - Sync IO 在较新的 Linux 内核上慢得令人难以置信