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('dmxstat_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="#typedef-members">Typedefs</a> &#124;
41<a href="#func-members">Functions</a> &#124;
42<a href="#var-members">Variables</a>  </div>
43  <div class="headertitle">
44<div class="title">dmxstat.c File Reference</div>  </div>
45</div>
46<div class="contents">
47<div class="textblock"><code>#include &quot;<a class="el" href="dmx_8h_source.html">dmx.h</a>&quot;</code><br/>
48<code>#include &quot;<a class="el" href="dmxstat_8h_source.html">dmxstat.h</a>&quot;</code><br/>
49<code>#include &quot;<a class="el" href="dmxlog_8h_source.html">dmxlog.h</a>&quot;</code><br/>
50<code>#include &lt;X11/Xos.h&gt;</code><br/>
51</div><table class="memberdecls">
52<tr><td colspan="2"><h2><a name="nested-classes"></a>
53Data Structures</h2></td></tr>
54<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__DMXStatAvg.html">_DMXStatAvg</a></td></tr>
55<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__DMXStatInfo.html">_DMXStatInfo</a></td></tr>
56<tr><td colspan="2"><h2><a name="typedef-members"></a>
57Typedefs</h2></td></tr>
58<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__DMXStatAvg.html">_DMXStatAvg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a75a8942c042ee0a2c387e61a28a59b94">DMXStatAvg</a></td></tr>
59<tr><td colspan="2"><h2><a name="func-members"></a>
60Functions</h2></td></tr>
61<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a1a534cc2274afee02c883ac10ea9435f">usec</a> (struct timeval *stop, struct timeval *start)</td></tr>
62<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#aeccae65bbc33f6b7717b2dc1a536d3cd">avg</a> (<a class="el" href="struct__DMXStatAvg.html">DMXStatAvg</a> *data, unsigned long *max)</td></tr>
63<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> (const char *interval, const char *displays)</td></tr>
64<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a5637440dfb18ba8ccf47bde3037d93aa">dmxStatAlloc</a> (void)</td></tr>
65<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a23687b91d203902bb293ba64c391cee4">dmxStatFree</a> (<a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *pt)</td></tr>
66<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue</a> (<a class="el" href="struct__DMXStatAvg.html">DMXStatAvg</a> *data, unsigned long value)</td></tr>
67<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)</td></tr>
68<tr><td class="memItemLeft" align="right" valign="top">static CARD32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback</a> (OsTimerPtr timer, CARD32 t, pointer arg)</td></tr>
69<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit</a> (void)</td></tr>
70<tr><td colspan="2"><h2><a name="var-members"></a>
71Variables</h2></td></tr>
72<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td></tr>
73<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a></td></tr>
74<tr><td class="memItemLeft" align="right" valign="top">static OsTimerPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8c.html#a4b07a4c989d24e5cad8f85a24d24406c">dmxStatTimer</a></td></tr>
75</table>
76<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
77<div class="textblock"><p>The DMX server code is written to call <a class="el" href="dmxsync_8c.html#ab848762f4d2e30d31b87d3e8e10c5967">dmxSync()</a> whenever an XSync() might be necessary. However, since XSync() requires a two way communication with the other X server, eliminating unnecessary XSync() calls is a key performance optimization. Support for this optimization is provided in <em><a class="el" href="dmxsync_8c.html">dmxsync.c</a></em>. This file provides routines that evaluate this optimization by counting the number of XSync() calls and monitoring their latency. This functionality can be turned on using the -stat command-line parameter. </p>
78</div><hr/><h2>Typedef Documentation</h2>
79<a class="anchor" id="a75a8942c042ee0a2c387e61a28a59b94"></a><!-- doxytag: member="dmxstat.c::DMXStatAvg" ref="a75a8942c042ee0a2c387e61a28a59b94" args="" -->
80<div class="memitem">
81<div class="memproto">
82      <table class="memname">
83        <tr>
84          <td class="memname">typedef struct <a class="el" href="struct__DMXStatAvg.html">_DMXStatAvg</a>  <a class="el" href="struct__DMXStatAvg.html">DMXStatAvg</a></td>
85        </tr>
86      </table>
87</div>
88<div class="memdoc">
89<p>Used to compute a running average of value. </p>
90
91</div>
92</div>
93<hr/><h2>Function Documentation</h2>
94<a class="anchor" id="aeccae65bbc33f6b7717b2dc1a536d3cd"></a><!-- doxytag: member="dmxstat.c::avg" ref="aeccae65bbc33f6b7717b2dc1a536d3cd" args="(DMXStatAvg *data, unsigned long *max)" -->
95<div class="memitem">
96<div class="memproto">
97      <table class="memname">
98        <tr>
99          <td class="memname">static unsigned long avg </td>
100          <td>(</td>
101          <td class="paramtype"><a class="el" href="struct__DMXStatAvg.html">DMXStatAvg</a> *&#160;</td>
102          <td class="paramname"><em>data</em>, </td>
103        </tr>
104        <tr>
105          <td class="paramkey"></td>
106          <td></td>
107          <td class="paramtype">unsigned long *&#160;</td>
108          <td class="paramname"><em>max</em>&#160;</td>
109        </tr>
110        <tr>
111          <td></td>
112          <td>)</td>
113          <td></td><td><code> [static]</code></td>
114        </tr>
115      </table>
116</div>
117<div class="memdoc">
118
119<p>References <a class="el" href="struct__DMXStatAvg.html#a361c10829231fd6805e59232321de2fe">_DMXStatAvg::count</a>, and <a class="el" href="struct__DMXStatAvg.html#a621cad02496227c50cc76aca84037b47">_DMXStatAvg::value</a>.</p>
120
121<p>Referenced by <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>.</p>
122
123</div>
124</div>
125<a class="anchor" id="a3d01ce5487317c131c32e31f05489c58"></a><!-- doxytag: member="dmxstat.c::dmxStatActivate" ref="a3d01ce5487317c131c32e31f05489c58" args="(const char *interval, const char *displays)" -->
126<div class="memitem">
127<div class="memproto">
128      <table class="memname">
129        <tr>
130          <td class="memname">void dmxStatActivate </td>
131          <td>(</td>
132          <td class="paramtype">const char *&#160;</td>
133          <td class="paramname"><em>interval</em>, </td>
134        </tr>
135        <tr>
136          <td class="paramkey"></td>
137          <td></td>
138          <td class="paramtype">const char *&#160;</td>
139          <td class="paramname"><em>displays</em>&#160;</td>
140        </tr>
141        <tr>
142          <td></td>
143          <td>)</td>
144          <td></td><td></td>
145        </tr>
146      </table>
147</div>
148<div class="memdoc">
149<p>Turn on XSync statistic gathering and printing. Print every <em>interval</em> seconds, with lines for the first <em>displays</em>. If <em>interval</em> is NULL, 1 will be used. If <em>displays</em> is NULL, 0 will be used (meaning a line for every display will be printed). Note that this function takes string arguments because it will usually be called from <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument</a> in <em><a class="el" href="dmxinit_8c.html">dmxinit.c</a></em>. </p>
150
151<p>References <a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a>, and <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>.</p>
152
153<p>Referenced by <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument()</a>.</p>
154
155</div>
156</div>
157<a class="anchor" id="a5637440dfb18ba8ccf47bde3037d93aa"></a><!-- doxytag: member="dmxstat.c::dmxStatAlloc" ref="a5637440dfb18ba8ccf47bde3037d93aa" args="(void)" -->
158<div class="memitem">
159<div class="memproto">
160      <table class="memname">
161        <tr>
162          <td class="memname"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a>* dmxStatAlloc </td>
163          <td>(</td>
164          <td class="paramtype">void&#160;</td>
165          <td class="paramname"></td><td>)</td>
166          <td></td>
167        </tr>
168      </table>
169</div>
170<div class="memdoc">
171<p>Allocate a <em>DMXStatInfo</em> structure. </p>
172
173<p>Referenced by <a class="el" href="dmxconfig_8c.html#a5fa6729153f7f7e5d3037d451291fa64">dmxConfigAddDisplay()</a>.</p>
174
175</div>
176</div>
177<a class="anchor" id="a218b57229dca87bd0564671d8f68f15f"></a><!-- doxytag: member="dmxstat.c::dmxStatCallback" ref="a218b57229dca87bd0564671d8f68f15f" args="(OsTimerPtr timer, CARD32 t, pointer arg)" -->
178<div class="memitem">
179<div class="memproto">
180      <table class="memname">
181        <tr>
182          <td class="memname">static CARD32 dmxStatCallback </td>
183          <td>(</td>
184          <td class="paramtype">OsTimerPtr&#160;</td>
185          <td class="paramname"><em>timer</em>, </td>
186        </tr>
187        <tr>
188          <td class="paramkey"></td>
189          <td></td>
190          <td class="paramtype">CARD32&#160;</td>
191          <td class="paramname"><em>t</em>, </td>
192        </tr>
193        <tr>
194          <td class="paramkey"></td>
195          <td></td>
196          <td class="paramtype">pointer&#160;</td>
197          <td class="paramname"><em>arg</em>&#160;</td>
198        </tr>
199        <tr>
200          <td></td>
201          <td>)</td>
202          <td></td><td><code> [static]</code></td>
203        </tr>
204      </table>
205</div>
206<div class="memdoc">
207
208<p>References <a class="el" href="dmxstat_8c.html#aeccae65bbc33f6b7717b2dc1a536d3cd">avg()</a>, <a class="el" href="struct__DMXStatInfo.html#a948f8674bc28129ad022a7678d81b38a">_DMXStatInfo::bins</a>, <a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>, <a class="el" href="dmxstat_8h.html#a4cb43c9c7db58a10d8834a6b95a5c180">DMX_STAT_INTERVAL</a>, <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa55e322963608341d32ebb8a0b9d936fe">dmxDebug</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmxlog_8c.html#a661111d53827a1a15c715b7b32f05a0e">dmxLogCont()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a>, <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>, <a class="el" href="struct__DMXStatInfo.html#a06c2832f03e95a2139099bbec7bd4794">_DMXStatInfo::oldSyncCount</a>, <a class="el" href="struct__DMXStatInfo.html#a316b8214c93a5762b6dbd06a7617ef3c">_DMXStatInfo::pending</a>, <a class="el" href="struct__DMXScreenInfo.html#a31fd04698ffcb2b53ffee82468cc2862">_DMXScreenInfo::stat</a>, <a class="el" href="struct__DMXStatInfo.html#aa08d83f9455dcc98919fbc0085483aea">_DMXStatInfo::syncCount</a>, and <a class="el" href="struct__DMXStatInfo.html#a4ed02fb0dd6e7e5ac3af88019331a895">_DMXStatInfo::usec</a>.</p>
209
210<p>Referenced by <a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit()</a>.</p>
211
212</div>
213</div>
214<a class="anchor" id="a23687b91d203902bb293ba64c391cee4"></a><!-- doxytag: member="dmxstat.c::dmxStatFree" ref="a23687b91d203902bb293ba64c391cee4" args="(DMXStatInfo *pt)" -->
215<div class="memitem">
216<div class="memproto">
217      <table class="memname">
218        <tr>
219          <td class="memname">void dmxStatFree </td>
220          <td>(</td>
221          <td class="paramtype"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *&#160;</td>
222          <td class="paramname"><em>pt</em></td><td>)</td>
223          <td></td>
224        </tr>
225      </table>
226</div>
227<div class="memdoc">
228<p>Free the memory used by a <em>DMXStatInfo</em> structure. </p>
229
230<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
231
232</div>
233</div>
234<a class="anchor" id="a48ed41878576dd3ff9212deaecb2cc1f"></a><!-- doxytag: member="dmxstat.c::dmxStatInit" ref="a48ed41878576dd3ff9212deaecb2cc1f" args="(void)" -->
235<div class="memitem">
236<div class="memproto">
237      <table class="memname">
238        <tr>
239          <td class="memname">void dmxStatInit </td>
240          <td>(</td>
241          <td class="paramtype">void&#160;</td>
242          <td class="paramname"></td><td>)</td>
243          <td></td>
244        </tr>
245      </table>
246</div>
247<div class="memdoc">
248<p>Try to initialize the statistic gathering and printing routines. Initialization only takes place if <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> has already been called. We don't need the same generation protection that we used in dmxSyncInit because our timer is always on a queue -- hence, server generation will always free it. </p>
249
250<p>References <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>, and <a class="el" href="dmxstat_8c.html#a4b07a4c989d24e5cad8f85a24d24406c">dmxStatTimer</a>.</p>
251
252<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
253
254</div>
255</div>
256<a class="anchor" id="a1098a195e40df685aaf2fbc238884027"></a><!-- doxytag: member="dmxstat.c::dmxStatSync" ref="a1098a195e40df685aaf2fbc238884027" args="(DMXScreenInfo *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)" -->
257<div class="memitem">
258<div class="memproto">
259      <table class="memname">
260        <tr>
261          <td class="memname">void dmxStatSync </td>
262          <td>(</td>
263          <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
264          <td class="paramname"><em>dmxScreen</em>, </td>
265        </tr>
266        <tr>
267          <td class="paramkey"></td>
268          <td></td>
269          <td class="paramtype">struct timeval *&#160;</td>
270          <td class="paramname"><em>stop</em>, </td>
271        </tr>
272        <tr>
273          <td class="paramkey"></td>
274          <td></td>
275          <td class="paramtype">struct timeval *&#160;</td>
276          <td class="paramname"><em>start</em>, </td>
277        </tr>
278        <tr>
279          <td class="paramkey"></td>
280          <td></td>
281          <td class="paramtype">unsigned long&#160;</td>
282          <td class="paramname"><em>pending</em>&#160;</td>
283        </tr>
284        <tr>
285          <td></td>
286          <td>)</td>
287          <td></td><td></td>
288        </tr>
289      </table>
290</div>
291<div class="memdoc">
292<p>Note that a XSync() was just done on <em>dmxScreen</em> with the <em>start</em> and <em>stop</em> times (from gettimeofday()) and the number of pending-but-not-yet-processed XSync requests. This routine is called from <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync</a> in <em><a class="el" href="dmxsync_8c.html">dmxsync.c</a></em> </p>
293
294<p>References <a class="el" href="struct__DMXStatInfo.html#a948f8674bc28129ad022a7678d81b38a">_DMXStatInfo::bins</a>, <a class="el" href="dmxstat_8h.html#a8757af3ae82fef58d05e31523454065f">DMX_STAT_BIN0</a>, <a class="el" href="dmxstat_8h.html#a9c3e64f7fc0b5305bb6798b298ae6283">DMX_STAT_BINMULT</a>, <a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>, <a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue()</a>, <a class="el" href="struct__DMXStatInfo.html#a316b8214c93a5762b6dbd06a7617ef3c">_DMXStatInfo::pending</a>, <a class="el" href="struct__DMXScreenInfo.html#a31fd04698ffcb2b53ffee82468cc2862">_DMXScreenInfo::stat</a>, <a class="el" href="struct__DMXStatInfo.html#aa08d83f9455dcc98919fbc0085483aea">_DMXStatInfo::syncCount</a>, <a class="el" href="struct__DMXStatInfo.html#a4ed02fb0dd6e7e5ac3af88019331a895">_DMXStatInfo::usec</a>, and <a class="el" href="dmxstat_8c.html#a1a534cc2274afee02c883ac10ea9435f">usec()</a>.</p>
295
296<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>.</p>
297
298</div>
299</div>
300<a class="anchor" id="ab17f1e926473a1df95e781c6c7a8e940"></a><!-- doxytag: member="dmxstat.c::dmxStatValue" ref="ab17f1e926473a1df95e781c6c7a8e940" args="(DMXStatAvg *data, unsigned long value)" -->
301<div class="memitem">
302<div class="memproto">
303      <table class="memname">
304        <tr>
305          <td class="memname">static void dmxStatValue </td>
306          <td>(</td>
307          <td class="paramtype"><a class="el" href="struct__DMXStatAvg.html">DMXStatAvg</a> *&#160;</td>
308          <td class="paramname"><em>data</em>, </td>
309        </tr>
310        <tr>
311          <td class="paramkey"></td>
312          <td></td>
313          <td class="paramtype">unsigned long&#160;</td>
314          <td class="paramname"><em>value</em>&#160;</td>
315        </tr>
316        <tr>
317          <td></td>
318          <td>)</td>
319          <td></td><td><code> [static]</code></td>
320        </tr>
321      </table>
322</div>
323<div class="memdoc">
324
325<p>References <a class="el" href="struct__DMXStatAvg.html#a361c10829231fd6805e59232321de2fe">_DMXStatAvg::count</a>, <a class="el" href="dmxstat_8h.html#ad38ec0be743fab83c032d231034d4d49">DMX_STAT_LENGTH</a>, <a class="el" href="struct__DMXStatAvg.html#a4ee50be7c55ef55ea0e8ca9edaf2ac52">_DMXStatAvg::pos</a>, and <a class="el" href="struct__DMXStatAvg.html#a621cad02496227c50cc76aca84037b47">_DMXStatAvg::value</a>.</p>
326
327<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p>
328
329</div>
330</div>
331<a class="anchor" id="a1a534cc2274afee02c883ac10ea9435f"></a><!-- doxytag: member="dmxstat.c::usec" ref="a1a534cc2274afee02c883ac10ea9435f" args="(struct timeval *stop, struct timeval *start)" -->
332<div class="memitem">
333<div class="memproto">
334      <table class="memname">
335        <tr>
336          <td class="memname">static unsigned long usec </td>
337          <td>(</td>
338          <td class="paramtype">struct timeval *&#160;</td>
339          <td class="paramname"><em>stop</em>, </td>
340        </tr>
341        <tr>
342          <td class="paramkey"></td>
343          <td></td>
344          <td class="paramtype">struct timeval *&#160;</td>
345          <td class="paramname"><em>start</em>&#160;</td>
346        </tr>
347        <tr>
348          <td></td>
349          <td>)</td>
350          <td></td><td><code> [static]</code></td>
351        </tr>
352      </table>
353</div>
354<div class="memdoc">
355<p>Return the number of microseconds as an unsigned long. Unfortunately, this is only useful for intervals &lt; about 4 sec. </p>
356
357<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p>
358
359</div>
360</div>
361<hr/><h2>Variable Documentation</h2>
362<a class="anchor" id="a9994506527c1e7aac2f30d4ed67ea4a5"></a><!-- doxytag: member="dmxstat.c::dmxStatDisplays" ref="a9994506527c1e7aac2f30d4ed67ea4a5" args="" -->
363<div class="memitem">
364<div class="memproto">
365      <table class="memname">
366        <tr>
367          <td class="memname">int <a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a><code> [static]</code></td>
368        </tr>
369      </table>
370</div>
371<div class="memdoc">
372
373<p>Referenced by <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate()</a>, and <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>.</p>
374
375</div>
376</div>
377<a class="anchor" id="abe67369da5135f53f058261d3c173927"></a><!-- doxytag: member="dmxstat.c::dmxStatInterval" ref="abe67369da5135f53f058261d3c173927" args="" -->
378<div class="memitem">
379<div class="memproto">
380      <table class="memname">
381        <tr>
382          <td class="memname">int <a class="el" href="dmxstat_8h.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td>
383        </tr>
384      </table>
385</div>
386<div class="memdoc">
387<p>Only for <a class="el" href="dmxstat_8c.html">dmxstat.c</a> and <a class="el" href="dmxsync_8c.html">dmxsync.c</a> </p>
388
389<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>, <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate()</a>, <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, and <a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit()</a>.</p>
390
391</div>
392</div>
393<a class="anchor" id="a4b07a4c989d24e5cad8f85a24d24406c"></a><!-- doxytag: member="dmxstat.c::dmxStatTimer" ref="a4b07a4c989d24e5cad8f85a24d24406c" args="" -->
394<div class="memitem">
395<div class="memproto">
396      <table class="memname">
397        <tr>
398          <td class="memname">OsTimerPtr <a class="el" href="dmxstat_8c.html#a4b07a4c989d24e5cad8f85a24d24406c">dmxStatTimer</a><code> [static]</code></td>
399        </tr>
400      </table>
401</div>
402<div class="memdoc">
403
404<p>Referenced by <a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit()</a>.</p>
405
406</div>
407</div>
408</div>
409</div>
410  <div id="nav-path" class="navpath">
411    <ul>
412      <li class="navelem"><a class="el" href="dmxstat_8c.html">dmxstat.c</a>      </li>
413    <hr>
414    <address>
415      <small>
416        Generated June 29, 2004 for <a
417        href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
418        <a href="http://www.doxygen.org/index.html">doxygen</a>
419        1.3.4.
420      </small>
421    </addres>
422    </hr>
423  </body>
424</html>
425