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 件のコメント:
コメントを投稿