Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Jul 2001 18:11:16 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        "David O'Brien" <obrien@FreeBSD.ORG>
Cc:        Matthew Jacob <mjacob@feral.com>, Peter Jeremy <peter.jeremy@alcatel.com.au>, freebsd-current@FreeBSD.ORG
Subject:   Re: chgrp broken on alpha systems
Message-ID:  <Pine.BSF.4.21.0107081743140.78343-100000@besplex.bde.org>
In-Reply-To: <20010707130538.I16759@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 7 Jul 2001, David O'Brien wrote:

> On Sat, Jul 07, 2001 at 01:02:28PM -0700, Matthew Jacob wrote:
> > 
> > 
> > On Sat, 7 Jul 2001, David O'Brien wrote:
> > 
> > > On Sat, Jul 07, 2001 at 11:54:26AM -0700, Matthew Jacob wrote:
> > > >
> > > >
> > > > On Sat, 7 Jul 2001, David O'Brien wrote:
> > > >
> > > > > On Fri, Jul 06, 2001 at 03:08:04PM +1000, Peter Jeremy wrote:
> > > > > >      		  i386 type	Alpha type
> > > > > > clock_t	unsigned long	int
> > > > >
> > > > > We could make these the same (not sure why they aren't).

No good reason.  I think "unsigned long" is used on i386's because that
was the largest type.  This was apparently considered to be too large
on alphas, so it was changed to a 32 bit type.  Changing it from a signed
type to an unsigned type was just a pessimization of its range.  With the
alpha pessimizations of the scale factors (_BSD_CLOCKS_PER_SEC_ = 100
and _BSD_CLK_TCK_ = 100), the range of a 31-effective-bits clock_t is
24.855 days.  A 32-bit unsigned clock_t would have a range of 49.710
days.  POSIX.1 only requires a range of 1 day.

> > > > because on alpha long == 64 bits
> > >
> > > What about the otherway around??  Like use "int" or "unsigned int" on
> > > both.
> > 
> > Let's use 64 bits for both.
> > 
> > You're retirement has been put off to 2043 at least...

clock_t has nothing to do with calendar times.

> I don't know what clock_t is used for (kernel version of time_t?).
> But the general agreement was to leave time as a 32-bit value on the
> Alpha in order to match (1) FreeBSD/i386 and (2) OSF/1,Digital Unix,Tru64.

It is used (entirely outside of the kernel) for the following interfaces:

clock_t clock(void);		(ISO C)
clock_t times(struct tms *);	(POSIX.1)
struct tms members:
    clock_t tms_utime
    clock_t tms_stime
    clock_t tms_cutime
    clock_t tms_cstime

See clocks.7 for more details about whey these interfaces are currently
not useful.  (To be as useful as getrusage(), CLOCKS_PER_SEC must be at
least 10^6.  This gives at least 86.4e9 "ticks" per day, so clock_t must
have at least 37 bits.)

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0107081743140.78343-100000>