- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
LINUX内核完全注释中
6.8 floppy.c 程序
122 }
123 printk (\010\010\010\010\010done \n);
124 ROOT_DEV=0x0101; // 修改 ROOT_DEV使其指向虚拟盘 ramdisk。
125 }
126
6.8 floppy.c 程序
6.8.1 功能描述
本程序是软盘控制器驱动程序。与其它块设备驱动程序一样,该程序也以请求项操作函数
do_fd_request()为主,执行对软盘上数据的读写操作。
考虑到软盘驱动器在不工作时马达通常不转,所以在实际能对驱动器中的软盘进行读写操作之前,
我们需要等待马达启动并达到正常的运行速度。与计算机的运行速度相比,这段时间较长,通常需要 0.5
秒左右的时间。
另外,当对一个磁盘的读写操作完毕,我们也需要让驱动器停止转动,以减少对磁盘表面的摩搽。
但我们也不能在对磁盘操作完后就立刻让它停止转动。因为,可能马上又需要对其进行读写操作。因此,
在一个驱动器没有操作后还是需要让驱动器空转一段时间,以等待可能到来的读写操作,若驱动器在一
个较长时间内都没有操作,则程序让它停止转动。这段维持旋转的时间可设定在大约 3 秒左右。
当一个磁盘的读写操作发生错误,或某些其它情况导致一个驱动器的马达没有被关闭。此时我们也
需要让系统在一定时间之后自动将其关闭。Linus 在程序中把这个延时值设定在 100 秒。
由此可见,在对软盘驱动器进行操作时会用到很多延时(定时)操作。因此在该驱动程序中涉及较
多的定时处理函数。还有几个与定时处理关系比较密切的函数被放在了kernel/sched.c 中(行201-262 )。
这是软盘驱动程序与硬盘驱动程序之间的最大区别,也是软盘驱动程序比硬盘驱动程序复杂的原因。
虽然本程序比较复杂,但对软盘读写操作的工作原理却与其它块设备是一样的。本程序也是使用请
求项和请求项链表结构来处理所有对软盘的读写操作。因此请求项操作函数 do_fd_request()仍然是本程
序中的重要函数之一。在阅读时应该以该函数为主线展开。另外,软盘控制器的使用比较复杂,其中涉
及到很多控制器的执行状态和标志。因此在阅读时,还需要频繁地参考程序后的有关说明以及本程序的
头文件 include/linux/fdreg.h 。该文件定义了所有软盘控制器参数常量,并说明了这些常量的含义。
6.8.2 代码注释
程序 6-6 linux/kernel/blk_drv/floppy.c
1 /*
2 * linux/kernel/floppy.c
3 *
4 * (C) 1991 Linus Torvalds
5 */
6
7 /*
8 * 02.12.91 - Changed to static variables to indicate need for reset
9 * and recalibrate. This makes some things easier (output_byte reset
10 * checking etc), and means less interrupt jumping in case of errors,
11 * so the code is hopefully easier to understand.
12 */
/*
- 212 -
6.8 floppy.c 程序
* 02.12.91 - 修改成静态变量,以适应复位和重新校正操作。这使得某些事情
* 做起来较为方便(output_by
您可能关注的文档
- IMS设备商产品地图与产品成熟度.pdf
- IMS网络继承固网增值业务流程及思路.pdf
- IMS系统测试暂行规定ims网络与软交换网络互通分册v11.pdf
- IMS软交换NGN网络融合和演进7固定移动融合与网络演进.pdf
- IMS软交换NGN网络融合和演进5基于软交换的ngn网络架构.pdf
- Infonetics2011超高速光模块分析报告.pdf
- ING2010年6月欧洲债券研究报告.pdf
- IOA历年考试真题ct1.pdf
- IOA历年考试真题ct2.pdf
- IMS试点路由组织及局数据设置原则.pdf
- 师缘主题课件最新完整版本.pptx
- 基于偏好MOEA_D算法的气发动机多目标优化标定研究.pdf
- 师范技能课件比赛一等奖最新完整版本.pptx
- 师范生初中美术说课课件最新完整版本.pptx
- 师范技能课件图片素材库最新完整版本.pptx
- Unit 2 Making a Difference Understanding ideas The Well that changed the world 教学设计-高中英语外研版(2019)必修第三册.docx
- 师范生技能大赛PPT课件语文最新完整版本.pptx
- 基于扭矩的双燃料发动机控制策略研究.pdf
- 1.2.1 等差数列的概念及其通项公式(教学设计)高二数学(北师大版2019选择性必修第二册).docx
- 师范文化课件最新完整版本.pptx
文档评论(0)