OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man4 / rtc.4
diff --git a/original/man4/rtc.4 b/original/man4/rtc.4
deleted file mode 100644 (file)
index 5a94835..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-.\" rtc.4
-.\" Copyright 2002 Urs Thuermann (urs@isnogud.escape.de)
-.\"
-.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
-.\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, see
-.\" <http://www.gnu.org/licenses/>.
-.\" %%%LICENSE_END
-.\"
-.\" $Id: rtc.4,v 1.4 2005/12/05 17:19:49 urs Exp $
-.\"
-.\" 2006-02-08 Various additions by mtk
-.\" 2006-11-26 cleanup, cover the generic rtc framework; David Brownell
-.\"
-.TH RTC 4 2010-02-25 "Linux" "Linux Programmer's Manual"
-.SH NAME
-rtc \- real-time clock
-.SH SYNOPSIS
-#include <linux/rtc.h>
-.sp
-.BI "int ioctl(" fd ", RTC_" request ", " param ");"
-.SH DESCRIPTION
-This is the interface to drivers for real-time clocks (RTCs).
-
-Most computers have one or more hardware clocks which record the
-current "wall clock" time.
-These are called "Real Time Clocks" (RTCs).
-One of these usually has battery backup power so that it tracks the time
-even while the computer is turned off.
-RTCs often provide alarms and other interrupts.
-
-All i386 PCs, and ACPI-based systems, have an RTC that is compatible with
-the Motorola MC146818 chip on the original PC/AT.
-Today such an RTC is usually integrated into the mainboard's chipset
-(south bridge), and uses a replaceable coin-sized backup battery.
-
-Non-PC systems, such as embedded systems built around system-on-chip
-processors, use other implementations.
-They usually won't offer the same functionality as the RTC from a PC/AT.
-.SS RTC vs system clock
-RTCs should not be confused with the system clock, which is
-a software clock maintained by the kernel and used to implement
-.BR gettimeofday (2)
-and
-.BR time (2),
-as well as setting timestamps on files, and so on.
-The system clock reports seconds and microseconds since a start point,
-defined to be the POSIX Epoch: 1970-01-01 00:00:00 +0000 (UTC).
-(One common implementation counts timer interrupts, once
-per "jiffy", at a frequency of 100, 250, or 1000 Hz.)
-That is, it is supposed to report wall clock time, which RTCs also do.
-
-A key difference between an RTC and the system clock is that RTCs
-run even when the system is in a low power state (including "off"),
-and the system clock can't.
-Until it is initialized, the system clock can only report time since
-system boot ... not since the POSIX Epoch.
-So at boot time, and after resuming from a system low power state, the
-system clock will often be set to the current wall clock time using an RTC.
-Systems without an RTC need to set the system clock using another clock,
-maybe across the network or by entering that data manually.
-.SS RTC functionality
-RTCs can be read and written with
-.BR hwclock (8),
-or directly with the ioctl requests listed below.
-
-Besides tracking the date and time, many RTCs can also generate
-interrupts
-.IP * 3
-on every clock update (i.e., once per second);
-.IP *
-at periodic intervals with a frequency that can be set to
-any power-of-2 multiple in the range 2 Hz to 8192 Hz;
-.IP *
-on reaching a previously specified alarm time.
-.PP
-Each of those interrupt sources can be enabled or disabled separately.
-On many systems, the alarm interrupt can be configured as a system wakeup
-event, which can resume the system from a low power state such as
-Suspend-to-RAM (STR, called S3 in ACPI systems),
-Hibernation (called S4 in ACPI systems),
-or even "off" (called S5 in ACPI systems).
-On some systems, the battery backed RTC can't issue
-interrupts, but another one can.
-
-The
-.I /dev/rtc
-(or
-.IR /dev/rtc0 ,
-.IR /dev/rtc1 ,
-etc.)
-device can be opened only once (until it is closed) and it is read-only.
-On
-.BR read (2)
-and
-.BR select (2)
-the calling process is blocked until the next interrupt from that RTC
-is received.
-Following the interrupt, the process can read a long integer, of which
-the least significant byte contains a bit mask encoding
-the types of interrupt that occurred,
-while the remaining 3 bytes contain the number of interrupts since the
-last
-.BR read (2).
-.SS ioctl(2) interface
-The following
-.BR ioctl (2)
-requests are defined on file descriptors connected to RTC devices:
-.TP
-.B RTC_RD_TIME
-Returns this RTC's time in the following structure:
-.IP
-.in +4n
-.nf
-struct rtc_time {
-    int tm_sec;
-    int tm_min;
-    int tm_hour;
-    int tm_mday;
-    int tm_mon;
-    int tm_year;
-    int tm_wday;     /* unused */
-    int tm_yday;     /* unused */
-    int tm_isdst;    /* unused */
-};
-.fi
-.in
-.IP
-The fields in this structure have the same meaning and ranges as for the
-.I tm
-structure described in
-.BR gmtime (3).
-A pointer to this structure should be passed as the third
-.BR ioctl (2)
-argument.
-.TP
-.B RTC_SET_TIME
-Sets this RTC's time to the time specified by the
-.I rtc_time
-structure pointed to by the third
-.BR ioctl (2)
-argument.
-To set the
-RTC's time the process must be privileged (i.e., have the
-.B CAP_SYS_TIME
-capability).
-.TP
-.BR RTC_ALM_READ ", " RTC_ALM_SET
-Read and set the alarm time, for RTCs that support alarms.
-The alarm interrupt must be separately enabled or disabled using the
-.BR RTC_AIE_ON ", " RTC_AIE_OFF
-requests.
-The third
-.BR ioctl (2)
-argument is a pointer to an
-.I rtc_time
-structure.
-Only the
-.IR tm_sec ,
-.IR tm_min ,
-and
-.I tm_hour
-fields of this structure are used.
-.TP
-.BR RTC_IRQP_READ ", " RTC_IRQP_SET
-Read and set the frequency for periodic interrupts,
-for RTCs that support periodic interrupts.
-The periodic interrupt must be separately enabled or disabled using the
-.BR RTC_PIE_ON ", " RTC_PIE_OFF
-requests.
-The third
-.BR ioctl (2)
-argument is an
-.I "unsigned long\ *"
-or an
-.IR "unsigned long" ,
-respectively.
-The value is the frequency in interrupts per second.
-The set of allowable frequencies is the multiples of two
-in the range 2 to 8192.
-Only a privileged process (i.e., one having the
-.B CAP_SYS_RESOURCE
-capability) can set frequencies above the value specified in
-.IR /proc/sys/dev/rtc/max-user-freq .
-(This file contains the value 64 by default.)
-.TP
-.BR RTC_AIE_ON ", " RTC_AIE_OFF
-Enable or disable the alarm interrupt, for RTCs that support alarms.
-The third
-.BR ioctl (2)
-argument is ignored.
-.TP
-.BR RTC_UIE_ON ", " RTC_UIE_OFF
-Enable or disable the interrupt on every clock update,
-for RTCs that support this once-per-second interrupt.
-The third
-.BR ioctl (2)
-argument is ignored.
-.TP
-.BR RTC_PIE_ON ", " RTC_PIE_OFF
-Enable or disable the periodic interrupt,
-for RTCs that support these periodic interrupts.
-The third
-.BR ioctl (2)
-argument is ignored.
-Only a privileged process (i.e., one having the
-.B CAP_SYS_RESOURCE
-capability) can enable the periodic interrupt if the frequency is
-currently set above the value specified in
-.IR /proc/sys/dev/rtc/max-user-freq .
-.TP
-.BR RTC_EPOCH_READ ", " RTC_EPOCH_SET
-Many RTCs encode the year in an 8-bit register which is either
-interpreted as an 8-bit binary number or as a BCD number.
-In both cases,
-the number is interpreted relative to this RTC's Epoch.
-The RTC's Epoch is
-initialized to 1900 on most systems but on Alpha and MIPS it might
-also be initialized to 1952, 1980, or 2000, depending on the value of
-an RTC register for the year.
-With some RTCs,
-these operations can be used to read or to set the RTC's Epoch,
-respectively.
-The third
-.BR ioctl (2)
-argument is a
-.I "unsigned long\ *"
-or a
-.IR "unsigned long" ,
-respectively, and the value returned (or assigned) is the Epoch.
-To set the RTC's Epoch the process must be privileged (i.e., have the
-.B CAP_SYS_TIME
-capability).
-.TP
-.BR RTC_WKALM_RD ", " RTC_WKALM_SET
-Some RTCs support a more powerful alarm interface, using these ioctls
-to read or write the RTC's alarm time (respectively) with this structure:
-.PP
-.RS
-.in +4n
-.nf
-struct rtc_wkalrm {
-    unsigned char enabled;
-    unsigned char pending;
-    struct rtc_time time;
-};
-.fi
-.in
-.RE
-.IP
-The
-.I enabled
-flag is used to enable or disable the alarm interrupt,
-or to read its current status; when using these calls,
-.BR RTC_AIE_ON " and " RTC_AIE_OFF
-are not used.
-The
-.I pending
-flag is used by
-.B RTC_WKALM_RD
-to report a pending interrupt
-(so it's mostly useless on Linux, except when talking
-to the RTC managed by EFI firmware).
-The
-.I time
-field is as used with
-.B RTC_ALM_READ
-and
-.B RTC_ALM_SET
-except that the
-.IR tm_mday ,
-.IR tm_mon ,
-and
-.I tm_year
-fields are also valid.
-A pointer to this structure should be passed as the third
-.BR ioctl (2)
-argument.
-.SH FILES
-.IR /dev/rtc ", "
-.IR /dev/rtc0 ", "
-.IR /dev/rtc1 ", "
-etc: RTC special character device files.
-
-.IR /proc/driver/rtc :
-status of the (first) RTC.
-.SH NOTES
-When the kernel's system time is synchronized with an external
-reference using
-.BR adjtimex (2)
-it will update a designated RTC periodically every 11 minutes.
-To do so, the kernel has to briefly turn off periodic interrupts;
-this might affect programs using that RTC.
-
-An RTC's Epoch has nothing to do with the POSIX Epoch which is
-used only for the system clock.
-
-If the year according to the RTC's Epoch and the year register is
-less than 1970 it is assumed to be 100 years later, that is, between 2000
-and 2069.
-
-Some RTCs support "wildcard" values in alarm fields, to support
-scenarios like periodic alarms at fifteen minutes after every hour,
-or on the first day of each month.
-Such usage is nonportable;
-portable user-space code expects only a single alarm interrupt, and
-will either disable or reinitialize the alarm after receiving it.
-
-Some RTCs support periodic interrupts with periods that are multiples
-of a second rather than fractions of a second;
-multiple alarms;
-programmable output clock signals;
-nonvolatile memory;
-and other hardware
-capabilities that are not currently exposed by this API.
-.SH SEE ALSO
-.BR date (1),
-.BR adjtimex (2),
-.BR gettimeofday (2),
-.BR settimeofday (2),
-.BR stime (2),
-.BR time (2),
-.BR gmtime (3),
-.BR time (7),
-.BR hwclock (8)
-
-.I Documentation/rtc.txt
-in the Linux kernel source tree
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.