1fc2512cfSRobert Mustacchi.\" 2fc2512cfSRobert Mustacchi.\" This file and its contents are supplied under the terms of the 3fc2512cfSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 4fc2512cfSRobert Mustacchi.\" You may only use this file in accordance with the terms of version 5fc2512cfSRobert Mustacchi.\" 1.0 of the CDDL. 6fc2512cfSRobert Mustacchi.\" 7fc2512cfSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 8fc2512cfSRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 9fc2512cfSRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 10fc2512cfSRobert Mustacchi.\" 11fc2512cfSRobert Mustacchi.\" 12fc2512cfSRobert Mustacchi.\" Copyright 2016 Joyent, Inc. 13*d3aba683SRobert Mustacchi.\" Copyright 2025 Oxide Computer Company 14fc2512cfSRobert Mustacchi.\" 15*d3aba683SRobert Mustacchi.Dd "January 12, 2025" 16fc2512cfSRobert Mustacchi.Dt TIMESPEC_GET 3C 17fc2512cfSRobert Mustacchi.Os 18fc2512cfSRobert Mustacchi.Sh NAME 19*d3aba683SRobert Mustacchi.Nm timespec_get , 20*d3aba683SRobert Mustacchi.Nm timespec_getres 21fc2512cfSRobert Mustacchi.Nd get time information 22fc2512cfSRobert Mustacchi.Sh SYNOPSIS 23fc2512cfSRobert Mustacchi.In time.h 24fc2512cfSRobert Mustacchi.Ft int 25fc2512cfSRobert Mustacchi.Fo timespec_get 26fc2512cfSRobert Mustacchi.Fa "struct timespec *ts" 27fc2512cfSRobert Mustacchi.Fa "int base" 28fc2512cfSRobert Mustacchi.Fc 29*d3aba683SRobert Mustacchi.Ft int 30*d3aba683SRobert Mustacchi.Fo timespec_getres 31*d3aba683SRobert Mustacchi.Fa "struct timespec *ts" 32*d3aba683SRobert Mustacchi.Fa "int base" 33*d3aba683SRobert Mustacchi.Fc 34fc2512cfSRobert Mustacchi.Sh DESCRIPTION 35fc2512cfSRobert MustacchiThe 36fc2512cfSRobert Mustacchi.Fn timespec_get 37*d3aba683SRobert Mustacchifunction provides access to nanosecond resolution time. 38*d3aba683SRobert MustacchiThe 39*d3aba683SRobert Mustacchi.Fn timespec_getres 40*d3aba683SRobert Mustacchifunction provides access to the underlying clock's resolution. 4172d3dbb9SYuri PankovThe meaning and source of time is defined by the 42fc2512cfSRobert Mustacchi.Fa base 4372d3dbb9SYuri Pankovargument. 4472d3dbb9SYuri PankovThe following values are defined for 45fc2512cfSRobert Mustacchi.Fa base : 46fc2512cfSRobert Mustacchi.Bl -tag -width Ds 47*d3aba683SRobert Mustacchi.It Dv TIME_UTC 4872d3dbb9SYuri PankovObtain the current time of day from the realtime clock on the system. 4972d3dbb9SYuri PankovIt represents the amount of time in second and nanoseconds since the Epoch. 50fc2512cfSRobert MustacchiThis is logically equivalent to calling 51fc2512cfSRobert Mustacchi.Xr clock_gettime 3C 52fc2512cfSRobert Mustacchiwith 53*d3aba683SRobert Mustacchi.Dv CLOCK_REALTIME . 54*d3aba683SRobert Mustacchi.It Dv TIME_MONOTONIC 55*d3aba683SRobert MustacchiThe system's monotonic clock is a non-adjustable, high-resolution clock. 56*d3aba683SRobert MustacchiThe returned value is not subject to adjustments from time of day drift 57*d3aba683SRobert Mustacchinor can it be set. 58*d3aba683SRobert MustacchiThis clock is generally only useful for measuring elapsed time relative 59*d3aba683SRobert Mustacchito a prior reading. 60*d3aba683SRobert MustacchiThis is logically equivalent to using the 61*d3aba683SRobert Mustacchi.Dv CLOCK_HIGHRES 62*d3aba683SRobert Mustacchiand 63*d3aba683SRobert Mustacchi.Dv CLOCK_MONOTONIC 64*d3aba683SRobert Mustacchiclocks or calling 65*d3aba683SRobert Mustacchi.Xr gethrtime 3C . 66*d3aba683SRobert Mustacchi.It Dv TIME_THREAD_ACTIVE 67*d3aba683SRobert MustacchiThis clock measures the elapsed system and user CPU-time of the current 68*d3aba683SRobert Mustacchithread. 69*d3aba683SRobert MustacchiThe amount of time it has spent executing code is measured in seconds 70*d3aba683SRobert Mustacchiand nanoseconds. 71*d3aba683SRobert MustacchiThe 72*d3aba683SRobert Mustacchi.Fa pr_utime 73*d3aba683SRobert Mustacchimember of the 74*d3aba683SRobert Mustacchi.Vt lwpsinfo_t 75*d3aba683SRobert Mustacchior 76*d3aba683SRobert Mustacchi.Vt prusage_t 77*d3aba683SRobert Mustacchistructures discussed in 78*d3aba683SRobert Mustacchi.Xr proc 5 79*d3aba683SRobert Mustacchiare alternative ways to see the user component. 80*d3aba683SRobert MustacchiThe system component is a combination of both the system and trap time 81*d3aba683SRobert Mustacchithat the thread has experienced. 82*d3aba683SRobert MustacchiIn the 83*d3aba683SRobert Mustacchi.Vt lwpsinfo_t 84*d3aba683SRobert Mustacchithis is covered solely by the 85*d3aba683SRobert Mustacchi.Fa pr_stime 86*d3aba683SRobert Mustacchimember. 87*d3aba683SRobert MustacchiFor the 88*d3aba683SRobert Mustacchi.Vt prusage_t 89*d3aba683SRobert Mustacchithese are separated out into the 90*d3aba683SRobert Mustacchi.Fa pr_stime 91*d3aba683SRobert Mustacchiand 92*d3aba683SRobert Mustacchi.Fa pr_ttime 93*d3aba683SRobert Mustacchimembers respectively. 94*d3aba683SRobert Mustacchi.Pp 95*d3aba683SRobert MustacchiThis is logically equivalent to using the 96*d3aba683SRobert Mustacchi.Dv CLOCK_THREAD_CPUTIME_ID 97*d3aba683SRobert Mustacchiclock . 98*d3aba683SRobert MustacchiThis clock is optional and may not be present on other platforms. 99*d3aba683SRobert Mustacchi.It Dv TIME_THREAD_ACTIVE_USR 100*d3aba683SRobert MustacchiThis clock is similar to the 101*d3aba683SRobert Mustacchi.Dv TIME_THREAD_ACTIVE 102*d3aba683SRobert Mustacchiclock, except it only counts user time that has elapsed. 103*d3aba683SRobert MustacchiThis is logically equivalent to using the 104*d3aba683SRobert Mustacchi.Dv CLOCK_VIRTUAL 105*d3aba683SRobert Mustacchiclock or calling 106*d3aba683SRobert Mustacchi.Xr gethrvtime 3C . 107*d3aba683SRobert MustacchiThis clock is an extension and may not be available on other platforms. 108*d3aba683SRobert Mustacchi.It Dv TIME_ACTIVE 109*d3aba683SRobert MustacchiThis clock measures the elapsed system and user CPU-time of the current 110*d3aba683SRobert Mustacchiprocess, including all of its threads. 111*d3aba683SRobert MustacchiNone of the process's children are counted in this measure, whether 112*d3aba683SRobert Mustacchirunning or terminated. 113*d3aba683SRobert MustacchiThe value read here will be the same as combining the corresponding 114*d3aba683SRobert Mustacchi.Xr proc 5 115*d3aba683SRobert Mustacchi.Vt psinfo_t 116*d3aba683SRobert Mustacchistructure's 117*d3aba683SRobert Mustacchi.Fa pr_stime 118*d3aba683SRobert Mustacchiand 119*d3aba683SRobert Mustacchi.Fa pr_utime 120*d3aba683SRobert Mustacchimembers. 121*d3aba683SRobert MustacchiThis clock is optional and may not be present on other platforms. 122fc2512cfSRobert Mustacchi.El 123fc2512cfSRobert Mustacchi.Pp 124fc2512cfSRobert MustacchiFor the definition of the 125*d3aba683SRobert Mustacchi.Vt timespec 126fc2512cfSRobert Mustacchistructure, see 127fc2512cfSRobert Mustacchi.Xr time.h 3HEAD . 128fc2512cfSRobert Mustacchi.Sh RETURN VALUES 129fc2512cfSRobert MustacchiUpon successful completion, the 130fc2512cfSRobert Mustacchi.Fn timespec_get 131*d3aba683SRobert Mustacchiand 132*d3aba683SRobert Mustacchi.Fn timespec_getres 133*d3aba683SRobert Mustacchifunctions return the passed in value of 134fc2512cfSRobert Mustacchi.Fa base . 135fc2512cfSRobert MustacchiOtherwise, 136fc2512cfSRobert Mustacchi.Sy 0 137fc2512cfSRobert Mustacchiis returned to represent an error. 138fc2512cfSRobert Mustacchi.Sh ERRORS 139fc2512cfSRobert MustacchiUnlike other functions, the 140fc2512cfSRobert Mustacchi.Fn timespec_get 141*d3aba683SRobert Mustacchiand 142*d3aba683SRobert Mustacchi.Fn timespec_getres 143*d3aba683SRobert Mustacchifunctions are not defined to set 144*d3aba683SRobert Mustacchi.Vt errno . 145fc2512cfSRobert MustacchiHowever, the 146fc2512cfSRobert Mustacchi.Fn timespec_get 147*d3aba683SRobert Mustacchiand 148*d3aba683SRobert Mustacchi.Fn timespec_getres 149*d3aba683SRobert Mustacchifunctions will fail if: 150fc2512cfSRobert Mustacchi.Bl -bullet -offset indent 151fc2512cfSRobert Mustacchi.It 152fc2512cfSRobert MustacchiThe value of 153fc2512cfSRobert Mustacchi.Fa base 154fc2512cfSRobert Mustacchidoes not refer to a known time specification. 155fc2512cfSRobert Mustacchi.It 156fc2512cfSRobert MustacchiThere was an error obtaining the time for 157fc2512cfSRobert Mustacchi.Fa base . 158fc2512cfSRobert Mustacchi.El 159fc2512cfSRobert Mustacchi.Sh INTERFACE STABILITY 160fc2512cfSRobert Mustacchi.Sy Standard 161fc2512cfSRobert Mustacchi.Sh MT-LEVEL 162fc2512cfSRobert Mustacchi.Sy MT-Safe 163fc2512cfSRobert Mustacchi.Sh SEE ALSO 164*d3aba683SRobert Mustacchi.Xr clock_getres 3C , 165fc2512cfSRobert Mustacchi.Xr clock_gettime 3C , 166*d3aba683SRobert Mustacchi.Xr gethrtime 3C , 167*d3aba683SRobert Mustacchi.Xr gethrvtime 3C , 168fc2512cfSRobert Mustacchi.Xr time.h 3HEAD , 169bbf21555SRichard Lowe.Xr attributes 7 170