<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.12"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>gavl: Software timer</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">gavl </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.12 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Software timer<div class="ingroups"><a class="el" href="group__time.html">Time</a></div></div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gaae620a307ba8533e991c512c56b1fd24"><td class="memItemLeft" align="right" valign="top">typedef struct gavl_timer_s </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a></td></tr> <tr class="memdesc:gaae620a307ba8533e991c512c56b1fd24"><td class="mdescLeft"> </td><td class="mdescRight">Opaque timer structure. <a href="#gaae620a307ba8533e991c512c56b1fd24">More...</a><br /></td></tr> <tr class="separator:gaae620a307ba8533e991c512c56b1fd24"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga09c6a3b1ac4c57ee13347d0d654473c5"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga09c6a3b1ac4c57ee13347d0d654473c5">gavl_timer_create</a> ()</td></tr> <tr class="memdesc:ga09c6a3b1ac4c57ee13347d0d654473c5"><td class="mdescLeft"> </td><td class="mdescRight">Create a timer. <a href="#ga09c6a3b1ac4c57ee13347d0d654473c5">More...</a><br /></td></tr> <tr class="separator:ga09c6a3b1ac4c57ee13347d0d654473c5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4e340350de373c7551c0de1ad4acdedb"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga4e340350de373c7551c0de1ad4acdedb">gavl_timer_destroy</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr class="memdesc:ga4e340350de373c7551c0de1ad4acdedb"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a timer. <a href="#ga4e340350de373c7551c0de1ad4acdedb">More...</a><br /></td></tr> <tr class="separator:ga4e340350de373c7551c0de1ad4acdedb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5d43483e1bbdd6aa228991ff373d9f08"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga5d43483e1bbdd6aa228991ff373d9f08">gavl_timer_start</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr class="memdesc:ga5d43483e1bbdd6aa228991ff373d9f08"><td class="mdescLeft"> </td><td class="mdescRight">Start a timer. <a href="#ga5d43483e1bbdd6aa228991ff373d9f08">More...</a><br /></td></tr> <tr class="separator:ga5d43483e1bbdd6aa228991ff373d9f08"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2089d703fe1e66509293eed209f05c72"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga2089d703fe1e66509293eed209f05c72">gavl_timer_stop</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr class="memdesc:ga2089d703fe1e66509293eed209f05c72"><td class="mdescLeft"> </td><td class="mdescRight">Stop a timer. <a href="#ga2089d703fe1e66509293eed209f05c72">More...</a><br /></td></tr> <tr class="separator:ga2089d703fe1e66509293eed209f05c72"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8a7eb1f66bfb7d482f7097080d748a34"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga8a7eb1f66bfb7d482f7097080d748a34">gavl_timer_get</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer)</td></tr> <tr class="memdesc:ga8a7eb1f66bfb7d482f7097080d748a34"><td class="mdescLeft"> </td><td class="mdescRight">Get the current time of the timer. <a href="#ga8a7eb1f66bfb7d482f7097080d748a34">More...</a><br /></td></tr> <tr class="separator:ga8a7eb1f66bfb7d482f7097080d748a34"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab26ee9e5edf2758507f7ddf4dfb4d5ea"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#gab26ee9e5edf2758507f7ddf4dfb4d5ea">gavl_timer_set</a> (<a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> *timer, <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> t)</td></tr> <tr class="memdesc:gab26ee9e5edf2758507f7ddf4dfb4d5ea"><td class="mdescLeft"> </td><td class="mdescRight">Set the current time of the timer. <a href="#gab26ee9e5edf2758507f7ddf4dfb4d5ea">More...</a><br /></td></tr> <tr class="separator:gab26ee9e5edf2758507f7ddf4dfb4d5ea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7e7b71a5499480ed31eef3c0f29220a8"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a> (int flags)</td></tr> <tr class="memdesc:ga7e7b71a5499480ed31eef3c0f29220a8"><td class="mdescLeft"> </td><td class="mdescRight">Get the current time for benchmarking. <a href="#ga7e7b71a5499480ed31eef3c0f29220a8">More...</a><br /></td></tr> <tr class="separator:ga7e7b71a5499480ed31eef3c0f29220a8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga457f0b1e56a60476d4860f5a2c0c421d"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__timer.html#ga457f0b1e56a60476d4860f5a2c0c421d">gavl_benchmark_get_desc</a> (int flags)</td></tr> <tr class="memdesc:ga457f0b1e56a60476d4860f5a2c0c421d"><td class="mdescLeft"> </td><td class="mdescRight">Get a description about the value returned by <a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a>. <a href="#ga457f0b1e56a60476d4860f5a2c0c421d">More...</a><br /></td></tr> <tr class="separator:ga457f0b1e56a60476d4860f5a2c0c421d"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>This is a simple software timer, which can be used for synchronization purposes for cases wherer there is no synchronization with hardware devices available. </p> <h2 class="groupheader">Typedef Documentation</h2> <a id="gaae620a307ba8533e991c512c56b1fd24"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaae620a307ba8533e991c512c56b1fd24">§ </a></span>gavl_timer_t</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct gavl_timer_s <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Opaque timer structure. </p> <p>You don't want to know what's inside. </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="ga09c6a3b1ac4c57ee13347d0d654473c5"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga09c6a3b1ac4c57ee13347d0d654473c5">§ </a></span>gavl_timer_create()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a>* gavl_timer_create </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Create a timer. </p> <dl class="section return"><dt>Returns</dt><dd>A newly allocated timer </dd></dl> </div> </div> <a id="ga4e340350de373c7551c0de1ad4acdedb"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4e340350de373c7551c0de1ad4acdedb">§ </a></span>gavl_timer_destroy()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy a timer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer</td></tr> </table> </dd> </dl> <p>Destroys a timer and frees all associated memory </p> </div> </div> <a id="ga5d43483e1bbdd6aa228991ff373d9f08"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga5d43483e1bbdd6aa228991ff373d9f08">§ </a></span>gavl_timer_start()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_start </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Start a timer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> </div> </div> <a id="ga2089d703fe1e66509293eed209f05c72"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2089d703fe1e66509293eed209f05c72">§ </a></span>gavl_timer_stop()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_stop </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Stop a timer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> </div> </div> <a id="ga8a7eb1f66bfb7d482f7097080d748a34"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga8a7eb1f66bfb7d482f7097080d748a34">§ </a></span>gavl_timer_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC <a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> gavl_timer_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current time of the timer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Current time </dd></dl> </div> </div> <a id="gab26ee9e5edf2758507f7ddf4dfb4d5ea"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab26ee9e5edf2758507f7ddf4dfb4d5ea">§ </a></span>gavl_timer_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC void gavl_timer_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group__timer.html#gaae620a307ba8533e991c512c56b1fd24">gavl_timer_t</a> * </td> <td class="paramname"><em>timer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__time.html#gaede83abbdd6102bd8683f4b94a7bd647">gavl_time_t</a> </td> <td class="paramname"><em>t</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set the current time of the timer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">timer</td><td>A timer </td></tr> <tr><td class="paramname">t</td><td>New time </td></tr> </table> </dd> </dl> </div> </div> <a id="ga7e7b71a5499480ed31eef3c0f29220a8"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga7e7b71a5499480ed31eef3c0f29220a8">§ </a></span>gavl_benchmark_get_time()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC uint64_t gavl_benchmark_get_time </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current time for benchmarking. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">flags</td><td>Flags returned by <a class="el" href="group__accel__flags.html#ga9ee7b6f97f38d7f77a03f8e3b8fc47f3">gavl_accel_supported</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The time in arbitrary units</dd></dl> <p>The returned value itself is meaningless since the timescale depends on the system. Use this only for relative comparisons for benchmarks. A textual description on how the values can be interpreted can be ontained with <a class="el" href="group__timer.html#ga457f0b1e56a60476d4860f5a2c0c421d">gavl_benchmark_get_desc</a> </p> </div> </div> <a id="ga457f0b1e56a60476d4860f5a2c0c421d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga457f0b1e56a60476d4860f5a2c0c421d">§ </a></span>gavl_benchmark_get_desc()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GAVL_PUBLIC const char* gavl_benchmark_get_desc </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get a description about the value returned by <a class="el" href="group__timer.html#ga7e7b71a5499480ed31eef3c0f29220a8">gavl_benchmark_get_time</a>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">flags</td><td>Flags returned by <a class="el" href="group__accel__flags.html#ga9ee7b6f97f38d7f77a03f8e3b8fc47f3">gavl_accel_supported</a> </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A string describing what the time value means </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.12 </small></address> </body> </html>