xref: /openbsd-src/share/man/man9/hardclock.9 (revision 0d88cff5397f65b7fee068981b08d234c688e143)
1*0d88cff5Scheloha.\"	$OpenBSD: hardclock.9,v 1.13 2020/06/26 18:48:31 cheloha Exp $
2a624d674Skrw.\"
3a624d674Skrw.\" Copyright (c) 2001 Kenneth R Westerback
4a624d674Skrw.\" All rights reserved.
5a624d674Skrw.\"
6a624d674Skrw.\" Redistribution and use in source and binary forms, with or without
7a624d674Skrw.\" modification, are permitted provided that the following conditions
8a624d674Skrw.\" are met:
9a624d674Skrw.\" 1. Redistributions of source code must retain the above copyright
10a624d674Skrw.\"    notice, this list of conditions and the following disclaimer,
11a624d674Skrw.\"    without modification, immediately at the beginning of the file.
12a624d674Skrw.\" 2. The name of the author may not be used to endorse or promote products
13a624d674Skrw.\"    derived from this software without specific prior written permission.
14a624d674Skrw.\"
15a624d674Skrw.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16a624d674Skrw.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17a624d674Skrw.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18a624d674Skrw.\" IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
19a624d674Skrw.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20a624d674Skrw.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21a624d674Skrw.\" SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22a624d674Skrw.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23a624d674Skrw.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24a624d674Skrw.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25a624d674Skrw.\" THE POSSIBILITY OF SUCH DAMAGE.
26a624d674Skrw.\"
27*0d88cff5Scheloha.Dd $Mdocdate: June 26 2020 $
28a624d674Skrw.Dt HARDCLOCK 9
29a624d674Skrw.Os
30a624d674Skrw.Sh NAME
31a624d674Skrw.Nm hardclock
32a624d674Skrw.Nd real-time system clock
33a624d674Skrw.Sh SYNOPSIS
34dddd2645Sschwarze.In sys/systm.h
35a624d674Skrw.Ft void
365dfee228Sschwarze.Fo hardclock
37a624d674Skrw.Fa "struct clockframe *frame"
38a624d674Skrw.Fc
39a624d674Skrw.Sh DESCRIPTION
40a624d674Skrw.Fn hardclock
410626ab20Snaddyimplements the real-time system clock, interrupting
42a624d674Skrw.Xr hz 9
43a624d674Skrwtimes a second.
44a624d674SkrwThe argument
45a624d674Skrw.Fa frame
466957a4a4Sjmcis an opaque, machine dependent structure that encapsulates the
47a624d674Skrwprevious machine state.
48a624d674Skrw.Pp
49a624d674Skrw.Fn hardclock
50ec1acea6Sschwarzeperforms a variety of time related housekeeping tasks, such as:
51a624d674Skrw.Bl -bullet -offset indent
52a624d674Skrw.It
53a624d674SkrwIf the current process has virtual or profiling interval
54a624d674Skrwtimers, update the timers and deliver appropriate signals.
55a624d674Skrw.It
56a624d674SkrwIf there is no separate statistics clock, execute
576e788039Sjmc.Fn statclock .
58a624d674Skrw.It
59a624d674SkrwIncrement the time of day, implementing any adjustments requested by
60a624d674Skrw.Xr adjtime 2
618a7802e4Sjmcor required as a result of running an NTP daemon or other configured
62a624d674Skrwexternal clock.
63a624d674Skrw.It
64a624d674SkrwUpdate the real-time timeout queue, calling
65a624d674Skrw.Fn softclock
66a624d674Skrwdirectly if the current interrupt priority is low enough.
67a624d674Skrw.El
684f82885cSjasper.Sh CODE REFERENCES
694f82885cSjasper.Fn hardclock
704f82885cSjasperis implemented in the file
714f82885cSjasper.Pa sys/kern/kern_clock.c .
72a624d674Skrw.Sh SEE ALSO
73a624d674Skrw.Xr adjtime 2 ,
74a624d674Skrw.Xr hz 9 ,
75a624d674Skrw.Xr microtime 9 ,
76a624d674Skrw.Xr spl 9 ,
77a624d674Skrw.Xr timeout 9
78