Import sendmail 8.13.8
[dragonfly.git] / contrib / sendmail-8.13.8 / include / sm / time.h
1 /*
2  * Copyright (c) 2005 Sendmail, Inc. and its suppliers.
3  *      All rights reserved.
4  *
5  * By using this file, you agree to the terms and conditions set
6  * forth in the LICENSE file which can be found at the top level of
7  * the sendmail distribution.
8  *
9  *      $Id: time.h,v 1.1 2005/06/14 23:07:19 ca Exp $
10  */
11
12 #ifndef SM_TIME_H
13 # define SM_TIME_H 1
14
15 # include <sm/config.h>
16
17 # include <sys/time.h>
18
19 /* should be defined in sys/time.h */
20 #ifndef timersub
21 # define timersub(tvp, uvp, vvp)                                        \
22         do                                                              \
23         {                                                               \
24                 (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;          \
25                 (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;       \
26                 if ((vvp)->tv_usec < 0)                                 \
27                 {                                                       \
28                         (vvp)->tv_sec--;                                \
29                         (vvp)->tv_usec += 1000000;                      \
30                 }                                                       \
31         } while (0)
32 #endif /* !timersub */
33
34 #ifndef timeradd
35 # define timeradd(tvp, uvp, vvp)                                        \
36         do                                                              \
37         {                                                               \
38                 (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;          \
39                 (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;       \
40                 if ((vvp)->tv_usec >= 1000000)                          \
41                 {                                                       \
42                         (vvp)->tv_sec++;                                \
43                         (vvp)->tv_usec -= 1000000;                      \
44                 }                                                       \
45         } while (0)
46 #endif /* !timeradd */
47
48 #ifndef timercmp
49 # define timercmp(tvp, uvp, cmp)                                        \
50         (((tvp)->tv_sec == (uvp)->tv_sec) ?                             \
51             ((tvp)->tv_usec cmp (uvp)->tv_usec) :                       \
52             ((tvp)->tv_sec cmp (uvp)->tv_sec))
53 #endif /* !timercmp */
54
55
56 #endif /* ! SM_TIME_H */