summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/clockctl.4
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man4/clockctl.4')
-rw-r--r--static/netbsd/man4/clockctl.4133
1 files changed, 133 insertions, 0 deletions
diff --git a/static/netbsd/man4/clockctl.4 b/static/netbsd/man4/clockctl.4
new file mode 100644
index 00000000..10b6ea55
--- /dev/null
+++ b/static/netbsd/man4/clockctl.4
@@ -0,0 +1,133 @@
+.\" $NetBSD: clockctl.4,v 1.8 2010/03/22 18:58:31 joerg Exp $
+.\"
+.\" Copyright (c) 2001 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Emmanuel Dreyfus.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd February 19, 2009
+.Dt CLOCKCTL 4
+.Os
+.Sh NAME
+.Nm clockctl
+.Nd Clock subsystem user control
+.Sh SYNOPSIS
+.Cd pseudo-device clockctl
+.Sh DESCRIPTION
+The
+.Nm
+interface brings clock control to non-root users.
+Any user with write access to
+.Pa /dev/clockctl
+will be able to perform operations such as
+.Xr settimeofday 2 ,
+.Xr clock_settime 2 ,
+.Xr adjtime 2 ,
+or
+.Xr ntp_adjtime 2 ,
+which are normally restricted to the super-user.
+Using the
+.Nm
+pseudo-device, it is possible to run daemons such as
+.Xr ntpd 8
+as non-privileged users, thus reducing the security exposure if a
+compromise is found in such a daemon.
+.Pp
+The
+.Nm
+pseudo-device driver provides an
+.Xr ioctl 2
+call for each privileged clock-related system call.
+The system call stubs in C library will use the
+.Xr ioctl 2
+on
+.Pa /dev/clockctl
+if the special file is present and accessible, or will revert to the
+plain super-user-restricted system call if the special file is not accessible.
+.Pp
+The following
+.Xr ioctl 2
+calls are defined in
+.In sys/clockctl.h :
+.Bl -tag -width CLOCKCTL
+.It Dv CLOCKCTL_SETTIMEOFDAY
+This will run the
+.Xr settimeofday 2
+system call.
+Argument should be a pointer to a
+.Va struct clockctl_settimeofday :
+.Bd -literal
+struct clockctl_settimeofday {
+ const struct timeval *tv;
+ const void *tzp;
+};
+.Ed
+.It Dv CLOCKCTL_CLOCK_SETTIME
+This will run the
+.Xr clock_settime 2
+system call.
+Argument should be a pointer to a
+.Va struct clockctl_clock_settime :
+.Bd -literal
+struct clockctl_clock_settime {
+ clockid_t clock_id;
+ struct timespec *tp;
+};
+.Ed
+.It Dv CLOCKCTL_ADJTIME
+This will run the
+.Xr adjtime 2
+system call.
+Argument should be a pointer to a
+.Va struct clockctl_adjtime :
+.Bd -literal
+struct clockctl_adjtime {
+ const struct timeval *delta;
+ struct timeval *olddelta;
+};
+.Ed
+.It Dv CLOCKCTL_NTP_ADJTIME
+This will run the
+.Xr ntp_adjtime 2
+system call.
+Argument should be a pointer to a
+.Va struct clockctl_ntp_adjtime :
+.Bd -literal
+struct clockctl_ntp_adjtime {
+ struct timex *tp;
+.\" Following member is commented out intentionally.
+.\" register_t retval;
+};
+.Ed
+.El
+.Sh SEE ALSO
+.Xr adjtime 2 ,
+.Xr clock_settime 2 ,
+.Xr ioctl 2 ,
+.Xr settimeofday 2
+.Sh HISTORY
+.Nm
+appeared in
+.Nx 1.6 .