diff options
-rw-r--r-- | sys/powerpc/aim/clock.c | 21 | ||||
-rw-r--r-- | sys/powerpc/powerpc/clock.c | 21 |
2 files changed, 42 insertions, 0 deletions
diff --git a/sys/powerpc/aim/clock.c b/sys/powerpc/aim/clock.c index 438d862..8d738ec 100644 --- a/sys/powerpc/aim/clock.c +++ b/sys/powerpc/aim/clock.c @@ -82,6 +82,16 @@ static u_long ticks_per_sec = 12500000; static long ticks_per_intr; static volatile u_long lasttb; +static int sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS); + +int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ +SYSCTL_INT(_machdep, CPU_WALLCLOCK, wall_cmos_clock, + CTLFLAG_RW, &wall_cmos_clock, 0, ""); + +int adjkerntz; /* local offset from GMT in seconds */ +SYSCTL_PROC(_machdep, CPU_ADJKERNTZ, adjkerntz, CTLTYPE_INT|CTLFLAG_RW, + &adjkerntz, 0, sysctl_machdep_adjkerntz, "I", ""); + #define SECDAY 86400 #define DIFF19041970 2082844800 @@ -97,6 +107,17 @@ static struct timecounter decr_timecounter = { "decrementer" /* name */ }; +static int +sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS) +{ + int error; + + error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); + if (!error && req->newptr) + resettodr(); + return (error); +} + void inittodr(time_t base) { diff --git a/sys/powerpc/powerpc/clock.c b/sys/powerpc/powerpc/clock.c index 438d862..8d738ec 100644 --- a/sys/powerpc/powerpc/clock.c +++ b/sys/powerpc/powerpc/clock.c @@ -82,6 +82,16 @@ static u_long ticks_per_sec = 12500000; static long ticks_per_intr; static volatile u_long lasttb; +static int sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS); + +int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ +SYSCTL_INT(_machdep, CPU_WALLCLOCK, wall_cmos_clock, + CTLFLAG_RW, &wall_cmos_clock, 0, ""); + +int adjkerntz; /* local offset from GMT in seconds */ +SYSCTL_PROC(_machdep, CPU_ADJKERNTZ, adjkerntz, CTLTYPE_INT|CTLFLAG_RW, + &adjkerntz, 0, sysctl_machdep_adjkerntz, "I", ""); + #define SECDAY 86400 #define DIFF19041970 2082844800 @@ -97,6 +107,17 @@ static struct timecounter decr_timecounter = { "decrementer" /* name */ }; +static int +sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS) +{ + int error; + + error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); + if (!error && req->newptr) + resettodr(); + return (error); +} + void inittodr(time_t base) { |