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-ms_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>  </div>
43  <div class="headertitle">
44<div class="title">lnx-ms.c File Reference</div>  </div>
45</div>
46<div class="contents">
47<div class="textblock"><code>#include &quot;inputstr.h&quot;</code><br/>
48<code>#include &lt;X11/Xos.h&gt;</code><br/>
49<code>#include &lt;errno.h&gt;</code><br/>
50<code>#include &lt;termios.h&gt;</code><br/>
51<code>#include &quot;<a class="el" href="dmxinputinit_8h_source.html">dmxinputinit.h</a>&quot;</code><br/>
52<code>#include &quot;<a class="el" href="lnx-ms_8h_source.html">lnx-ms.h</a>&quot;</code><br/>
53</div><table class="memberdecls">
54<tr><td colspan="2"><h2><a name="nested-classes"></a>
55Data Structures</h2></td></tr>
56<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>
57<tr><td colspan="2"><h2><a name="define-members"></a>
58Defines</h2></td></tr>
59<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a></td></tr>
60<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a837722a322e811d5e42242655f277b87">LOG0</a>(f)&#160;&#160;&#160;dmxLog(dmxDebug,f)</td></tr>
61<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#aab4b3434c36117a2ecdddec40716d97a">LOG1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxDebug,f,a)</td></tr>
62<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a16da5d597d9bfb9e569a9bfb6996382c">LOG2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b)</td></tr>
63<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a8247f0bca25789d2ac27674eb26e223f">LOG3</a>(f, a, b, c)&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b,c)</td></tr>
64<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a6bce6020b913db8afe5d94bc63d1b355">FATAL0</a>(f)&#160;&#160;&#160;dmxLog(dmxFatal,f)</td></tr>
65<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>(f, a)&#160;&#160;&#160;dmxLog(dmxFatal,f,a)</td></tr>
66<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a7952c9e9fe9c75be4964fc53a4299183">FATAL2</a>(f, a, b)&#160;&#160;&#160;dmxLog(dmxFatal,f,a,b)</td></tr>
67<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a11a17082bee3b1b8217ce8a12adcf814">MOTIONPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</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-ms_8c.html#a017080ce5e42667a6582cf858e7185cd">ENQUEUEPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td></tr>
69<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#aa35a985e998ad5e2187e13434dca118a">CHECKPROC</a>&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</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-ms_8c.html#a52220397ecea855b3a99746e451426e1">BLOCK</a>&#160;&#160;&#160;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td></tr>
71<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a7581da9bfd7ebf4fe3703352df521931">PRESS</a>(b)</td></tr>
72<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a2b4d2480737f9eb52f80998518486f01">RELEASE</a>(b)</td></tr>
73<tr><td colspan="2"><h2><a name="typedef-members"></a>
74Typedefs</h2></td></tr>
75<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-ms_8c.html#a25692217bddf2b6c089525b325afccf1">myPrivate</a></td></tr>
76<tr><td colspan="2"><h2><a name="func-members"></a>
77Functions</h2></td></tr>
78<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a71addb6f47215d1e4bf1452fdeeb5081">msLinuxReadBytes</a> (int fd, unsigned char *buf, int len, int min)</td></tr>
79<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a40d253404cd0db2e90bf9e3e6957d2a5">msLinuxButton</a> (DevicePtr pDev, ENQUEUEPROC enqueue, int buttons, BLOCK block)</td></tr>
80<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#abad8a6240d6769094e70b92f5d8b72d4">msLinuxRead</a> (DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)</td></tr>
81<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a0afb23673c5b1bc695c09f3f3bd75a4b">msLinuxInit</a> (DevicePtr pDev)</td></tr>
82<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#ad8f116275f80b5143bc6fe8806cf1298">msLinuxOn</a> (DevicePtr pDev)</td></tr>
83<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a834a356a0e28d90699a8178154588e09">msLinuxOff</a> (DevicePtr pDev)</td></tr>
84<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a04f66d21af929f125fa7d524883700d5">msLinuxGetMap</a> (DevicePtr pDev, unsigned char *<a class="el" href="usb-keyboard_8c.html#a2187a19657fb0b38c67dbafc7dd74c4d">map</a>, int *nButtons)</td></tr>
85<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a1ce83df54082f3196ac29e36dea47fc5">msLinuxVTPreSwitch</a> (pointer p)</td></tr>
86<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#af83993c8cc498cbd9f91737beefb5ea3">msLinuxVTPostSwitch</a> (pointer p)</td></tr>
87<tr><td class="memItemLeft" align="right" valign="top">pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a7d7777681993bc701468245e42c04282">msLinuxCreatePrivate</a> (DeviceIntPtr pMouse)</td></tr>
88<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#a570d96862061388c5649972b2fa22d75">msLinuxDestroyPrivate</a> (pointer priv)</td></tr>
89<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lnx-ms_8c.html#ad650b3779315db603085a045405c9d9a">msLinuxGetInfo</a> (DevicePtr pDev, <a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a> info)</td></tr>
90</table>
91<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
92<div class="textblock"><p>This code implements a low-level device driver for a serial MS mouse. The code is derived from code by Juliusz Chroboczek and Keith Packard (see the source code for complete references). </p>
93</div><hr/><h2>Define Documentation</h2>
94<a class="anchor" id="a52220397ecea855b3a99746e451426e1"></a><!-- doxytag: member="lnx&#45;ms.c::BLOCK" ref="a52220397ecea855b3a99746e451426e1" args="" -->
95<div class="memitem">
96<div class="memproto">
97      <table class="memname">
98        <tr>
99          <td class="memname">#define BLOCK&#160;&#160;&#160;<a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7">DMXBlockType</a></td>
100        </tr>
101      </table>
102</div>
103<div class="memdoc">
104
105</div>
106</div>
107<a class="anchor" id="aa35a985e998ad5e2187e13434dca118a"></a><!-- doxytag: member="lnx&#45;ms.c::CHECKPROC" ref="aa35a985e998ad5e2187e13434dca118a" args="" -->
108<div class="memitem">
109<div class="memproto">
110      <table class="memname">
111        <tr>
112          <td class="memname">#define CHECKPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a838cb45fd92d5cf506e4179b601f7dbc">dmxCheckSpecialProcPtr</a></td>
113        </tr>
114      </table>
115</div>
116<div class="memdoc">
117
118</div>
119</div>
120<a class="anchor" id="a017080ce5e42667a6582cf858e7185cd"></a><!-- doxytag: member="lnx&#45;ms.c::ENQUEUEPROC" ref="a017080ce5e42667a6582cf858e7185cd" args="" -->
121<div class="memitem">
122<div class="memproto">
123      <table class="memname">
124        <tr>
125          <td class="memname">#define ENQUEUEPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#adbd955b9ddbc5ffe38ff65e3f068f205">dmxEnqueueProcPtr</a></td>
126        </tr>
127      </table>
128</div>
129<div class="memdoc">
130
131</div>
132</div>
133<a class="anchor" id="a6bce6020b913db8afe5d94bc63d1b355"></a><!-- doxytag: member="lnx&#45;ms.c::FATAL0" ref="a6bce6020b913db8afe5d94bc63d1b355" args="(f)" -->
134<div class="memitem">
135<div class="memproto">
136      <table class="memname">
137        <tr>
138          <td class="memname">#define FATAL0</td>
139          <td>(</td>
140          <td class="paramtype">&#160;</td>
141          <td class="paramname">f</td><td>)</td>
142          <td>&#160;&#160;&#160;dmxLog(dmxFatal,f)</td>
143        </tr>
144      </table>
145</div>
146<div class="memdoc">
147
148</div>
149</div>
150<a class="anchor" id="a11bcea7c6bc7dbe400a3855f5b8676ce"></a><!-- doxytag: member="lnx&#45;ms.c::FATAL1" ref="a11bcea7c6bc7dbe400a3855f5b8676ce" args="(f, a)" -->
151<div class="memitem">
152<div class="memproto">
153      <table class="memname">
154        <tr>
155          <td class="memname">#define FATAL1</td>
156          <td>(</td>
157          <td class="paramtype">&#160;</td>
158          <td class="paramname">f, </td>
159        </tr>
160        <tr>
161          <td class="paramkey"></td>
162          <td></td>
163          <td class="paramtype">&#160;</td>
164          <td class="paramname">a&#160;</td>
165        </tr>
166        <tr>
167          <td></td>
168          <td>)</td>
169          <td></td><td>&#160;&#160;&#160;dmxLog(dmxFatal,f,a)</td>
170        </tr>
171      </table>
172</div>
173<div class="memdoc">
174
175<p>Referenced by <a class="el" href="lnx-ms_8h.html#a0afb23673c5b1bc695c09f3f3bd75a4b">msLinuxInit()</a>, and <a class="el" href="lnx-ms_8h.html#ad8f116275f80b5143bc6fe8806cf1298">msLinuxOn()</a>.</p>
176
177</div>
178</div>
179<a class="anchor" id="a7952c9e9fe9c75be4964fc53a4299183"></a><!-- doxytag: member="lnx&#45;ms.c::FATAL2" ref="a7952c9e9fe9c75be4964fc53a4299183" args="(f, a, b)" -->
180<div class="memitem">
181<div class="memproto">
182      <table class="memname">
183        <tr>
184          <td class="memname">#define FATAL2</td>
185          <td>(</td>
186          <td class="paramtype">&#160;</td>
187          <td class="paramname">f, </td>
188        </tr>
189        <tr>
190          <td class="paramkey"></td>
191          <td></td>
192          <td class="paramtype">&#160;</td>
193          <td class="paramname">a, </td>
194        </tr>
195        <tr>
196          <td class="paramkey"></td>
197          <td></td>
198          <td class="paramtype">&#160;</td>
199          <td class="paramname">b&#160;</td>
200        </tr>
201        <tr>
202          <td></td>
203          <td>)</td>
204          <td></td><td>&#160;&#160;&#160;dmxLog(dmxFatal,f,a,b)</td>
205        </tr>
206      </table>
207</div>
208<div class="memdoc">
209
210</div>
211</div>
212<a class="anchor" id="aacf069d346230dd96812d5395728eef2"></a><!-- doxytag: member="lnx&#45;ms.c::GETPRIV" ref="aacf069d346230dd96812d5395728eef2" args="" -->
213<div class="memitem">
214<div class="memproto">
215      <table class="memname">
216        <tr>
217          <td class="memname">#define GETPRIV</td>
218        </tr>
219      </table>
220</div>
221<div class="memdoc">
222<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="struct__myPrivate.html">myPrivate</a> *priv                            \
223                      = ((<a class="code" href="dmxinput_8h.html#adb148db00fe0adf1938b815b9b934d26">DMXLocalInputInfoPtr</a>)(pDev-&gt;devicePrivate))-&gt;private
224</pre></div>
225<p>Referenced by <a class="el" href="lnx-ms_8c.html#a40d253404cd0db2e90bf9e3e6957d2a5">msLinuxButton()</a>, <a class="el" href="lnx-ms_8h.html#a0afb23673c5b1bc695c09f3f3bd75a4b">msLinuxInit()</a>, <a class="el" href="lnx-ms_8h.html#a834a356a0e28d90699a8178154588e09">msLinuxOff()</a>, <a class="el" href="lnx-ms_8h.html#ad8f116275f80b5143bc6fe8806cf1298">msLinuxOn()</a>, and <a class="el" href="lnx-ms_8c.html#abad8a6240d6769094e70b92f5d8b72d4">msLinuxRead()</a>.</p>
226
227</div>
228</div>
229<a class="anchor" id="a837722a322e811d5e42242655f277b87"></a><!-- doxytag: member="lnx&#45;ms.c::LOG0" ref="a837722a322e811d5e42242655f277b87" args="(f)" -->
230<div class="memitem">
231<div class="memproto">
232      <table class="memname">
233        <tr>
234          <td class="memname">#define LOG0</td>
235          <td>(</td>
236          <td class="paramtype">&#160;</td>
237          <td class="paramname">f</td><td>)</td>
238          <td>&#160;&#160;&#160;dmxLog(dmxDebug,f)</td>
239        </tr>
240      </table>
241</div>
242<div class="memdoc">
243
244</div>
245</div>
246<a class="anchor" id="aab4b3434c36117a2ecdddec40716d97a"></a><!-- doxytag: member="lnx&#45;ms.c::LOG1" ref="aab4b3434c36117a2ecdddec40716d97a" args="(f, a)" -->
247<div class="memitem">
248<div class="memproto">
249      <table class="memname">
250        <tr>
251          <td class="memname">#define LOG1</td>
252          <td>(</td>
253          <td class="paramtype">&#160;</td>
254          <td class="paramname">f, </td>
255        </tr>
256        <tr>
257          <td class="paramkey"></td>
258          <td></td>
259          <td class="paramtype">&#160;</td>
260          <td class="paramname">a&#160;</td>
261        </tr>
262        <tr>
263          <td></td>
264          <td>)</td>
265          <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a)</td>
266        </tr>
267      </table>
268</div>
269<div class="memdoc">
270
271</div>
272</div>
273<a class="anchor" id="a16da5d597d9bfb9e569a9bfb6996382c"></a><!-- doxytag: member="lnx&#45;ms.c::LOG2" ref="a16da5d597d9bfb9e569a9bfb6996382c" args="(f, a, b)" -->
274<div class="memitem">
275<div class="memproto">
276      <table class="memname">
277        <tr>
278          <td class="memname">#define LOG2</td>
279          <td>(</td>
280          <td class="paramtype">&#160;</td>
281          <td class="paramname">f, </td>
282        </tr>
283        <tr>
284          <td class="paramkey"></td>
285          <td></td>
286          <td class="paramtype">&#160;</td>
287          <td class="paramname">a, </td>
288        </tr>
289        <tr>
290          <td class="paramkey"></td>
291          <td></td>
292          <td class="paramtype">&#160;</td>
293          <td class="paramname">b&#160;</td>
294        </tr>
295        <tr>
296          <td></td>
297          <td>)</td>
298          <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b)</td>
299        </tr>
300      </table>
301</div>
302<div class="memdoc">
303
304</div>
305</div>
306<a class="anchor" id="a8247f0bca25789d2ac27674eb26e223f"></a><!-- doxytag: member="lnx&#45;ms.c::LOG3" ref="a8247f0bca25789d2ac27674eb26e223f" args="(f, a, b, c)" -->
307<div class="memitem">
308<div class="memproto">
309      <table class="memname">
310        <tr>
311          <td class="memname">#define LOG3</td>
312          <td>(</td>
313          <td class="paramtype">&#160;</td>
314          <td class="paramname">f, </td>
315        </tr>
316        <tr>
317          <td class="paramkey"></td>
318          <td></td>
319          <td class="paramtype">&#160;</td>
320          <td class="paramname">a, </td>
321        </tr>
322        <tr>
323          <td class="paramkey"></td>
324          <td></td>
325          <td class="paramtype">&#160;</td>
326          <td class="paramname">b, </td>
327        </tr>
328        <tr>
329          <td class="paramkey"></td>
330          <td></td>
331          <td class="paramtype">&#160;</td>
332          <td class="paramname">c&#160;</td>
333        </tr>
334        <tr>
335          <td></td>
336          <td>)</td>
337          <td></td><td>&#160;&#160;&#160;dmxLog(dmxDebug,f,a,b,c)</td>
338        </tr>
339      </table>
340</div>
341<div class="memdoc">
342
343</div>
344</div>
345<a class="anchor" id="a11a17082bee3b1b8217ce8a12adcf814"></a><!-- doxytag: member="lnx&#45;ms.c::MOTIONPROC" ref="a11a17082bee3b1b8217ce8a12adcf814" args="" -->
346<div class="memitem">
347<div class="memproto">
348      <table class="memname">
349        <tr>
350          <td class="memname">#define MOTIONPROC&#160;&#160;&#160;<a class="el" href="dmxinputinit_8h.html#a1279820425966adabf5c77357e4a289c">dmxMotionProcPtr</a></td>
351        </tr>
352      </table>
353</div>
354<div class="memdoc">
355
356</div>
357</div>
358<a class="anchor" id="a7581da9bfd7ebf4fe3703352df521931"></a><!-- doxytag: member="lnx&#45;ms.c::PRESS" ref="a7581da9bfd7ebf4fe3703352df521931" args="(b)" -->
359<div class="memitem">
360<div class="memproto">
361      <table class="memname">
362        <tr>
363          <td class="memname">#define PRESS</td>
364          <td>(</td>
365          <td class="paramtype">&#160;</td>
366          <td class="paramname">b</td><td>)</td>
367          <td></td>
368        </tr>
369      </table>
370</div>
371<div class="memdoc">
372<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                 \
373        enqueue(pDev, ButtonPress, 0, 0, NULL, block);   \
374    } <span class="keywordflow">while</span> (0)
375</pre></div>
376<p>Referenced by <a class="el" href="lnx-ms_8c.html#a40d253404cd0db2e90bf9e3e6957d2a5">msLinuxButton()</a>, <a class="el" href="lnx-ps2_8c.html#af3ff29bf7e70049ca978bc8fbff4aab6">ps2LinuxButton()</a>, and <a class="el" href="usb-common_8c.html#ae20f3b14463c8e288041f9970e388950">usbRead()</a>.</p>
377
378</div>
379</div>
380<a class="anchor" id="a2b4d2480737f9eb52f80998518486f01"></a><!-- doxytag: member="lnx&#45;ms.c::RELEASE" ref="a2b4d2480737f9eb52f80998518486f01" args="(b)" -->
381<div class="memitem">
382<div class="memproto">
383      <table class="memname">
384        <tr>
385          <td class="memname">#define RELEASE</td>
386          <td>(</td>
387          <td class="paramtype">&#160;</td>
388          <td class="paramname">b</td><td>)</td>
389          <td></td>
390        </tr>
391      </table>
392</div>
393<div class="memdoc">
394<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                 \
395        enqueue(pDev, ButtonRelease, 0, 0, NULL, block); \
396    } <span class="keywordflow">while</span> (0)
397</pre></div>
398<p>Referenced by <a class="el" href="lnx-ms_8c.html#a40d253404cd0db2e90bf9e3e6957d2a5">msLinuxButton()</a>, <a class="el" href="lnx-ps2_8c.html#af3ff29bf7e70049ca978bc8fbff4aab6">ps2LinuxButton()</a>, and <a class="el" href="usb-common_8c.html#ae20f3b14463c8e288041f9970e388950">usbRead()</a>.</p>
399
400</div>
401</div>
402<hr/><h2>Typedef Documentation</h2>
403<a class="anchor" id="a25692217bddf2b6c089525b325afccf1"></a><!-- doxytag: member="lnx&#45;ms.c::myPrivate" ref="a25692217bddf2b6c089525b325afccf1" args="" -->
404<div class="memitem">
405<div class="memproto">
406      <table class="memname">
407        <tr>
408          <td class="memname">typedef struct <a class="el" href="struct__myPrivate.html">_myPrivate</a>  <a class="el" href="struct__myPrivate.html">myPrivate</a></td>
409        </tr>
410      </table>
411</div>
412<div class="memdoc">
413
414</div>
415</div>
416<hr/><h2>Function Documentation</h2>
417<a class="anchor" id="a40d253404cd0db2e90bf9e3e6957d2a5"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxButton" ref="a40d253404cd0db2e90bf9e3e6957d2a5" args="(DevicePtr pDev, ENQUEUEPROC enqueue, int buttons, BLOCK block)" -->
418<div class="memitem">
419<div class="memproto">
420      <table class="memname">
421        <tr>
422          <td class="memname">static void msLinuxButton </td>
423          <td>(</td>
424          <td class="paramtype">DevicePtr&#160;</td>
425          <td class="paramname"><em>pDev</em>, </td>
426        </tr>
427        <tr>
428          <td class="paramkey"></td>
429          <td></td>
430          <td class="paramtype">ENQUEUEPROC&#160;</td>
431          <td class="paramname"><em>enqueue</em>, </td>
432        </tr>
433        <tr>
434          <td class="paramkey"></td>
435          <td></td>
436          <td class="paramtype">int&#160;</td>
437          <td class="paramname"><em>buttons</em>, </td>
438        </tr>
439        <tr>
440          <td class="paramkey"></td>
441          <td></td>
442          <td class="paramtype">BLOCK&#160;</td>
443          <td class="paramname"><em>block</em>&#160;</td>
444        </tr>
445        <tr>
446          <td></td>
447          <td>)</td>
448          <td></td><td><code> [static]</code></td>
449        </tr>
450      </table>
451</div>
452<div class="memdoc">
453
454<p>References <a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-ms_8c.html#a7581da9bfd7ebf4fe3703352df521931">PRESS</a>, and <a class="el" href="lnx-ms_8c.html#a2b4d2480737f9eb52f80998518486f01">RELEASE</a>.</p>
455
456<p>Referenced by <a class="el" href="lnx-ms_8c.html#abad8a6240d6769094e70b92f5d8b72d4">msLinuxRead()</a>.</p>
457
458</div>
459</div>
460<a class="anchor" id="a7d7777681993bc701468245e42c04282"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxCreatePrivate" ref="a7d7777681993bc701468245e42c04282" args="(DeviceIntPtr pMouse)" -->
461<div class="memitem">
462<div class="memproto">
463      <table class="memname">
464        <tr>
465          <td class="memname">pointer msLinuxCreatePrivate </td>
466          <td>(</td>
467          <td class="paramtype">DeviceIntPtr&#160;</td>
468          <td class="paramname"><em>pMouse</em></td><td>)</td>
469          <td></td>
470        </tr>
471      </table>
472</div>
473<div class="memdoc">
474<p>Create a private structure for use within this file. </p>
475
476<p>References <a class="el" href="struct__myPrivate.html#a6b26eb0acc0b932c8dee8277501e6273">_myPrivate::fd</a>, and <a class="el" href="struct__myPrivate.html#a3e46e1ccb546bbadfa5ebb165a8b11d4">_myPrivate::pMouse</a>.</p>
477
478</div>
479</div>
480<a class="anchor" id="a570d96862061388c5649972b2fa22d75"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxDestroyPrivate" ref="a570d96862061388c5649972b2fa22d75" args="(pointer priv)" -->
481<div class="memitem">
482<div class="memproto">
483      <table class="memname">
484        <tr>
485          <td class="memname">void msLinuxDestroyPrivate </td>
486          <td>(</td>
487          <td class="paramtype">pointer&#160;</td>
488          <td class="paramname"><em>priv</em></td><td>)</td>
489          <td></td>
490        </tr>
491      </table>
492</div>
493<div class="memdoc">
494<p>Destroy a private structure. </p>
495
496</div>
497</div>
498<a class="anchor" id="ad650b3779315db603085a045405c9d9a"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxGetInfo" ref="ad650b3779315db603085a045405c9d9a" args="(DevicePtr pDev, DMXLocalInitInfoPtr info)" -->
499<div class="memitem">
500<div class="memproto">
501      <table class="memname">
502        <tr>
503          <td class="memname">void msLinuxGetInfo </td>
504          <td>(</td>
505          <td class="paramtype">DevicePtr&#160;</td>
506          <td class="paramname"><em>pDev</em>, </td>
507        </tr>
508        <tr>
509          <td class="paramkey"></td>
510          <td></td>
511          <td class="paramtype"><a class="el" href="struct__DMXLocalInitInfo.html">DMXLocalInitInfoPtr</a>&#160;</td>
512          <td class="paramname"><em>info</em>&#160;</td>
513        </tr>
514        <tr>
515          <td></td>
516          <td>)</td>
517          <td></td><td></td>
518        </tr>
519      </table>
520</div>
521<div class="memdoc">
522<p>Fill the <em>info</em> structure with information needed to initialize <em>pDev</em>. </p>
523
524<p>References <a class="el" href="struct__DMXLocalInitInfo.html#a58b2e6764967add7eda1c1f2f0860abc">_DMXLocalInitInfo::buttonClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a43d86cc82219794bba7ba1ee66472a45">_DMXLocalInitInfo::map</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a5de8a5ac80a30840cba0d9f3074289ca">_DMXLocalInitInfo::maxres</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a63477e691c43eca2dbf569fb0feb74be">_DMXLocalInitInfo::maxval</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a139fed62b89a92d80997166c8cfcdebf">_DMXLocalInitInfo::minres</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a0c47ee21909227a1ea5d40ba473e0e25">_DMXLocalInitInfo::minval</a>, <a class="el" href="lnx-ms_8c.html#a04f66d21af929f125fa7d524883700d5">msLinuxGetMap()</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a9264f367a1c1e252679299b00f94458c">_DMXLocalInitInfo::numButtons</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a5e192625179bbed020a720e448c789aa">_DMXLocalInitInfo::numRelAxes</a>, <a class="el" href="struct__DMXLocalInitInfo.html#a1c52bc6e1c328ef9e808a111dd050fc2">_DMXLocalInitInfo::ptrFeedbackClass</a>, <a class="el" href="struct__DMXLocalInitInfo.html#abb910012dc1abde90f954354f8ceb2a1">_DMXLocalInitInfo::res</a>, and <a class="el" href="struct__DMXLocalInitInfo.html#a9af277d2da1ade2138488a413e9c5ceb">_DMXLocalInitInfo::valuatorClass</a>.</p>
525
526</div>
527</div>
528<a class="anchor" id="a04f66d21af929f125fa7d524883700d5"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxGetMap" ref="a04f66d21af929f125fa7d524883700d5" args="(DevicePtr pDev, unsigned char *map, int *nButtons)" -->
529<div class="memitem">
530<div class="memproto">
531      <table class="memname">
532        <tr>
533          <td class="memname">static void msLinuxGetMap </td>
534          <td>(</td>
535          <td class="paramtype">DevicePtr&#160;</td>
536          <td class="paramname"><em>pDev</em>, </td>
537        </tr>
538        <tr>
539          <td class="paramkey"></td>
540          <td></td>
541          <td class="paramtype">unsigned char *&#160;</td>
542          <td class="paramname"><em>map</em>, </td>
543        </tr>
544        <tr>
545          <td class="paramkey"></td>
546          <td></td>
547          <td class="paramtype">int *&#160;</td>
548          <td class="paramname"><em>nButtons</em>&#160;</td>
549        </tr>
550        <tr>
551          <td></td>
552          <td>)</td>
553          <td></td><td><code> [static]</code></td>
554        </tr>
555      </table>
556</div>
557<div class="memdoc">
558
559<p>Referenced by <a class="el" href="lnx-ms_8h.html#ad650b3779315db603085a045405c9d9a">msLinuxGetInfo()</a>.</p>
560
561</div>
562</div>
563<a class="anchor" id="a0afb23673c5b1bc695c09f3f3bd75a4b"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxInit" ref="a0afb23673c5b1bc695c09f3f3bd75a4b" args="(DevicePtr pDev)" -->
564<div class="memitem">
565<div class="memproto">
566      <table class="memname">
567        <tr>
568          <td class="memname">void msLinuxInit </td>
569          <td>(</td>
570          <td class="paramtype">DevicePtr&#160;</td>
571          <td class="paramname"><em>pDev</em></td><td>)</td>
572          <td></td>
573        </tr>
574      </table>
575</div>
576<div class="memdoc">
577<p>Initialize <em>pDev</em>. </p>
578
579<p>References <a class="el" href="lnx-ms_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>, <a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="dmxsigio_8c.html#a39d33ce33804efd4d52606d59071c6d8">O_NONBLOCK</a>.</p>
580
581<p>Referenced by <a class="el" href="lnx-ms_8h.html#ad8f116275f80b5143bc6fe8806cf1298">msLinuxOn()</a>.</p>
582
583</div>
584</div>
585<a class="anchor" id="a834a356a0e28d90699a8178154588e09"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxOff" ref="a834a356a0e28d90699a8178154588e09" args="(DevicePtr pDev)" -->
586<div class="memitem">
587<div class="memproto">
588      <table class="memname">
589        <tr>
590          <td class="memname">void msLinuxOff </td>
591          <td>(</td>
592          <td class="paramtype">DevicePtr&#160;</td>
593          <td class="paramname"><em>pDev</em></td><td>)</td>
594          <td></td>
595        </tr>
596      </table>
597</div>
598<div class="memdoc">
599<p>Turn <em>pDev</em> off (i.e., stop taking input from <em>pDev</em>). </p>
600
601<p>References <a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>.</p>
602
603</div>
604</div>
605<a class="anchor" id="ad8f116275f80b5143bc6fe8806cf1298"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxOn" ref="ad8f116275f80b5143bc6fe8806cf1298" args="(DevicePtr pDev)" -->
606<div class="memitem">
607<div class="memproto">
608      <table class="memname">
609        <tr>
610          <td class="memname">int msLinuxOn </td>
611          <td>(</td>
612          <td class="paramtype">DevicePtr&#160;</td>
613          <td class="paramname"><em>pDev</em></td><td>)</td>
614          <td></td>
615        </tr>
616      </table>
617</div>
618<div class="memdoc">
619<p>Turn <em>pDev</em> on (i.e., take input from <em>pDev</em>). </p>
620
621<p>References <a class="el" href="lnx-ms_8c.html#a11bcea7c6bc7dbe400a3855f5b8676ce">FATAL1</a>, <a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, and <a class="el" href="lnx-ms_8c.html#a0afb23673c5b1bc695c09f3f3bd75a4b">msLinuxInit()</a>.</p>
622
623</div>
624</div>
625<a class="anchor" id="abad8a6240d6769094e70b92f5d8b72d4"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxRead" ref="abad8a6240d6769094e70b92f5d8b72d4" args="(DevicePtr pDev, MOTIONPROC motion, ENQUEUEPROC enqueue, CHECKPROC checkspecial, BLOCK block)" -->
626<div class="memitem">
627<div class="memproto">
628      <table class="memname">
629        <tr>
630          <td class="memname">void msLinuxRead </td>
631          <td>(</td>
632          <td class="paramtype">DevicePtr&#160;</td>
633          <td class="paramname"><em>pDev</em>, </td>
634        </tr>
635        <tr>
636          <td class="paramkey"></td>
637          <td></td>
638          <td class="paramtype">MOTIONPROC&#160;</td>
639          <td class="paramname"><em>motion</em>, </td>
640        </tr>
641        <tr>
642          <td class="paramkey"></td>
643          <td></td>
644          <td class="paramtype">ENQUEUEPROC&#160;</td>
645          <td class="paramname"><em>enqueue</em>, </td>
646        </tr>
647        <tr>
648          <td class="paramkey"></td>
649          <td></td>
650          <td class="paramtype">CHECKPROC&#160;</td>
651          <td class="paramname"><em>checkspecial</em>, </td>
652        </tr>
653        <tr>
654          <td class="paramkey"></td>
655          <td></td>
656          <td class="paramtype">BLOCK&#160;</td>
657          <td class="paramname"><em>block</em>&#160;</td>
658        </tr>
659        <tr>
660          <td></td>
661          <td>)</td>
662          <td></td><td></td>
663        </tr>
664      </table>
665</div>
666<div class="memdoc">
667<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>
668
669<p>References <a class="el" href="lnx-ms_8c.html#aacf069d346230dd96812d5395728eef2">GETPRIV</a>, <a class="el" href="lnx-ms_8c.html#a40d253404cd0db2e90bf9e3e6957d2a5">msLinuxButton()</a>, and <a class="el" href="lnx-ms_8c.html#a71addb6f47215d1e4bf1452fdeeb5081">msLinuxReadBytes()</a>.</p>
670
671</div>
672</div>
673<a class="anchor" id="a71addb6f47215d1e4bf1452fdeeb5081"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxReadBytes" ref="a71addb6f47215d1e4bf1452fdeeb5081" args="(int fd, unsigned char *buf, int len, int min)" -->
674<div class="memitem">
675<div class="memproto">
676      <table class="memname">
677        <tr>
678          <td class="memname">static int msLinuxReadBytes </td>
679          <td>(</td>
680          <td class="paramtype">int&#160;</td>
681          <td class="paramname"><em>fd</em>, </td>
682        </tr>
683        <tr>
684          <td class="paramkey"></td>
685          <td></td>
686          <td class="paramtype">unsigned char *&#160;</td>
687          <td class="paramname"><em>buf</em>, </td>
688        </tr>
689        <tr>
690          <td class="paramkey"></td>
691          <td></td>
692          <td class="paramtype">int&#160;</td>
693          <td class="paramname"><em>len</em>, </td>
694        </tr>
695        <tr>
696          <td class="paramkey"></td>
697          <td></td>
698          <td class="paramtype">int&#160;</td>
699          <td class="paramname"><em>min</em>&#160;</td>
700        </tr>
701        <tr>
702          <td></td>
703          <td>)</td>
704          <td></td><td><code> [static]</code></td>
705        </tr>
706      </table>
707</div>
708<div class="memdoc">
709
710<p>Referenced by <a class="el" href="lnx-ms_8c.html#abad8a6240d6769094e70b92f5d8b72d4">msLinuxRead()</a>.</p>
711
712</div>
713</div>
714<a class="anchor" id="af83993c8cc498cbd9f91737beefb5ea3"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxVTPostSwitch" ref="af83993c8cc498cbd9f91737beefb5ea3" args="(pointer p)" -->
715<div class="memitem">
716<div class="memproto">
717      <table class="memname">
718        <tr>
719          <td class="memname">void msLinuxVTPostSwitch </td>
720          <td>(</td>
721          <td class="paramtype">pointer&#160;</td>
722          <td class="paramname"><em>p</em></td><td>)</td>
723          <td></td>
724        </tr>
725      </table>
726</div>
727<div class="memdoc">
728<p>Currently unused hook called after returning from a VT switch. </p>
729
730</div>
731</div>
732<a class="anchor" id="a1ce83df54082f3196ac29e36dea47fc5"></a><!-- doxytag: member="lnx&#45;ms.c::msLinuxVTPreSwitch" ref="a1ce83df54082f3196ac29e36dea47fc5" args="(pointer p)" -->
733<div class="memitem">
734<div class="memproto">
735      <table class="memname">
736        <tr>
737          <td class="memname">void msLinuxVTPreSwitch </td>
738          <td>(</td>
739          <td class="paramtype">pointer&#160;</td>
740          <td class="paramname"><em>p</em></td><td>)</td>
741          <td></td>
742        </tr>
743      </table>
744</div>
745<div class="memdoc">
746<p>Currently unused hook called prior to an VT switch. </p>
747
748</div>
749</div>
750</div>
751</div>
752  <div id="nav-path" class="navpath">
753    <ul>
754      <li class="navelem"><a class="el" href="lnx-ms_8c.html">lnx-ms.c</a>      </li>
755    <hr>
756    <address>
757      <small>
758        Generated June 29, 2004 for <a
759        href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
760        <a href="http://www.doxygen.org/index.html">doxygen</a>
761        1.3.4.
762      </small>
763    </addres>
764    </hr>
765  </body>
766</html>
767