Yo Eric!

On Sat, 25 Mar 2017 19:26:40 -0400
"Eric S. Raymond" <e...@thyrsus.com> wrote:

> This is not what is actually happening out there. Modern Unixes on
> 64-bit machines have already moved to 64-bit timespec members long
> since.

To confirm what Eric said.

On current Linux, timespec is defined as:

struct timespec
  {
    __time_t tv_sec;            /* Seconds.  */
    __syscall_slong_t tv_nsec;  /* Nanoseconds.  */
  };

slong is below.  time_t is defined as __time_t:

/usr/include/time.h:typedef __time_t time_t;

__time_t is defined as __TIME_T_TYPE:

/usr/include/bits/types.h:__STD_TYPE __TIME_T_TYPE __time_t;    /* Seconds 
since the Epoch.  */

__TIME_T_TYPE is a __SYSCALL_SLONG_TYPE:

/usr/include/bits/typesizes.h:#define __TIME_T_TYPE             
__SYSCALL_SLONG_TYPE

For X86_64 and X32 the __SYSCALL_SLONG_TYPE:

    # define __SYSCALL_SLONG_TYPE   __SQUAD_TYPE

But for some 32 Linux it is still:

    # define __SYSCALL_SLONG_TYPE   __SLONGWORD_TYPE

I'll spare you the rest of the nested macros: SQUAD is a long long int (64
bits or more), and SLONGWORD is a long int (32 bits or more).

So the problem is all those pesky 32 bit OS still out there.  But as you
see above, Linux X32 has already moved to 64 bit ints at the syscall
interface.  I expect other actively maintened 32 bit OS to do so as
well.

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
        g...@rellim.com  Tel:+1 541 382 8588

            Veritas liberabit vos. -- Quid est veritas?
    "If you can’t measure it, you can’t improve it." - Lord Kelvin

Attachment: pgpQVNmEzGD3_.pgp
Description: OpenPGP digital signature

_______________________________________________
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel

Reply via email to