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

印刷ビューの終了

更新: 2014 年 9 月
 
 

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

ドライバは通常、attach(9E) の実行中にデバイスのすべての領域をマップします。ドライバ内でデバイスメモリーの 1 つの領域をマップするには、そのマップする領域のレジスタ番号、領域のデバイスアクセス属性、オフセット、およびサイズを指定して ddi_regs_map_setup(9F) を呼び出します。DDI フレームワークは、そのデバイス領域のマッピングを設定し、不透明なハンドルをドライバに返します。このデータアクセスハンドルは、デバイスのその領域からデータを読み取ったりその領域にデータを書き込んだりする際に、ddi_get8(9F) または ddi_put8(9F) ルーチンファミリの引数として渡されます。

ドライバは、デバイスマッピングの形式がドライバで求められる形式と一致しているかどうかを確認するために、デバイスからエクスポートされたマッピングの数をチェックします。ドライバは、ddi_dev_nregs(9F) を呼び出したあと、各マッピングのサイズを確認するために ddi_dev_regsize(9F) を呼び出します。