summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/wsmouse.4
blob: c684e5e53c0c74d95650c2b02067dea1b13126d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
.\" $NetBSD: wsmouse.4,v 1.24 2021/10/12 07:43:49 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 September 25, 2021
.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_GETPARAMS Pq Li "struct wsmouse_parameters"
.It Dv WSMOUSEIO_SETPARAMS Pq Li "struct wsmouse_parameters"
Obtain and set various mouse parameters as a key/value set.
Currently these primarily relate to touchpads.
The structure
.Vt struct wsmouse_parameters
is defined as follows:
.Bd -literal -offset indent
struct wsmouse_param {
	enum wsmousecfg key;
	int value;
};

struct wsmouse_parameters {
	struct wsmouse_param *params;
	unsigned int nparams;
};
.Ed
.Pp
The number of parameters to read or write must be specified in
.Va nparams .
For each parameter, when
.Dv WSMOUSEIO_GETPARAMS
is used, a key must be specified.
When
.Dv WSMOUSEIO_SETPARAMS
is used, a key and a value must be specified.
A single ioctl may retrieve up to
.Dv WSMOUSECFG_MAX
.Va nparams .
.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.
.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 dreamcast/mms 4 ,
.Xr i386/lms 4 ,
.Xr i386/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