<HTML ><HEAD ><TITLE >timer</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "><LINK REL="HOME" TITLE="Prelude API Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Prelude Functions used by Core And Plugins" HREF="prelude-shared-api.html"><LINK REL="PREVIOUS" TITLE="Prelude Functions used by Core And Plugins" HREF="prelude-shared-api.html"><LINK REL="NEXT" TITLE="rqueue" HREF="prelude-rqueue.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="5" >Prelude API Reference Manual</FONT ></TH ></TR ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="prelude-shared-api.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="prelude-shared-api.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="prelude-rqueue.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ></TABLE ></DIV ><H1 ><A NAME="PRELUDE-TIMER">timer</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN197" ></A ><H2 >Name</H2 >timer -- </DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN200"><H2 >Synopsis</H2 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="SYNOPSIS" > #define <A HREF="prelude-timer.html#TIMER-T" >timer_t</A > #define <A HREF="prelude-timer.html#TIMER-EXPIRE" >timer_expire</A > (timer) #define <A HREF="prelude-timer.html#TIMER-DATA" >timer_data</A > (timer) #define <A HREF="prelude-timer.html#TIMER-FUNC" >timer_func</A > (timer) #define <A HREF="prelude-timer.html#TIMER-SET-EXPIRE" >timer_set_expire</A > (timer, x) #define <A HREF="prelude-timer.html#TIMER-SET-DATA" >timer_set_data</A > (timer, x) #define <A HREF="prelude-timer.html#TIMER-SET-CALLBACK" >timer_set_callback</A > (timer, x) void <A HREF="prelude-timer.html#TIMER-INIT" >timer_init</A > (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer); void <A HREF="prelude-timer.html#TIMER-DESTROY-CURRENT" >timer_destroy_current</A > (void); void <A HREF="prelude-timer.html#TIMER-RESET-CURRENT" >timer_reset_current</A > (void); void <A HREF="prelude-timer.html#TIMER-RESET" >timer_reset</A > (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer); void <A HREF="prelude-timer.html#TIMER-DESTROY" >timer_destroy</A > (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer); void <A HREF="prelude-timer.html#TIMER-ELAPSED" >timer_elapsed</A > (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer, struct timeval *tv); void <A HREF="prelude-timer.html#WAKE-UP-TIMER" >wake_up_timer</A > (void);</PRE ></TD ></TR ></TABLE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN222" ></A ><H2 >Description</H2 ><P ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN225" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN227" ></A ><H3 ><A NAME="TIMER-T" ></A >timer_t</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_t _timer_t</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN232" ></A ><H3 ><A NAME="TIMER-EXPIRE" ></A >timer_expire()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_expire(timer) (timer)->expire</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN237"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN246" ></A ><H3 ><A NAME="TIMER-DATA" ></A >timer_data()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_data(timer) (timer)->data</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN251"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN260" ></A ><H3 ><A NAME="TIMER-FUNC" ></A >timer_func()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_func(timer) (timer)->function</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN265"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN274" ></A ><H3 ><A NAME="TIMER-SET-EXPIRE" ></A >timer_set_expire()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_set_expire(timer, x) timer_expire((timer)) = (x)</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN279"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >x</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN292" ></A ><H3 ><A NAME="TIMER-SET-DATA" ></A >timer_set_data()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_set_data(timer, x) timer_data((timer)) = (unsigned long) (x)</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN297"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >x</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN310" ></A ><H3 ><A NAME="TIMER-SET-CALLBACK" ></A >timer_set_callback()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >#define timer_set_callback(timer, x) timer_func((timer)) = (x)</PRE ></TD ></TR ></TABLE ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN315"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >x</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > </TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN328" ></A ><H3 ><A NAME="TIMER-INIT" ></A >timer_init ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_init (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer);</PRE ></TD ></TR ></TABLE ><P >Initialize a timer (add it to the timer list).</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN335"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > timer to initialize.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN344" ></A ><H3 ><A NAME="TIMER-DESTROY-CURRENT" ></A >timer_destroy_current ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_destroy_current (void);</PRE ></TD ></TR ></TABLE ><P >Destroy currently expiring timer, this is only to be called from a timer expire callback.</P ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN350" ></A ><H3 ><A NAME="TIMER-RESET-CURRENT" ></A >timer_reset_current ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_reset_current (void);</PRE ></TD ></TR ></TABLE ><P >Reset currently expiring timer, this is only to be called from a timer expire callback.</P ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN356" ></A ><H3 ><A NAME="TIMER-RESET" ></A >timer_reset ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_reset (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer);</PRE ></TD ></TR ></TABLE ><P >Reset timer 'timer', as if it was just started.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN363"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the timer to reset.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN372" ></A ><H3 ><A NAME="TIMER-DESTROY" ></A >timer_destroy ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_destroy (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer);</PRE ></TD ></TR ></TABLE ><P >Destroy the timer 'timer', this remove it from the active timer list.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN379"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the timer to destroy.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN388" ></A ><H3 ><A NAME="TIMER-ELAPSED" ></A >timer_elapsed ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void timer_elapsed (<A HREF="prelude-timer.html#TIMER-T" >timer_t</A > *timer, struct timeval *tv);</PRE ></TD ></TR ></TABLE ><P >Give the time elapsed by timer 'timer' from the last time it was reset'd or from the time it was started. The result is stored in a timeval structure given as argument.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN397"><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >timer</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the timer to get elapsed time from.</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >tv</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > a timeval structure to store the result in.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN411" ></A ><H3 ><A NAME="WAKE-UP-TIMER" ></A >wake_up_timer ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void wake_up_timer (void);</PRE ></TD ></TR ></TABLE ><P >Wake up time that need it. This function should be called every second to work properly.</P ><P ></P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><BR CLEAR="all"><BR><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="prelude-shared-api.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="prelude-shared-api.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="prelude-rqueue.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ><TR ><TD COLSPAN="2" ALIGN="left" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Prelude Functions used by Core And Plugins</B ></FONT ></TD ><TD COLSPAN="2" ALIGN="right" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >rqueue</B ></FONT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >