Go to main content
Oracle® Solaris 11.3 デバイスドライバの記述

印刷ビューの終了

更新: 2016 年 11 月
 
 

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

フレームバッファーなどの一部のデバイスには、メモリーマッピングを介してユーザースレッドから直接アクセス可能なメモリーがあります。これらのデバイスのドライバは通常、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) をエントリポイントとして使用します。

詳細については、デバイスメモリーおよびカーネルメモリーのマッピングおよび デバイスコンテキスト管理を参照してください。