Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

サードパーティー DMA 転送の実行

ドライバは、サードパーティー DMA に関する次の手順を実行します。

  1. DMA チャネルを割り当てます。

  2. ddi_dmae_getattr(9F) を使用してシステムの DMA エンジンの属性を取得します。

  3. DMA オブジェクトをメモリー内にロックします。physio (9F) またはddi_umem_lock (9F) のマニュアルページを参照してください。

  4. DMA リソースをオブジェクトに割り当てます。

  5. ddi_dmae_prog(9F) を使用して、転送を行うようにシステムの DMA エンジンをプログラミングします。

  6. 必要なオブジェクト同期があれば、それを行います。

  7. ddi_dmae_stop (9F) を使用して DMA エンジンを停止します。

  8. DMA リソースを解放します。

  9. DMA チャネルを解放します。

ハードウェアプラットフォームの中には、バス固有の方法で DMA 機能を制限しているものもあります。ドライバは ddi_slaveonly(9F) を使用して、DMA を使用できるスロット内にデバイスがあるかどうかを確認します。