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があれば処理させる