time_after函数和msecs_to_jiffies函数详解
时间: 2024-03-10 15:46:14 浏览: 130
time_after函数和msecs_to_jiffies函数是Linux内核中常用的两个时间处理函数,具体如下:
1. time_after函数:
time_after函数用于判断当前时间是否在指定时间之后,其函数原型如下:
```
static inline bool time_after(unsigned long a, unsigned long b)
{
return ((long)(b - a) < 0);
}
```
其中,参数a和b是表示时间的无符号长整型数,它们通常是由jiffies或get_jiffies_64等函数返回的值。返回值是一个bool类型的值,表示当前时间是否在指定时间之后。
2. msecs_to_jiffies函数:
msecs_to_jiffies函数用于将毫秒数转换为jiffies数,其函数原型如下:
```
#define msecs_to_jiffies(msec) \
(jiffies + msecs_to_ticks(msec))
```
其中,参数msec是毫秒数,返回值是一个jiffies数。
msecs_to_ticks函数是一个宏定义,用于将毫秒数转换为系统节拍数(ticks),其函数原型如下:
```
#define msecs_to_ticks(m) \
(((unsigned long long)(m) * HZ) / 1000)
```
其中,HZ是系统节拍频率,通常为100,表示每秒钟有100个系统节拍。返回值是一个无符号长整型数,表示转换后的系统节拍数。
这两个函数在内核中被广泛使用,特别是在定时器、延时等场景中经常用到。
阅读全文