インテルのみ表示可能 — GUID: xps1626228133035
Ixiasoft
4.1. ポートリスト
4.2. クロック
4.3. リセット
4.4. マルチ・チャネルDMA
4.5. バーストAvalon Master (BAM) インターフェイズ
4.6. バースト Avalon-MM スレーブ (BAS) インターフェイス
4.7. Config Slaveのインターフェイス (RP のみ)
4.8. ハードIPリコンフィグレーション・インターフェイス
4.9. Config TLのインターフェイス
4.10. Configuration Interceptのインターフェイス (EP のみ)
4.11. ユーザーのFunctional Level Reset (FLR)
4.12. ユーザー イベント MSI-X 要求インターフェイス
4.13. データ・ムーバー・インターフェイス
4.14. ハードIPステータス・インターフェイス
8.1.6.1. ifc_api_start
8.1.6.2. ifc_mcdma_port_by_name
8.1.6.3. ifc_qdma_device_get
8.1.6.4. ifc_num_channels_get
8.1.6.5. ifc_qdma_channel_get
8.1.6.6. ifc_qdma_acquire_channels
8.1.6.7. ifc_qdma_release_all_channels
8.1.6.8. ifc_qdma_device_put
8.1.6.9. ifc_qdma_channel_put
8.1.6.10. ifc_qdma_completion_poll
8.1.6.11. ifc_qdma_request_start
8.1.6.12. ifc_qdma_request_prepare
8.1.6.13. ifc_qdma_descq_queue_batch_load
8.1.6.14. ifc_qdma_request_submit
8.1.6.15. ifc_qdma_pio_read32
8.1.6.16. ifc_qdma_pio_write32
8.1.6.17. ifc_qdma_pio_read64
8.1.6.18. ifc_qdma_pio_write64
8.1.6.19. ifc_qdma_pio_read128
8.1.6.20. ifc_qdma_pio_write128
8.1.6.21. ifc_qdma_pio_read256
8.1.6.22. ifc_qdma_pio_write256
8.1.6.23. ifc_request_malloc
8.1.6.24. ifc_request_free
8.1.6.25. ifc_app_stop
8.1.6.26. ifc_qdma_poll_init
8.1.6.27. ifc_qdma_poll_add
8.1.6.28. ifc_qdma_poll_wait
8.1.6.29. ifc_mcdma_port_by_name
インテルのみ表示可能 — GUID: xps1626228133035
Ixiasoft
8.3.3.3. 完了管理
カーネルモジュールは、ディスクリプター・プロセス完了表示の 2 つのモードをサポートします。これは、ハードウェアのサポートによるものです。
- これらのモードの両方で、完了した要求カウンターをドライバーからアプリケーションに渡すために eventfds が使用されます。
- eventfds は、制御メッセージを使用してユーザー・アプリケーションからカーネルドライバーに渡されます。
- 制御メッセージ: eventfds、ファイルサイズ (ファイルごとの #descriptors)、およびキューごとのペイロードサイズの詳細を含む構造体です。
- read/write システムコールによる転送開始前にユーザー・アプリケーションから渡される。
- 制御メッセージと DMA 要求を区別するには、前者を示すために、読み出し/書き込みシステムコール引数でサイズをゼロに設定する必要がある。
- アプリケーションは、eventfdに対する読み出し操作を使用して、完了した要求の数を取得します。
図 45. 完全なデザインフロー
両方のモード:
- 関連付けられたディスクリプター・キューのコンテキストを更新すると、キューに関連付けられたアプリケーションの eventfd の 64 ビットカウンターも増加します。
- アプリケーションは、eventfd で読み出し操作を使用して、最近完了した要求の数を受け取ります。
Interrupt Mode:
- 要求が完了すると、MCDMA IP は MSI-X 信号を生成します。
- この割り込み信号は、ドライバーの割り込みハンドラーを呼び出します。
- 上の図では、Interrupt Modeドのステップ 1 と 2 が非同期で発生します。
Poll Mode:
- アプリケーションは、ポーリング・ファイル操作を使用してチャネルをポーリングします。
- カーネルドライバーの ifc_device_poll 関数は、チャネルの両方のキューをポーリングし、キューのステータスに応じてフラグ POLLIN、POLLOUT および/または POLLRDNORM、POLLWRNORM を返します。