summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/sysmouse.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/sysmouse.4 3.html')
-rw-r--r--static/freebsd/man4/sysmouse.4 3.html371
1 files changed, 0 insertions, 371 deletions
diff --git a/static/freebsd/man4/sysmouse.4 3.html b/static/freebsd/man4/sysmouse.4 3.html
deleted file mode 100644
index 9f2c9cee..00000000
--- a/static/freebsd/man4/sysmouse.4 3.html
+++ /dev/null
@@ -1,371 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">SYSMOUSE(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">SYSMOUSE(4)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">sysmouse</code> &#x2014;
- <span class="Nd">virtualized mouse driver</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="In">#include
- &lt;<a class="In">sys/mouse.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">sys/consio.h</a>&gt;</code></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The console driver, in conjunction with the mouse daemon
- <a class="Xr">moused(8)</a>, supplies mouse data to the user process in the
- standardized way via the <code class="Nm">sysmouse</code> driver. This
- arrangement makes it possible for the console and the user process (such as
- the X&#x00A0;Window System) to share the mouse.</p>
-<p class="Pp">The user process which wants to utilize mouse operation simply
- opens <span class="Pa">/dev/sysmouse</span> with a <a class="Xr">open(2)</a>
- call and reads mouse data from the device via <a class="Xr">read(2)</a>.
- Make sure that <a class="Xr">moused(8)</a> is running, otherwise the user
- process will not see any data coming from the mouse.</p>
-<section class="Ss">
-<h2 class="Ss" id="Operation_Levels"><a class="permalink" href="#Operation_Levels">Operation
- Levels</a></h2>
-<p class="Pp">The <code class="Nm">sysmouse</code> driver has two levels of
- operation. The current operation level can be referred to and changed via
- ioctl calls.</p>
-<p class="Pp">The level zero, the basic level, is the lowest level at which the
- driver offers the basic service to user programs. The
- <code class="Nm">sysmouse</code> driver provides horizontal and vertical
- movement of the mouse and state of up to three buttons in the MouseSystems
- format as follows.</p>
-<p class="Pp"></p>
-<dl class="Bl-tag Bl-compact">
- <dt>Byte 1</dt>
- <dd>
- <dl class="Bl-tag Bl-compact">
- <dt>bit 7</dt>
- <dd>Always one.</dd>
- <dt>bit 6..3</dt>
- <dd>Always zero.</dd>
- <dt>bit 2</dt>
- <dd>Left button status; cleared if pressed, otherwise set.</dd>
- <dt>bit 1</dt>
- <dd>Middle button status; cleared if pressed, otherwise set. Always one,
- if the device does not have the middle button.</dd>
- <dt>bit 0</dt>
- <dd>Right button status; cleared if pressed, otherwise set.</dd>
- </dl>
- </dd>
- <dt>Byte 2</dt>
- <dd>The first half of horizontal movement count in two's complement; -128
- through 127.</dd>
- <dt>Byte 3</dt>
- <dd>The first half of vertical movement count in two's complement; -128
- through 127.</dd>
- <dt>Byte 4</dt>
- <dd>The second half of the horizontal movement count in two's complement; -128
- through 127. To obtain the full horizontal movement count, add the byte 2
- and 4.</dd>
- <dt>Byte 5</dt>
- <dd>The second half of the vertical movement count in two's complement; -128
- through 127. To obtain the full vertical movement count, add the byte 3
- and 5.</dd>
-</dl>
-<p class="Pp">At the level one, the extended level, mouse data is encoded in the
- standard format <code class="Dv">MOUSE_PROTO_SYSMOUSE</code> as defined in
- <a class="Xr">mouse(4)</a>.</p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="IOCTLS"><a class="permalink" href="#IOCTLS">IOCTLS</a></h1>
-<p class="Pp">This section describes two classes of <a class="Xr">ioctl(2)</a>
- commands: commands for the <code class="Nm">sysmouse</code> driver itself,
- and commands for the console and the console control drivers.</p>
-<section class="Ss">
-<h2 class="Ss" id="Sysmouse_Ioctls"><a class="permalink" href="#Sysmouse_Ioctls">Sysmouse
- Ioctls</a></h2>
-<p class="Pp">There are a few commands for mouse drivers. General description of
- the commands is given in <a class="Xr">mouse(4)</a>. Following are the
- features specific to the <code class="Nm">sysmouse</code> driver.</p>
-<p class="Pp"></p>
-<dl class="Bl-tag Bl-compact">
- <dt id="MOUSE_GETLEVEL"><a class="permalink" href="#MOUSE_GETLEVEL"><code class="Dv">MOUSE_GETLEVEL</code></a>
- <var class="Ar">int *level</var></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt id="MOUSE_SETLEVEL"><a class="permalink" href="#MOUSE_SETLEVEL"><code class="Dv">MOUSE_SETLEVEL</code></a>
- <var class="Ar">int *level</var></dt>
- <dd>These commands manipulate the operation level of the mouse driver.
- <p class="Pp"></p>
- </dd>
- <dt id="MOUSE_GETHWINFO"><a class="permalink" href="#MOUSE_GETHWINFO"><code class="Dv">MOUSE_GETHWINFO</code></a>
- <var class="Ar">mousehw_t *hw</var></dt>
- <dd>Returns the hardware information of the attached device in the following
- structure. Only the <var class="Va">iftype</var> field is guaranteed to be
- filled with the correct value in the current version of the
- <code class="Nm">sysmouse</code> driver.
- <div class="Bd Pp Li">
- <pre>typedef struct mousehw {
- int buttons; /* number of buttons */
- int iftype; /* I/F type */
- int type; /* mouse/track ball/pad... */
- int model; /* I/F dependent model ID */
- int hwid; /* I/F dependent hardware ID */
-} mousehw_t;</pre>
- </div>
- <p class="Pp">The <var class="Va">buttons</var> field holds the number of
- buttons detected by the driver.</p>
- <p class="Pp">The <var class="Va">iftype</var> is always
- <code class="Dv">MOUSE_IF_SYSMOUSE</code>.</p>
- <p class="Pp">The <var class="Va">type</var> tells the device type:
- <code class="Dv">MOUSE_MOUSE</code>,
- <code class="Dv">MOUSE_TRACKBALL</code>,
- <code class="Dv">MOUSE_STICK</code>, <code class="Dv">MOUSE_PAD</code>,
- or <code class="Dv">MOUSE_UNKNOWN</code>.</p>
- <p class="Pp">The <var class="Va">model</var> is always
- <code class="Dv">MOUSE_MODEL_GENERIC</code> at the operation level 0. It
- may be <code class="Dv">MOUSE_MODEL_GENERIC</code> or one of
- <code class="Dv">MOUSE_MODEL_XXX</code> constants at higher operation
- levels.</p>
- <p class="Pp">The <var class="Va">hwid</var> is always zero.</p>
- <p class="Pp"></p>
- </dd>
- <dt id="MOUSE_GETMODE"><a class="permalink" href="#MOUSE_GETMODE"><code class="Dv">MOUSE_GETMODE</code></a>
- <var class="Ar">mousemode_t *mode</var></dt>
- <dd>The command gets the current operation parameters of the mouse driver.
- <div class="Bd Pp Li">
- <pre>typedef struct mousemode {
- int protocol; /* MOUSE_PROTO_XXX */
- int rate; /* report rate (per sec) */
- int resolution; /* MOUSE_RES_XXX, -1 if unknown */
- int accelfactor; /* acceleration factor */
- int level; /* driver operation level */
- int packetsize; /* the length of the data packet */
- unsigned char syncmask[2]; /* sync. bits */
-} mousemode_t;</pre>
- </div>
- <p class="Pp">The <var class="Va">protocol</var> field tells the format in
- which the device status is returned when the mouse data is read by the
- user program. It is <code class="Dv">MOUSE_PROTO_MSC</code> at the
- operation level zero. <code class="Dv">MOUSE_PROTO_SYSMOUSE</code> at
- the operation level one.</p>
- <p class="Pp">The <var class="Va">rate</var> is always set to -1.</p>
- <p class="Pp">The <var class="Va">resolution</var> is always set to -1.</p>
- <p class="Pp">The <var class="Va">accelfactor</var> is always 0.</p>
- <p class="Pp">The <var class="Va">packetsize</var> field specifies the
- length of the data packet. It depends on the operation level.</p>
- <p class="Pp"></p>
- <dl class="Bl-tag Bl-compact">
- <dt id="level"><a class="permalink" href="#level"><i class="Em">level
- 0</i></a></dt>
- <dd>5 bytes</dd>
- <dt id="level~2"><a class="permalink" href="#level~2"><i class="Em">level
- 1</i></a></dt>
- <dd>8 bytes</dd>
- </dl>
- <p class="Pp">The array <var class="Va">syncmask</var> holds a bit mask and
- pattern to detect the first byte of the data packet.
- <var class="Va">syncmask[0]</var> is the bit mask to be ANDed with a
- byte. If the result is equal to <var class="Va">syncmask[1]</var>, the
- byte is likely to be the first byte of the data packet. Note that this
- method of detecting the first byte is not 100% reliable; thus, it should
- be taken only as an advisory measure.</p>
- <p class="Pp"></p>
- </dd>
- <dt id="MOUSE_SETMODE"><a class="permalink" href="#MOUSE_SETMODE"><code class="Dv">MOUSE_SETMODE</code></a>
- <var class="Ar">mousemode_t *mode</var></dt>
- <dd>The command changes the current operation parameters of the mouse driver
- as specified in <var class="Ar">mode</var>. Only
- <var class="Va">level</var> may be modifiable. Setting values in the other
- field does not generate error and has no effect.
- <p class="Pp"></p>
- </dd>
- <dt id="MOUSE_READDATA"><a class="permalink" href="#MOUSE_READDATA"><code class="Dv">MOUSE_READDATA</code></a>
- <var class="Ar">mousedata_t *data</var></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt id="MOUSE_READSTATE"><a class="permalink" href="#MOUSE_READSTATE"><code class="Dv">MOUSE_READSTATE</code></a>
- <var class="Ar">mousedata_t *state</var></dt>
- <dd>These commands are not supported by the <code class="Nm">sysmouse</code>
- driver.
- <p class="Pp"></p>
- </dd>
- <dt id="MOUSE_GETSTATUS"><a class="permalink" href="#MOUSE_GETSTATUS"><code class="Dv">MOUSE_GETSTATUS</code></a>
- <var class="Ar">mousestatus_t *status</var></dt>
- <dd>The command returns the current state of buttons and movement counts in
- the structure as defined in <a class="Xr">mouse(4)</a>.</dd>
-</dl>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Console_and_Consolectl_Ioctls"><a class="permalink" href="#Console_and_Consolectl_Ioctls">Console
- and Consolectl Ioctls</a></h2>
-<p class="Pp">The user process issues console
- <a class="permalink" href="#ioctl"><code class="Fn" id="ioctl">ioctl</code></a>()
- calls to the current virtual console in order to control the mouse pointer.
- The console <code class="Fn">ioctl</code>() also provides a method for the
- user process to receive a <a class="Xr">signal(3)</a> when a button is
- pressed.</p>
-<p class="Pp" id="ioctl~2">The mouse daemon <a class="Xr">moused(8)</a> uses
- <a class="permalink" href="#ioctl~2"><code class="Fn">ioctl</code></a>()
- calls to the console control device <span class="Pa">/dev/consolectl</span>
- to inform the console of mouse actions including mouse movement and button
- status.</p>
-<p class="Pp" id="ioctl~3">Both classes of
- <a class="permalink" href="#ioctl~3"><code class="Fn">ioctl</code></a>()
- commands are defined as <code class="Dv">CONS_MOUSECTL</code> which takes
- the following argument.</p>
-<div class="Bd Pp Li">
-<pre>struct mouse_info {
- int operation;
- union {
- struct mouse_data data;
- struct mouse_mode mode;
- struct mouse_event event;
- } u;
-};</pre>
-</div>
-<p class="Pp"></p>
-<dl class="Bl-tag Bl-compact">
- <dt id="operation"><var class="Va">operation</var></dt>
- <dd>This can be one of
- <p class="Pp"></p>
- <dl class="Bl-tag Bl-compact">
- <dt id="MOUSE_SHOW"><a class="permalink" href="#MOUSE_SHOW"><code class="Dv">MOUSE_SHOW</code></a></dt>
- <dd>Enables and displays mouse cursor.</dd>
- <dt id="MOUSE_HIDE"><a class="permalink" href="#MOUSE_HIDE"><code class="Dv">MOUSE_HIDE</code></a></dt>
- <dd>Disables and hides mouse cursor.</dd>
- <dt id="MOUSE_MOVEABS"><a class="permalink" href="#MOUSE_MOVEABS"><code class="Dv">MOUSE_MOVEABS</code></a></dt>
- <dd>Moves mouse cursor to position supplied in
- <var class="Va">u.data</var>.</dd>
- <dt id="MOUSE_MOVEREL"><a class="permalink" href="#MOUSE_MOVEREL"><code class="Dv">MOUSE_MOVEREL</code></a></dt>
- <dd>Adds position supplied in <var class="Va">u.data</var> to current
- position.</dd>
- <dt id="MOUSE_GETINFO"><a class="permalink" href="#MOUSE_GETINFO"><code class="Dv">MOUSE_GETINFO</code></a></dt>
- <dd>Returns current mouse position in the current virtual console and
- button status in <var class="Va">u.data</var>.</dd>
- <dt id="MOUSE_MODE"><a class="permalink" href="#MOUSE_MODE"><code class="Dv">MOUSE_MODE</code></a></dt>
- <dd>This sets the <a class="Xr">signal(3)</a> to be delivered to the
- current process when a button is pressed. The signal to be delivered
- is set in <var class="Va">u.mode</var>.</dd>
- </dl>
- <p class="Pp">The above operations are for virtual consoles. The operations
- defined below are for the console control device and are used by
- <a class="Xr">moused(8)</a> to pass mouse data to the console
- driver.</p>
- <p class="Pp"></p>
- <dl class="Bl-tag Bl-compact">
- <dt id="MOUSE_ACTION"><a class="permalink" href="#MOUSE_ACTION"><code class="Dv">MOUSE_ACTION</code></a></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt id="MOUSE_MOTION_EVENT"><a class="permalink" href="#MOUSE_MOTION_EVENT"><code class="Dv">MOUSE_MOTION_EVENT</code></a></dt>
- <dd>These operations take the information in <var class="Va">u.data</var>
- and act upon it. Mouse data will be sent to the
- <code class="Nm">sysmouse</code> driver if it is open.
- <code class="Dv">MOUSE_ACTION</code> also processes button press
- actions and sends signal to the process if requested or performs cut
- and paste operations if the current console is a text interface.</dd>
- <dt id="MOUSE_BUTTON_EVENT"><a class="permalink" href="#MOUSE_BUTTON_EVENT"><code class="Dv">MOUSE_BUTTON_EVENT</code></a></dt>
- <dd><var class="Va">u.data</var> specifies a button and its click count.
- The console driver will use this information for signal delivery if
- requested or for cut and paste operations if the console is in text
- mode.</dd>
- </dl>
- <p class="Pp"><code class="Dv">MOUSE_MOTION_EVENT</code> and
- <code class="Dv">MOUSE_BUTTON_EVENT</code> are newer interface and are
- designed to be used together. They are intended to replace functions
- performed by <code class="Dv">MOUSE_ACTION</code> alone.</p>
- <p class="Pp"></p>
- </dd>
- <dt id="u"><var class="Va">u</var></dt>
- <dd>This union is one of
- <p class="Pp"></p>
- <dl class="Bl-tag Bl-compact">
- <dt id="data"><var class="Va">data</var></dt>
- <dd>
- <div class="Bd Pp Li">
- <pre>struct mouse_data {
- int x;
- int y;
- int z;
- int buttons;
-};</pre>
- </div>
- <p class="Pp"><var class="Va">x</var>, <var class="Va">y</var> and
- <var class="Va">z</var> represent movement of the mouse along
- respective directions. <var class="Va">buttons</var> tells the state
- of buttons. It encodes up to 31 buttons in the bit 0 though the bit
- 30. If a button is held down, the corresponding bit is set.</p>
- <p class="Pp"></p>
- </dd>
- <dt id="mode"><var class="Va">mode</var></dt>
- <dd>
- <div class="Bd Pp Li">
- <pre>struct mouse_mode {
- int mode;
- int signal;
-};</pre>
- </div>
- <p class="Pp">The <var class="Va">signal</var> field specifies the
- signal to be delivered to the process. It must be one of the values
- defined in
- <code class="In">&lt;<a class="In">signal.h</a>&gt;</code>. The
- <var class="Va">mode</var> field is currently unused.</p>
- <p class="Pp"></p>
- </dd>
- <dt id="event"><var class="Va">event</var></dt>
- <dd>
- <div class="Bd Pp Li">
- <pre>struct mouse_event {
- int id;
- int value;
-};</pre>
- </div>
- <p class="Pp">The <var class="Va">id</var> field specifies a button
- number as in <var class="Va">u.data.buttons</var>. Only one
- bit/button is set. The <var class="Va">value</var> field holds the
- click count: the number of times the user has clicked the button
- successively.</p>
- </dd>
- </dl>
- </dd>
-</dl>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
-<dl class="Bl-tag Bl-compact">
- <dt><span class="Pa">/dev/consolectl</span></dt>
- <dd>device to control the console</dd>
- <dt><span class="Pa">/dev/sysmouse</span></dt>
- <dd>virtualized mouse driver</dd>
- <dt><span class="Pa">/dev/ttyv%d</span></dt>
- <dd>virtual consoles</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">vidcontrol(1)</a>, <a class="Xr">ioctl(2)</a>,
- <a class="Xr">signal(3)</a>, <a class="Xr">mouse(4)</a>,
- <a class="Xr">moused(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The <code class="Nm">sysmouse</code> driver first appeared in
- <span class="Ux">FreeBSD 2.2</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
-<p class="Pp">This manual page was written by <span class="An">John-Mark
- Gurney</span>
- &lt;<a class="Mt" href="mailto:jmg@FreeBSD.org">jmg@FreeBSD.org</a>&gt; and
- <span class="An">Kazutaka Yokota</span>
- &lt;<a class="Mt" href="mailto:yokota@FreeBSD.org">yokota@FreeBSD.org</a>&gt;.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">March 25, 2014</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>