time.h revision 266692
1110476Strhodes/*
266830Sobrien * Copyright (c) 2005 Proofpoint, Inc. and its suppliers.
366830Sobrien *	All rights reserved.
466830Sobrien *
566830Sobrien * By using this file, you agree to the terms and conditions set
666830Sobrien * forth in the LICENSE file which can be found at the top level of
766830Sobrien * the sendmail distribution.
866830Sobrien *
966830Sobrien *	$Id: time.h,v 1.2 2013-11-22 20:51:32 ca Exp $
1066830Sobrien */
1166830Sobrien
1266830Sobrien#ifndef SM_TIME_H
1366830Sobrien# define SM_TIME_H 1
1466830Sobrien
1566830Sobrien# include <sm/config.h>
1666830Sobrien
1766830Sobrien# include <sys/time.h>
1866830Sobrien
1966830Sobrien/* should be defined in sys/time.h */
2066830Sobrien#ifndef timersub
2166830Sobrien# define timersub(tvp, uvp, vvp)					\
2266830Sobrien	do								\
2366830Sobrien	{								\
2466830Sobrien		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;		\
2566830Sobrien		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;	\
2650472Speter		if ((vvp)->tv_usec < 0)					\
2766830Sobrien		{							\
2815027Sphk			(vvp)->tv_sec--;				\
2966830Sobrien			(vvp)->tv_usec += 1000000;			\
30168384Srwatson		}							\
3166830Sobrien	} while (0)
3266830Sobrien#endif /* !timersub */
3343849Sjkh
3481618Sdd#ifndef timeradd
3581618Sdd# define timeradd(tvp, uvp, vvp)					\
3681618Sdd	do								\
3781618Sdd	{								\
3881618Sdd		(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;		\
3981618Sdd		(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;	\
4081618Sdd		if ((vvp)->tv_usec >= 1000000)				\
4133203Sadam		{							\
4233203Sadam			(vvp)->tv_sec++;				\
4315027Sphk			(vvp)->tv_usec -= 1000000;			\
4429300Sdanny		}							\
45163749Sphk	} while (0)
46163749Sphk#endif /* !timeradd */
47163749Sphk
48163749Sphk#ifndef timercmp
49163749Sphk# define timercmp(tvp, uvp, cmp)					\
50163749Sphk	(((tvp)->tv_sec == (uvp)->tv_sec) ?				\
51163749Sphk	    ((tvp)->tv_usec cmp (uvp)->tv_usec) :			\
52163749Sphk	    ((tvp)->tv_sec cmp (uvp)->tv_sec))
5315027Sphk#endif /* !timercmp */
5451231Ssheldonh
5529300Sdanny
5615027Sphk#endif /* ! SM_TIME_H */
5715027Sphk