注册 登录
自由的生活_软路由 返回首页

心想事成的个人空间 https://bbs.routerclub.com/?681 [收藏] [复制] [分享] [RSS]

日志

定时器

已有 698 次阅读2011-5-15 21:32 |个人分类:内核|

#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/kthread.h>
#include <asm/param.h>
#include <linux/timer.h>

void domywork(unsigned long i){
printk(KERN_ALERT "************do do do!*************\n");
}

static struct timer_list mylist;

static int hello_init(void)
{
printk(KERN_ALERT "**************task start******************\n");
init_timer(&mylist);
mylist.expires = jiffies + 2*HZ;
mylist.data = 0;
mylist.function = domywork;
add_timer(&mylist);

return 0;
}

static void hello_exit(void)
{
printk(KERN_ALERT "****************task end*******************\n");
del_timer(&mylist);
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Lichie");

/**********************************/

注意:当一个定时器函数即将要被运行前,内核会把相应的定时器从内核链表中删除。如果删除的时候,struct timer_list变量不能找到会造成死机!


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-16 04:09 , Processed in 0.052217 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

返回顶部