cmdk(7d)
ata(7d)
割り込みハンドラ - デバイスドライバの記述
cmdkread, cmdkwrite ターゲットドライバ(cmdk) |
cmdkrw |
physio |
cmdkstrategy |
biowait ←セマフォを獲得する |
sema_p |
dadk_strategy Direct Attached Disk |
dadk_pkt |
dadk_transport |
ata_disk_transport HBAドライバ(ata) |
ghd_transport |
ata_hba_start |
ata_pciide_dma_start |
↓コマンド書き込み |
デバイス処理 |
↓デバイス割り込み |
ata_intr |
ghd_intr |
(*statfunc)(handle, intr_status) -> ata_get_status |
(*processfunc)(handle, intr_status) -> ata_process_intr |
ghd_complete |
ghd_waitq_delete |
ddi_trigger_softintr |
↓ソフトウェア割り込み |
ghd_doneq_process |
(*cccp->ccc_hba_complete) -> ata_hba_complete |
(*ata_pktp->ap_complete) -> ata_disk_complete |
(*pktp->cp_callback) -> dadk_pktcb |
dadk_iodone |
biodone() |
sema_v() |
処理完了がターゲットドライバ層まで返ってるところが見つからない。
0 件のコメント:
コメントを投稿