shithub: riscv

ref: 04c4a9ca8b06e34a203f7ddacc2263cf2077e1aa
dir: /sys/man/9/seconds/

View raw version
.TH SECONDS 9
.SH NAME
seconds, ticks, fastticks, HZ, MS2HZ, MS2TK, TK2MS, TK2SEC \- kernel times and time conversions
.SH SYNOPSIS
.ta \w'\fL#define 'u
.B
long	seconds(void)
.PP
.B
vlong	fastticks(uvlong *hz)
.PP
.EX
#define	HZ          ...
#define	MS2HZ       (1000/HZ)
#define	TK2SEC(t)   ((t)/HZ)
#define	TK2MS(t)    ((t)*(1000/HZ))
.EE
.SH DESCRIPTION
.I Seconds
returns the system's idea of the current time as the number of seconds
since the start of the epoch
(00:00:00 GMT, January 1, 1970).
.PP
The
.B ticks
field of the
.B Mach
structure returns the number of system-dependent clock ticks on the
given processor since system boot.
On a multiprocessor,
.B MACHP(0)
is sometimes used to provide a reference time, since the tick value
might vary slightly across processors.
.PP
.I Fastticks
returns the number of ticks since boot as measured by the
fastest clock provided by the platform.
The frequency of the clock, in ticks per second,
is returned through
.IR hz ,
unless it is nil.
.PP
The system clock frequencies are platform-dependent.
Several symbolic constants and macro functions are defined by
the file
.B mem.h
to convert between different time units:
.TF TK2SEC(t)
.PD
.TP
.B HZ
The number of clock ticks per second.
.TP
.B MS2HZ
Milliseconds per clock tick.
.TP
.BI TK2SEC( t )
Convert
.I t
clock ticks to seconds (truncating not rounding).
.TP
.BI TK2MS( t )
Convert
.I t
clock ticks to milliseconds.
.SH SOURCE
.B /sys/src/9/*/mem.h
.br
.B /sys/src/9/*/clock.c
.br
.B /sys/src/9/*/devarch.c
.br
.B /sys/src/9/*/timer.c
.br
.B /sys/src/9/port/tod.c