Linux内核:定义内部调用“ jiffies”的功能

时间:2019-04-10 02:15:03

标签: c kernel

在Linux内核中,我得到了定义tcp_time_stamp_jiffies,该定义在启动时仅定义了一次:

#define tcp_time_stamp_jiffies         ((__u32)(jiffies))

但是每次在方法,循环或事件中调用tcp_time_stamp_jiffies时,值都在更改..并递增。定义不是只用值jiffies定义1,而值jiffies在启动时只有1个值,那么该值应该一次又一次地使用,而不是一次又一次地调用jiffies?

尝试添加自定义模块/驱动程序,该模块/驱动程序在首次启动时需要值tcp_time_stamp jiffies

#include <linux/proc_fs.h>
#include <net/tcp.h>

#define tcp_time_stamp_jiffies          ((__u32)(jiffies))

static ssize_t myread(struct file *file, char __user *ubuf,size_t count, loff_t *ppos) 
{
....
printk(KERN_ALERT "tcp_time_stamp_jiffies value : %u\n", tcp_time_stamp_jiffies);
.....
}

预期将调用myread的每个函数,它在第一次/引导时显示tcp_time_stamp_jiffies的值。而是显示每次调用的递增号码,总是不同。

1 个答案:

答案 0 :(得分:0)

宏(#define)是文本替换。

每次编写tcp_time_stamp_jiffies时,编译器都会将其替换为((__u32)(jiffies))。每次都会读取jiffies的值。