File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / timer.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:39:23 2021 UTC (3 years, 3 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_9p16, v5_9, HEAD
mpd 5.9


/*
 * 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>