Cross Reference: time-util.c
xref
: /
dovecot
/
src
/
lib
/
time-util.c
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
time-util.c revision 7ef3553585e556f35d5919589cfdc1de3329e4bb
/* Copyright (c) 2008-2009 Dovecot authors, see the included COPYING file */
#
include
"
lib.h
"
#
include
"
time-util.h
"
#
include
<
sys
/
time.h
>
int
timeval_cmp
(
const
struct
timeval
*
tv1
,
const
struct
timeval
*
tv2
)
{
if
(
tv1
->
tv_sec
<
tv2
->
tv_sec
)
return
-
1
;
if
(
tv1
->
tv_sec
>
tv2
->
tv_sec
)
return
1
;
if
(
tv1
->
tv_usec
<
tv2
->
tv_usec
)
return
-
1
;
if
(
tv1
->
tv_usec
>
tv2
->
tv_usec
)
return
1
;
return
0;
}
int
timeval_diff_msecs
(
const
struct
timeval
*
tv1
,
const
struct
timeval
*
tv2
)
{
time_t
secs
;
int
usecs
;
secs
=
tv1
->
tv_sec
-
tv2
->
tv_sec
;
usecs
=
tv1
->
tv_usec
-
tv2
->
tv_usec
;
if
(
usecs
< 0) {
secs
++;
usecs
+=
1000000
;
}
return
(
secs
*
1000
) + (
usecs
/
1000
);
}
long
long
timeval_diff_usecs
(
const
struct
timeval
*
tv1
,
const
struct
timeval
*
tv2
)
{
time_t
secs
;
int
usecs
;
secs
=
tv1
->
tv_sec
-
tv2
->
tv_sec
;
usecs
=
tv1
->
tv_usec
-
tv2
->
tv_usec
;
if
(
usecs
< 0) {
secs
++;
usecs
+=
1000000
;
}
return
((
long
long
)
secs
*
1000000ULL
) +
usecs
;
}