Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jul 2004 23:37:40 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Xin LI <delphij@frontfree.net>
Cc:        current@freebsd.org
Subject:   Re: Any idea why timespec* is _KERNEL stuff only?
Message-ID:  <20040721232310.Y2587@epsplex.bde.org>
In-Reply-To: <20040721113211.GA1899@frontfree.net>
References:  <20040721113211.GA1899@frontfree.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 21 Jul 2004, Xin LI wrote:

> Hi, Poul-Henning,
>
> It seems that rev. 1.23 of sys/sys/time.h has constrained timespec* macros
> to be _KERNEL (KERNEL in the old days) only. Is this intended? (NetBSD and

Yes, this is intended.  The timeval and timespec interfaces are optimized
for handling times in code that can't use 64-bit integers or floating
point (mainly in 20 year old kernels).  New interfaces to manipulate them
should not be added 20 years after the interfaces should have been
deprecated.

> OpenBSD don't expect _KERNEL for these macros, e.g. timespeccmp, and I
> personally think that these macros will be better for more generic use,

NetBSD and OpenBSD originally only had timeval*(), and FreeBSD unfortunately
had to add them to be compatible.  timespec*() seem to be even less needed
in userland than timeval*(), since no ports are broken by not having them.

> as timespec structure is not _KERNEL protected :-)

The timespec struct is POSIX standard.  POSIX has the correct number of
functions for operating on timespec structs (none).

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040721232310.Y2587>