FreeBSD manual
download PDF document: boottime.9.pdf
TIME(9) FreeBSD Kernel Developer's Manual TIME(9)
NAME
boottime, time_second, time_uptime - system time variables
SYNOPSIS
#include <sys/time.h>
extern struct timeval boottime;
extern time_t time_second;
extern time_t time_uptime;
DESCRIPTION
The boottime variable holds the estimated system boot time. This time is
initially set when the system boots, either from the RTC, or from a time
estimated from the system's root filesystem. When the current system
time is set, stepped by ntpd(8), or a new time is read from the RTC as
the system resumes, boottime is recomputed as new_time - uptime. The
sysctl(8) kern.boottime returns this value.
The time_second variable is the system's "wall time" clock to the second.
The time_uptime variable is the number of seconds since boot.
The bintime(9), getbintime(9), microtime(9), getmicrotime(9),
nanotime(9), and getnanotime(9) functions can be used to get the current
time more accurately and in an atomic manner. Similarly, the
binuptime(9), getbinuptime(9), microuptime(9), getmicrouptime(9),
nanouptime(9), and getnanouptime(9) functions can be used to get the time
elapse since boot more accurately and in an atomic manner. The boottime
variable may be read and written without special precautions. It is
adjusted when the phase of the system time changes.
SEE ALSO
clock_settime(2), ntp_adjtime(2), settimeofday(2), bintime(9),
binuptime(9), getbintime(9), getbinuptime(9), getmicrotime(9),
getmicrouptime(9), getnanotime(9), getnanouptime(9), microtime(9),
microuptime(9), nanotime(9), nanouptime(9)
Poul-Henning Kamp, "Timecounters: Efficient and precise timekeeping in
SMP kernels", Proceedings of EuroBSDCon 2002, Amsterdam,
/usr/share/doc/papers/timecounter.ascii.gz.
Marshall Kirk McKusick and George V. Neville-Neil, The Design and
Implementation of the FreeBSD Operating System, Addison-Wesley,
57-61,65-66, July 2004.
FreeBSD 14.0-RELEASE-p11 May 4, 2021 FreeBSD 14.0-RELEASE-p11