IDEディスク
Rev.1を表示中。最新版はこちら。
IDE HardDisk(/dev/hdx)
I/O要求の処理
do_ide_request()
Requestの実行 (q->request_fnに登録されている)
ide_do_request() elv_next_request() - 実行するRequestをElevatorから取得 start_request() DRIVER(drive)->do_request() - (Diskの場合、ide_do_rw_disk()) __ide_do_rw_disk() DiskにRead/Writeを実行
I/O要求の完了
ide_end_request()
I/O完了時のハンドラ
Read時は read_intr()から呼ばれる。
end_that_request_first(rq, uptodate, nr_sectors)if (Requestに対するアクセスが全て完了したなら) {
blkdev_dequeue_request(rq)
end_that_request_last(rq)
__blk_put_request(req->q, req)
:
elv_completed_request()
:
}
割り込みハンドラ
ide_intr()
割り込みハンドラ
hwgroup->handlerに登録されていたコールバックを呼び出す。
(read_intr(),write_intr()等が登録される。)
ide_do_request() - 次のRequestがあれば処理させる