Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 Feb 2007 11:44:44 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        freebsd-listen@fabiankeil.de
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: a question regarding <sys/shm.h>
Message-ID:  <20070201.114444.29501661.imp@bsdimp.com>
In-Reply-To: <20070131153114.4e76a6ea@localhost>
References:  <86odofjyua.fsf@dwp.des.no> <20070131105024.L91177@fledge.watson.org> <20070131153114.4e76a6ea@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20070131153114.4e76a6ea@localhost>
            Fabian Keil <freebsd-listen@fabiankeil.de> writes:
: Robert Watson <rwatson@FreeBSD.org> wrote:
: =

: > On Wed, 31 Jan 2007, Dag-Erling Sm=F8rgrav wrote:
: > =

: > > Pascal Hofstee <caelian@gmail.com> writes:
: > >> Any additional sugestions/objections are always greatly apprecia=
ted.
: > >
: > > On 32-bit platforms (i386, powerpc), int is a 32-bit signed integ=
er while =

: > > size_t is a 32-bit unsigned integer.
: > >
: > > On 64-bit platforms (amd64, sparc64 etc), int is a 32-bit signed =
integer =

: > > while size_t is a 64-bit unsigned integer.
: > >
: > > In both cases, changing this structure member from int to size_t =
will break =

: > > the ABI.
: > >
: > > This doesn't mean you shouldn't do it, just that it should be don=
e with =

: > > care.
: > =

: > If we do decide to go ahead with the ABI change, there are a number=
 of other =

: > things that should be done simultaneously, such as changing the uid=
 and gid =

: > fields to uid_t and gid_t.
: =

: struct tm's members could be changed as well.

struct tm doesn't have a member that's tv_sec.

Maybe you mean struct timeval and struct timespec?


: Quoting a response I got from Juliusz Chroboczek
: (the author of Polipo) after reporting a compiler
: warning:
: =

: |By the way, IEEE 1003.1-2003 says that tv_sec should be a time_t,
: |hence by making it a long, FreeBSD and NetBSD are violating the POSI=
X
: |standard.  Could you please file a bug report with them?
: =

: I didn't find any claims about FreeBSD being IEEE 1003.1-2003
: compliant and therefore didn't consider it a bug, but given that
: the topic is *_t changes and time_t hasn't come up yet,
: I'd like to mention it anyway.

I think this is already fixed:

/*
 * Structure returned by gettimeofday(2) system call, and used in other=
 calls.
 */
struct timeval {
        time_t          tv_sec;         /* seconds */
        suseconds_t     tv_usec;        /* and microseconds */
};

as is timespec:

struct timespec {
        time_t  tv_sec;         /* seconds */
        long    tv_nsec;        /* and nanoseconds */
};

Warner



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