打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
8.3.1 init timer

《深入Linux设备驱动程序内核机制》第8章时间管理,本章将讨论这两类时间上的操作的技术细节,设备驱动程序员在掌握了这些幕后的技术之后可以更好地理解设备驱动是如何对时间进行掌控的,当程序中需要对时间进行管理时选择最合适的解决方案。本节为大家介绍init_timer。

AD:

8.3.1  init_timer

在前面的示例代码中,demo_dev_open函数在对定时器对象demo_timer的expires、data和function成员赋值前,调用了init_timer函数(内核源码中以宏定义的形式出现)。init_timer函数内部会调用__init_timer,其定义如下(去除了struct timer_list中一些调试相关成员的代码):

  1. <kernel/timer.c> 
  2. static void __init_timer(struct timer_list *timer,  
  3.              const char *name,  
  4.              struct lock_class_key *key)  
  5. {  
  6.     timer->entry.next = NULL;  
  7.     timer->base = __raw_get_cpu_var(tvec_bases);  
  8.     timer->slack = -1;  
  9. }  

可见init_timer函数主要初始化定时器对象中与内核实现相关的成员,所以设备驱动程序在开始使用定时器对象前,应该调用init_timer,这样从内核层面出发,后续对定时器的一些操作才会被内核所支持,下面在讨论add_timer函数时会看到这一点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
uClinux设备驱动程序的设计与编写
linux内核定时器
18. 时钟管理
Linux内核开发之中断与时钟
内核定时器
解析Linux内核的基本的模块管理与时间管理操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服