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