DESCRIPTION

The binuptime() and getbinuptime() functions store the time elapsed since
boot as a structbintime at the address specified by bt. The
microuptime() and getmicrouptime() functions perform the same utility,
but record the elapsed time as a structtimeval instead. Similarly the
nanouptime() and getnanouptime() functions store the elapsed time as a
structtimespec.
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.