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>
63Data 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>
66Defines</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>
86Typedefs</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>
89Functions</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>
117Variables</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