内核提供给驱动许多函数来声明, 注册, 以及去除内核定时器. 下列的引用展示了基本的 代码块:

#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相关推荐

  1. linux的头文件下载,Linux内核头文件(linux headers)

    更新 Linux 内核头文件(linux headers) 三 8th, 2013 2,474 views | 发表评论 | Trackback 一般来说,如果不是自己编译 kernel,那么更新头文 ...

  2. linux 内核头文件 linux kernel header

    1.内核头文件的发展历史         在 Linux 2.2/2.4 的纯真年代,内核头文件一直保持着 Unix 世界的"KISS"传统,只需将内核源码树中的头文件直接复制到 ...

  3. linux clock头文件,Linux common clock framework(1)_概述

    Linux common clock framework(1)_概述 作者:wowo 发布于:2014-10-20 23:06 分类:电源管理子系统 1. 前言 common clock framew ...

  4. linux msleep 头文件,Linux延迟函数

    从Linux应用层和内核两方面来区分下延迟函数: 1. 应用层 1> sleep usleep 微秒级 头文件为: 3> nanosleep 相比标准UNIX 的sleep 调用具有更高高 ...

  5. linux close 头文件,Linux open close read write lseek函数的使用

    我们经常需要在Linux中进行文件操作,今天我就来分享下文件操作用到的一些函数 1 open 所需头文件: 函数原型:int open(const char *pathname,flags,int p ...

  6. linux 链表头文件,Linux下单链表的实现

    该单链表在Linux系统GCC编译器下编码调试通过,初学者请多指教. makefile文件 main:main.o linklist.o gcc -o main main.o linklist.o m ...

  7. linux fread 头文件,Linux文件操作

    Linux中一切都是文件.如普通文件,目录,设备,管道等. 操作这些文件有两种方式,调用系统函数和使用标准I/O库. 一.调用系统函数 1.文件描述符:数值类型,表示打开的文件标识 程序运行时,会首先 ...

  8. linux默认头文件,Linux安装合适内核头文件的方法

    摘要 腾兴网为您分享:Linux安装合适内核头文件的方法,桌面时钟,中建在线,圆通金刚,西餐菜谱等软件知识,以及万象,我不信表情包,兔子洞,服你网,电商直播app,网络工具箱,ffu文件,电脑功率计算 ...

  9. linux abort 头文件,Linux编程—出错处理之assert,abort,exit,atexit,strerror

    Linux编程--出错处理之assert,abort,exit,atexit,strerror 1.assert() http://blog.chinaunix.net/u/16292/showart ...

  10. linux sockaddr_in头文件,linux网络编程常用头文件

    sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函 ...

最新文章

  1. 逃离伪PHP程序员应该做的事
  2. 微软企业库配置工具菜单Edit Enterprise Library V5 Configuration
  3. python3列表del 语句
  4. 基于curl的php多线程类(异步请求)
  5. .net html转为pdf,.NET使用DinkToPdf将HTML转成PDF的示例代码
  6. 如何正确地生成一个随机数
  7. P2168 [NOI2015] 荷马史诗(哈夫曼编码树)
  8. xshell最多支持4个_中集拉钢卷专用挂车来了!自重5吨,最多能装4个钢卷
  9. 自动驾驶面试题汇总(2022秋招题库)——持续更新
  10. java 打包 根目录_java – Maven在jar文件的根目录中打包图像
  11. 请求参数 统一 管理 java_Retrofit+Rxjava+okhttp基本操作和统一处理 – R...
  12. 致敬HarmonyOS不平凡的2020,热情背后还有多少期待
  13. [NOIP2015] 运输计划(第二弹)
  14. 二分搜索/查找(最大化or最小化问题)
  15. 十大验证码解决方案服务比较
  16. loadrunner icrosoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”
  17. 罗振宇跨年演讲4小时讲了啥?记住这4733字
  18. 基于AdaBoost算法的情感分析研究
  19. vue中使用threejs的一些问题,THREE上没有OrbitControls
  20. Lombok链式调用,子类对象set父类属性,返回父类对象

热门文章

  1. joda-time的使用
  2. Apache2.4.37+mysql5.7+PHP7.31最新版LAMP架构+Discuz论坛
  3. 你不知道的并发/继发请求操作
  4. java eden s0 s1_不是吧!做了两年java还没弄懂JVM堆?进来看看你就明白了
  5. 2018年工作年度总结(前端开发)
  6. sqlserver索引信息查看及重新生成组织索引
  7. mysql中什么是表?列?行?什么是主键和外键?什么是索引?为什么要使用索引?
  8. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 6月30日
  9. PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据,也可以换自己数据集
  10. mint linux使用教程,Linux:Linux Mint系统的安装