boottime, mono_time, runtime, time - system time variables
extern struct timeval boottime;
extern volatile struct timeval mono_time;
extern struct timeval runtime;
extern volatile struct timeval time;
The time variable is the system's ``wall time'' clock. It
is set at boot
by inittodr(9), and is updated by the settimeofday(2) system
call and by
periodic clock interrupts.
The boottime variable holds the system boot time. It is set
from time at
system boot, and is updated when the system time is adjusted
with
settimeofday(2).
The runtime variable holds the time that the system switched
to the current
process. It is set after each context switch, and is
updated when
the system time is adjusted with settimeofday(2). Because
runtime is
used for system accounting, it is set with the high-resolution
microtime(9) function, rather than being copied from time.
The mono_time variable is a monotonically increasing system
clock. It is
set from time at boot, and is updated by the periodic timer
interrupt.
(It is not updated by settimeofday(2).)
All of these variables contain times expressed in seconds
and microseconds
since midnight (0 hour), January 1, 1970.
Clock interrupts should be blocked when reading or writing
time or
mono_time, because those variables are updated by hardclock(9). Boottime
and runtime may be read and written without special precautions.
settimeofday(2), hardclock(9), hz(9), inittodr(9), microtime(9)
Runtime should not be updated when the system time is
changed with
settimeofday(2), because it is used for resource accounting.
The notion of having a single runtime variable obviously
won't be appropriate
in multiprocessor systems.
OpenBSD 3.6 November 13, 1995
[ Back ] |