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


_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to