Linux驱动开发杂记(0x16) - 内核定时器接口各版本的变化

2.6.13 - 2.6.14

添加

#define DEFINE_TIMER(_name, _function, _expires, _data)

2.6.14 - 2.6.15

添加

static inline void setup_timer(struct timer_list * timer,
                              void (*function)(unsigned long),
                               unsigned long data)

3.6 - 3.7

void init_timer_key(struct timer_list *timer,
                   const char *name,
                   struct lock_class_key *key);
// 改为
void init_timer_key(struct timer_list *timer, unsigned int flags,
                   const char *name, struct lock_class_key *key);

删除setup_timer_key

4.1 - 4.2

修改

struct timer_list {
	......
	struct tvec_base *base;

	void (*function)(unsigned long);
	unsigned long data;

	int slack;
	......
};
//改为
struct timer_list {
	......
	void			(*function)(unsigned long);
	unsigned long		data;
	u32			flags;
	int			slack;
	......
};

4.7 - 4.8

  1. 删除struct timer_list {}中的
	int			slack;
  1. 添加TIMER_PINNED_INITIALIZER
  2. 添加init_timer_pinned

4.13 - 4.14

添加

static inline void timer_setup(struct timer_list *timer,
			       void (*callback)(struct timer_list *),
			       unsigned int flags)
from_timer(var, callback_timer, timer_fieldname)

4.14 - 4.15

修改

struct timer_list {
	......
	void			(*function)(unsigned long);
	unsigned long		data;
	u32			flags;
	......
};
//改为
struct timer_list {
	......
	void			(*function)(struct timer_list *);
	u32			flags;
	......
};
#define DEFINE_TIMER(_name, _function, _expires, _data)
//改为
#define DEFINE_TIMER(_name, _function) 
  1. 去除setup_timer函数,改为timer_setup(timer, callback, flags)
  2. 去除init_timer函数
void init_timer_key(struct timer_list *timer, unsigned int flags,
		    const char *name, struct lock_class_key *key);
// 改为
void init_timer_key(struct timer_list *timer,
	  void (*func)(struct timer_list *), unsigned int flags,
	  const char *name, struct lock_class_key *key);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值