a question regarding <sys/shm.h>
M. Warner Losh
imp at bsdimp.com
Thu Feb 1 18:45:56 UTC 2007
In message: <20070131153114.4e76a6ea at localhost>
Fabian Keil <freebsd-listen at fabiankeil.de> writes:
: Robert Watson <rwatson at FreeBSD.org> wrote:
:
: > On Wed, 31 Jan 2007, Dag-Erling Smørgrav wrote:
: >
: > > Pascal Hofstee <caelian at gmail.com> writes:
: > >> Any additional sugestions/objections are always greatly appreciated.
: > >
: > > On 32-bit platforms (i386, powerpc), int is a 32-bit signed integer 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 done 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 POSIX
: |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
More information about the freebsd-hackers
mailing list