设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> Linux >> 详解Linux操作系统设备驱动兼容性
精品推荐
Linux点击TOP10
·Linux下安装LumaQQ
·口袋里的Linux:在您的U盘上运行SLAX
·Linux命令Man解释:PPPD(8) :点对点daemon协议
·虚拟网络计算工具VNC使用指南
·Linux系统中如何正确安装摄像头驱动
·Linux 内核文件系统与设备操作流程分析
·Linux 核心--4.内存管理
·Ethernet HOWTO Linux以太网-HOWTO (4)型号的信息
·Linux精彩桌面 GNOME桌面主题安装实例
·Linux下Flash/Shockwave播放器安装
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

详解Linux操作系统设备驱动兼容性

作者: 来源:http://www.xgdown.com/ 时间:2006-12-27 11:14:53

详解Linux操作系统设备驱动兼容性(2) MODULE_PARM(io, “1-” __MODULE_STRING(MAX_DEVICES) “i”);

  在前一行中,被“字符串化”的值与其他串接在一起构成目标文件中有意义的串。scull示例模块也用MODULE_PARM来声明它的参数(scull_major和其他整数变量)。这在Linux2.0上编译时可能会出问题,那里这个宏未定义。我选择的简单的修正是在sysdep-2.1.h中定义MODULE_PARM,这样在与2.0头文件编译时,它扩展为空语句。其它有意义的值可以象MODULE_AUTHOR()一样 存在模块的.modinfo一节,但它们目前没有使用。请参考以获得更多的信息。

  /proc/modules

  /proc/modules的格式在2.1.18中略有改变,而所有的模块化代码都被重写了。尽管这个改变并不影响源码,你可能对其细节不感兴趣,因为/proc/modules在模块开发时经常被检查。

  新格式和旧的一样是面向行的,每行包含下面的域:

  模块名:这个域与Linux2.0相同。

  模块大:小这是个十进制数,以字节为单位(而不是内存页)报告长度。这个模块的使用计数如果模块没有使用计数,这个计数报告-1。这是和新的模块化代码一道引入的新特征;你可以写一个模块,它的去除可以有一个函数控制而不是使用计数。这个函数判断模块是否能够被卸载。例如,ipv6模块就使用这个特征。

  可选标志
  标志是文本串,每个都由括号包含,并由空格分隔。参考本模块的模块列表。这个列表整体被包含在方括号内,表中的单个名字由空格隔开。

  下面是/proc/modules在2.1.43中的可能内容:

  

morgana% cat /proc/modules
       ipv6                 57164   -1
       netlink                3180    0  [ipv6]
       floppy                45960   1   (autoclean)
       floppy                45960   1   (autoclean)
       monitor                 516   0   (unused)

  在这个屏幕快照中,ipv6没有使用计数,并依赖于netlink;floppy已经被kerneld加载,由“autoclean”标志给出,monitor是我的一个小工具,控制一些状态灯,并在系统终止时关掉我的计算机。如你所看到的,它是“unused”,我并不关心它的使用计数。

  文件操作

  有几个文件操作在2.1里与2.0有不同的原型。这主要是出于处理大小不能放入32位的文件的需要。其不同由头文件sysdep-2.1.h处理,它根据使用的核心版本定义了几个伪类型。文件操作中引入的仅有的显著创新是poll方法,它用完全不同的实现代替了select方法。

  原型的不同

  四个文件操作表征一个新的原型;它们是:

  

long long (*llseek) (strUCt inode *, struct file *, long long, int);

共9页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [98 :>

详解Linux操作系统设备驱动兼容性 相关文章:
详解Linux操作系统设备驱动兼容性 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com