NetBSD/share/man/man4/wsmouse.4

152 lines
4.5 KiB
Groff

.\" $NetBSD: wsmouse.4,v 1.22 2012/05/27 12:05:40 wiz Exp $
.\"
.\" Copyright (c) 1999
.\" Matthias Drochner. All rights reserved.
.\"
.\" Copyright (c) 2006
.\" Julio M. Merino Vidal. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd May 27, 2012
.Dt WSMOUSE 4
.Os
.Sh NAME
.Nm wsmouse
.Nd generic mouse support in wscons
.Sh SYNOPSIS
.Cd "wsmouse* at pms? mux 0"
(PS/2 mouse, including ``IntelliMouse''-compatible wheel mice)
.Cd "wsmouse* at ums? mux 0"
(USB mouse)
.Cd "wsmouse* at uts? mux 0"
(USB touchscreen)
.Cd "wsmouse* at lms? mux 0"
(Logitech bus mouse, i386 only)
.Cd "wsmouse* at mms? mux 0"
(Microsoft InPort mouse, i386 only)
.Cd "wsmouse0 at ams? mux 0"
(Apple ADB mouse)
.Cd "wsmouse* at btms? mux 0"
(Bluetooth mouse)
.Cd "wsmouse* at lkms? mux 0"
(DEC VSXXX serial mice)
.Sh DESCRIPTION
The
.Nm
driver is an abstraction layer for mice within the
.Xr wscons 4
framework.
It is attached to the hardware specific mouse drivers and
provides a character device interface which returns
.Fa struct wscons_event
via
.Xr read 2 .
For use with X servers,
.Dq mouse events
can be generated.
.Pp
The
.Xr wsconsctl 8
utility gives access to several configurable details that affect this
driver.
.Ss Ioctls
The following
.Xr ioctl 2
calls are provided by the
.Nm
driver or by devices which use it.
Their definitions are found in
.Pa dev/wscons/wsconsio.h .
.Bl -tag -width Dv
.It Dv WSMOUSEIO_GETREPEAT Pq Li "struct wsmouse_repeat"
Retrieve the current automatic button repeating configuration.
The structure returned is as follows:
.Bd -literal -offset indent
struct wsmouse_repeat {
unsigned long wr_buttons;
unsigned int wr_delay_first;
unsigned int wr_delay_decrement;
unsigned int wr_delay_minimum;
};
.Ed
.Pp
The
.Va 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.
.Pp
The other three fields describe the frequency upon which these
automatic events are sent.
.Va wr_delay_first
specifies the milliseconds before the first repeated event is sent.
.Va 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.
.Va wr_delay_minimum
specifies the minimum delay, in milliseconds, between two consecutive
events.
.Pp
.It Dv WSMOUSEIO_SETREPEAT Pq Li "struct wsmouse_repeat"
Set the automatic button repeating configuration.
See
.Dv WSMOUSEIO_GETREPEAT
above for more details.
.It Dv WSMOUSEIO_SETVERSION Pq Li "int"
Set the wscons_event protocol version.
The default is 0 for binary compatibility.
The latest version is
always available as
.Dv 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.
.Bd -literal -offset indent
int ver = WSMOUSE_EVENT_VERSION;
if (ioctl(fd, WSMOUSEIO_SETVERSION, &ver) == -1)
err(EXIT_FAILURE, "cannot set version");
.Ed
.El
.Sh FILES
.Bl -item
.It
.Pa /dev/wsmouse*
.It
.Pa /usr/include/dev/wscons/wsconsio.h .
.El
.Sh SEE ALSO
.Xr btms 4 ,
.Xr lms 4 ,
.Xr mms 4 ,
.Xr pms 4 ,
.Xr uep 4 ,
.Xr ums 4 ,
.Xr uts 4 ,
.Xr wscons 4 ,
.Xr wsmux 4 ,
.Xr moused 8 ,
.Xr wsconsctl 8 ,
.Xr wsmoused 8 ,
.Xr wsmouse 9