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

印刷ビューの終了

更新: 2014 年 9 月
 
 

メモリーマッピングされたデバイス用のエントリポイント

フレームバッファーなどの特定のデバイスでは、バイトストリーム入出力を行うよりも、デバイスメモリーへの直接アクセスをアプリケーションプログラムに許可したほうが効率的です。アプリケーションのアドレス空間にデバイスメモリーをマッピングするには、mmap(2) システムコールを使用します。メモリーマッピングをサポートするために、デバイスドライバは segmap(9E) およびdevmap (9E) エントリポイントを実装します。 devmap(9E) については、Chapter 10, Mapping Device and Kernel Memoryを参照してください。segmap (9E) については、Chapter 15, Drivers for Character Devicesを参照してください。

devmap(9E) エントリポイントを定義するドライバは通常、 read(9E) および write (9E) エントリポイントを定義しません。これは、アプリケーションプログラムが、mmap(2) の呼び出し後にデバイスに対して直接入出力を実行するからです。

次の表に、devmap フレームワークを使ってメモリーマッピングを実行する文字デバイスドライバで使用できる追加のエントリポイントを示します。その他のエントリポイントについては、Entry Points Common to All DriversおよびEntry Points for Character Device Driversを参照してください。

表 1-5  メモリーマッピングに devmap を使用する文字ドライバ用のエントリポイント
エントリポイント
用途
説明
必須
メモリーマッピングされたデバイスの仮想マッピングを検証し、変換します。追加情報: Exporting the Mapping
オプション
検証や保護に関する問題のあるマッピングに対してアクセスが行われたときにドライバに通知します。追加情報: devmap_access() Entry Point
必須
マッピングに対してデバイスコンテキストの切り替えを行います。追加情報: devmap_contextmgt() Entry Point
オプション
デバイスマッピングを複製します。追加情報: devmap_dup() Entry Point
オプション
デバイスマッピングを作成します。追加情報: devmap_map() Entry Point
オプション
デバイスマッピングを取り消します。追加情報: devmap_unmap() Entry Point