\" $NetBSD: timeradd.3,v 1.10 2021/02/23 16:47:04 rillig Exp $
\"
\" Copyright (c) 2009 Jukka Ruohonen <
[email protected]>
\" Copyright (c) 1999 Kelly Yancey <
[email protected]>
\" All rights reserved.
\"
\" Redistribution and use in source and binary forms, with or without
\" modification, are permitted provided that the following conditions
\" are met:
\" 1. Redistributions of source code must retain the above copyright
\" notice, this list of conditions and the following disclaimer.
\" 2. Redistributions in binary form must reproduce the above copyright
\" notice, this list of conditions and the following disclaimer in the
\" documentation and/or other materials provided with the distribution.
\" 3. Neither the name of the author nor the names of any co-contributors
\" may be used to endorse or promote products derived from this software
\" without specific prior written permission.
\"
\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
\" SUCH DAMAGE.
\"
\" $FreeBSD: src/share/man/man3/timeradd.3,v 1.3 2003/09/08 19:57:19 ru Exp $
\"
Dd June 7, 2010
Dt TIMERADD 3
Os
Sh NAME
Nm timeradd
Nd operations on time structure
Sh SYNOPSIS
In sys/time.h
Ft void
Fn timeradd "struct timeval *a" "struct timeval *b" "struct timeval *res"
Ft void
Fn timersub "struct timeval *a" "struct timeval *b" "struct timeval *res"
Ft void
Fn timerclear "struct timeval *tv"
Ft int
Fn timerisset "struct timeval *tv"
Ft int
Fn timercmp "struct timeval *a" "struct timeval *b" CMP
Ft void
Fn timespecadd "struct timespec *a" \
"struct timespec *b" "struct timespec *res"
Ft void
Fn timespecsub "struct timespec *a" \
"struct timespec *b" "struct timespec *res"
Ft void
Fn timespecclear "struct timespec *ts"
Ft int
Fn timespecisset "struct timespec *ts"
Ft int
Fn timespeccmp "const struct timespec *a" "const struct timespec *b" CMP
Sh DESCRIPTION
These macros are provided for manipulating the
Fa timeval
and
Fa timespec
structures described in
Xr timeval 3 .
Pp
The
Fn timeradd
and
Fn timespecadd
macros add the time information stored in
Fa a
to
Fa b ,
storing the result in
Fa res .
With
Fn timeradd
the results are simplified such that the value of
Fa res->tv_usec
is always less than 1,000,000 (1 second).
With
Fn timespecadd
the
Fa res->tv_nsec
member of
Fa struct timespec
is always less than 1,000,000,000.
Pp
The
Fn timersub
and
Fn timespecsub
macros subtract the time information stored in
Fa b
from
Fa a
and store the resulting structure
in
Fa res .
Pp
The
Fn timerclear
and
Fn timespecclear
macros initialize the structures
to midnight (0 hour) January 1st, 1970 (the Epoch).
In other words, they set the members of the structure to zero.
Pp
The
Fn timerisset
and
Fn timespecisset
macros return true if the input structure
is set to any time value other than the Epoch.
Pp
The
Fn timercmp
and
Fn timespeccmp
macros compare
Fa a
to
Fa b
using the comparison operator given in
Fa CMP .
The result of the comparison is returned.
Sh SEE ALSO
Xr timeval 3
Sh HISTORY
The
Fn timeradd
family of macros first appeared in
Nx 1.1 .
These were later ported to
Fx 2.2.6 .
The
Fn timespec
family of macros first appeared in
Nx 1.2 .