diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man9/wsmouse.9 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man9/wsmouse.9')
| -rw-r--r-- | static/netbsd/man9/wsmouse.9 | 265 |
1 files changed, 265 insertions, 0 deletions
diff --git a/static/netbsd/man9/wsmouse.9 b/static/netbsd/man9/wsmouse.9 new file mode 100644 index 00000000..fd0ff3d2 --- /dev/null +++ b/static/netbsd/man9/wsmouse.9 @@ -0,0 +1,265 @@ +.\" $NetBSD: wsmouse.9,v 1.19 2021/10/11 18:19:27 nia Exp $ +.\" +.\" Copyright (c) 2001 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Gregory McGarry. +.\" +.\" 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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 October 11, 2021 +.Dt WSMOUSE 9 +.Os +.Sh NAME +.Nm wsmouse , +.Nm wsmouse_input , +.Nm wsmousedevprint +.Nd wscons mouse support +.Sh SYNOPSIS +.In dev/wscons/wsconsio.h +.In dev/wscons/wsmousevar.h +.Ft void +.Fn wsmouse_input "struct device *msdev" "u_int btns" \ +"int x" "int y" "int z" "int w" "u_int flags" +.Ft int +.Fn wsmousedevprint "void *aux" "const char *pnp" +.Sh DESCRIPTION +The +.Nm +module is a component of the +.Xr wscons 9 +framework to provide machine-independent mouse support. +Most of the support is provided by the +.Xr wsmouse 4 +device driver, which must be a child of the hardware device driver. +.Sh DATA TYPES +Mouse drivers providing support for wscons pointer devices will make use +of the following data types: +.Bl -tag -width compact +.It Fa struct wsmouse_accessops +A structure used to specify the mouse access functions. +All pointer devices must provide this structure and pass it to the +.Xr wsmouse 4 +child device. +It has the following members: +.Bd -literal + int (*enable)(void *); + int (*ioctl)(void *v, u_long cmd, void *data, + int flag, struct lwp *l); + void (*disable)(void *); +.Ed +.Pp +The +.Fa enable +member defines the function to be called to enable monitoring pointer +movements and passing these events to +wscons. +The +.Fa disable +member defines the function to disable movement events. +The +.Fa ioctl +member defines the function to be called to perform mouse-specific +ioctl calls. +.Pp +There is a +.Fa void * +cookie provided by the mouse driver associated with these functions, +which is passed to them when they are invoked. +.It Fa struct wsmousedev_attach_args +A structure used to attach the +.Xr wsmouse 4 +child device. +It has the following members: +.Bd -literal + const struct wsmouse_accessops *accessops; + void *accesscookie; +.Ed +.El +.Sh FUNCTIONS +.Bl -tag -width compact +.It Fn wsmouse_input "msdev" "btns" "x" "y" "z" "w" "flags" +Callback from the mouse driver to the wsmouse interface driver. +Arguments are as follows: +.Bl -tag -width msdev -compact +.It Fa msdev +This is the +.Fa struct device +pointer passed from +.Fn config_found +on attaching the child +.Xr wsmouse 4 +to specify the mouse device. +.It Fa btns +This specifies the current button status. +Bits for pressed buttons (which will cause the +.Dv WSCONS_EVENT_MOUSE_DOWN +event on +.Xr wsmouse 4 +device) should be set, and bits for released buttons (which will cause the +.Dv WSCONS_EVENT_MOUSE_UP +event) should be zero. +The left most button state should be in LSB, +i.e. for typical three button mouse, +the left button is 0x01, +the middle button is 0x02, +and the right button is 0x04. +.It Fa x +Absolute or relative X-axis value to specify the pointer coordinate. +Rightward (moving the mouse right) is positive. +.It Fa y +Absolute or relative Y-axis value to specify the pointer coordinate. +Upward (moving the mouse forward) is positive. +Note that this aspect is opposite from the one used in the X server dix layer. +.It Fa z +Absolute or relative Z-axis value to specify the pointer coordinate. +Usually this axis is used for the wheel. +Downward (turning the wheel backward) is positive. +.It Fa w +Absolute or relative W-axis value to specify the pointer coordinate. +Usually this axis would be used for the horizontal component of the wheel. +.It Fa flags +This argument specifies whether the pointer device and the measurement +of the +.Fa x , +.Fa y , +.Fa z , +and +.Fa w +axes is in relative or absolute mode. +Valid values for +.Fa flags +are: +.Bl -tag -width compact +.It WSMOUSE_INPUT_DELTA +Relative mode. +.It WSMOUSE_INPUT_ABSOLUTE_X +Absolute mode in +.Fa x +axis. +.It WSMOUSE_INPUT_ABSOLUTE_Y +Absolute mode in +.Fa y +axis. +.It WSMOUSE_INPUT_ABSOLUTE_Z +Absolute mode in +.Fa z +axis. +.It WSMOUSE_INPUT_ABSOLUTE_W +Absolute mode in +.Fa w +axis. +.El +.El +.It Fn wsmouse_precision_scroll "msdev" "x" "y" +Callback from the mouse driver to the wsmouse interface driver. +.Pp +This is used when higher precision scrolling events are required +than what can be provided by a typical scroll wheel. +This function generates +.Dv WSCONS_EVENT_HSCROLL +(for scrolling on the X axis) and +.Dv WSCONS_EVENT_VSCROLL +(for scrolling on the X axis) events. +.Pp +The coordinates are adjusted for speed according to the formula: +.Li x * 4096 / scroll_unit +.Pp +The +.Dv scroll_unit +is configured through the +.Xr wsmouse 4 +ioctl interface, specifically the +.Dv WSMOUSEIO_SETPARAMS +keys +.Dv WSMOUSECFG_HORIZSCROLLDIST +and +.Dv WSMOUSECFG_VERTSCROLLDIST . +.It Fn wsmousedevprint "aux" "pnp" +The default wsmouse printing routine used by +.Fn config_found . +(see +.Xr autoconf 9 ) . +.El +.Sh AUTOCONFIGURATION +Mouse drivers which want to use the wsmouse module must be a +parent to the +.Xr wsmouse 4 +device and provide an attachment interface. +To attach the +.Xr wsmouse 4 +device, the mouse driver must allocate and populate a +.Fa wsmousedev_attach_args +structure with the supported operations and callbacks and call +.Fn config_found +to perform the attach (see +.Xr autoconf 9 ) . +.Sh OPERATION +When a mouse-movement event is received, the device driver must +perform any necessary movement decoding to wscons events and pass the +events to wscons via +.Fn wsmouse_input . +.Pp +The wscons framework calls back into the hardware driver by invoking +the functions that are specified in the +.Em accessops +structure. +The +.Fn enable +and +.Fn disable +functions are relatively simple and self-explanatory. +The +.Fn ioctl +function is called by the wscons interface to perform +mouse-specific ioctl operations (see +.Xr ioctl 2 ) . +The argument +.Fa cmd +to the +.Fn ioctl +function specifies the specific command to perform using the data +.Fa data . +Valid commands are listed in +.Pa sys/dev/wscons/wsconsio.h . +.Sh CODE REFERENCES +The wscons subsystem is implemented within the directory +.Pa sys/dev/wscons . +The +.Nm +module itself is implemented within the file +.Pa sys/dev/wscons/wsmouse.c . +.Xr ioctl 2 +operations are listed in +.Pa sys/dev/wscons/wsconsio.h . +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr pms 4 , +.Xr wscons 4 , +.Xr wsmouse 4 , +.Xr autoconf 9 , +.Xr driver 9 , +.Xr intro 9 , +.Xr wscons 9 , +.Xr wsdisplay 9 , +.Xr wskbd 9 |
