IDEディスク
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があれば処理させる
