1157001Sgshapiro/* 2261363Sgshapiro * Copyright (c) 2005 Proofpoint, Inc. and its suppliers. 3157001Sgshapiro * All rights reserved. 4157001Sgshapiro * 5157001Sgshapiro * By using this file, you agree to the terms and conditions set 6157001Sgshapiro * forth in the LICENSE file which can be found at the top level of 7157001Sgshapiro * the sendmail distribution. 8157001Sgshapiro * 9266692Sgshapiro * $Id: time.h,v 1.2 2013-11-22 20:51:32 ca Exp $ 10157001Sgshapiro */ 11157001Sgshapiro 12157001Sgshapiro#ifndef SM_TIME_H 13157001Sgshapiro# define SM_TIME_H 1 14157001Sgshapiro 15157001Sgshapiro# include <sm/config.h> 16157001Sgshapiro 17157001Sgshapiro# include <sys/time.h> 18157001Sgshapiro 19157001Sgshapiro/* should be defined in sys/time.h */ 20157001Sgshapiro#ifndef timersub 21157001Sgshapiro# define timersub(tvp, uvp, vvp) \ 22157001Sgshapiro do \ 23157001Sgshapiro { \ 24157001Sgshapiro (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ 25157001Sgshapiro (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ 26157001Sgshapiro if ((vvp)->tv_usec < 0) \ 27157001Sgshapiro { \ 28157001Sgshapiro (vvp)->tv_sec--; \ 29157001Sgshapiro (vvp)->tv_usec += 1000000; \ 30157001Sgshapiro } \ 31157001Sgshapiro } while (0) 32157001Sgshapiro#endif /* !timersub */ 33157001Sgshapiro 34157001Sgshapiro#ifndef timeradd 35157001Sgshapiro# define timeradd(tvp, uvp, vvp) \ 36157001Sgshapiro do \ 37157001Sgshapiro { \ 38157001Sgshapiro (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ 39157001Sgshapiro (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ 40157001Sgshapiro if ((vvp)->tv_usec >= 1000000) \ 41157001Sgshapiro { \ 42157001Sgshapiro (vvp)->tv_sec++; \ 43157001Sgshapiro (vvp)->tv_usec -= 1000000; \ 44157001Sgshapiro } \ 45157001Sgshapiro } while (0) 46157001Sgshapiro#endif /* !timeradd */ 47157001Sgshapiro 48157001Sgshapiro#ifndef timercmp 49157001Sgshapiro# define timercmp(tvp, uvp, cmp) \ 50157001Sgshapiro (((tvp)->tv_sec == (uvp)->tv_sec) ? \ 51157001Sgshapiro ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ 52157001Sgshapiro ((tvp)->tv_sec cmp (uvp)->tv_sec)) 53157001Sgshapiro#endif /* !timercmp */ 54157001Sgshapiro 55157001Sgshapiro 56157001Sgshapiro#endif /* ! SM_TIME_H */ 57