分页: 1 / 1

内核编译init_timer失败

发表于 : 2020-02-17 20:56
maple_169324
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include<linux/jiffies.h>

struct second_dev{
struct cdev cdev;
atomic_t counter;
struct timer_list s_timer;
};

static struct second_dev *second_devp;

static int second_open(struct inode *ins_timerode,struct file *filep)
{
init_timer(&second_devp->s_timer);   #调用init_timer进行定时器初始化
second_devp->s_timer.function=&second_timer_handler;
second_devp->s_timer.expires=jiffies+HZ;
add_timer(&second_devp->s_timer);
atomic_set(&second_devp->counter,0);
return 0;
}

编译的时候出现如下错误:内核版本4.15.0-76-generic

error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
init_timer(&second_devp->s_timer);
^~~~~~~~~~
init_timers

Re: 内核编译init_timer失败

发表于 : 2020-02-18 12:48
astolia
在4.15内核里,init_timer被移除了。需要换用新的timer_setup接口
https://stackoverflow.com/a/53842823