支持异步IO的Linux字符设备驱动程序(2)

2 延迟执行IO操作

驱动程序发现设备资源可用时,应该及时处理待处理的异步IO请求。比如说,如果成功写入了一些字节,有数据可供读取了,则可以处理队列中的异步读取请求。同样地,如果成功读取了一些字节,有空闲空间容纳数据了,则可以处理队列中的异步写入请求。执行排队待处理的异步IO请求的代码为:

支持异步IO的Linux字符设备驱动程序

l 第一部分:从队列中取出一个异步IO请求

l 第二部分:处理异步IO请求

l 第三部分:更新IO请求状态。如果已经传输完成所有请求的字节,或者发生错误,则调用aio_complete通知用户进程IO操作已经完成。这个函数由内核代码提供。

l 第四部分:与第一节第六部分的代码功能相同。同样地,在这里处理其他待处理的IO请求是不合适的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfgxw.html