linux-0.01 の hd.c
なんとなくイメージできてきた。
一連の流れ
- rw_hd() 手続きは public な i/f である模様
- ここから rw_abs_hd() 手続きが呼ばれる
- rw_abs_hd() 手続きは add_request() を kickoff する
- 戻ってきて wait_on_buffer() 手続きで待合せ?
- add_request() は引数な hd_request をキューイング
- do_request() はキューの先頭を hd_out に渡す
- hd_out() はディスクコントローラなレジスタに情報を出力して、割り込みから do_hd を呼び出す
- do_hd に格納される read_intr とか write_intr は処理が完了したら do_request() を呼び出す
- キューの操作とか待合せからの復帰なども行なう
とりあえず
ひら方面の対応をナニ