USB マウス・クライアント・デバイス・ドライバー
目的
Universal Serial Bus (USB) マウス・デバイスをサポートします。
構文
#include <sys/usbdi.h>説明
USB マウス・クライアント・デバイス・ドライバーは、USB システム・ドライバー (USBD) とインターフェースするバックエンドと、 AIX® アプリケーション (X サーバー・アプリケーションなど) とインターフェースするフロントエンドで構成されています。 クライアント・ドライバーは、基礎となる USB アダプター・ハードウェアを認識していません。 代わりに、クライアント・ドライバーは USBD を介して USB マウスに制御要求を送信し、USBD を介して入力イベントを受信します。 USB マウス・クライアント・ドライバーは、複数の USB マウス・デバイスの接続をサポートします。 各デバイスは、オブジェクト・データ・マネージャー (ODM) に列挙され、使用可能のマークが付けられます。 クライアント・ドライバーは、すべてのマウス・デバイスを単一の論理デバイスとして扱います。 すべてのデバイスからの入力イベントは、単一の入力リングに送信されます。
USB マウス・デバイスごとにデバイス・スペシャル・ファイルが作成されます。 使用可能のマークが付けられた USB マウス・デバイスが少なくとも 1 つ存在するようになるまで、クライアント・ドライバーはマイナー番号の指定を無視するため、アプリケーション (通常は X サーバー・アプリケーション) は USB マウス・スペシャル・ファイルのいずれか 1 つを開くことができます。 オープン操作後に追加および構成された USB マウス・デバイスは、オープン・セットに自動的に追加されます。 デバイス・スペシャル・ファイル (例えば、 /dev/mouse0、 /dev/mouse1など) は、USB マウス・デバイスごとに作成されます。
グラフィックス・サブシステムの厳密な構成と順序付けの規則により、マウスに対する特別な処理が USBD 構成方式によって提供されます。 USB ホスト・コントローラーおよびグラフィックス・アダプターに使用可能のマークが付けられていて、既存のマウスが存在しない場合、USBD は少なくとも 1 つの USB マウス・インスタンスが定義されていることを確認します。 USB マウス・クライアント・ドライバーは、システムに USB マウスが接続されていない場合でも、 USBD_OPEN_DEVICE_EXT ioctl 操作を使用して、有効なハンドルを生成するデバイスを開きます。 EAGAIN エラー・コードは、マウス・デバイスがなく、クライアント・ドライバーがデバイスを切断済みとして扱う場合に、 USBD_OPEN_DEVICE_EXT 操作によって返されます。 USB マウスを接続すると、USBD によってマウス・クライアントに対して再接続コールバック操作が行われ、入力イベントが X サーバー・アプリケーションに送信されるようにデバイスが初期化されます。
USB マウス操作には、以下の入力デバイス・ドライバー ioctl 操作が使用されます。
| 操作 | 説明 |
|---|---|
| IOCINFO | デバイスを記述する devinfo 構造体を返します。この構造体は、 sys/devinfo.h ヘッダー・ファイルに定義されています。 構造体の最初のフィールド (devtype) は DD_INPUTに設定され、構造体の残りのフィールドはゼロに設定されます。 |
| MQUERYID (M) | マウス・デバイス ID を照会します。 |
| MREGRING (再試行) | 入力リングを登録します。 |
| MREGRINGEXT (再応答) | 拡張入力リングを登録します。 |
| ムルフラッシュ | 入力リングをフラッシュします。 |
| Mしきい値 | マウス・レポートのしきい値を設定します。 |
| M解像度 | マウス解像度を設定します。 |
| MSCALE | マウスのスケール係数を設定します。 |
| MSAMPLERATE (サンプル) | マウス・サンプル・レートを設定します。 |