|
FreeBSD kernel kern code
|
#include <sys/cdefs.h>#include "opt_ntp.h"#include <sys/param.h>#include <sys/systm.h>#include <sys/sysproto.h>#include <sys/eventhandler.h>#include <sys/kernel.h>#include <sys/priv.h>#include <sys/proc.h>#include <sys/lock.h>#include <sys/mutex.h>#include <sys/time.h>#include <sys/timex.h>#include <sys/timetc.h>#include <sys/timepps.h>#include <sys/syscallsubr.h>#include <sys/sysctl.h>
Go to the source code of this file.
Data Structures | |
| struct | ntp_gettime_args |
| struct | ntp_adjtime_args |
| struct | adjtime_args |
Macros | |
| #define | L_ADD(v, u) ((v) += (u)) |
| #define | L_SUB(v, u) ((v) -= (u)) |
| #define | L_ADDHI(v, a) ((v) += (int64_t)(a) << 32) |
| #define | L_NEG(v) ((v) = -(v)) |
| #define | L_RSHIFT(v, n) |
| #define | L_MPY(v, a) ((v) *= (a)) |
| #define | L_CLR(v) ((v) = 0) |
| #define | L_ISNEG(v) ((v) < 0) |
| #define | L_LINT(v, a) ((v) = (int64_t)(a) << 32) |
| #define | L_GINT(v) ((v) < 0 ? -(-(v) >> 32) : (v) >> 32) |
| #define | SHIFT_PLL 4 /* PLL loop gain (shift) */ |
| #define | SHIFT_FLL 2 /* FLL loop gain (shift) */ |
Typedefs | |
| typedef int64_t | l_fp |
Functions | |
| __FBSDID ("$BSDSUniX$") | |
| static void | ntp_init (void) |
| static void | hardupdate (long offset) |
| static void | ntp_gettime1 (struct ntptimeval *ntvp) |
| static int | ntp_is_time_error (void) |
| int | sys_ntp_gettime (struct thread *td, struct ntp_gettime_args *uap) |
| static int | ntp_sysctl (SYSCTL_HANDLER_ARGS) |
| SYSCTL_NODE (_kern, OID_AUTO, ntp_pll, CTLFLAG_RW, 0,"") | |
| SYSCTL_PROC (_kern_ntp_pll, OID_AUTO, gettime, CTLTYPE_OPAQUE|CTLFLAG_RD, 0, sizeof(struct ntptimeval), ntp_sysctl,"S,ntptimeval","") | |
| int | sys_ntp_adjtime (struct thread *td, struct ntp_adjtime_args *uap) |
| void | ntp_update_second (int64_t *adjustment, time_t *newsec) |
| SYSINIT (ntpclocks, SI_SUB_CLOCKS, SI_ORDER_MIDDLE, ntp_init, NULL) | |
| int | sys_adjtime (struct thread *td, struct adjtime_args *uap) |
| int | kern_adjtime (struct thread *td, struct timeval *delta, struct timeval *olddelta) |
| static void | periodic_resettodr (void *arg __unused) |
| static void | shutdown_resettodr (void *arg __unused, int howto __unused) |
| static int | sysctl_resettodr_period (SYSCTL_HANDLER_ARGS) |
| SYSCTL_PROC (_machdep, OID_AUTO, rtc_save_period, CTLTYPE_INT|CTLFLAG_RW,&resettodr_period, 1800, sysctl_resettodr_period,"I","Save system time to RTC with this period (in seconds)") | |
| TUNABLE_INT ("machdep.rtc_save_period",&resettodr_period) | |
| static void | start_periodic_resettodr (void *arg __unused) |
| SYSINIT (periodic_resettodr, SI_SUB_LAST, SI_ORDER_MIDDLE, start_periodic_resettodr, NULL) | |
Variables | |
| static int | time_state = TIME_OK |
| static int | time_status = STA_UNSYNC |
| static long | time_tai |
| static long | time_monitor |
| static long | time_constant |
| static long | time_precision = 1 |
| static long | time_maxerror = MAXPHASE / 1000 |
| static long | time_esterror = MAXPHASE / 1000 |
| static long | time_reftime |
| static l_fp | time_offset |
| static l_fp | time_freq |
| static l_fp | time_adj |
| static int64_t | time_adjtime |
| static struct callout | resettodr_callout |
| static int | resettodr_period = 1800 |
| #define L_ADD | ( | v, | |
| u | |||
| ) | ((v) += (u)) |
Definition at line 62 of file kern_ntptime.c.
Referenced by hardupdate(), and ntp_update_second().
| #define L_ADDHI | ( | v, | |
| a | |||
| ) | ((v) += (int64_t)(a) << 32) |
Definition at line 64 of file kern_ntptime.c.
| #define L_CLR | ( | v | ) | ((v) = 0) |
Definition at line 74 of file kern_ntptime.c.
Referenced by ntp_init().
| #define L_GINT | ( | v | ) | ((v) < 0 ? -(-(v) >> 32) : (v) >> 32) |
Definition at line 77 of file kern_ntptime.c.
Referenced by hardupdate(), and sys_ntp_adjtime().
| #define L_ISNEG | ( | v | ) | ((v) < 0) |
Definition at line 75 of file kern_ntptime.c.
| #define L_LINT | ( | v, | |
| a | |||
| ) | ((v) = (int64_t)(a) << 32) |
Definition at line 76 of file kern_ntptime.c.
Referenced by hardupdate(), ntp_update_second(), and sys_ntp_adjtime().
| #define L_MPY | ( | v, | |
| a | |||
| ) | ((v) *= (a)) |
Definition at line 73 of file kern_ntptime.c.
Referenced by hardupdate().
| #define L_NEG | ( | v | ) | ((v) = -(v)) |
Definition at line 65 of file kern_ntptime.c.
| #define L_RSHIFT | ( | v, | |
| n | |||
| ) |
Definition at line 66 of file kern_ntptime.c.
Referenced by hardupdate(), and ntp_update_second().
| #define L_SUB | ( | v, | |
| u | |||
| ) | ((v) -= (u)) |
Definition at line 63 of file kern_ntptime.c.
Referenced by ntp_update_second().
| #define SHIFT_FLL 2 /* FLL loop gain (shift) */ |
Definition at line 148 of file kern_ntptime.c.
Referenced by hardupdate().
| #define SHIFT_PLL 4 /* PLL loop gain (shift) */ |
Definition at line 147 of file kern_ntptime.c.
Referenced by hardupdate(), and ntp_update_second().
| typedef int64_t l_fp |
Definition at line 61 of file kern_ntptime.c.
| __FBSDID | ( | "$BSDSUniX$" | ) |
|
static |
Definition at line 663 of file kern_ntptime.c.
References L_ADD, L_GINT, L_LINT, L_MPY, L_RSHIFT, SHIFT_FLL, SHIFT_PLL, time_constant, time_freq, time_monitor, time_offset, time_reftime, time_second, and time_status.
Referenced by sys_ntp_adjtime().

| int kern_adjtime | ( | struct thread * | td, |
| struct timeval * | delta, | ||
| struct timeval * | olddelta | ||
| ) |
Definition at line 954 of file kern_ntptime.c.
References Giant, priv_check(), and time_adjtime.
Referenced by sys_adjtime().


|
static |
Definition at line 246 of file kern_ntptime.c.
References nanotime(), ntp_is_time_error(), time_esterror, time_maxerror, time_state, and time_tai.
Referenced by ntp_sysctl(), and sys_ntp_gettime().


|
static |
Definition at line 619 of file kern_ntptime.c.
References L_CLR, time_freq, and time_offset.
|
static |
Definition at line 209 of file kern_ntptime.c.
References time_status.
Referenced by ntp_gettime1(), periodic_resettodr(), shutdown_resettodr(), and sys_ntp_adjtime().

|
static |
Definition at line 290 of file kern_ntptime.c.
References ntp_gettime1(), and sysctl_handle_opaque().

| void ntp_update_second | ( | int64_t * | adjustment, |
| time_t * | newsec | ||
| ) |
Definition at line 480 of file kern_ntptime.c.
References L_ADD, L_LINT, L_RSHIFT, L_SUB, SHIFT_PLL, time_adj, time_adjtime, time_constant, time_freq, time_maxerror, time_offset, time_state, time_status, and time_tai.
Referenced by tc_windup().

|
static |
Definition at line 985 of file kern_ntptime.c.
References callout_schedule(), Giant, hz, ntp_is_time_error(), resettodr(), and resettodr_callout.
Referenced by start_periodic_resettodr(), and sysctl_resettodr_period().


|
static |
Definition at line 998 of file kern_ntptime.c.
References Giant, ntp_is_time_error(), resettodr(), and resettodr_callout.
Referenced by start_periodic_resettodr().


|
static |
Definition at line 1031 of file kern_ntptime.c.
References callout_init(), hz, periodic_resettodr(), resettodr_callout, and shutdown_resettodr().

| int sys_adjtime | ( | struct thread * | td, |
| struct adjtime_args * | uap | ||
| ) |
Definition at line 935 of file kern_ntptime.c.
References adjtime_args::delta, kern_adjtime(), and adjtime_args::olddelta.

| int sys_ntp_adjtime | ( | struct thread * | td, |
| struct ntp_adjtime_args * | uap | ||
| ) |
Definition at line 327 of file kern_ntptime.c.
References Giant, hardupdate(), L_GINT, L_LINT, ntp_is_time_error(), priv_check(), time_constant, time_esterror, time_freq, time_maxerror, time_offset, time_precision, time_state, time_status, time_tai, and ntp_adjtime_args::tp.

| int sys_ntp_gettime | ( | struct thread * | td, |
| struct ntp_gettime_args * | uap | ||
| ) |
Definition at line 277 of file kern_ntptime.c.
References Giant, ntp_gettime1(), and ntp_gettime_args::ntvp.

| SYSCTL_NODE | ( | _kern | , |
| OID_AUTO | , | ||
| ntp_pll | , | ||
| CTLFLAG_RW | , | ||
| 0 | , | ||
| "" | |||
| ) |
| SYSCTL_PROC | ( | _kern_ntp_pll | , |
| OID_AUTO | , | ||
| gettime | , | ||
| CTLTYPE_OPAQUE| | CTLFLAG_RD, | ||
| 0 | , | ||
| sizeof(struct ntptimeval) | , | ||
| ntp_sysctl | , | ||
| " | S, | ||
| ntptimeval" | , | ||
| "" | |||
| ) |
| SYSCTL_PROC | ( | _machdep | , |
| OID_AUTO | , | ||
| rtc_save_period | , | ||
| CTLTYPE_INT| | CTLFLAG_RW, | ||
| & | resettodr_period, | ||
| 1800 | , | ||
| sysctl_resettodr_period | , | ||
| "I" | , | ||
| "Save system time to RTC with this period (in seconds)" | |||
| ) |
|
static |
Definition at line 1010 of file kern_ntptime.c.
References hz, periodic_resettodr(), resettodr_callout, and sysctl_handle_int().

| SYSINIT | ( | ntpclocks | , |
| SI_SUB_CLOCKS | , | ||
| SI_ORDER_MIDDLE | , | ||
| ntp_init | , | ||
| NULL | |||
| ) |
| SYSINIT | ( | periodic_resettodr | , |
| SI_SUB_LAST | , | ||
| SI_ORDER_MIDDLE | , | ||
| start_periodic_resettodr | , | ||
| NULL | |||
| ) |
| TUNABLE_INT | ( | "machdep.rtc_save_period" | , |
| & | resettodr_period | ||
| ) |
|
static |
Definition at line 981 of file kern_ntptime.c.
Referenced by periodic_resettodr(), shutdown_resettodr(), start_periodic_resettodr(), and sysctl_resettodr_period().
|
static |
Definition at line 982 of file kern_ntptime.c.
|
static |
Definition at line 161 of file kern_ntptime.c.
Referenced by ntp_update_second().
|
static |
Definition at line 163 of file kern_ntptime.c.
Referenced by kern_adjtime(), and ntp_update_second().
|
static |
Definition at line 154 of file kern_ntptime.c.
Referenced by hardupdate(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 157 of file kern_ntptime.c.
Referenced by ntp_gettime1(), and sys_ntp_adjtime().
|
static |
Definition at line 160 of file kern_ntptime.c.
Referenced by hardupdate(), ntp_init(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 156 of file kern_ntptime.c.
Referenced by ntp_gettime1(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 153 of file kern_ntptime.c.
Referenced by hardupdate().
|
static |
Definition at line 159 of file kern_ntptime.c.
Referenced by hardupdate(), ntp_init(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 155 of file kern_ntptime.c.
Referenced by sys_ntp_adjtime().
|
static |
Definition at line 158 of file kern_ntptime.c.
Referenced by hardupdate().
|
static |
Definition at line 150 of file kern_ntptime.c.
Referenced by ntp_gettime1(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 151 of file kern_ntptime.c.
Referenced by hardupdate(), ntp_is_time_error(), ntp_update_second(), and sys_ntp_adjtime().
|
static |
Definition at line 152 of file kern_ntptime.c.
Referenced by ntp_gettime1(), ntp_update_second(), and sys_ntp_adjtime().