Home | History | Annotate | Line # | Download | only in html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html>
      3   <head>
      4     <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      5     <title>File Index</title>
      6     <link href="doxygen.css" rel="stylesheet" type="text/css">
      7   </head>
      8   <body>
      9 <!-- Generated by Doxygen 1.7.4 -->
     10   <div id="navrow1" class="tabs">
     11     <ul class="tablist">
     12       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
     13       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
     14       <li class="current"><a href="files.html"><span>Files</span></a></li>
     15     </ul>
     16   </div>
     17   <div id="navrow2" class="tabs2">
     18     <ul class="tablist">
     19       <li><a href="files.html"><span>File&#160;List</span></a></li>
     20       <li><a href="globals.html"><span>Globals</span></a></li>
     21     </ul>
     22   </div>
     23 </div>
     24 <div id="side-nav" class="ui-resizable side-nav-resizable">
     25   <div id="nav-tree">
     26     <div id="nav-tree-contents">
     27     </div>
     28   </div>
     29   <div id="splitbar" style="-moz-user-select:none;" 
     30        class="ui-resizable-handle">
     31   </div>
     32 </div>
     33 <script type="text/javascript">
     34   initNavTree('lnx-keyboard_8c.html','');
     35 </script>
     36 <div id="doc-content">
     37 <div class="header">
     38   <div class="summary">
     39 <a href="#nested-classes">Data Structures</a> &#124;
     40 <a href="#define-members">Defines</a> &#124;
     41 <a href="#typedef-members">Typedefs</a> &#124;
     42 <a href="#func-members">Functions</a> &#124;
     43 <a href="#var-members">Variables</a>  </div>
     44   <div class="headertitle">
     45 <div class="title">lnx-keyboard.c File Reference</div>  </div>
     46 </div>
     47 <div class="contents">
     48 <div class="textblock"><code>#include &quot;<a class="el" href="dmxinputinit_8h_source.html">dmxinputinit.h</a>&quot;</code><br/>
     49 <code>#include &quot;<a class="el" href="lnx-keyboard_8h_source.html">lnx-keyboard.h</a>&quot;</code><br/>
     50 <code>#include &quot;inputstr.h&quot;</code><br/>
     51 <code>#include &lt;X11/Xos.h&gt;</code><br/>
     52 <code>#include &lt;sys/ioctl.h&gt;</code><br/>
     53 <code>#include &lt;errno.h&gt;</code><br/>
     54 <code>#include &lt;signal.h&gt;</code><br/>
     55 <code>#include &lt;sys/vt.h&gt;</code><br/>
     56 <code>#include &lt;sys/kd.h&gt;</code><br/>
     57 <code>#include &lt;termios.h&gt;</code><br/>
     58 <code>#include &quot;atKeynames.h&quot;</code><br/>
     59 <code>#include &lt;linux/keyboard.h&gt;</code><br/>
     60 <code>#include &lt;xkbsrv.h&gt;</code><br/>
     61 </div><table class="memberdecls">
     62 <tr><td colspan="2"><h2><a name="nested-classes"></a>
     63 Data Structures</h2></td></tr>
     64 <tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__myPrivate.html">_myPrivate</a></td></tr>
     65 <tr><td colspan="2"><h2><a name="define-members"></a>
     66 Defines</h2></td></tr>
     67 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a></td></tr>
     68 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)&#160;&#160;&#160;dmxLog(dmxDebug,f)</td></tr>
     69 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxDebug,f,a)</td></tr>
     70 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b)</td></tr>
     71 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b,c)</td></tr>
     72 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)&#160;&#160;&#160;dmxLog(dmxFatal,f)</td></tr>
     73 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxFatal,f,a)</td></tr>
     74 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxFatal,f,a,b)</td></tr>
     75 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td></tr>
     76 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr>
     77 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td></tr>
     78 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a3463151de078a8c7b6bfcae492b9e5f9">SWITCHRETPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adb9019a46004e627338bfb4a02800636">dmxVTSwitchReturnProcPtr</a></td></tr>
     79 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>&#160;&#160;&#160;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr>
     80 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#af8a3e30cb4858ca8a098acae107286c0">MESSAGE</a>&#160;&#160;&#160;&quot;\033c\n\n\nDMX taking input from this console...&quot;</td></tr>
     81 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#ad71b1ebcfa90278a27073d2c0cb4dad4">FINALMESSAGE</a>&#160;&#160;&#160;&quot;\033cDMX terminated.&quot;</td></tr>
     82 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aa472fa3dc86eaccfc92bb0caf47bdcd9">NUM_AT2LNX</a>&#160;&#160;&#160;(sizeof(<a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>) / sizeof(<a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>[0]))</td></tr>
     83 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a4551482d17e969e4de70a669be3afc74">NUM_STATE_ENTRIES</a>&#160;&#160;&#160;(256/32)</td></tr>
     84 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#acdc80f4d45e1276e533490146d014bde">SYSCALL</a>(call)&#160;&#160;&#160;while(((call) == -1) &amp;&amp; (errno == EINTR))</td></tr>
     85 <tr><td colspan="2"><h2><a name="typedef-members"></a>
     86 Typedefs</h2></td></tr>
     87 <tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__myPrivate.html">_myPrivate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a25692217bddf2b6c089525b325afccf1">myPrivate</a></td></tr>
     88 <tr><td colspan="2"><h2><a name="func-members"></a>
     89 Functions</h2></td></tr>
     90 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a508da29b3082d7901ebf5c7397bd1a88">kbdLinuxKeyDown</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int keyCode)</td></tr>
     91 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a0667fd33b8b30b74319818c9e1752950">kbdLinuxKeyState</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, int type, int keyCode)</td></tr>
     92 <tr><td class="memItemLeft" align="right" valign="top">pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aaeba8e3220761201a64b5da3e2f85e52">kbdLinuxCreatePrivate</a> (DeviceIntPtr pKeyboard)</td></tr>
     93 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a5c9ddc88a9a5d989ce49a071eadcec87">kbdLinuxDestroyPrivate</a> (pointer priv)</td></tr>
     94 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a0acb8c77b4bd032bda9aeb87a656b9e7">kbdLinuxBell</a> (DevicePtr pDev, int percent, int volume, int pitch, int duration)</td></tr>
     95 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a278d93f44fccf1e642fa58c05bb2d06a">kbdLinuxCtrl</a> (DevicePtr pDev, KeybdCtrl *ctrl)</td></tr>
     96 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a198a0f886cb4a350bfe714c16e92c44d">kbdLinuxGetFreeVTNumber</a> (void)</td></tr>
     97 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#af405cce5d5bbc25171b425782f6e0b92">kbdLinuxOpenVT</a> (int vtno)</td></tr>
     98 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aefe715d8634268857806b5655cb70466">kbdLinuxGetCurrentVTNumber</a> (int fd)</td></tr>
     99 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate</a> (int fd, int vtno, int setSig)</td></tr>
    100 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a50fd258e64aa03fd197af2a1a8306b32">kbdLinuxVTPreSwitch</a> (pointer p)</td></tr>
    101 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a8c0e2439e4991b78f99c79e90f5e474d">kbdLinuxVTPostSwitch</a> (pointer p)</td></tr>
    102 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a7e6977d8d414fb1b62710835ca763af4">kbdLinuxVTSwitch</a> (pointer p, int vt, void(*switch_return)(pointer), pointer switch_return_data)</td></tr>
    103 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a93a481bcaf8d735c29c8b8114cf68eba">kbdLinuxVTSignalHandler</a> (int sig)</td></tr>
    104 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole</a> (DevicePtr pDev)</td></tr>
    105 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole</a> (DevicePtr pDev)</td></tr>
    106 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a24c8cbb95ad1f21d590f57cdb22c25f4">kbdLinuxInit</a> (DevicePtr pDev)</td></tr>
    107 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a582fe5af774d898b85edb42116598890">kbdLinuxPrefix0Mapping</a> (unsigned char *scanCode)</td></tr>
    108 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a67b95ff06cbdb5de12cc01954aa7b67e">kbdLinuxPrefixMapping</a> (<a class="el" href="struct__myPrivate.html">myPrivate</a> *priv, unsigned char *scanCode)</td></tr>
    109 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert</a> (DevicePtr pDev, unsigned char scanCode, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
    110 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#aa7781cedb743039542090faf43d9423f">kbdLinuxRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
    111 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a541096c9032b400b6f7f8cc76c36f716">kbdLinuxOn</a> (DevicePtr pDev)</td></tr>
    112 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a2f0498bfb85d9301b7bab802844b047d">kbdLinuxOff</a> (DevicePtr pDev)</td></tr>
    113 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping</a> (int fd, KeySymsPtr pKeySyms)</td></tr>
    114 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap</a> (DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)</td></tr>
    115 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#ae65b4fd1c456532a438479b35228d4cf">kbdLinuxGetInfo</a> (DevicePtr pDev, <a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> info)</td></tr>
    116 <tr><td colspan="2"><h2><a name="var-members"></a>
    117 Variables</h2></td></tr>
    118 <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct__myPrivate.html">myPrivate</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a4feca68f31d2c2170bef7d62f747dd88">PRIV</a> = NULL</td></tr>
    119 <tr><td class="memItemLeft" align="right" valign="top">static KeySym&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a8448907727701c5b1fd1001458ccd62c">linux_to_x</a> [256]</td></tr>
    120 <tr><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a> [NUM_KEYCODES]</td></tr>
    121 </table>
    122 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
    123 <div class="textblock"><p>This code implements a low-level device driver for the Linux keyboard. The code is derived from code by Thomas Roell, Orest Zborowski, and David Dawes (see the source code for complete references). </p>
    124 </div><hr/><h2>Define Documentation</h2>
    125 <a class="anchor" id="a52220397ecea855b3a99746e451426e1"></a><!-- doxytag: member="lnx&#45;keyboard.c::BLOCK" ref="a52220397ecea855b3a99746e451426e1" args="" -->
    126 <div class="memitem">
    127 <div class="memproto">
    128       <table class="memname">
    129         <tr>
    130           <td class="memname">#define BLOCK&#160;&#160;&#160;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td>
    131         </tr>
    132       </table>
    133 </div>
    134 <div class="memdoc">
    135 
    136 </div>
    137 </div>
    138 <a class="anchor" id="aa35a985e998ad5e2187e13434dca118a"></a><!-- doxytag: member="lnx&#45;keyboard.c::CHECKPROC" ref="aa35a985e998ad5e2187e13434dca118a" args="" -->
    139 <div class="memitem">
    140 <div class="memproto">
    141       <table class="memname">
    142         <tr>
    143           <td class="memname">#define CHECKPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td>
    144         </tr>
    145       </table>
    146 </div>
    147 <div class="memdoc">
    148 
    149 </div>
    150 </div>
    151 <a class="anchor" id="a017080ce5e42667a6582cf858e7185cd"></a><!-- doxytag: member="lnx&#45;keyboard.c::ENQUEUEPROC" ref="a017080ce5e42667a6582cf858e7185cd" args="" -->
    152 <div class="memitem">
    153 <div class="memproto">
    154       <table class="memname">
    155         <tr>
    156           <td class="memname">#define ENQUEUEPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td>
    157         </tr>
    158       </table>
    159 </div>
    160 <div class="memdoc">
    161 
    162 </div>
    163 </div>
    164 <a class="anchor" id="a6bce6020b913db8afe5d94bc63d1b355"></a><!-- doxytag: member="lnx&#45;keyboard.c::FATAL0" ref="a6bce6020b913db8afe5d94bc63d1b355" args="(f)" -->
    165 <div class="memitem">
    166 <div class="memproto">
    167       <table class="memname">
    168         <tr>
    169           <td class="memname">#define FATAL0</td>
    170           <td>(</td>
    171           <td class="paramtype">&#160;</td>
    172           <td class="paramname">f</td><td>)</td>
    173           <td>&#160;&#160;&#160;dmxLog(dmxFatal,f)</td>
    174         </tr>
    175       </table>
    176 </div>
    177 <div class="memdoc">
    178 
    179 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>, <a class="el" href="lnx-keyboard_8c.html#a198a0f886cb4a350bfe714c16e92c44d">kbdLinuxGetFreeVTNumber()</a>, and <a class="el" href="lnx-keyboard_8h.html#a11eda88b5082b0adaad1bbc723dae485">kbdLinuxVTSwitch()</a>.</p>
    180 
    181 </div>
    182 </div>
    183 <a class="anchor" id="a11bcea7c6bc7dbe400a3855f5b8676ce"></a><!-- doxytag: member="lnx&#45;keyboard.c::FATAL1" ref="a11bcea7c6bc7dbe400a3855f5b8676ce" args="(f, a)" -->
    184 <div class="memitem">
    185 <div class="memproto">
    186       <table class="memname">
    187         <tr>
    188           <td class="memname">#define FATAL1</td>
    189           <td>(</td>
    190           <td class="paramtype">&#160;</td>
    191           <td class="paramname">f, </td>
    192         </tr>
    193         <tr>
    194           <td class="paramkey"></td>
    195           <td></td>
    196           <td class="paramtype">&#160;</td>
    197           <td class="paramname">a&#160;</td>
    198         </tr>
    199         <tr>
    200           <td></td>
    201           <td>)</td>
    202           <td></td><td>&#160;&#160;&#160;dmxLog(dmxFatal,f,a)</td>
    203         </tr>
    204       </table>
    205 </div>
    206 <div class="memdoc">
    207 
    208 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a198a0f886cb4a350bfe714c16e92c44d">kbdLinuxGetFreeVTNumber()</a>, <a class="el" href="lnx-keyboard_8h.html#a24c8cbb95ad1f21d590f57cdb22c25f4">kbdLinuxInit()</a>, and <a class="el" href="lnx-keyboard_8h.html#a541096c9032b400b6f7f8cc76c36f716">kbdLinuxOn()</a>.</p>
    209 
    210 </div>
    211 </div>
    212 <a class="anchor" id="a7952c9e9fe9c75be4964fc53a4299183"></a><!-- doxytag: member="lnx&#45;keyboard.c::FATAL2" ref="a7952c9e9fe9c75be4964fc53a4299183" args="(f, a, b)" -->
    213 <div class="memitem">
    214 <div class="memproto">
    215       <table class="memname">
    216         <tr>
    217           <td class="memname">#define FATAL2</td>
    218           <td>(</td>
    219           <td class="paramtype">&#160;</td>
    220           <td class="paramname">f, </td>
    221         </tr>
    222         <tr>
    223           <td class="paramkey"></td>
    224           <td></td>
    225           <td class="paramtype">&#160;</td>
    226           <td class="paramname">a, </td>
    227         </tr>
    228         <tr>
    229           <td class="paramkey"></td>
    230           <td></td>
    231           <td class="paramtype">&#160;</td>
    232           <td class="paramname">b&#160;</td>
    233         </tr>
    234         <tr>
    235           <td></td>
    236           <td>)</td>
    237           <td></td><td>&#160;&#160;&#160;dmxLog(dmxFatal,f,a,b)</td>
    238         </tr>
    239       </table>
    240 </div>
    241 <div class="memdoc">
    242 
    243 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#af405cce5d5bbc25171b425782f6e0b92">kbdLinuxOpenVT()</a>.</p>
    244 
    245 </div>
    246 </div>
    247 <a class="anchor" id="ad71b1ebcfa90278a27073d2c0cb4dad4"></a><!-- doxytag: member="lnx&#45;keyboard.c::FINALMESSAGE" ref="ad71b1ebcfa90278a27073d2c0cb4dad4" args="" -->
    248 <div class="memitem">
    249 <div class="memproto">
    250       <table class="memname">
    251         <tr>
    252           <td class="memname">#define FINALMESSAGE&#160;&#160;&#160;&quot;\033cDMX terminated.&quot;</td>
    253         </tr>
    254       </table>
    255 </div>
    256 <div class="memdoc">
    257 
    258 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole()</a>.</p>
    259 
    260 </div>
    261 </div>
    262 <a class="anchor" id="aacf069d346230dd96812d5395728eef2"></a><!-- doxytag: member="lnx&#45;keyboard.c::GETPRIV" ref="aacf069d346230dd96812d5395728eef2" args="" -->
    263 <div class="memitem">
    264 <div class="memproto">
    265       <table class="memname">
    266         <tr>
    267           <td class="memname">#define GETPRIV</td>
    268         </tr>
    269       </table>
    270 </div>
    271 <div class="memdoc">
    272 <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="struct__myPrivate.html">myPrivate</a> *priv                            \
    273                       = ((<a class="code" href="dmxinput_8h.html#adb148db00fe0adf1938b815b9b934d26">DMXLocalInputInfoPtr</a>)(pDev-&gt;devicePrivate))-&gt;private
    274 </pre></div>
    275 <p>Referenced by <a class="el" href="lnx-keyboard_8h.html#a0acb8c77b4bd032bda9aeb87a656b9e7">kbdLinuxBell()</a>, <a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole()</a>, <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>, <a class="el" href="lnx-keyboard_8h.html#a278d93f44fccf1e642fa58c05bb2d06a">kbdLinuxCtrl()</a>, <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, <a class="el" href="lnx-keyboard_8h.html#a24c8cbb95ad1f21d590f57cdb22c25f4">kbdLinuxInit()</a>, <a class="el" href="lnx-keyboard_8h.html#a2f0498bfb85d9301b7bab802844b047d">kbdLinuxOff()</a>, <a class="el" href="lnx-keyboard_8h.html#a541096c9032b400b6f7f8cc76c36f716">kbdLinuxOn()</a>, <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>, and <a class="el" href="lnx-keyboard_8c.html#aa7781cedb743039542090faf43d9423f">kbdLinuxRead()</a>.</p>
    276 
    277 </div>
    278 </div>
    279 <a class="anchor" id="a837722a322e811d5e42242655f277b87"></a><!-- doxytag: member="lnx&#45;keyboard.c::LOG0" ref="a837722a322e811d5e42242655f277b87" args="(f)" -->
    280 <div class="memitem">
    281 <div class="memproto">
    282       <table class="memname">
    283         <tr>
    284           <td class="memname">#define LOG0</td>
    285           <td>(</td>
    286           <td class="paramtype">&#160;</td>
    287           <td class="paramname">f</td><td>)</td>
    288           <td>&#160;&#160;&#160;dmxLog(dmxDebug,f)</td>
    289         </tr>
    290       </table>
    291 </div>
    292 <div class="memdoc">
    293 
    294 </div>
    295 </div>
    296 <a class="anchor" id="aab4b3434c36117a2ecdddec40716d97a"></a><!-- doxytag: member="lnx&#45;keyboard.c::LOG1" ref="aab4b3434c36117a2ecdddec40716d97a" args="(f, a)" -->
    297 <div class="memitem">
    298 <div class="memproto">
    299       <table class="memname">
    300         <tr>
    301           <td class="memname">#define LOG1</td>
    302           <td>(</td>
    303           <td class="paramtype">&#160;</td>
    304           <td class="paramname">f, </td>
    305         </tr>
    306         <tr>
    307           <td class="paramkey"></td>
    308           <td></td>
    309           <td class="paramtype">&#160;</td>
    310           <td class="paramname">a&#160;</td>
    311         </tr>
    312         <tr>
    313           <td></td>
    314           <td>)</td>
    315           <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a)</td>
    316         </tr>
    317       </table>
    318 </div>
    319 <div class="memdoc">
    320 
    321 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole()</a>.</p>
    322 
    323 </div>
    324 </div>
    325 <a class="anchor" id="a16da5d597d9bfb9e569a9bfb6996382c"></a><!-- doxytag: member="lnx&#45;keyboard.c::LOG2" ref="a16da5d597d9bfb9e569a9bfb6996382c" args="(f, a, b)" -->
    326 <div class="memitem">
    327 <div class="memproto">
    328       <table class="memname">
    329         <tr>
    330           <td class="memname">#define LOG2</td>
    331           <td>(</td>
    332           <td class="paramtype">&#160;</td>
    333           <td class="paramname">f, </td>
    334         </tr>
    335         <tr>
    336           <td class="paramkey"></td>
    337           <td></td>
    338           <td class="paramtype">&#160;</td>
    339           <td class="paramname">a, </td>
    340         </tr>
    341         <tr>
    342           <td class="paramkey"></td>
    343           <td></td>
    344           <td class="paramtype">&#160;</td>
    345           <td class="paramname">b&#160;</td>
    346         </tr>
    347         <tr>
    348           <td></td>
    349           <td>)</td>
    350           <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b)</td>
    351         </tr>
    352       </table>
    353 </div>
    354 <div class="memdoc">
    355 
    356 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>, and <a class="el" href="lnx-keyboard_8c.html#a93a481bcaf8d735c29c8b8114cf68eba">kbdLinuxVTSignalHandler()</a>.</p>
    357 
    358 </div>
    359 </div>
    360 <a class="anchor" id="a8247f0bca25789d2ac27674eb26e223f"></a><!-- doxytag: member="lnx&#45;keyboard.c::LOG3" ref="a8247f0bca25789d2ac27674eb26e223f" args="(f, a, b, c)" -->
    361 <div class="memitem">
    362 <div class="memproto">
    363       <table class="memname">
    364         <tr>
    365           <td class="memname">#define LOG3</td>
    366           <td>(</td>
    367           <td class="paramtype">&#160;</td>
    368           <td class="paramname">f, </td>
    369         </tr>
    370         <tr>
    371           <td class="paramkey"></td>
    372           <td></td>
    373           <td class="paramtype">&#160;</td>
    374           <td class="paramname">a, </td>
    375         </tr>
    376         <tr>
    377           <td class="paramkey"></td>
    378           <td></td>
    379           <td class="paramtype">&#160;</td>
    380           <td class="paramname">b, </td>
    381         </tr>
    382         <tr>
    383           <td class="paramkey"></td>
    384           <td></td>
    385           <td class="paramtype">&#160;</td>
    386           <td class="paramname">c&#160;</td>
    387         </tr>
    388         <tr>
    389           <td></td>
    390           <td>)</td>
    391           <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b,c)</td>
    392         </tr>
    393       </table>
    394 </div>
    395 <div class="memdoc">
    396 
    397 </div>
    398 </div>
    399 <a class="anchor" id="af8a3e30cb4858ca8a098acae107286c0"></a><!-- doxytag: member="lnx&#45;keyboard.c::MESSAGE" ref="af8a3e30cb4858ca8a098acae107286c0" args="" -->
    400 <div class="memitem">
    401 <div class="memproto">
    402       <table class="memname">
    403         <tr>
    404           <td class="memname">#define MESSAGE&#160;&#160;&#160;&quot;\033c\n\n\nDMX taking input from this console...&quot;</td>
    405         </tr>
    406       </table>
    407 </div>
    408 <div class="memdoc">
    409 
    410 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>.</p>
    411 
    412 </div>
    413 </div>
    414 <a class="anchor" id="a11a17082bee3b1b8217ce8a12adcf814"></a><!-- doxytag: member="lnx&#45;keyboard.c::MOTIONPROC" ref="a11a17082bee3b1b8217ce8a12adcf814" args="" -->
    415 <div class="memitem">
    416 <div class="memproto">
    417       <table class="memname">
    418         <tr>
    419           <td class="memname">#define MOTIONPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td>
    420         </tr>
    421       </table>
    422 </div>
    423 <div class="memdoc">
    424 
    425 </div>
    426 </div>
    427 <a class="anchor" id="aa472fa3dc86eaccfc92bb0caf47bdcd9"></a><!-- doxytag: member="lnx&#45;keyboard.c::NUM_AT2LNX" ref="aa472fa3dc86eaccfc92bb0caf47bdcd9" args="" -->
    428 <div class="memitem">
    429 <div class="memproto">
    430       <table class="memname">
    431         <tr>
    432           <td class="memname">#define NUM_AT2LNX&#160;&#160;&#160;(sizeof(<a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>) / sizeof(<a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>[0]))</td>
    433         </tr>
    434       </table>
    435 </div>
    436 <div class="memdoc">
    437 
    438 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>.</p>
    439 
    440 </div>
    441 </div>
    442 <a class="anchor" id="a4551482d17e969e4de70a669be3afc74"></a><!-- doxytag: member="lnx&#45;keyboard.c::NUM_STATE_ENTRIES" ref="a4551482d17e969e4de70a669be3afc74" args="" -->
    443 <div class="memitem">
    444 <div class="memproto">
    445       <table class="memname">
    446         <tr>
    447           <td class="memname">#define NUM_STATE_ENTRIES&#160;&#160;&#160;(256/32)</td>
    448         </tr>
    449       </table>
    450 </div>
    451 <div class="memdoc">
    452 
    453 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a508da29b3082d7901ebf5c7397bd1a88">kbdLinuxKeyDown()</a>, <a class="el" href="lnx-keyboard_8c.html#a0667fd33b8b30b74319818c9e1752950">kbdLinuxKeyState()</a>, <a class="el" href="usb-keyboard_8c.html#ac5b3c28b56eee8c08253f2c93247c2fb">kbdUSBKeyDown()</a>, and <a class="el" href="usb-keyboard_8c.html#a31da2502826ab88638635abb2b719cae">kbdUSBKeyState()</a>.</p>
    454 
    455 </div>
    456 </div>
    457 <a class="anchor" id="a3463151de078a8c7b6bfcae492b9e5f9"></a><!-- doxytag: member="lnx&#45;keyboard.c::SWITCHRETPROC" ref="a3463151de078a8c7b6bfcae492b9e5f9" args="" -->
    458 <div class="memitem">
    459 <div class="memproto">
    460       <table class="memname">
    461         <tr>
    462           <td class="memname">#define SWITCHRETPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adb9019a46004e627338bfb4a02800636">dmxVTSwitchReturnProcPtr</a></td>
    463         </tr>
    464       </table>
    465 </div>
    466 <div class="memdoc">
    467 
    468 </div>
    469 </div>
    470 <a class="anchor" id="acdc80f4d45e1276e533490146d014bde"></a><!-- doxytag: member="lnx&#45;keyboard.c::SYSCALL" ref="acdc80f4d45e1276e533490146d014bde" args="(call)" -->
    471 <div class="memitem">
    472 <div class="memproto">
    473       <table class="memname">
    474         <tr>
    475           <td class="memname">#define SYSCALL</td>
    476           <td>(</td>
    477           <td class="paramtype">&#160;</td>
    478           <td class="paramname">call</td><td>)</td>
    479           <td>&#160;&#160;&#160;while(((call) == -1) &amp;&amp; (errno == EINTR))</td>
    480         </tr>
    481       </table>
    482 </div>
    483 <div class="memdoc">
    484 
    485 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>.</p>
    486 
    487 </div>
    488 </div>
    489 <hr/><h2>Typedef Documentation</h2>
    490 <a class="anchor" id="a25692217bddf2b6c089525b325afccf1"></a><!-- doxytag: member="lnx&#45;keyboard.c::myPrivate" ref="a25692217bddf2b6c089525b325afccf1" args="" -->
    491 <div class="memitem">
    492 <div class="memproto">
    493       <table class="memname">
    494         <tr>
    495           <td class="memname">typedef struct <a class="el" href="struct__myPrivate.html">_myPrivate</a>  <a class="el" href="struct__myPrivate.html">myPrivate</a></td>
    496         </tr>
    497       </table>
    498 </div>
    499 <div class="memdoc">
    500 
    501 </div>
    502 </div>
    503 <hr/><h2>Function Documentation</h2>
    504 <a class="anchor" id="a49faeb3e9d06f702f1bd45ffc6f7c8b7"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxActivate" ref="a49faeb3e9d06f702f1bd45ffc6f7c8b7" args="(int fd, int vtno, int setSig)" -->
    505 <div class="memitem">
    506 <div class="memproto">
    507       <table class="memname">
    508         <tr>
    509           <td class="memname">static int kbdLinuxActivate </td>
    510           <td>(</td>
    511           <td class="paramtype">int&#160;</td>
    512           <td class="paramname"><em>fd</em>, </td>
    513         </tr>
    514         <tr>
    515           <td class="paramkey"></td>
    516           <td></td>
    517           <td class="paramtype">int&#160;</td>
    518           <td class="paramname"><em>vtno</em>, </td>
    519         </tr>
    520         <tr>
    521           <td class="paramkey"></td>
    522           <td></td>
    523           <td class="paramtype">int&#160;</td>
    524           <td class="paramname"><em>setSig</em>&#160;</td>
    525         </tr>
    526         <tr>
    527           <td></td>
    528           <td>)</td>
    529           <td></td><td><code> [static]</code></td>
    530         </tr>
    531       </table>
    532 </div>
    533 <div class="memdoc">
    534 
    535 <p>References <a class="el" href="lnx-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>, <a class="el" href="lnx-keyboard_8c.html#a93a481bcaf8d735c29c8b8114cf68eba">kbdLinuxVTSignalHandler()</a>, and <a class="el" href="lnx-keyboard_8c.html#acdc80f4d45e1276e533490146d014bde">SYSCALL</a>.</p>
    536 
    537 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole()</a>, <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>, and <a class="el" href="lnx-keyboard_8h.html#a11eda88b5082b0adaad1bbc723dae485">kbdLinuxVTSwitch()</a>.</p>
    538 
    539 </div>
    540 </div>
    541 <a class="anchor" id="a0acb8c77b4bd032bda9aeb87a656b9e7"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxBell" ref="a0acb8c77b4bd032bda9aeb87a656b9e7" args="(DevicePtr pDev, int percent, int volume, int pitch, int duration)" -->
    542 <div class="memitem">
    543 <div class="memproto">
    544       <table class="memname">
    545         <tr>
    546           <td class="memname">void kbdLinuxBell </td>
    547           <td>(</td>
    548           <td class="paramtype">DevicePtr&#160;</td>
    549           <td class="paramname"><em>pDev</em>, </td>
    550         </tr>
    551         <tr>
    552           <td class="paramkey"></td>
    553           <td></td>
    554           <td class="paramtype">int&#160;</td>
    555           <td class="paramname"><em>percent</em>, </td>
    556         </tr>
    557         <tr>
    558           <td class="paramkey"></td>
    559           <td></td>
    560           <td class="paramtype">int&#160;</td>
    561           <td class="paramname"><em>volume</em>, </td>
    562         </tr>
    563         <tr>
    564           <td class="paramkey"></td>
    565           <td></td>
    566           <td class="paramtype">int&#160;</td>
    567           <td class="paramname"><em>pitch</em>, </td>
    568         </tr>
    569         <tr>
    570           <td class="paramkey"></td>
    571           <td></td>
    572           <td class="paramtype">int&#160;</td>
    573           <td class="paramname"><em>duration</em>&#160;</td>
    574         </tr>
    575         <tr>
    576           <td></td>
    577           <td>)</td>
    578           <td></td><td></td>
    579         </tr>
    580       </table>
    581 </div>
    582 <div class="memdoc">
    583 <p>Ring the bell.</p>
    584 <p>Note: we completely ignore the <em>volume</em>, since Linux's ioctl() interface does not provide a way to control it. If it did, the XBell manpage tells how the actual volume is a function of the percent and the (base) volume.</p>
    585 <p>Note that most of the other PC-based bell drivers compute the duration for KDMKTONE as a function of the volume and the duration. For some drivers, the duration is only measured in mS if the volume is 50, and is scaled by the volume for other values. This seems confusing and possibly incorrect (the xset man page says that the bell will be "as closely as it can to the user's specifications" -- if we ignore the volume and set the duration correctly, then we'll get one parameter "wrong" -- but if we use the volume to scale the duration, then we'll get both parameters "wrong"). </p>
    586 
    587 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p>
    588 
    589 </div>
    590 </div>
    591 <a class="anchor" id="ac4263fa687463ddbe1622bdb82a44b08"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxCloseConsole" ref="ac4263fa687463ddbe1622bdb82a44b08" args="(DevicePtr pDev)" -->
    592 <div class="memitem">
    593 <div class="memproto">
    594       <table class="memname">
    595         <tr>
    596           <td class="memname">static void kbdLinuxCloseConsole </td>
    597           <td>(</td>
    598           <td class="paramtype">DevicePtr&#160;</td>
    599           <td class="paramname"><em>pDev</em></td><td>)</td>
    600           <td><code> [static]</code></td>
    601         </tr>
    602       </table>
    603 </div>
    604 <div class="memdoc">
    605 
    606 <p>References <a class="el" href="lnx-keyboard_8c.html#ad71b1ebcfa90278a27073d2c0cb4dad4">FINALMESSAGE</a>, <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>, and <a class="el" href="lnx-keyboard_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>.</p>
    607 
    608 <p>Referenced by <a class="el" href="lnx-keyboard_8h.html#a2f0498bfb85d9301b7bab802844b047d">kbdLinuxOff()</a>.</p>
    609 
    610 </div>
    611 </div>
    612 <a class="anchor" id="a6338eb254610cdbf7942ad91f23c36fe"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxConvert" ref="a6338eb254610cdbf7942ad91f23c36fe" args="(DevicePtr pDev, unsigned char scanCode, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" -->
    613 <div class="memitem">
    614 <div class="memproto">
    615       <table class="memname">
    616         <tr>
    617           <td class="memname">static void kbdLinuxConvert </td>
    618           <td>(</td>
    619           <td class="paramtype">DevicePtr&#160;</td>
    620           <td class="paramname"><em>pDev</em>, </td>
    621         </tr>
    622         <tr>
    623           <td class="paramkey"></td>
    624           <td></td>
    625           <td class="paramtype">unsigned char&#160;</td>
    626           <td class="paramname"><em>scanCode</em>, </td>
    627         </tr>
    628         <tr>
    629           <td class="paramkey"></td>
    630           <td></td>
    631           <td class="paramtype">ENQUEUEPROC&#160;</td>
    632           <td class="paramname"><em>enqueue</em>, </td>
    633         </tr>
    634         <tr>
    635           <td class="paramkey"></td>
    636           <td></td>
    637           <td class="paramtype">CHECKPROC&#160;</td>
    638           <td class="paramname"><em>checkspecial</em>, </td>
    639         </tr>
    640         <tr>
    641           <td class="paramkey"></td>
    642           <td></td>
    643           <td class="paramtype">BLOCK&#160;</td>
    644           <td class="paramname"><em>block</em>&#160;</td>
    645         </tr>
    646         <tr>
    647           <td></td>
    648           <td>)</td>
    649           <td></td><td><code> [static]</code></td>
    650         </tr>
    651       </table>
    652 </div>
    653 <div class="memdoc">
    654 
    655 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-keyboard_8c.html#a508da29b3082d7901ebf5c7397bd1a88">kbdLinuxKeyDown()</a>, <a class="el" href="lnx-keyboard_8c.html#a0667fd33b8b30b74319818c9e1752950">kbdLinuxKeyState()</a>, <a class="el" href="lnx-keyboard_8c.html#a67b95ff06cbdb5de12cc01954aa7b67e">kbdLinuxPrefixMapping()</a>, and <a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>.</p>
    656 
    657 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#aa7781cedb743039542090faf43d9423f">kbdLinuxRead()</a>.</p>
    658 
    659 </div>
    660 </div>
    661 <a class="anchor" id="aaeba8e3220761201a64b5da3e2f85e52"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxCreatePrivate" ref="aaeba8e3220761201a64b5da3e2f85e52" args="(DeviceIntPtr pKeyboard)" -->
    662 <div class="memitem">
    663 <div class="memproto">
    664       <table class="memname">
    665         <tr>
    666           <td class="memname">pointer kbdLinuxCreatePrivate </td>
    667           <td>(</td>
    668           <td class="paramtype">DeviceIntPtr&#160;</td>
    669           <td class="paramname"><em>pKeyboard</em></td><td>)</td>
    670           <td></td>
    671         </tr>
    672       </table>
    673 </div>
    674 <div class="memdoc">
    675 <p>Create a private structure for use within this file. </p>
    676 
    677 <p>References <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, and <a class="el" href="struct__myPrivate.html#a1f72c73bb97bf77b8f5359eabf81fb79">_myPrivate::pKeyboard</a>.</p>
    678 
    679 </div>
    680 </div>
    681 <a class="anchor" id="a278d93f44fccf1e642fa58c05bb2d06a"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxCtrl" ref="a278d93f44fccf1e642fa58c05bb2d06a" args="(DevicePtr pDev, KeybdCtrl *ctrl)" -->
    682 <div class="memitem">
    683 <div class="memproto">
    684       <table class="memname">
    685         <tr>
    686           <td class="memname">void kbdLinuxCtrl </td>
    687           <td>(</td>
    688           <td class="paramtype">DevicePtr&#160;</td>
    689           <td class="paramname"><em>pDev</em>, </td>
    690         </tr>
    691         <tr>
    692           <td class="paramkey"></td>
    693           <td></td>
    694           <td class="paramtype">KeybdCtrl *&#160;</td>
    695           <td class="paramname"><em>ctrl</em>&#160;</td>
    696         </tr>
    697         <tr>
    698           <td></td>
    699           <td>)</td>
    700           <td></td><td></td>
    701         </tr>
    702       </table>
    703 </div>
    704 <div class="memdoc">
    705 <p>Set the LEDs. </p>
    706 
    707 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p>
    708 
    709 </div>
    710 </div>
    711 <a class="anchor" id="a5c9ddc88a9a5d989ce49a071eadcec87"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxDestroyPrivate" ref="a5c9ddc88a9a5d989ce49a071eadcec87" args="(pointer priv)" -->
    712 <div class="memitem">
    713 <div class="memproto">
    714       <table class="memname">
    715         <tr>
    716           <td class="memname">void kbdLinuxDestroyPrivate </td>
    717           <td>(</td>
    718           <td class="paramtype">pointer&#160;</td>
    719           <td class="paramname"><em>priv</em></td><td>)</td>
    720           <td></td>
    721         </tr>
    722       </table>
    723 </div>
    724 <div class="memdoc">
    725 <p>Destroy a private structure. </p>
    726 
    727 </div>
    728 </div>
    729 <a class="anchor" id="aefe715d8634268857806b5655cb70466"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxGetCurrentVTNumber" ref="aefe715d8634268857806b5655cb70466" args="(int fd)" -->
    730 <div class="memitem">
    731 <div class="memproto">
    732       <table class="memname">
    733         <tr>
    734           <td class="memname">static int kbdLinuxGetCurrentVTNumber </td>
    735           <td>(</td>
    736           <td class="paramtype">int&#160;</td>
    737           <td class="paramname"><em>fd</em></td><td>)</td>
    738           <td><code> [static]</code></td>
    739         </tr>
    740       </table>
    741 </div>
    742 <div class="memdoc">
    743 
    744 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>.</p>
    745 
    746 </div>
    747 </div>
    748 <a class="anchor" id="a198a0f886cb4a350bfe714c16e92c44d"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxGetFreeVTNumber" ref="a198a0f886cb4a350bfe714c16e92c44d" args="(void)" -->
    749 <div class="memitem">
    750 <div class="memproto">
    751       <table class="memname">
    752         <tr>
    753           <td class="memname">static int kbdLinuxGetFreeVTNumber </td>
    754           <td>(</td>
    755           <td class="paramtype">void&#160;</td>
    756           <td class="paramname"></td><td>)</td>
    757           <td><code> [static]</code></td>
    758         </tr>
    759       </table>
    760 </div>
    761 <div class="memdoc">
    762 
    763 <p>References <a class="el" href="lnx-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>, and <a class="el" href="lnx-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>.</p>
    764 
    765 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>.</p>
    766 
    767 </div>
    768 </div>
    769 <a class="anchor" id="ae65b4fd1c456532a438479b35228d4cf"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxGetInfo" ref="ae65b4fd1c456532a438479b35228d4cf" args="(DevicePtr pDev, DMXLocalInitInfoPtr info)" -->
    770 <div class="memitem">
    771 <div class="memproto">
    772       <table class="memname">
    773         <tr>
    774           <td class="memname">void kbdLinuxGetInfo </td>
    775           <td>(</td>
    776           <td class="paramtype">DevicePtr&#160;</td>
    777           <td class="paramname"><em>pDev</em>, </td>
    778         </tr>
    779         <tr>
    780           <td class="paramkey"></td>
    781           <td></td>
    782           <td class="paramtype"><a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a>&#160;</td>
    783           <td class="paramname"><em>info</em>&#160;</td>
    784         </tr>
    785         <tr>
    786           <td></td>
    787           <td>)</td>
    788           <td></td><td></td>
    789         </tr>
    790       </table>
    791 </div>
    792 <div class="memdoc">
    793 <p>Fill the <em>info</em> structure with information needed to initialize <em>pDev</em>. </p>
    794 
    795 <p>References <a class="el" href="struct__DMXLocalInitInfo.html#a24b09c34e0cf80ec33f093e908206be4">_DMXLocalInitInfo::focusClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#af19caac0e20a9106b73714c9c7991ce5">_DMXLocalInitInfo::kbdFeedbackClass</a>, <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a214969f0843dcb70d8f7577f58bafa48">_DMXLocalInitInfo::keyboard</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a06626a99542714bbd032e9e12a8c6b55">_DMXLocalInitInfo::keyClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a02861e7e9c24381a229567d36e7a68b7">_DMXLocalInitInfo::keySyms</a>, and <a class="el" href="struct__DMXLocalInitInfo.html#a2e345080abf875ce6f85e63ed631cbcd">_DMXLocalInitInfo::modMap</a>.</p>
    796 
    797 </div>
    798 </div>
    799 <a class="anchor" id="ad3e8695c18469949e1ed00f7cd8055a5"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxGetMap" ref="ad3e8695c18469949e1ed00f7cd8055a5" args="(DevicePtr pDev, KeySymsPtr pKeySyms, CARD8 *pModMap)" -->
    800 <div class="memitem">
    801 <div class="memproto">
    802       <table class="memname">
    803         <tr>
    804           <td class="memname">static void kbdLinuxGetMap </td>
    805           <td>(</td>
    806           <td class="paramtype">DevicePtr&#160;</td>
    807           <td class="paramname"><em>pDev</em>, </td>
    808         </tr>
    809         <tr>
    810           <td class="paramkey"></td>
    811           <td></td>
    812           <td class="paramtype">KeySymsPtr&#160;</td>
    813           <td class="paramname"><em>pKeySyms</em>, </td>
    814         </tr>
    815         <tr>
    816           <td class="paramkey"></td>
    817           <td></td>
    818           <td class="paramtype">CARD8 *&#160;</td>
    819           <td class="paramname"><em>pModMap</em>&#160;</td>
    820         </tr>
    821         <tr>
    822           <td></td>
    823           <td>)</td>
    824           <td></td><td><code> [static]</code></td>
    825         </tr>
    826       </table>
    827 </div>
    828 <div class="memdoc">
    829 
    830 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="usb-keyboard_8c.html#a6238ada986dd7e452a89773c2252a96d">GLYPHS_PER_KEY</a>, <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>, <a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>, <a class="el" href="usb-keyboard_8c.html#ac769af5d0ea9b1ab3a1cd61572f8f302">MAX_KEYCODE</a>, <a class="el" href="usb-keyboard_8c.html#a4204c7bd1b89b76ee0bd11d53741d4e6">MIN_KEYCODE</a>, and <a class="el" href="usb-keyboard_8c.html#a6dbb3fc1c4a78ddba8904d186c8b2784">NUM_KEYCODES</a>.</p>
    831 
    832 <p>Referenced by <a class="el" href="lnx-keyboard_8h.html#ae65b4fd1c456532a438479b35228d4cf">kbdLinuxGetInfo()</a>.</p>
    833 
    834 </div>
    835 </div>
    836 <a class="anchor" id="a24c8cbb95ad1f21d590f57cdb22c25f4"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxInit" ref="a24c8cbb95ad1f21d590f57cdb22c25f4" args="(DevicePtr pDev)" -->
    837 <div class="memitem">
    838 <div class="memproto">
    839       <table class="memname">
    840         <tr>
    841           <td class="memname">void kbdLinuxInit </td>
    842           <td>(</td>
    843           <td class="paramtype">DevicePtr&#160;</td>
    844           <td class="paramname"><em>pDev</em></td><td>)</td>
    845           <td></td>
    846         </tr>
    847       </table>
    848 </div>
    849 <div class="memdoc">
    850 <p>Initialize the <em>pDev</em> as a Linux keyboard. </p>
    851 
    852 <p>References <a class="el" href="lnx-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>, <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>.</p>
    853 
    854 </div>
    855 </div>
    856 <a class="anchor" id="a508da29b3082d7901ebf5c7397bd1a88"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxKeyDown" ref="a508da29b3082d7901ebf5c7397bd1a88" args="(myPrivate *priv, int keyCode)" -->
    857 <div class="memitem">
    858 <div class="memproto">
    859       <table class="memname">
    860         <tr>
    861           <td class="memname">static int kbdLinuxKeyDown </td>
    862           <td>(</td>
    863           <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> *&#160;</td>
    864           <td class="paramname"><em>priv</em>, </td>
    865         </tr>
    866         <tr>
    867           <td class="paramkey"></td>
    868           <td></td>
    869           <td class="paramtype">int&#160;</td>
    870           <td class="paramname"><em>keyCode</em>&#160;</td>
    871         </tr>
    872         <tr>
    873           <td></td>
    874           <td>)</td>
    875           <td></td><td><code> [static]</code></td>
    876         </tr>
    877       </table>
    878 </div>
    879 <div class="memdoc">
    880 
    881 <p>References <a class="el" href="struct__myPrivate.html#a35c7b19223e75cef1eebc0467fb2514d">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c.html#a4551482d17e969e4de70a669be3afc74">NUM_STATE_ENTRIES</a>.</p>
    882 
    883 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>, and <a class="el" href="usb-keyboard_8c.html#a1bdbc94af66450a58735130ce8b994d0">kbdUSBConvert()</a>.</p>
    884 
    885 </div>
    886 </div>
    887 <a class="anchor" id="a0667fd33b8b30b74319818c9e1752950"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxKeyState" ref="a0667fd33b8b30b74319818c9e1752950" args="(myPrivate *priv, int type, int keyCode)" -->
    888 <div class="memitem">
    889 <div class="memproto">
    890       <table class="memname">
    891         <tr>
    892           <td class="memname">static void kbdLinuxKeyState </td>
    893           <td>(</td>
    894           <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> *&#160;</td>
    895           <td class="paramname"><em>priv</em>, </td>
    896         </tr>
    897         <tr>
    898           <td class="paramkey"></td>
    899           <td></td>
    900           <td class="paramtype">int&#160;</td>
    901           <td class="paramname"><em>type</em>, </td>
    902         </tr>
    903         <tr>
    904           <td class="paramkey"></td>
    905           <td></td>
    906           <td class="paramtype">int&#160;</td>
    907           <td class="paramname"><em>keyCode</em>&#160;</td>
    908         </tr>
    909         <tr>
    910           <td></td>
    911           <td>)</td>
    912           <td></td><td><code> [static]</code></td>
    913         </tr>
    914       </table>
    915 </div>
    916 <div class="memdoc">
    917 
    918 <p>References <a class="el" href="struct__myPrivate.html#a35c7b19223e75cef1eebc0467fb2514d">_myPrivate::kbdState</a>, and <a class="el" href="lnx-keyboard_8c.html#a4551482d17e969e4de70a669be3afc74">NUM_STATE_ENTRIES</a>.</p>
    919 
    920 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>.</p>
    921 
    922 </div>
    923 </div>
    924 <a class="anchor" id="a2f0498bfb85d9301b7bab802844b047d"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxOff" ref="a2f0498bfb85d9301b7bab802844b047d" args="(DevicePtr pDev)" -->
    925 <div class="memitem">
    926 <div class="memproto">
    927       <table class="memname">
    928         <tr>
    929           <td class="memname">void kbdLinuxOff </td>
    930           <td>(</td>
    931           <td class="paramtype">DevicePtr&#160;</td>
    932           <td class="paramname"><em>pDev</em></td><td>)</td>
    933           <td></td>
    934         </tr>
    935       </table>
    936 </div>
    937 <div class="memdoc">
    938 <p>Turn <em>pDev</em> off (i.e., stop taking input from <em>pDev</em>). </p>
    939 
    940 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="lnx-keyboard_8c.html#ac4263fa687463ddbe1622bdb82a44b08">kbdLinuxCloseConsole()</a>.</p>
    941 
    942 </div>
    943 </div>
    944 <a class="anchor" id="a541096c9032b400b6f7f8cc76c36f716"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxOn" ref="a541096c9032b400b6f7f8cc76c36f716" args="(DevicePtr pDev)" -->
    945 <div class="memitem">
    946 <div class="memproto">
    947       <table class="memname">
    948         <tr>
    949           <td class="memname">int kbdLinuxOn </td>
    950           <td>(</td>
    951           <td class="paramtype">DevicePtr&#160;</td>
    952           <td class="paramname"><em>pDev</em></td><td>)</td>
    953           <td></td>
    954         </tr>
    955       </table>
    956 </div>
    957 <div class="memdoc">
    958 <p>Turn <em>pDev</em> on (i.e., take input from <em>pDev</em>). </p>
    959 
    960 <p>References <a class="el" href="lnx-keyboard_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>, and <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p>
    961 
    962 </div>
    963 </div>
    964 <a class="anchor" id="a583121fb5591debead8398c1626f2385"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxOpenConsole" ref="a583121fb5591debead8398c1626f2385" args="(DevicePtr pDev)" -->
    965 <div class="memitem">
    966 <div class="memproto">
    967       <table class="memname">
    968         <tr>
    969           <td class="memname">static void kbdLinuxOpenConsole </td>
    970           <td>(</td>
    971           <td class="paramtype">DevicePtr&#160;</td>
    972           <td class="paramname"><em>pDev</em></td><td>)</td>
    973           <td><code> [static]</code></td>
    974         </tr>
    975       </table>
    976 </div>
    977 <div class="memdoc">
    978 
    979 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>, <a class="el" href="lnx-keyboard_8c.html#aefe715d8634268857806b5655cb70466">kbdLinuxGetCurrentVTNumber()</a>, <a class="el" href="lnx-keyboard_8c.html#a198a0f886cb4a350bfe714c16e92c44d">kbdLinuxGetFreeVTNumber()</a>, <a class="el" href="lnx-keyboard_8c.html#af405cce5d5bbc25171b425782f6e0b92">kbdLinuxOpenVT()</a>, <a class="el" href="lnx-keyboard_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>, and <a class="el" href="lnx-keyboard_8c.html#af8a3e30cb4858ca8a098acae107286c0">MESSAGE</a>.</p>
    980 
    981 <p>Referenced by <a class="el" href="lnx-keyboard_8h.html#a24c8cbb95ad1f21d590f57cdb22c25f4">kbdLinuxInit()</a>.</p>
    982 
    983 </div>
    984 </div>
    985 <a class="anchor" id="af405cce5d5bbc25171b425782f6e0b92"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxOpenVT" ref="af405cce5d5bbc25171b425782f6e0b92" args="(int vtno)" -->
    986 <div class="memitem">
    987 <div class="memproto">
    988       <table class="memname">
    989         <tr>
    990           <td class="memname">static int kbdLinuxOpenVT </td>
    991           <td>(</td>
    992           <td class="paramtype">int&#160;</td>
    993           <td class="paramname"><em>vtno</em></td><td>)</td>
    994           <td><code> [static]</code></td>
    995         </tr>
    996       </table>
    997 </div>
    998 <div class="memdoc">
    999 
   1000 <p>References <a class="el" href="lnx-keyboard_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>, and <a class="el" href="dmxsigio_8c.html#a39d33ce33804efd4d52606d59071c6d8">O_NONBLOCK</a>.</p>
   1001 
   1002 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a583121fb5591debead8398c1626f2385">kbdLinuxOpenConsole()</a>.</p>
   1003 
   1004 </div>
   1005 </div>
   1006 <a class="anchor" id="a582fe5af774d898b85edb42116598890"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxPrefix0Mapping" ref="a582fe5af774d898b85edb42116598890" args="(unsigned char *scanCode)" -->
   1007 <div class="memitem">
   1008 <div class="memproto">
   1009       <table class="memname">
   1010         <tr>
   1011           <td class="memname">static int kbdLinuxPrefix0Mapping </td>
   1012           <td>(</td>
   1013           <td class="paramtype">unsigned char *&#160;</td>
   1014           <td class="paramname"><em>scanCode</em></td><td>)</td>
   1015           <td><code> [static]</code></td>
   1016         </tr>
   1017       </table>
   1018 </div>
   1019 <div class="memdoc">
   1020 
   1021 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a67b95ff06cbdb5de12cc01954aa7b67e">kbdLinuxPrefixMapping()</a>.</p>
   1022 
   1023 </div>
   1024 </div>
   1025 <a class="anchor" id="a67b95ff06cbdb5de12cc01954aa7b67e"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxPrefixMapping" ref="a67b95ff06cbdb5de12cc01954aa7b67e" args="(myPrivate *priv, unsigned char *scanCode)" -->
   1026 <div class="memitem">
   1027 <div class="memproto">
   1028       <table class="memname">
   1029         <tr>
   1030           <td class="memname">static int kbdLinuxPrefixMapping </td>
   1031           <td>(</td>
   1032           <td class="paramtype"><a class="el" href="struct__myPrivate.html">myPrivate</a> *&#160;</td>
   1033           <td class="paramname"><em>priv</em>, </td>
   1034         </tr>
   1035         <tr>
   1036           <td class="paramkey"></td>
   1037           <td></td>
   1038           <td class="paramtype">unsigned char *&#160;</td>
   1039           <td class="paramname"><em>scanCode</em>&#160;</td>
   1040         </tr>
   1041         <tr>
   1042           <td></td>
   1043           <td>)</td>
   1044           <td></td><td><code> [static]</code></td>
   1045         </tr>
   1046       </table>
   1047 </div>
   1048 <div class="memdoc">
   1049 
   1050 <p>References <a class="el" href="lnx-keyboard_8c.html#a582fe5af774d898b85edb42116598890">kbdLinuxPrefix0Mapping()</a>, and <a class="el" href="struct__myPrivate.html#a35c7eda9702b723812312689bf412424">_myPrivate::prefix</a>.</p>
   1051 
   1052 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>.</p>
   1053 
   1054 </div>
   1055 </div>
   1056 <a class="anchor" id="aa7781cedb743039542090faf43d9423f"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxRead" ref="aa7781cedb743039542090faf43d9423f" args="(DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" -->
   1057 <div class="memitem">
   1058 <div class="memproto">
   1059       <table class="memname">
   1060         <tr>
   1061           <td class="memname">void kbdLinuxRead </td>
   1062           <td>(</td>
   1063           <td class="paramtype">DevicePtr&#160;</td>
   1064           <td class="paramname"><em>pDev</em>, </td>
   1065         </tr>
   1066         <tr>
   1067           <td class="paramkey"></td>
   1068           <td></td>
   1069           <td class="paramtype">MOTIONPROC&#160;</td>
   1070           <td class="paramname"><em>motion</em>, </td>
   1071         </tr>
   1072         <tr>
   1073           <td class="paramkey"></td>
   1074           <td></td>
   1075           <td class="paramtype">ENQUEUEPROC&#160;</td>
   1076           <td class="paramname"><em>enqueue</em>, </td>
   1077         </tr>
   1078         <tr>
   1079           <td class="paramkey"></td>
   1080           <td></td>
   1081           <td class="paramtype">CHECKPROC&#160;</td>
   1082           <td class="paramname"><em>checkspecial</em>, </td>
   1083         </tr>
   1084         <tr>
   1085           <td class="paramkey"></td>
   1086           <td></td>
   1087           <td class="paramtype">BLOCK&#160;</td>
   1088           <td class="paramname"><em>block</em>&#160;</td>
   1089         </tr>
   1090         <tr>
   1091           <td></td>
   1092           <td>)</td>
   1093           <td></td><td></td>
   1094         </tr>
   1095       </table>
   1096 </div>
   1097 <div class="memdoc">
   1098 <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>
   1099 
   1100 <p>References <a class="el" href="lnx-keyboard_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="lnx-keyboard_8c.html#a6338eb254610cdbf7942ad91f23c36fe">kbdLinuxConvert()</a>.</p>
   1101 
   1102 </div>
   1103 </div>
   1104 <a class="anchor" id="acc3cbed3f7e836f032b2e131baeb4800"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxReadKernelMapping" ref="acc3cbed3f7e836f032b2e131baeb4800" args="(int fd, KeySymsPtr pKeySyms)" -->
   1105 <div class="memitem">
   1106 <div class="memproto">
   1107       <table class="memname">
   1108         <tr>
   1109           <td class="memname">static void kbdLinuxReadKernelMapping </td>
   1110           <td>(</td>
   1111           <td class="paramtype">int&#160;</td>
   1112           <td class="paramname"><em>fd</em>, </td>
   1113         </tr>
   1114         <tr>
   1115           <td class="paramkey"></td>
   1116           <td></td>
   1117           <td class="paramtype">KeySymsPtr&#160;</td>
   1118           <td class="paramname"><em>pKeySyms</em>&#160;</td>
   1119         </tr>
   1120         <tr>
   1121           <td></td>
   1122           <td>)</td>
   1123           <td></td><td><code> [static]</code></td>
   1124         </tr>
   1125       </table>
   1126 </div>
   1127 <div class="memdoc">
   1128 
   1129 <p>References <a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>, <a class="el" href="usb-keyboard_8c.html#a6238ada986dd7e452a89773c2252a96d">GLYPHS_PER_KEY</a>, <a class="el" href="lnx-keyboard_8c.html#a8448907727701c5b1fd1001458ccd62c">linux_to_x</a>, <a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>, and <a class="el" href="lnx-keyboard_8c.html#aa472fa3dc86eaccfc92bb0caf47bdcd9">NUM_AT2LNX</a>.</p>
   1130 
   1131 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#ad3e8695c18469949e1ed00f7cd8055a5">kbdLinuxGetMap()</a>.</p>
   1132 
   1133 </div>
   1134 </div>
   1135 <a class="anchor" id="a8c0e2439e4991b78f99c79e90f5e474d"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxVTPostSwitch" ref="a8c0e2439e4991b78f99c79e90f5e474d" args="(pointer p)" -->
   1136 <div class="memitem">
   1137 <div class="memproto">
   1138       <table class="memname">
   1139         <tr>
   1140           <td class="memname">void kbdLinuxVTPostSwitch </td>
   1141           <td>(</td>
   1142           <td class="paramtype">pointer&#160;</td>
   1143           <td class="paramname"><em>p</em></td><td>)</td>
   1144           <td></td>
   1145         </tr>
   1146       </table>
   1147 </div>
   1148 <div class="memdoc">
   1149 <p>Currently unused hook called after returning from a VT switch. </p>
   1150 
   1151 </div>
   1152 </div>
   1153 <a class="anchor" id="a50fd258e64aa03fd197af2a1a8306b32"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxVTPreSwitch" ref="a50fd258e64aa03fd197af2a1a8306b32" args="(pointer p)" -->
   1154 <div class="memitem">
   1155 <div class="memproto">
   1156       <table class="memname">
   1157         <tr>
   1158           <td class="memname">void kbdLinuxVTPreSwitch </td>
   1159           <td>(</td>
   1160           <td class="paramtype">pointer&#160;</td>
   1161           <td class="paramname"><em>p</em></td><td>)</td>
   1162           <td></td>
   1163         </tr>
   1164       </table>
   1165 </div>
   1166 <div class="memdoc">
   1167 <p>Currently unused hook called prior to an VT switch. </p>
   1168 
   1169 </div>
   1170 </div>
   1171 <a class="anchor" id="a93a481bcaf8d735c29c8b8114cf68eba"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxVTSignalHandler" ref="a93a481bcaf8d735c29c8b8114cf68eba" args="(int sig)" -->
   1172 <div class="memitem">
   1173 <div class="memproto">
   1174       <table class="memname">
   1175         <tr>
   1176           <td class="memname">static void kbdLinuxVTSignalHandler </td>
   1177           <td>(</td>
   1178           <td class="paramtype">int&#160;</td>
   1179           <td class="paramname"><em>sig</em></td><td>)</td>
   1180           <td><code> [static]</code></td>
   1181         </tr>
   1182       </table>
   1183 </div>
   1184 <div class="memdoc">
   1185 
   1186 <p>References <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, <a class="el" href="lnx-keyboard_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>, <a class="el" href="lnx-keyboard_8c.html#a4feca68f31d2c2170bef7d62f747dd88">PRIV</a>, <a class="el" href="struct__myPrivate.html#ab4797772b07f0fc6aca12ca15bf58b26">_myPrivate::switch_return</a>, <a class="el" href="struct__myPrivate.html#a263e4371987e44a409cae181d97ce60b">_myPrivate::switch_return_data</a>, and <a class="el" href="struct__myPrivate.html#a7b46718db81521ae01ffbbe8f32a0203">_myPrivate::switched</a>.</p>
   1187 
   1188 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>.</p>
   1189 
   1190 </div>
   1191 </div>
   1192 <a class="anchor" id="a7e6977d8d414fb1b62710835ca763af4"></a><!-- doxytag: member="lnx&#45;keyboard.c::kbdLinuxVTSwitch" ref="a7e6977d8d414fb1b62710835ca763af4" args="(pointer p, int vt, void(*switch_return)(pointer), pointer switch_return_data)" -->
   1193 <div class="memitem">
   1194 <div class="memproto">
   1195       <table class="memname">
   1196         <tr>
   1197           <td class="memname">int kbdLinuxVTSwitch </td>
   1198           <td>(</td>
   1199           <td class="paramtype">pointer&#160;</td>
   1200           <td class="paramname"><em>p</em>, </td>
   1201         </tr>
   1202         <tr>
   1203           <td class="paramkey"></td>
   1204           <td></td>
   1205           <td class="paramtype">int&#160;</td>
   1206           <td class="paramname"><em>vt</em>, </td>
   1207         </tr>
   1208         <tr>
   1209           <td class="paramkey"></td>
   1210           <td></td>
   1211           <td class="paramtype">void(*)(pointer)&#160;</td>
   1212           <td class="paramname"><em>switch_return</em>, </td>
   1213         </tr>
   1214         <tr>
   1215           <td class="paramkey"></td>
   1216           <td></td>
   1217           <td class="paramtype">pointer&#160;</td>
   1218           <td class="paramname"><em>switch_return_data</em>&#160;</td>
   1219         </tr>
   1220         <tr>
   1221           <td></td>
   1222           <td>)</td>
   1223           <td></td><td></td>
   1224         </tr>
   1225       </table>
   1226 </div>
   1227 <div class="memdoc">
   1228 <p>Tell the operating system to switch to <em>vt</em>. The <em>switch_return</em> function is called with the <em>switch_return_data</em> when the VT is switched back to the pre-switch VT (i.e., the user returns to the DMX session). </p>
   1229 
   1230 <p>References <a class="el" href="lnx-keyboard_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>, <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, <a class="el" href="lnx-keyboard_8c.html#a49faeb3e9d06f702f1bd45ffc6f7c8b7">kbdLinuxActivate()</a>, <a class="el" href="struct__myPrivate.html#ab4797772b07f0fc6aca12ca15bf58b26">_myPrivate::switch_return</a>, <a class="el" href="struct__myPrivate.html#a263e4371987e44a409cae181d97ce60b">_myPrivate::switch_return_data</a>, <a class="el" href="struct__myPrivate.html#a7b46718db81521ae01ffbbe8f32a0203">_myPrivate::switched</a>, and <a class="el" href="struct__myPrivate.html#a463f3cda6fa6032ea0d976d35cd11c30">_myPrivate::vtno</a>.</p>
   1231 
   1232 </div>
   1233 </div>
   1234 <hr/><h2>Variable Documentation</h2>
   1235 <a class="anchor" id="a87773afe2af683304ea3a365f360b624"></a><!-- doxytag: member="lnx&#45;keyboard.c::at2lnx" ref="a87773afe2af683304ea3a365f360b624" args="[NUM_KEYCODES]" -->
   1236 <div class="memitem">
   1237 <div class="memproto">
   1238       <table class="memname">
   1239         <tr>
   1240           <td class="memname">unsigned char <a class="el" href="lnx-keyboard_8c.html#a87773afe2af683304ea3a365f360b624">at2lnx</a>[NUM_KEYCODES]<code> [static]</code></td>
   1241         </tr>
   1242       </table>
   1243 </div>
   1244 <div class="memdoc">
   1245 
   1246 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>.</p>
   1247 
   1248 </div>
   1249 </div>
   1250 <a class="anchor" id="a8448907727701c5b1fd1001458ccd62c"></a><!-- doxytag: member="lnx&#45;keyboard.c::linux_to_x" ref="a8448907727701c5b1fd1001458ccd62c" args="[256]" -->
   1251 <div class="memitem">
   1252 <div class="memproto">
   1253       <table class="memname">
   1254         <tr>
   1255           <td class="memname">KeySym <a class="el" href="lnx-keyboard_8c.html#a8448907727701c5b1fd1001458ccd62c">linux_to_x</a>[256]<code> [static]</code></td>
   1256         </tr>
   1257       </table>
   1258 </div>
   1259 <div class="memdoc">
   1260 
   1261 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#acc3cbed3f7e836f032b2e131baeb4800">kbdLinuxReadKernelMapping()</a>.</p>
   1262 
   1263 </div>
   1264 </div>
   1265 <a class="anchor" id="a4feca68f31d2c2170bef7d62f747dd88"></a><!-- doxytag: member="lnx&#45;keyboard.c::PRIV" ref="a4feca68f31d2c2170bef7d62f747dd88" args="" -->
   1266 <div class="memitem">
   1267 <div class="memproto">
   1268       <table class="memname">
   1269         <tr>
   1270           <td class="memname"><a class="el" href="struct__myPrivate.html">myPrivate</a>* <a class="el" href="lnx-keyboard_8c.html#a4feca68f31d2c2170bef7d62f747dd88">PRIV</a> = NULL<code> [static]</code></td>
   1271         </tr>
   1272       </table>
   1273 </div>
   1274 <div class="memdoc">
   1275 
   1276 <p>Referenced by <a class="el" href="lnx-keyboard_8c.html#a93a481bcaf8d735c29c8b8114cf68eba">kbdLinuxVTSignalHandler()</a>.</p>
   1277 
   1278 </div>
   1279 </div>
   1280 </div>
   1281 </div>
   1282   <div id="nav-path" class="navpath">
   1283     <ul>
   1284       <li class="navelem"><a class="el" href="lnx-keyboard_8c.html">lnx-keyboard.c</a>      </li>
   1285     <hr>
   1286     <address>
   1287       <small>
   1288         Generated June 29, 2004 for <a
   1289         href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
   1290         <a href="http://www.doxygen.org/index.html">doxygen</a>
   1291         1.3.4.
   1292       </small>
   1293     </addres>
   1294     </hr>
   1295   </body>
   1296 </html>
   1297