USB Mouse Client Device Driver
Finalità
Supporta il dispositivo del mouse USB (Universal Serial Bus).
Sintassi
#include <sys/usbdi.h>Descrizione
Il driver di periferica client del mouse USB è costituito da un backend che si interfaccia con il driver di sistema USB (USBD) e un front-end che si interfaccia con un'applicazione AIX® come l'applicazione server X. Il driver client non ha alcuna conoscenza dell'hardware dell'adattatore USB sottostante. Il driver client invia invece le richieste di controllo al mouse USB tramite USBD e riceve gli eventi di input tramite USBD. Il driver client di mouse USB supporta l'attaccamento di più dispositivi di mouse USB. Ogni dispositivo viene enumerato in Object Data Manager (ODM) e contrassegnato come disponibile. Il driver client tratta tutti i dispositivi del mouse come un unico dispositivo logico. Gli eventi di input da tutti i dispositivi vengono inviati ad un singolo anello di input.
Viene creato un file speciale del dispositivo per ogni dispositivo di mouse USB. Fino a quando non c'è almeno un dispositivo di mouse USB contrassegnato, un'applicazione (tipicamente l'applicazione server X) può aprire uno qualsiasi dei file speciali del mouse USB perché il driver client ignora la specifica del numero minore. Un dispositivo di mouse USB aggiunto e configurato dopo l'apertura dell'operazione viene aggiunto automaticamente all'aperto. I file speciali della periferica (ad esempio, /dev/mouse0, /dev/mouse1e così via) vengono creati per ogni periferica mouse USB.
Il trattamento speciale per il mouse viene fornito dal metodo di configurazione USBD a causa delle rigide regole di configurazione e ordinamento del sottosistema grafico. Quando un controller host USB e un adattatore grafico sono contrassegnati, e non è presente alcun mouse esistente, USBD garantisce che sia definita almeno un'istanza del mouse USB. Il driver client mouse USB utilizza l'operazione USBD_OPEN_DEVICE_EXT ioctl per aprire la periferica che genera una maniglia valida anche quando non è presente alcun mouse USB collegato al sistema. Il codice di errore EAGAIN viene restituito dall'operazione USBD_OPEN_DEVICE_EXT se non esiste alcuna periferica mouse e il driver del client considera la periferica come disconnessa. Quando si spina in un mouse USB, viene effettuata un'operazione di back back di riconnessa al client del mouse da parte dell'USBD e il dispositivo viene inizializzato per gli eventi di input da confluire all'applicazione server X.
Le seguenti operazioni ioctl del driver di periferica di immissione vengono utilizzate per le operazioni del mouse USB:
| Operazione | Descrizione |
|---|---|
| IOCINFO | Restituisce una struttura devinfo , definita nel file di intestazione sys/devinfo.h , che descrive la periferica. Il primo campo della struttura (devtype) è impostato su DD_INPUT; il resto della struttura è impostato a zero. |
| MQUERYID | Query identificativo del dispositivo del mouse. |
| MREGRING | Registra anello di input. |
| MREGRINGEXT | Registra anello di input esteso. |
| MRFLUSH | Svuotate l'anello di input. |
| MSOGLIA | Imposta la soglia di notifica del mouse. |
| MRISOLUZIONE | Imposta la risoluzione del mouse. |
| MSCALE | Imposta il fattore di scala del mouse. |
| MSAMPLERATE | Imposta la frequenza di esempio del mouse. |