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

next in thread | previous in thread | raw e-mail | index | archive | help

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi, Bruce

On Wed, Jul 21, 2004 at 11:37:40PM +1000, Bruce Evans wrote:
> On Wed, 21 Jul 2004, Xin LI wrote:
>=20
> > Hi, Poul-Henning,
> >
> > It seems that rev. 1.23 of sys/sys/time.h has constrained timespec* mac=
ros
> > to be _KERNEL (KERNEL in the old days) only. Is this intended? (NetBSD =
and
>=20
> 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,
>=20
> NetBSD and OpenBSD originally only had timeval*(), and FreeBSD unfortunat=
ely
> 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.
>=20
> > as timespec structure is not _KERNEL protected :-)
>=20
> The timespec struct is POSIX standard.  POSIX has the correct number of
> functions for operating on timespec structs (none).

Thanks for the information, Bruce!

So this means I should use bintime instead of timespec if it is found in
code?

For the exact problem I went into: it's OpenBSD's cron which makes use of
timespec (because of fstat). I think a _KERNEL || __BSD_VISIBLE might be
helpful -- While it is possible to use bintime to represent what can be
done with a timespeccmp macro.

Cheers,
--=20
Xin LI <delphij frontfree net>	http://www.delphij.net/
See complete headers for GPG key and other information.


--9amGYk9869ThD9tj
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFA/og5OfuToMruuMARAtxOAJ9ECSsiSmizfpStEGqlEUXH40EFiACfXuSe
05C9NccCIE45jgc1VWpuUWg=
=77mn
-----END PGP SIGNATURE-----

--9amGYk9869ThD9tj--



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