The
binuptime() and
getbinuptime() functions store the time elapsed since boot as a
struct bintime at the address specified by
bt. The
microuptime() and
getmicrouptime() functions perform the same utility, but record the elapsed time as a
struct timeval instead. Similarly the
nanouptime() and
getnanouptime() functions store the elapsed time as a
struct timespec. The used structures are described in
timeval(3).
The
binuptime(),
microuptime(), and
nanouptime() functions always query the timecounter to return the current time as precisely as possible. Whereas
getbinuptime(),
getmicrouptime(), and
getnanouptime() functions are abstractions which return a less precise, but faster to obtain, time.
The intent of the
getbinuptime(),
getmicrouptime(), and
getnanouptime() functions is to enforce the user's preference for timer accuracy versus execution time. They should be used where a precision of 1/
HZ (e.g., 10 msec on a 100
HZ machine, see
hz(9)) is acceptable or where performance is priority.