黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 操作系统 >> LINIX UNIX >> 文章正文
[推荐]内核操作 Linux2.6内核驱动移植参考
        ★★★★★
内核操作 Linux2.6内核驱动移植参考
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-5-6

 

 17、内核时间变化

  1、现在的各个平台的HZ为

  Alpha: 1024/1200; ARM: 100/128/200/1000; CRIS: 100; i386: 1000; IA-64:

  1024; M68K: 100; M68K-nommu: 50-1000; MIPS: 100/128/1000; MIPS64: 100;

  PA-RISC: 100/1000; PowerPC32: 100; PowerPC64: 1000; S/390: 100; SPARC32:

  100; SPARC64: 100; SuperH: 100/1000; UML: 100; v850: 24-100; x86-64: 1000.

  2、由于HZ的变化,原来的jiffies计数器很快就溢出了,引入了新的计数器jiffies_64

  3、#include <linux/jiffies.h>

  u64 my_time = get_jiffies_64();

  4、新的时间结构增加了纳秒成员变量

  struct timespec current_kernel_time(void);

  5、他的timer函数没变,新增

  void add_timer_on(struct timer_list *timer, int cpu);

  6、新增纳秒级延时函数

  ndelay();

  7、POSIX clocks 参考kernel/posix-timers.c

  18、工作队列(workqueue)

  1、任务队列(task queue )接口函数都被取消,新增了workqueue接口函数

  struct workqueue_struct *create_workqueue(const char *name);

  DECLARE_WORK(name, void (*function)(void *), void *data);

  INIT_WORK(struct work_struct *work,

  void (*function)(void *), void *data);

  PREPARE_WORK(struct work_struct *work,

  void (*function)(void *), void *data);

  2、申明struct work_struct结构

  int queue_work(struct workqueue_struct *queue,

  struct work_struct *work);

  int queue_delayed_work(struct workqueue_struct *queue,

  struct work_struct *work,

  unsigned long delay);

  int cancel_delayed_work(struct work_struct *work);

  void flush_workqueue(struct workqueue_struct *queue);

  void destroy_workqueue(struct workqueue_struct *queue);

  int schedule_work(struct work_struct *work);

  int schedule_delayed_work(struct work_struct *work, unsigned long

  delay);

上一页  [1] [2] [3] [4] [5] 

文章录入:liult    责任编辑:liult 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886