On Wed, Feb 28, 2018 at 09:56:14AM -0600, Scott Cheloha wrote:
>
> One last thing: in ERRORS, the phrasing varies when we do a cross
> reference. It's usually something like
>
> [...] may fail and set errno for any of the errors specified for [...]
>
> but then you have a mix of "library routines," "routines," and nothing
> qualifying the cross reference(s). The cross references here are system
> calls, so can I just omit "library routines," or "routines," entirely?
>
yes.
> ^ This and the fixes attached.
>
ok by me.
jmc
> --
> Scott Cheloha
>
> Index: lib/libc/gen/times.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/gen/times.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 times.c
> --- lib/libc/gen/times.c 2 Nov 2015 17:02:37 -0000 1.7
> +++ lib/libc/gen/times.c 28 Feb 2018 15:53:00 -0000
> @@ -28,9 +28,9 @@
> * SUCH DAMAGE.
> */
>
> -#include <sys/time.h>
> #include <sys/times.h>
> #include <sys/resource.h>
> +#include <time.h>
>
> /*
> * Convert usec to clock ticks; could do (usec * CLK_TCK) / 1000000,
> @@ -42,7 +42,7 @@ clock_t
> times(struct tms *tp)
> {
> struct rusage ru;
> - struct timeval t;
> + struct timespec ts;
>
> if (getrusage(RUSAGE_SELF, &ru) < 0)
> return ((clock_t)-1);
> @@ -52,7 +52,7 @@ times(struct tms *tp)
> return ((clock_t)-1);
> tp->tms_cutime = CONVTCK(ru.ru_utime);
> tp->tms_cstime = CONVTCK(ru.ru_stime);
> - if (gettimeofday(&t, NULL))
> + if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
> return ((clock_t)-1);
> - return ((clock_t)(CONVTCK(t)));
> + return (ts.tv_sec * CLK_TCK + ts.tv_nsec / (1000000000 / CLK_TCK));
> }
> Index: lib/libc/gen/times.3
> ===================================================================
> RCS file: /cvs/src/lib/libc/gen/times.3,v
> retrieving revision 1.14
> diff -u -p -r1.14 times.3
> --- lib/libc/gen/times.3 17 Jul 2013 05:42:11 -0000 1.14
> +++ lib/libc/gen/times.3 28 Feb 2018 15:53:00 -0000
> @@ -40,20 +40,14 @@
> .Sh DESCRIPTION
> .Bf -symbolic
> This interface is obsoleted by
> -.Xr getrusage 2
> +.Xr clock_gettime 2
> and
> -.Xr gettimeofday 2 .
> +.Xr getrusage 2 .
> .Ef
> .Pp
> The
> .Fn times
> -function returns the value of time in
> -.Dv CLK_TCK Ns s
> -of a second since
> -0 hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal
> -Time (UTC).
> -.Pp
> -It also fills in the structure pointed to by
> +function fills in the structure pointed to by
> .Fa tp
> with time-accounting information.
> .Pp
> @@ -105,27 +99,32 @@ and
> elements of the parent when one of the
> .Xr wait 2
> functions returns the process ID of the terminated child to the parent.
> -If an error occurs,
> +.Sh RETURN VALUES
> +Upon successful completion,
> .Fn times
> -returns the value
> -.Li "(clock_t)-1" ,
> -and sets
> +returns the value of real time,
> +in
> +.Dv CLK_TCK Ns s
> +of a second,
> +elapsed since an arbitrary point in the past.
> +Otherwise a value of
> +.Li "(clock_t)-1"
> +is returned and the global variable
> .Va errno
> -to indicate the error.
> +is set to indicate the error.
> .Sh ERRORS
> The
> .Fn times
> -function may fail and set the global variable
> +function may fail and set
> .Va errno
> -for any of the errors specified for the library
> -routines
> -.Xr getrusage 2
> +for any of the errors specified for
> +.Xr clock_gettime 2
> and
> -.Xr gettimeofday 2 .
> +.Xr getrusage 2 .
> .Sh SEE ALSO
> .Xr time 1 ,
> +.Xr clock_gettime 2 ,
> .Xr getrusage 2 ,
> -.Xr gettimeofday 2 ,
> .Xr wait 2
> .Sh STANDARDS
> The