Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Aug 2013 10:48:09 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Hiroki Sato <hrs@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r253995 - in head/usr.sbin: rtadvd rtsold
Message-ID:  <1375807689.3320.48.camel@revolution.hippie.lan>
In-Reply-To: <201308061549.r76FnImt054058@svn.freebsd.org>
References:  <201308061549.r76FnImt054058@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2013-08-06 at 15:49 +0000, Hiroki Sato wrote:
> Author: hrs
> Date: Tue Aug  6 15:49:18 2013
> New Revision: 253995
> URL: http://svnweb.freebsd.org/changeset/base/253995
> 
> Log:
>   Fix build on arm and mips.
> 
> Modified:
>   head/usr.sbin/rtadvd/timer.c
>   head/usr.sbin/rtsold/rtsold.c
> 
> Modified: head/usr.sbin/rtadvd/timer.c
> ==============================================================================
> --- head/usr.sbin/rtadvd/timer.c	Tue Aug  6 15:34:11 2013	(r253994)
> +++ head/usr.sbin/rtadvd/timer.c	Tue Aug  6 15:49:18 2013	(r253995)
> @@ -59,11 +59,8 @@ void
>  rtadvd_timer_init(void)
>  {
>  	/* Generate maximum time in timespec. */
> -	memset(&tm_limit.tv_sec, 0xff, sizeof(tm_limit.tv_sec));
> -	memset(&tm_limit.tv_nsec, 0xff, sizeof(tm_limit.tv_nsec));
> -	tm_limit.tv_sec &= ~(1UL << (sizeof(tm_limit.tv_sec) * 8 - 1));
> -	tm_limit.tv_nsec &= ~(1UL << (sizeof(tm_limit.tv_nsec) * 8 - 1));
> -
> +	tm_limit.tv_sec = (-1) & ~((time_t)1 << ((sizeof(tm_max.tv_sec) * 8) - 1));
> +	tm_limit.tv_nsec = (-1) & ~((long)1 << ((sizeof(tm_max.tv_nsec) * 8) - 1));
>  	tm_max = tm_limit;
>  	TAILQ_INIT(&ra_timer);
>  }
> 
> Modified: head/usr.sbin/rtsold/rtsold.c
> ==============================================================================
> --- head/usr.sbin/rtsold/rtsold.c	Tue Aug  6 15:34:11 2013	(r253994)
> +++ head/usr.sbin/rtsold/rtsold.c	Tue Aug  6 15:49:18 2013	(r253995)
> @@ -188,10 +188,8 @@ main(int argc, char **argv)
>  	}
>  
>  	/* Generate maximum time in timespec. */
> -	memset(&tm_max.tv_sec, 0xff, sizeof(tm_max.tv_sec));
> -	memset(&tm_max.tv_nsec, 0xff, sizeof(tm_max.tv_nsec));
> -	tm_max.tv_sec &= ~(1UL << (sizeof(tm_max.tv_sec) * 8 - 1));
> -	tm_max.tv_nsec &= ~(1UL << (sizeof(tm_max.tv_nsec) * 8 - 1));
> +	tm_max.tv_sec = (-1) & ~((time_t)1 << ((sizeof(tm_max.tv_sec) * 8) - 1));
> +	tm_max.tv_nsec = (-1) & ~((long)1 << ((sizeof(tm_max.tv_nsec) * 8) - 1));
>  
>  	/* set log level */
>  	if (dflag > 1)

The maximum number of nsec is 999999999 regardless of the type of
tv_nsec.

That expression for max time_t sure is ugly, but I can't think of
anything that isn't just differently-ugly.  At least the comment makes
the purpose clear.

-- Ian





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