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

印刷ビューの終了

更新: 2014 年 9 月
 
 

デバイスメモリーのマッピング

フレームバッファーなどの一部のデバイスには、メモリーマッピングを介してユーザースレッドから直接アクセス可能なメモリーがあります。これらのデバイスのドライバは通常、 read(9E) インタフェースや write (9E) インタフェースをサポートしていません。代わりに、これらのドライバは、devmap (9E) エントリポイントによるメモリーマッピングをサポートしています。たとえば、フレームバッファードライバは、ユーザースレッドでフレームバッファーをマップできるようにするために devmap (9E) エントリポイントを実装することがあります。

devmap(9E) エントリポイントは、デバイスメモリーまたはカーネルメモリーをユーザーアプリケーションにエクスポートするために呼び出されます。devmap() 関数は、segmap(9E) の内部にある devmap_setup(9F) から、または ddi_devmap_segmap(9F) に代わって呼び出されます。

segmap(9E) エントリポイントは、mmap(2) システムコールからリクエストされたメモリーマッピングを設定する役割を担います。多くのメモリーマップドデバイスに対応するドライバは、独自の segmap(9E) ルーチンを定義する代わりに、ddi_devmap_segmap(9F) をエントリポイントとして使用します。

詳細については、Chapter 10, Mapping Device and Kernel Memoryおよび Chapter 11, Device Context Managementを参照してください。