Linux内核:定义内部调用'jiffies'的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内核:定义内部调用'jiffies'的函数相关的知识,希望对你有一定的参考价值。
在Linux内核中,我得到了定义tcp_time_stamp_jiffies
,它在启动时只定义了一次:
#define tcp_time_stamp_jiffies ((__u32)(jiffies))
但是每次调用tcp_time_stamp_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
", tcp_time_stamp_jiffies);
.....
}
期望调用myread的每个函数,它在第一次/ boot时显示tcp_time_stamp_jiffies
值。相反,它显示每个被调用的增量数,总是不同的。
答案
宏(#define
)是文本替换。
每次你编写tcp_time_stamp_jiffies
时,编译器都会用((__u32)(jiffies))
替换它。它每次都会读取jiffies
的值。
以上是关于Linux内核:定义内部调用'jiffies'的函数的主要内容,如果未能解决你的问题,请参考以下文章