> Ada was using long for time_t and
> 
> type timeval is array (1 .. 2) of C.long
> 
> It assumes that the type of tv_nsec is the same as tv_sec.

Yes, and that was indeed wrong/dangerous.

> > --- s-osinte-solaris-posix.ads  (revision 298928)
> > +++ s-osinte-solaris-posix.ads  (working copy)
> > @@ -513,7 +513,7 @@
> >
> >     type timespec is record
> >        tv_sec  : time_t;
> > -      tv_nsec : long;
> > +      tv_nsec : time_t;
> >     end record;
> >     pragma Convention (C, timespec);
> >
> > But I'd rather settle on which type is appropriate for the tv_nsec
> > field before making this change.
> >
> 
> __syscall_slong_t is a Linux specific type.  We
> can add tv_nsec_t, which should be the same
> as time_t for all the current targets.

Introducing tv_nsec_t looks reasonable to me.

Arno

Reply via email to