在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
的值。而是显示每次调用的递增号码,总是不同。
答案 0 :(得分:0)
宏(#define
)是文本替换。
每次编写tcp_time_stamp_jiffies
时,编译器都会将其替换为((__u32)(jiffies))
。每次都会读取jiffies
的值。