Linux Kernel(2.6)の実装に関するメモ書き

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

最終更新 2006/07/25 19:18:36 - kztomita
(2006/07/25 19:18:36 作成)


リンク
最近更新したページ
検索