USB 鼠标客户机设备驱动程序
用途
支持通用串行总线 (USB) 鼠标设备。
语法
#include <sys/usbdi.h>描述
USB 鼠标客户机设备驱动程序由与 USB 系统驱动程序 (USBD) 接口的后端和与 AIX® 应用程序 (例如 X 服务器应用程序) 接口的前端组成。 客户机驱动程序不了解底层的 USB 适配器硬件。 相反,客户机驱动程序通过 USBD 将控制请求发送到 USB 鼠标,并通过 USBD 接收输入事件。 USB 鼠标客户端驱动程序支持多个 USB 鼠标设备的连接。 每个设备都在对象数据管理器 (ODM) 中枚举并标记为可用。 客户机驱动程序将所有鼠标设备作为单个逻辑设备进行处理。 来自所有设备的输入事件将发送到单个输入环。
为每个 USB 鼠标设备创建一个设备特殊文件。 在至少有一个 USB 鼠标设备被标记为可用之前,一个应用程序 (通常是 X 服务器应用程序) 可以打开任何一个 USB 鼠标特殊文件,因为客户机驱动程序忽略了次要数字规范。 在打开操作后添加和配置的 USB 鼠标设备自动添加到打开集合中。 将为每个 USB 鼠标设备创建设备特殊文件 (例如, /dev/mouse0和 /dev/mouse1等)。
由于图形子系统的严格配置和订购规则, USBD 配置方法提供了对鼠标的特殊处理。 当 USB 主机控制器和图形适配器被标记为可用,且不存在现有鼠标时, USBD 确保至少定义一个 USB 鼠标实例。 USB 鼠标客户机驱动程序使用 USBD_OPEN_DEVICE_EXT ioctl 操作来打开生成有效句柄的设备,即使没有连接到系统的 USB 鼠标也是如此。 如果没有鼠标设备,并且客户机驱动程序将该设备视为已断开连接,那么 USBD_OPEN_DEVICE_EXT 操作将返回 EAGAIN 错误代码。 当您插入 USB 鼠标时, USBD 会对鼠标客户机执行重新连接回调操作,并对设备进行初始化以将输入事件传递到 X 服务器应用程序。
以下输入设备驱动程序 ioctl 操作用于 USB 鼠标操作:
| 操作 | 描述 |
|---|---|
| IOCINFO | 返回描述设备的 devinfo 结构 (在 sys/devinfo.h 头文件中定义)。 结构 (devtype) 的第一个字段设置为 DD_INPUT; 其余结构设置为零。 |
| MQUERYID | 查询鼠标设备标识。 |
| MREGRING | 注册输入环。 |
| MREGRINGEXT | 注册扩展输入环。 |
| MMRFLUSH | 清空输入环。 |
| MTHRESHOLD | 设置鼠标报告阈值。 |
| Mresolution | 设置鼠标分辨率。 |
| MSCALE | 设置鼠标比例因子。 |
| MSAMPLERATE | 设置鼠标采样率。 |