Home | History | Annotate | Line # | Download | only in html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html>
      3   <head>
      4     <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      5     <title>File Index</title>
      6     <link href="doxygen.css" rel="stylesheet" type="text/css">
      7   </head>
      8   <body>
      9 <!-- Generated by Doxygen 1.7.4 -->
     10   <div id="navrow1" class="tabs">
     11     <ul class="tablist">
     12       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
     13       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
     14       <li class="current"><a href="files.html"><span>Files</span></a></li>
     15     </ul>
     16   </div>
     17   <div id="navrow2" class="tabs2">
     18     <ul class="tablist">
     19       <li><a href="files.html"><span>File&#160;List</span></a></li>
     20       <li><a href="globals.html"><span>Globals</span></a></li>
     21     </ul>
     22   </div>
     23 </div>
     24 <div id="side-nav" class="ui-resizable side-nav-resizable">
     25   <div id="nav-tree">
     26     <div id="nav-tree-contents">
     27     </div>
     28   </div>
     29   <div id="splitbar" style="-moz-user-select:none;" 
     30        class="ui-resizable-handle">
     31   </div>
     32 </div>
     33 <script type="text/javascript">
     34   initNavTree('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>
     53 Data 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>
     57 Typedefs</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>
     60 Functions</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>
     71 Variables</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