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

印刷ビューの終了

更新: 2014 年 9 月
 
 

代替のデバイスアクセスインタフェース

Oracle Solaris OS には、ddi_get8(9F) and ddi_put8(9F) インタフェースファミリ経由ですべてのデバイスアクセスを実装する方法だけでなく、特定のバス実装に固有のインタフェースも用意されています。これらの関数は一部のプラットフォームで効率が高くなる可能性もありますが、これらのルーチンを使用すると、デバイスのさまざまなバスバージョンでのドライバの移植性が低下する可能性があります。

メモリー空間アクセス

メモリーマップアクセスでは、デバイスレジスタがメモリーアドレス空間に現れます。ddi_getX および ddi_putX ルーチンファミリが、標準のデバイスアクセスインタフェースの代替手段としてドライバから使用可能となっています。

入出力空間アクセス

入出力空間アクセスでは、デバイスレジスタが入出力空間に現れます。このとき、アドレス指定可能な各要素は入出力ポートと呼ばれます。ddi_io_get8(9F) および ddi_io_put8(9F) ルーチンが、標準のデバイスアクセスインタフェースの代替手段としてドライバから使用可能となっています。

PCI 構成空間アクセス

通常のデバイスアクセスインタフェースを使用しないで PCI 構成空間にアクセスするには、ドライバ内で、PCI 構成空間をマップするために、ddi_regs_map_setup(9F) の代わりに pci_config_setup(9F) を呼び出す必要があります。その後ドライバ内で、pci_config_get8(9F) および pci_config_put8(9F) インタフェースファミリを呼び出して PCI 構成空間にアクセスできます。