WSMOUSE(4) | Device Drivers Manual | WSMOUSE(4)

# NAME

`wsmouse` —
generic mouse support in wscons

# SYNOPSIS

`wsmouse* at pms? mux 0` (PS/2 mouse, including ``IntelliMouse''-compatible wheel mice)
`wsmouse* at ums? mux 0` (USB mouse)
`wsmouse* at uts? mux 0` (USB touchscreen)
`wsmouse* at lms? mux 0` (Logitech bus mouse, i386 only)
`wsmouse* at mms? mux 0` (Microsoft InPort mouse, i386 only)
`wsmouse0 at ams? mux 0` (Apple ADB mouse)
`wsmouse* at btms? mux 0` (Bluetooth mouse)
`wsmouse* at lkms? mux 0` (DEC VSXXX serial mice)

# DESCRIPTION

The `wsmouse` driver is an abstraction layer for mice within the wscons(4) framework. It is attached to the hardware specific mouse drivers and provides a character device interface which returns struct wscons_event via read(2). For use with X servers, “mouse events” can be generated.

The wsconsctl(8) utility gives access to several configurable details that affect this driver.

## Ioctls

The following ioctl(2) calls are provided by the `wsmouse` driver or by devices which use it. Their definitions are found in dev/wscons/wsconsio.h.

`WSMOUSEIO_GETPARAMS` (`struct wsmouse_parameters`)
`WSMOUSEIO_SETPARAMS` (`struct wsmouse_parameters`)
  Obtain and set various mouse parameters as a key/value set. Currently these primarily relate to touchpads. The structure struct wsmouse_parameters is defined as follows:

      struct wsmouse_param {
      	enum wsmousecfg key;
      	int value;
      };

      struct wsmouse_parameters {
      	struct wsmouse_param *params;
      	unsigned int nparams;
      };

  The number of parameters to read or write must be specified in nparams. For each parameter, when `WSMOUSEIO_GETPARAMS` is used, a key must be specified. When `WSMOUSEIO_SETPARAMS` is used, a key and a value must be specified. A single ioctl may retrieve up to `WSMOUSECFG_MAX` nparams.

`WSMOUSEIO_GETREPEAT` (`struct wsmouse_repeat`)
  Retrieve the current automatic button repeating configuration. The structure returned is as follows:

      struct wsmouse_repeat {
      	unsigned long   wr_buttons;
      	unsigned int    wr_delay_first;
      	unsigned int    wr_delay_decrement;
      	unsigned int    wr_delay_minimum;
      };

  The wr_buttons field is a bit mask that specifies which buttons send press and release events periodically while they are physically held down. The least significant bit corresponds to button 0.

  The other three fields describe the frequency upon which these automatic events are sent. wr_delay_first specifies the milliseconds before the first repeated event is sent. wr_delay_decrement is used to calculate the delay between the most recently generated event and the forthcoming one: the previous delay is taken and it is decreased by the value given in this variable. wr_delay_minimum specifies the minimum delay, in milliseconds, between two consecutive events.

`WSMOUSEIO_SETREPEAT` (`struct wsmouse_repeat`)
  Set the automatic button repeating configuration. See `WSMOUSEIO_GETREPEAT` above for more details.
`WSMOUSEIO_SETVERSION` (`int`)
  Set the wscons_event protocol version. The default is 0 for binary compatibility. The latest version is always available as `WSMOUSE_EVENT_VERSION`, and is currently 1. All new code should use a call similar to the below to ensure the correct version is returned.

      int ver = WSMOUSE_EVENT_VERSION;
      if (ioctl(fd, WSMOUSEIO_SETVERSION, &ver) == -1)
          err(EXIT_FAILURE, "cannot set version");

# FILES

- /dev/wsmouse*
- /usr/include/dev/wscons/wsconsio.h.

# SEE ALSO

btms(4), dreamcast/mms(4), i386/lms(4), i386/mms(4), pms(4), uep(4), ums(4), uts(4), wscons(4), wsmux(4), moused(8), wsconsctl(8), wsmoused(8), wsmouse(9)

September 25, 2021 | NetBSD 10.1