File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / timer.h
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:32:47 2012 UTC (12 years, 10 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision


/*
 * timer.h
 *
 * Written by Archie Cobbs <archie@freebsd.org>
 * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
 * See ``COPYRIGHT.whistle''
 */

#ifndef _TIMER_H_
#define	_TIMER_H_

#include "defs.h"
#include "event.h"

/*
 * DEFINITIONS
 */

  #define TICKSPERSEC	1000		/* Microsecond granularity */
  #define SECONDS	TICKSPERSEC	/* Timers count in usec */

  struct pppTimer;
  typedef struct pppTimer *PppTimer;

  struct pppTimer
  {
    EventRef	event;			/* Event registration */
    u_int	load;			/* Initial load value */
    void	(*func)(void *arg);	/* Called when timer expires */
    void	*arg;			/* Arg passed to timeout function */
    const char	*desc;
    const char	*dbg;
  };

/*
 * FUNCTIONS
 */

#define	TimerInit(timer, desc, load, handler, arg)				\
	    TimerInit2(timer, desc, load, handler, arg, #handler)
  extern void	TimerInit2(PppTimer timer, const char *desc,
		  int load, void (*handler)(void *), void *arg, const char *dbg);
#define	TimerStart(t)	\
	    TimerStart2(t, __FILE__, __LINE__)
  extern void	TimerStart2(PppTimer t, const char *file, int line);
#define	TimerStartRecurring(t)	\
	    TimerStartRecurring2(t, __FILE__, __LINE__)
  extern void	TimerStartRecurring2(PppTimer t, const char *file, int line);
#define	TimerStop(t)	\
	    TimerStop2(t, __FILE__, __LINE__)
  extern void	TimerStop2(PppTimer t, const char *file, int line);
  extern int	TimerRemain(PppTimer t);
  extern int	TimerStarted(PppTimer t);

#endif


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>