linux 定时器头文件,linux 定时器 API
内核提供给驱动许多函数来声明, 注册, 以及去除内核定时器. 下列的引用展示了基本的 代码块:
#include struct timer_list
{
/* ... */
unsigned long expires;
void (*function)(unsigned long); unsigned long data;
};
void init_timer(struct timer_list *timer);
struct timer_list TIMER_INITIALIZER(_function, _expires, _data);
void add_timer(struct timer_list * timer); int del_timer(struct timer_list * timer);
这个数据结构包含比曾展示过的更多的字段, 但是这 3 个是打算从定时器代码自身以外 被存取的. 这个 expires 字段表示定时器期望运行的 jiffies 值; 在那个时间, 这个 function 函数被调用使用 data 作为一个参数. 如果你需要在参数中传递多项, 你可以 捆绑它们作为一个单个数据结构并且传递一个转换为 unsiged long 的指针, 在所有支持 的体系上的一个安全做法并且在内存管理中相当普遍( 如同 15 章中讨论的 ). expires 值不是一个 jiffies_64 项因为定时器不被期望在将来很久到时, 并且 64-位操作在 32- 位平台上慢.
这个结构必须在使用前初始化. 这个步骤保证所有的成员被正确建立, 包括那些对调用者 不透明的. 初始化可以通过调用 init_timer 或者 安排 TIMER_INITIALIZER 给一个静态 结构, 根据你的需要. 在初始化后, 你可以改变 3 个公共成员在调用 add_timer 前. 为 在到时前禁止一个已注册的定时器, 调用 del_timer.
jit 模块包括一个例子文件, /proc/jitimer ( 为 "just in timer"), 它返回一个头文 件行以及 6 个数据行. 这些数据行表示当前代码运行的环境; 第一个由读文件操作产生 并且其他的由定时器. 下列的输出在编译内核时被记录:
phon% cat /proc/jitimer
time delta inirq pid cpu command 33565837 0 0 1269 0 cat
33565847
10
1
1271
0
sh
33565857
10
1
1273
0
cpp0
33565867
10
1
1273
0
cpp0
33565877
10
1
1274
0
cc1
33565887
10
1
1274
0
cc1
在这个输出, time 字段是代码运行时的 jiffies 值, delta 是自前一行的 jiffies 改 变值, inirq 是由 in_interrupt 返回的布尔值, pid 和 command 指的是当前进程, 以 及 cpu 是在使用的 CPU 的数目( 在单处理器系统上一直为 0).
linux 定时器头文件,linux 定时器 API相关推荐
- linux的头文件下载,Linux内核头文件(linux headers)
更新 Linux 内核头文件(linux headers) 三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文 ...
- linux 内核头文件 linux kernel header
1.内核头文件的发展历史 在 Linux 2.2/2.4 的纯真年代,内核头文件一直保持着 Unix 世界的"KISS"传统,只需将内核源码树中的头文件直接复制到 ...
- linux clock头文件,Linux common clock framework(1)_概述
Linux common clock framework(1)_概述 作者:wowo 发布于:2014-10-20 23:06 分类:电源管理子系统 1. 前言 common clock framew ...
- linux msleep 头文件,Linux延迟函数
从Linux应用层和内核两方面来区分下延迟函数: 1. 应用层 1> sleep usleep 微秒级 头文件为: 3> nanosleep 相比标准UNIX 的sleep 调用具有更高高 ...
- linux close 头文件,Linux open close read write lseek函数的使用
我们经常需要在Linux中进行文件操作,今天我就来分享下文件操作用到的一些函数 1 open 所需头文件: 函数原型:int open(const char *pathname,flags,int p ...
- linux 链表头文件,Linux下单链表的实现
该单链表在Linux系统GCC编译器下编码调试通过,初学者请多指教. makefile文件 main:main.o linklist.o gcc -o main main.o linklist.o m ...
- linux fread 头文件,Linux文件操作
Linux中一切都是文件.如普通文件,目录,设备,管道等. 操作这些文件有两种方式,调用系统函数和使用标准I/O库. 一.调用系统函数 1.文件描述符:数值类型,表示打开的文件标识 程序运行时,会首先 ...
- linux默认头文件,Linux安装合适内核头文件的方法
摘要 腾兴网为您分享:Linux安装合适内核头文件的方法,桌面时钟,中建在线,圆通金刚,西餐菜谱等软件知识,以及万象,我不信表情包,兔子洞,服你网,电商直播app,网络工具箱,ffu文件,电脑功率计算 ...
- linux abort 头文件,Linux编程—出错处理之assert,abort,exit,atexit,strerror
Linux编程--出错处理之assert,abort,exit,atexit,strerror 1.assert() http://blog.chinaunix.net/u/16292/showart ...
- linux sockaddr_in头文件,linux网络编程常用头文件
sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函 ...
最新文章
- 逃离伪PHP程序员应该做的事
- 微软企业库配置工具菜单Edit Enterprise Library V5 Configuration
- python3列表del 语句
- 基于curl的php多线程类(异步请求)
- .net html转为pdf,.NET使用DinkToPdf将HTML转成PDF的示例代码
- 如何正确地生成一个随机数
- P2168 [NOI2015] 荷马史诗(哈夫曼编码树)
- xshell最多支持4个_中集拉钢卷专用挂车来了!自重5吨,最多能装4个钢卷
- 自动驾驶面试题汇总(2022秋招题库)——持续更新
- java 打包 根目录_java – Maven在jar文件的根目录中打包图像
- 请求参数 统一 管理 java_Retrofit+Rxjava+okhttp基本操作和统一处理 – R...
- 致敬HarmonyOS不平凡的2020,热情背后还有多少期待
- [NOIP2015] 运输计划(第二弹)
- 二分搜索/查找(最大化or最小化问题)
- 十大验证码解决方案服务比较
- loadrunner icrosoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”
- 罗振宇跨年演讲4小时讲了啥?记住这4733字
- 基于AdaBoost算法的情感分析研究
- vue中使用threejs的一些问题,THREE上没有OrbitControls
- Lombok链式调用,子类对象set父类属性,返回父类对象
热门文章
- joda-time的使用
- Apache2.4.37+mysql5.7+PHP7.31最新版LAMP架构+Discuz论坛
- 你不知道的并发/继发请求操作
- java eden s0 s1_不是吧!做了两年java还没弄懂JVM堆?进来看看你就明白了
- 2018年工作年度总结(前端开发)
- sqlserver索引信息查看及重新生成组织索引
- mysql中什么是表?列?行?什么是主键和外键?什么是索引?为什么要使用索引?
- 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 6月30日
- PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据,也可以换自己数据集
- mint linux使用教程,Linux:Linux Mint系统的安装