aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html')
-rw-r--r--xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html792
1 files changed, 639 insertions, 153 deletions
diff --git a/xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html b/xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html
index 5da5a0b3b..6ef084811 100644
--- a/xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html
+++ b/xorg-server/hw/dmx/doc/html/usb-keyboard_8c.html
@@ -6,217 +6,703 @@
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
-<!-- Generated by Doxygen 1.3.4 -->
-<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
-<h1>usb-keyboard.c File Reference</h1><code>#include "atKeynames.h"</code><br>
-<code>#include "<a class="el" href="usb-private_8h-source.html">usb-private.h</a>"</code><br>
-<code>#include "<a class="el" href="usb-keyboard_8h-source.html">usb-keyboard.h</a>"</code><br>
-<table border=0 cellpadding=0 cellspacing=0>
-<tr><td></td></tr>
-<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="usb-keyboard_8c.html#a20">kbdUSBCtrl</a> (DevicePtr pDev, KeybdCtrl *ctrl)</td></tr>
+<!-- Generated by Doxygen 1.6.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>usb-keyboard.c File Reference</h1><code>#include &quot;atKeynames.h&quot;</code><br/>
+<code>#include &quot;<a class="el" href="usb-private_8h_source.html">usb-private.h</a>&quot;</code><br/>
+<code>#include &quot;<a class="el" href="usb-keyboard_8h_source.html">usb-keyboard.h</a>&quot;</code><br/>
+<code>#include &lt;xkbsrv.h&gt;</code><br/>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6a3bdd45bcb120470819f4ef1ffabc57">USB_KEYBOARD_DEBUG</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a,b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a,b,c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f,a)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f,a,b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6238ada986dd7e452a89773c2252a96d">GLYPHS_PER_KEY</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a6dbb3fc1c4a78ddba8904d186c8b2784">NUM_KEYCODES</a>&nbsp;&nbsp;&nbsp;248</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>&nbsp;&nbsp;&nbsp;8</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ac769af5d0ea9b1ab3a1cd61572f8f302">MAX_KEYCODE</a>&nbsp;&nbsp;&nbsp;(NUM_KEYCODES + MIN_KEYCODE - 1)</td></tr>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ac5b3c28b56eee8c08253f2c93247c2fb">kbdUSBKeyDown</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int keyCode)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a31da2502826ab88638635abb2b719cae">kbdUSBKeyState</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int type, int keyCode)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a0e9cdd2a76b14cad8a054f2e6e1dbc08">kbdUSBCtrl</a> (DevicePtr pDev, KeybdCtrl *ctrl)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a294cdaa0f31f5f463562c72107b569f2">kbdUSBInit</a> (DevicePtr pDev)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert</a> (DevicePtr pDev, unsigned int scanCode, int value, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a75d61db123cbd10084ecdee9f18a30bf">kbdUSBRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#ab1326e68df2758918fd0e9aa06387424">kbdUSBOn</a> (DevicePtr pDev)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#accd75bb2b1ea015ca086fb41c472546b">kbdUSBGetMap</a> (DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a2513592fe5b9c9f0cafcb299c6531d50">kbdUSBGetInfo</a> (DevicePtr pDev, <a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> info)</td></tr>
+<tr><td colspan="2"><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static KeySym&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a> [NUM_KEYCODES *GLYPHS_PER_KEY]</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This code implements a low-level device driver for a USB keyboard under Linux. The keymap description is derived from code by Thomas Roell, Orest Zborowski. </p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a52220397ecea855b3a99746e451426e1"></a><!-- doxytag: member="usb&#45;keyboard.c::BLOCK" ref="a52220397ecea855b3a99746e451426e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BLOCK&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="usb-keyboard_8c.html#a21">kbdUSBInit</a> (DevicePtr pDev)</td></tr>
+</div>
+</div>
+<a class="anchor" id="aa35a985e998ad5e2187e13434dca118a"></a><!-- doxytag: member="usb&#45;keyboard.c::CHECKPROC" ref="aa35a985e998ad5e2187e13434dca118a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define CHECKPROC&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="usb-keyboard_8c.html#a23">kbdUSBRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
+</div>
+</div>
+<a class="anchor" id="a017080ce5e42667a6582cf858e7185cd"></a><!-- doxytag: member="usb&#45;keyboard.c::ENQUEUEPROC" ref="a017080ce5e42667a6582cf858e7185cd" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ENQUEUEPROC&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="usb-keyboard_8c.html#a24">kbdUSBOn</a> (DevicePtr pDev)</td></tr>
+</div>
+</div>
+<a class="anchor" id="a6bce6020b913db8afe5d94bc63d1b355"></a><!-- doxytag: member="usb&#45;keyboard.c::FATAL0" ref="a6bce6020b913db8afe5d94bc63d1b355" args="(f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define FATAL0</td>
+ <td>(</td>
+ <td class="paramtype">f&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="usb-keyboard_8c.html#a26">kbdUSBGetInfo</a> (DevicePtr pDev, <a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> info)</td></tr>
+</div>
+</div>
+<a class="anchor" id="a11bcea7c6bc7dbe400a3855f5b8676ce"></a><!-- doxytag: member="usb&#45;keyboard.c::FATAL1" ref="a11bcea7c6bc7dbe400a3855f5b8676ce" args="(f, a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define FATAL1</td>
+ <td>(</td>
+ <td class="paramtype">f, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">a&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f,a)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-This code implements a low-level device driver for a USB keyboard under Linux. The keymap description is derived from code by Thomas Roell, Orest Zborowski.<hr><h2>Function Documentation</h2>
-<a class="anchor" name="a20" doxytag="usb-keyboard.c::kbdUSBCtrl" ></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
- <tr>
- <td class="mdRow">
- <table cellpadding="0" cellspacing="0" border="0">
+</div>
+</div>
+<a class="anchor" id="a7952c9e9fe9c75be4964fc53a4299183"></a><!-- doxytag: member="usb&#45;keyboard.c::FATAL2" ref="a7952c9e9fe9c75be4964fc53a4299183" args="(f, a, b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="md" nowrap valign="top"> void kbdUSBCtrl </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">DevicePtr&nbsp;</td>
- <td class="mdname" nowrap> <em>pDev</em>, </td>
+ <td class="memname">#define FATAL2</td>
+ <td>(</td>
+ <td class="paramtype">f, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">a, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md" nowrap>KeybdCtrl *&nbsp;</td>
- <td class="mdname" nowrap> <em>ctrl</em></td>
+ <td class="paramtype">b&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxFatal,f,a,b)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aacf069d346230dd96812d5395728eef2"></a><!-- doxytag: member="usb&#45;keyboard.c::GETPRIV" ref="aacf069d346230dd96812d5395728eef2" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define GETPRIV</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="struct__myPrivate.html">myPrivate</a> *priv \
+ = ((<a class="code" href="struct__DMXLocalInputInfo.html">DMXLocalInputInfoPtr</a>)(pDev-&gt;devicePrivate))-&gt;private
+</pre></div>
+</div>
+</div>
+<a class="anchor" id="a6238ada986dd7e452a89773c2252a96d"></a><!-- doxytag: member="usb&#45;keyboard.c::GLYPHS_PER_KEY" ref="a6238ada986dd7e452a89773c2252a96d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define GLYPHS_PER_KEY&nbsp;&nbsp;&nbsp;4</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="lnx-keyboard_8c_source.html#l00933">kbdLinuxGetMap()</a>, <a class="el" href="lnx-keyboard_8c_source.html#l00784">kbdLinuxReadKernelMapping()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a837722a322e811d5e42242655f277b87"></a><!-- doxytag: member="usb&#45;keyboard.c::LOG0" ref="a837722a322e811d5e42242655f277b87" args="(f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LOG0</td>
+ <td>(</td>
+ <td class="paramtype">f&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab4b3434c36117a2ecdddec40716d97a"></a><!-- doxytag: member="usb&#45;keyboard.c::LOG1" ref="aab4b3434c36117a2ecdddec40716d97a" args="(f, a)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LOG1</td>
+ <td>(</td>
+ <td class="paramtype">f, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
+ <td class="paramtype">a&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a)</td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="a16da5d597d9bfb9e569a9bfb6996382c"></a><!-- doxytag: member="usb&#45;keyboard.c::LOG2" ref="a16da5d597d9bfb9e569a9bfb6996382c" args="(f, a, b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LOG2</td>
+ <td>(</td>
+ <td class="paramtype">f, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">a, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">b&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a,b)</td>
+ </tr>
</table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Set the LEDs. </td>
- </tr>
-</table>
-<a class="anchor" name="a26" doxytag="usb-keyboard.c::kbdUSBGetInfo" ></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
- <tr>
- <td class="mdRow">
- <table cellpadding="0" cellspacing="0" border="0">
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8247f0bca25789d2ac27674eb26e223f"></a><!-- doxytag: member="usb&#45;keyboard.c::LOG3" ref="a8247f0bca25789d2ac27674eb26e223f" args="(f, a, b, c)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="md" nowrap valign="top"> void kbdUSBGetInfo </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">DevicePtr&nbsp;</td>
- <td class="mdname" nowrap> <em>pDev</em>, </td>
+ <td class="memname">#define LOG3</td>
+ <td>(</td>
+ <td class="paramtype">f, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">a, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md" nowrap><a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a>&nbsp;</td>
- <td class="mdname" nowrap> <em>info</em></td>
+ <td class="paramtype">b, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
+ <td class="paramtype">c&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td>&nbsp;&nbsp;&nbsp;dmxLog(dmxDebug,f,a,b,c)</td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+</div>
+</div>
+<a class="anchor" id="ac769af5d0ea9b1ab3a1cd61572f8f302"></a><!-- doxytag: member="usb&#45;keyboard.c::MAX_KEYCODE" ref="ac769af5d0ea9b1ab3a1cd61572f8f302" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define MAX_KEYCODE&nbsp;&nbsp;&nbsp;(NUM_KEYCODES + MIN_KEYCODE - 1)</td>
+ </tr>
</table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Fill the <em>info</em> structure with information needed to initialize <em>pDev</em>. </td>
- </tr>
-</table>
-<a class="anchor" name="a21" doxytag="usb-keyboard.c::kbdUSBInit" ></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
- <tr>
- <td class="mdRow">
- <table cellpadding="0" cellspacing="0" border="0">
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="lnx-keyboard_8c_source.html#l00933">kbdLinuxGetMap()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4204c7bd1b89b76ee0bd11d53741d4e6"></a><!-- doxytag: member="usb&#45;keyboard.c::MIN_KEYCODE" ref="a4204c7bd1b89b76ee0bd11d53741d4e6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="md" nowrap valign="top"> void kbdUSBInit </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">DevicePtr&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>pDev</em> </td>
- <td class="md" valign="top">&nbsp;)&nbsp;</td>
- <td class="md" nowrap></td>
+ <td class="memname">#define MIN_KEYCODE&nbsp;&nbsp;&nbsp;8</td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="lnx-keyboard_8c_source.html#l00657">kbdLinuxConvert()</a>, <a class="el" href="lnx-keyboard_8c_source.html#l00933">kbdLinuxGetMap()</a>, <a class="el" href="usb-keyboard_8c_source.html#l00292">kbdUSBConvert()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>.</p>
+</div>
+</div>
+<a class="anchor" id="a11a17082bee3b1b8217ce8a12adcf814"></a><!-- doxytag: member="usb&#45;keyboard.c::MOTIONPROC" ref="a11a17082bee3b1b8217ce8a12adcf814" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define MOTIONPROC&nbsp;&nbsp;&nbsp;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td>
+ </tr>
</table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Initialize <em>pDev</em> using <a class="el" href="usb-common_8h.html#a6">usbInit</a>. </td>
- </tr>
-</table>
-<a class="anchor" name="a24" doxytag="usb-keyboard.c::kbdUSBOn" ></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
- <tr>
- <td class="mdRow">
- <table cellpadding="0" cellspacing="0" border="0">
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6dbb3fc1c4a78ddba8904d186c8b2784"></a><!-- doxytag: member="usb&#45;keyboard.c::NUM_KEYCODES" ref="a6dbb3fc1c4a78ddba8904d186c8b2784" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="md" nowrap valign="top"> int kbdUSBOn </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">DevicePtr&nbsp;</td>
- <td class="mdname1" valign="top" nowrap> <em>pDev</em> </td>
- <td class="md" valign="top">&nbsp;)&nbsp;</td>
- <td class="md" nowrap></td>
+ <td class="memname">#define NUM_KEYCODES&nbsp;&nbsp;&nbsp;248</td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Referenced by <a class="el" href="lnx-keyboard_8c_source.html#l00933">kbdLinuxGetMap()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6a3bdd45bcb120470819f4ef1ffabc57"></a><!-- doxytag: member="usb&#45;keyboard.c::USB_KEYBOARD_DEBUG" ref="a6a3bdd45bcb120470819f4ef1ffabc57" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define USB_KEYBOARD_DEBUG&nbsp;&nbsp;&nbsp;0</td>
+ </tr>
</table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Turn <em>pDev</em> on (i.e., take input from <em>pDev</em>). </td>
- </tr>
-</table>
-<a class="anchor" name="a23" doxytag="usb-keyboard.c::kbdUSBRead" ></a><p>
-<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
- <tr>
- <td class="mdRow">
- <table cellpadding="0" cellspacing="0" border="0">
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a1bdbc94af66450a58735130ce8b994d0"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBConvert" ref="a1bdbc94af66450a58735130ce8b994d0" args="(DevicePtr pDev, unsigned int scanCode, int value, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void kbdUSBConvert </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int&nbsp;</td>
+ <td class="paramname"> <em>scanCode</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ENQUEUEPROC&nbsp;</td>
+ <td class="paramname"> <em>enqueue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CHECKPROC&nbsp;</td>
+ <td class="paramname"> <em>checkspecial</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">BLOCK&nbsp;</td>
+ <td class="paramname"> <em>block</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00136">GETPRIV</a>, <a class="el" href="lnx-keyboard_8c_source.html#l00202">kbdLinuxKeyDown()</a>, <a class="el" href="usb-keyboard_8c_source.html#l00245">kbdUSBKeyDown()</a>, <a class="el" href="usb-keyboard_8c_source.html#l00254">kbdUSBKeyState()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00110">MIN_KEYCODE</a>.</p>
+
+<p>Referenced by <a class="el" href="usb-keyboard_8c_source.html#l00369">kbdUSBRead()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e9cdd2a76b14cad8a054f2e6e1dbc08"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBCtrl" ref="a0e9cdd2a76b14cad8a054f2e6e1dbc08" args="(DevicePtr pDev, KeybdCtrl *ctrl)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="md" nowrap valign="top"> void kbdUSBRead </td>
- <td class="md" valign="top">(&nbsp;</td>
- <td class="md" nowrap valign="top">DevicePtr&nbsp;</td>
- <td class="mdname" nowrap> <em>pDev</em>, </td>
+ <td class="memname">void kbdUSBCtrl </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em>, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">KeybdCtrl *&nbsp;</td>
+ <td class="paramname"> <em>ctrl</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
<td></td>
- <td class="md" nowrap>MOTIONPROC&nbsp;</td>
- <td class="mdname" nowrap> <em>motion</em>, </td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the LEDs. </p>
+
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00136">GETPRIV</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2513592fe5b9c9f0cafcb299c6531d50"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBGetInfo" ref="a2513592fe5b9c9f0cafcb299c6531d50" args="(DevicePtr pDev, DMXLocalInitInfoPtr info)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void kbdUSBGetInfo </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em>, </td>
</tr>
<tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a>&nbsp;</td>
+ <td class="paramname"> <em>info</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
<td></td>
- <td class="md" nowrap>ENQUEUEPROC&nbsp;</td>
- <td class="mdname" nowrap> <em>enqueue</em>, </td>
+ <td>)</td>
+ <td></td><td></td><td></td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fill the <em>info</em> structure with information needed to initialize <em>pDev</em>. </p>
+
+<p>References <a class="el" href="dmxinputinit_8h_source.html#l00109">_DMXLocalInitInfo::focusClass</a>, <a class="el" href="dmxinputinit_8h_source.html#l00093">_DMXLocalInitInfo::force</a>, <a class="el" href="dmxinputinit_8h_source.html#l00113">_DMXLocalInitInfo::kbdFeedbackClass</a>, <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>, <a class="el" href="dmxinputinit_8h_source.html#l00084">_DMXLocalInitInfo::keyboard</a>, <a class="el" href="dmxinputinit_8h_source.html#l00086">_DMXLocalInitInfo::keyClass</a>, <a class="el" href="dmxinputinit_8h_source.html#l00087">_DMXLocalInitInfo::keySyms</a>, <a class="el" href="dmxinputinit_8h_source.html#l00089">_DMXLocalInitInfo::modMap</a>, and <a class="el" href="dmxinputinit_8h_source.html#l00091">_DMXLocalInitInfo::names</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="accd75bb2b1ea015ca086fb41c472546b"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBGetMap" ref="accd75bb2b1ea015ca086fb41c472546b" args="(DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">static void kbdUSBGetMap </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">KeySymsPtr&nbsp;</td>
+ <td class="paramname"> <em>pKeySyms</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md" nowrap>CHECKPROC&nbsp;</td>
- <td class="mdname" nowrap> <em>checkspecial</em>, </td>
+ <td class="paramtype">CARD8 *&nbsp;</td>
+ <td class="paramname"> <em>pModMap</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>References <a class="el" href="usb-keyboard_8c_source.html#l00108">GLYPHS_PER_KEY</a>, <a class="el" href="usb-keyboard_8c_source.html#l00113">map</a>, <a class="el" href="usb-keyboard_8c_source.html#l00111">MAX_KEYCODE</a>, <a class="el" href="usb-keyboard_8c_source.html#l00110">MIN_KEYCODE</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00109">NUM_KEYCODES</a>.</p>
+
+<p>Referenced by <a class="el" href="usb-keyboard_8c_source.html#l00435">kbdUSBGetInfo()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a294cdaa0f31f5f463562c72107b569f2"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBInit" ref="a294cdaa0f31f5f463562c72107b569f2" args="(DevicePtr pDev)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void kbdUSBInit </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Initialize <em>pDev</em> using <a class="el" href="usb-common_8h.html#a7f9b3a6d320a9ddbed689f4e12acb443">usbInit</a>. </p>
+
+<p>References <a class="el" href="usb-common_8c_source.html#l00272">usbInit()</a>, and <a class="el" href="usb-common_8h_source.html#l00042">usbKeyboard</a>.</p>
+
+<p>Referenced by <a class="el" href="usb-keyboard_8c_source.html#l00388">kbdUSBOn()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5b3c28b56eee8c08253f2c93247c2fb"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBKeyDown" ref="ac5b3c28b56eee8c08253f2c93247c2fb" args="(myPrivate *priv, int keyCode)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static int kbdUSBKeyDown </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> *&nbsp;</td>
+ <td class="paramname"> <em>priv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
- <td class="md" nowrap>BLOCK&nbsp;</td>
- <td class="mdname" nowrap> <em>block</em></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>keyCode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
- <td class="md">)&nbsp;</td>
- <td class="md" colspan="2"></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [static]</code></td>
</tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00184">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c_source.html#l00173">NUM_STATE_ENTRIES</a>.</p>
+
+<p>Referenced by <a class="el" href="usb-keyboard_8c_source.html#l00292">kbdUSBConvert()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a31da2502826ab88638635abb2b719cae"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBKeyState" ref="a31da2502826ab88638635abb2b719cae" args="(myPrivate *priv, int type, int keyCode)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void kbdUSBKeyState </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> *&nbsp;</td>
+ <td class="paramname"> <em>priv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>keyCode</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [static]</code></td>
+ </tr>
</table>
- </td>
- </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
- <tr>
- <td>
- &nbsp;
- </td>
- <td>
-
-<p>
-Read an event from the <em>pDev</em> device. If the event is a motion event, enqueue it with the <em>motion</em> function. Otherwise, check for special keys with the <em>checkspecial</em> function and enqueue the event with the <em>enqueue</em> function. The <em>block</em> type is passed to the functions so that they may block SIGIO handling as appropriate to the caller of this function. </td>
- </tr>
-</table>
+</div>
+<div class="memdoc">
+
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00184">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c_source.html#l00173">NUM_STATE_ENTRIES</a>.</p>
+
+<p>Referenced by <a class="el" href="usb-keyboard_8c_source.html#l00292">kbdUSBConvert()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1326e68df2758918fd0e9aa06387424"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBOn" ref="ab1326e68df2758918fd0e9aa06387424" args="(DevicePtr pDev)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int kbdUSBOn </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Turn <em>pDev</em> on (i.e., take input from <em>pDev</em>). </p>
+
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00136">GETPRIV</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00287">kbdUSBInit()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75d61db123cbd10084ecdee9f18a30bf"></a><!-- doxytag: member="usb&#45;keyboard.c::kbdUSBRead" ref="a75d61db123cbd10084ecdee9f18a30bf" args="(DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void kbdUSBRead </td>
+ <td>(</td>
+ <td class="paramtype">DevicePtr&nbsp;</td>
+ <td class="paramname"> <em>pDev</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">MOTIONPROC&nbsp;</td>
+ <td class="paramname"> <em>motion</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ENQUEUEPROC&nbsp;</td>
+ <td class="paramname"> <em>enqueue</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CHECKPROC&nbsp;</td>
+ <td class="paramname"> <em>checkspecial</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">BLOCK&nbsp;</td>
+ <td class="paramname"> <em>block</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Read an event from the <em>pDev</em> device. If the event is a motion event, enqueue it with the <em>motion</em> function. Otherwise, check for special keys with the <em>checkspecial</em> function and enqueue the event with the <em>enqueue</em> function. The <em>block</em> type is passed to the functions so that they may block SIGIO handling as appropriate to the caller of this function. </p>
+
+<p>References <a class="el" href="lnx-keyboard_8c_source.html#l00136">GETPRIV</a>, <a class="el" href="usb-keyboard_8c_source.html#l00292">kbdUSBConvert()</a>, and <a class="el" href="lnx-keyboard_8c_source.html#l00142">LOG3</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a2187a19657fb0b38c67dbafc7dd74c4d"></a><!-- doxytag: member="usb&#45;keyboard.c::map" ref="a2187a19657fb0b38c67dbafc7dd74c4d" args="[NUM_KEYCODES *GLYPHS_PER_KEY]" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">KeySym <a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>[NUM_KEYCODES *GLYPHS_PER_KEY]<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="lnx-keyboard_8c_source.html#l00933">kbdLinuxGetMap()</a>, <a class="el" href="lnx-keyboard_8c_source.html#l00784">kbdLinuxReadKernelMapping()</a>, and <a class="el" href="usb-keyboard_8c_source.html#l00396">kbdUSBGetMap()</a>.</p>
+
+</div>
+</div>
+</div>
<hr>
<address>
<small>