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

印刷ビューの終了

更新: 2014 年 9 月
 
 

デバイスとホストのエンディアンの違いの管理

ホストのデータ形式は、デバイスのデータ形式とは異なるエンディアン特性を備えている可能性があります。そのような場合、ホストとデバイスとの間で転送されるデータをバイトスワップすることで、転送先のデータ形式の要件に合わせる必要があります。ホストと同じエンディアン特性を備えたデバイスでは、データのバイトスワップを行う必要はありません。

ドライバでデバイスのエンディアン特性を指定するには、ddi_regs_map_setup(9F) に渡される ddi_device_acc_attr(9S) 構造体の対応するフラグを設定します。そうした場合、ドライバが ddi_get8(9F) などの ddi_getX ルーチンや ddi_put16(9F) などの ddi_putX ルーチンを呼び出してデバイスメモリーに対する読み書きを行うときに、DDI フレームワークによって必要なバイトスワップがすべて実行されます。