まずはドライバの追加した機能を見ていきましょう(diffを参照)。 ioctlを利用するにはその名もズバリioctl(2)というシステムコールが用意されており、 それをアプリケーションから使います。ioctlのmanページを見ると、デバイスを制御する ということしか書いてなくあっさりとしているのは、ドライバごとに独自な機能が用意 されているため、ioctlを使って何ができるかはドライバの機能を調べないと分からない からです。 ドライバのioctlはmii_ioctl()に実装されています。変数cmdには、アプリケーション からioctl(2)の第2引数(request)で指定したコマンド種別が入っています。ここでは、 SIOCDEVPRIVATEコマンドに処理を追加しました。PCIデバイスのレジスタアクセスを行う ために、device構造体からベースアドレスレジスタを取得しておきます(