文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>14.从2.0到2.2的变化

14.从2.0到2.2的变化

时间:2006-09-17  来源:pgpxc

从2.0到2.2的变化

     我对内核的了解并不很完全所以我也无法写出所有的变化。在修改代码(更确切的说,是采用Emmanuel Papirakis的修改)时,我遇到了以下的这些修改。我将它们都列出来以方便模块编写者们,特别是学习该档案先前版本并熟悉我提到的这些技巧(但已经更换到新版本的)的那些人。

更多的这方面的参考资料在 Richard Gooch's的站点上.

asm/uaccess.h

如果你要使用 put_user 或 get_user 你就需要 #include 它。

get_user

在2.2版本中, get_user 同时接收用户内存的指针和用来设置信息的内核内存中变量的内存指针。变化的原因是因为当我们读取的变量是二或四个字节长的时候, get_user 也可以读取二或四个字节长的变量。

file_operations 改结构体现在有了一个可以在 open 和 close 之间进行的刷新操作函数 flush 。 在 file_operations 中的 close.在2.2版本中,close 返回整形值,所以可以检测是否失败。在 file_operations 中的 read,write,这些函数的头文件改变了。它们现在返回 ssize_t 而不是整形值,并且它们的参数表也变了。inode 不再是一个参数,文件中的偏移量也一样。 proc_register_dynamic 该函数已经不复存在。你应该使用用0作为inode参数的 proc_register 函数来替代它。 Signals 在 task 结构体中的 signals 不再是一个32位整形变量,而是一个为 _NSIG_WORDS 整形的数组。 queue_task_irq 即使你想在中断处理内部调度一个任务,你也应该使用 queue_task 而不是queue_task_irq 。 模块参数 你不必在将模块参数声明为全局变量。在2.2中,使用 MODULE_PARM 去声明模块参数。这是一个进步,这样就允许模块接受以数字开头的参数名而不会被弄糊涂。 对称多线程 内核本省已不再是一个 spinlock,意味着你的模块也应该考虑SMP的问题。
相关阅读 更多 +
排行榜 更多 +
拼优汇

拼优汇

购物比价 下载
4Read小说

4Read小说

浏览阅读 下载
摩托GP特技

摩托GP特技

体育竞技 下载