OSDN Git Service

長音記号の修正を release に反映
[linuxjm/LDP_man-pages.git] / release / man2 / adjtimex.2
1 .\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995.
2 .\" and Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
3 .\"
4 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
5 .\" This is free documentation; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
9 .\"
10 .\" The GNU General Public License's references to "object code"
11 .\" and "executables" are to be interpreted as the output of any
12 .\" document formatting or typesetting system, including
13 .\" intermediate and printed output.
14 .\"
15 .\" This manual is distributed in the hope that it will be useful,
16 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 .\" GNU General Public License for more details.
19 .\"
20 .\" You should have received a copy of the GNU General Public
21 .\" License along with this manual; if not, see
22 .\" <http://www.gnu.org/licenses/>.
23 .\" %%%LICENSE_END
24 .\"
25 .\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
26 .\" Modified 1997-07-30 by Paul Slootman <paul@wurtel.demon.nl>
27 .\" Modified 2004-05-27 by Michael Kerrisk <mtk.manpages@gmail.com>
28 .\"
29 .\"*******************************************************************
30 .\"
31 .\" This file was generated with po4a. Translate the source file.
32 .\"
33 .\"*******************************************************************
34 .\"
35 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
36 .\"         all rights reserved.
37 .\" Translated 1997-12-17, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
38 .\" Updated and Modified 2001-06-12,Yuichi SATO <ysato@h4.dion.ne.jp>
39 .\" Updated and Modified 2004-12-28, Yuichi SATO <ysato444@yahoo.co.jp>
40 .\" Updated 2006-07-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.34
41 .\"
42 .TH ADJTIMEX 2 2014\-12\-31 Linux "Linux Programmer's Manual"
43 .SH 名前
44 adjtimex \- カーネルの時計を調整する
45 .SH 書式
46 .nf
47 \fB#define _BSD_SOURCE\fP      /* feature_test_macros(7) 参照 */
48 \fB#include <sys/timex.h>\fP
49
50 \fBint adjtimex(struct timex *\fP\fIbuf\fP\fB);\fP
51 .fi
52 .SH 説明
53 Linux は David L. Mill の時計調節アルゴリズムを使用している (RFC\ 5905 を参照)。 システムコール
54 \fBadjtimex\fP()  はこのアルゴリズムの調節のパラメーターを読み取ったり、設定したりする。 この関数は \fItimex\fP
55 構造体へのポインターを受け取り、その値でカーネルのパラメーターを更新して、 同じ構造体に現在のカーネルの値を返す。 この構造体は以下のように宣言される:
56 .PP
57 .in +4n
58 .nf
59 struct timex {
60     int  modes;      /* モードの選択 */
61     long offset;     /* 時刻オフセット; STA_NANO ステータスフラグが
62                         設定されるとナノ秒で、それ以外はマイクロ秒 */
63     long freq;       /* 周波数オフセット。 単位は 2^\-16 ppm
64                         (parts per million)。 「注意」を参照 */
65     long maxerror;   /* 最大エラー (マイクロ秒) */
66     long esterror;   /* 推定エラー (マイクロ秒) */
67     int  status;     /* クロックコマンド/ステータス */
68     long constant;   /* PLL (phase\-locked loop) 時刻定数 */
69     long precision;  /* クロック精度 (マイクロ秒、読み出し専用) */
70     long tolerance;  /* クロック周波数耐性 (ppm、読み出し専用) */
71     struct timeval time;
72                      /* 現在時刻 (読み出し専用、 ADJ_SETOFFSET の
73                         場合以外); リターン時は time.tv_usec は
74                         STA_NANO ステータスフラグが設定されると
75                         ナノ秒で、それ以外はマイクロ秒 */
76     long tick;       /* クロック tick 間のマイクロ秒 */
77     long ppsfreq;    /* PPS (pulse per second) 周波数 (単位は
78                         2^\-16 ppm、「注意」を参照、読み出し専用) */
79     long jitter;     /* PPS ジッター (読み出し専用); STA_NANO
80                         ステータスフラグが設定されるとナノ秒、
81                         それ以外はマイクロ秒 */
82     int  shift;      /* PPS interval duration (秒、読み出し専用) */
83     long stabil;     /* PPS 安定性 (2^\-16 ppm、「注意」を参照、
84                         読み出し専用) */
85     long jitcnt;     /* PPS ジッター上限超過 (読み出し専用) */
86     long calcnt;     /* PPS 校正間隔 (読み出し専用) */
87     long errcnt;     /* PPS 校正エラー (読み出し専用) */
88     long stbcnt;     /* PPS 安定性上限超過 (読み出し専用) */
89     int tai;         /* TAI オフセット、直前の ADJ_TAI 命令で設定
90                         したもの (秒、読み出し専用、
91                         Linux 2.6.26 以降) */
92     /* これ以降のパディングバイトは将来の拡張用である */
93 };
94 .fi
95 .in
96 .PP
97 \fImodes\fP フィールドは (必要に応じて) どのパラメーターを設定するか決定する。 以下のビット値の 0 個以上の ビット \fIOR\fP
98 からなるビットマスクである。
99 .TP 
100 \fBADJ_OFFSET\fP
101 \fIbuf.offset\fP を時刻オフセットを設定する。
102 .TP 
103 \fBADJ_FREQUENCY\fP
104 \fIbuf.freq\fP を周波数オフセットを設定する。
105 .TP 
106 \fBADJ_MAXERROR\fP
107 \fIbuf.maxerror\fP を最大時刻エラーを設定する。
108 .TP 
109 \fBADJ_ESTERROR\fP
110 \fIbuf.esterror\fP を推定時刻エラー (estimated time error) を設定する。
111 .TP 
112 \fBADJ_STATUS\fP
113 \fIbuf.status\fP をクロックステータスを設定する。
114 .TP 
115 \fBADJ_TIMECONST\fP
116 \fIbuf.constant\fP を PLL の時刻定数を設定する。 (下記の) \fBSTA_NANO\fP ステータスフラグがクリアされた場合、
117 カーネルはこの値に 4 を足す。
118 .TP 
119 \fBADJ_SETOFFSET\fP (Linux 2.6.29 以降)
120 .\" commit 094aa1881fdc1b8889b442eb3511b31f3ec2b762
121 .\" Author: Richard Cochran <richardcochran@gmail.com>
122 \fIbuf.time\fP を現在時刻に加算する。 \fIbuf.status\fP に \fBADJ_NANO\fP フラグが指定された場合、
123 \fIbuf.time.tv_usec\fP はナノ秒として解釈される。 そうでない場合はマイクロ秒として解釈される。
124 .TP 
125 \fBADJ_MICRO\fP (Linux 2.6.36 以降)
126 .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
127 .\" Author: Roman Zippel <zippel@linux-m68k.org>
128 マイクロ秒単位の精度を選択する。
129 .TP 
130 \fBADJ_NANO\fP (Linux 2.6.36 以降)
131 .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
132 .\" Author: Roman Zippel <zippel@linux-m68k.org>
133 ナノ秒単位の精度を選択する。 \fBADJ_MICRO\fP と \fBADJ_NANO\fP の一方のみを指定すること。
134 .TP 
135 \fBADJ_TAI\fP (Linux 2.6.26 以降)
136 .\" commit 153b5d054ac2d98ea0d86504884326b6777f683d
137 \fIbuf\->constant\fP を TAI (Atomic International Time) オフセットを設定する。
138
139 \fBADJ_TAI\fP は \fBADJ_TIMECONST\fP と組み合わせて使わないこと。 \fBADJ_TIMECONST\fP も
140 \fIbuf\->constant\fP フィールド利用するからである。
141
142 TAI の詳細な説明および TAI と UTC の違いについては
143 .UR http://www.bipm.org/en/bipm/tai/tai.html
144 \fIBIPM\fP
145 .UE
146 を参照。
147 .TP 
148 \fBADJ_TICK\fP
149 \fIbuf.tick\fP を tick 値に設定する。
150 .PP
151 .\" In general, the other bits are ignored, but ADJ_OFFSET_SINGLESHOT 0x8001
152 .\" ORed with ADJ_NANO (0x2000) gives 0xa0001 == ADJ_OFFSET_SS_READ!!
153 上記の代わりに、 \fImodes\fP に以下の値 (複数ビットのマスク) のいずれかを指定することもできる。 この場合は他のビットは \fImodes\fP
154 に指定すべきではない。
155 .TP 
156 \fBADJ_OFFSET_SINGLESHOT\fP
157 .\" In user space, ADJ_OFFSET_SINGLESHOT is 0x8001
158 .\" In kernel space it is 0x0001, and must be ANDed with ADJ_ADJTIME (0x8000)
159 古い形式の \fBadjtime\fP(): 時刻を \fIbuf.offset\fP で指定された値で (徐々に) 調整する。 \fIbuf.offset\fP
160 はマイクロ秒単位の調整値である。
161 .TP 
162 \fBADJ_OFFSET_SS_READ\fP (Linux 2.6.28 以降で機能する)
163 .\" In user space, ADJ_OFFSET_SS_READ is 0xa001
164 .\" In kernel space there is ADJ_OFFSET_READONLY (0x2000) anded with
165 .\" ADJ_ADJTIME (0x8000) and ADJ_OFFSET_SINGLESHOT (0x0001) to give 0xa001)
166 .\" commit 52bfb36050c8529d9031d2c2513b281a360922ec
167 .\" commit 916c7a855174e3b53d182b97a26b2e27a29726a1
168 \fBADJ_OFFSET_SINGLESHOT\fP 操作を行った後でまだ残っている調整すべき時刻量を (\fIbuf.offset\fP で) 返す。
169 この機能は Linux 2.6.24 で追加されたが、 Linux 2.6.28 までは正常に動作しなかった。
170 .PP
171 通常のユーザーは \fImodes\fP の値は 0 か \fBADJ_OFFSET_SS_READ\fP のいずれかに制限されている。
172 スーパーユーザーのみが全てのパラメーターを設定できる。
173
174 \fIbuf.status\fP フィールドはビットマスクで、 このフィールドを使って NTP 実装に関連するステータスビットの設定や取得を行うことができる。
175 マスクのビットのいくつかは読み書き両用で、 他のビットは読み出し専用である。
176 .TP 
177 \fBSTA_PLL\fP
178 Phase Locked Loop (PLL) の更新を有効にする (読み書き両用)。 \fBADJ_OFFSET\fP 経由で設定できる。
179 .TP 
180 \fBSTA_PPSFREQ\fP
181 PPS freq discipline を有効にする (読み書き両用)
182 .TP 
183 \fBSTA_PPSTIME\fP
184 PPS time discipline を有効にする (読み書き両用)
185 .TP 
186 \fBSTA_FLL\fP
187 Frequency Locked Loop (FLL) モードを選択する (読み書き両用)
188 .TP 
189 \fBSTA_INS\fP
190 閏秒を挿入する (読み書き両用)
191 .TP 
192 \fBSTA_DEL\fP
193 閏秒を削除する (読み書き両用)
194 .TP 
195 \fBSTA_UNSYNC\fP
196 クロックを非同期状態にする (読み書き両用)
197 .TP 
198 \fBSTA_FREQHOLD\fP
199 周波数を保持する (読み書き両用)
200 .TP 
201 \fBSTA_PPSSIGNAL\fP
202 PPS 信号が存在する (読み出し専用)
203 .TP 
204 \fBSTA_PPSJITTER\fP
205 PPS 信号のジッターが超過している (読み出し専用)
206 .TP 
207 \fBSTA_PPSWANDER\fP
208 PPS 信号の wander が超過している (読み出し専用)
209 .TP 
210 \fBSTA_PPSERROR\fP
211 PPS 信号の校正エラー (読み出し専用)
212 .TP 
213 \fBSTA_CLOCKERR\fP
214 クロックハードウェア障害 (読み出し専用)
215 .TP 
216 \fBSTA_NANO\fP (Linux 2.6.26 以降)
217 .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
218 .\" Author: Roman Zippel <zippel@linux-m68k.org>
219 精度 (0 = マイクロ秒、 1 = ナノ秒; 読み出し専用)。 \fBADJ_NANO\fP でセットし、 \fBADJ_MICRO\fP でクリアする。
220 .TP 
221 \fBSTA_MODE\fP (Linux 2.6.26 以降)
222 .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
223 .\" Author: Roman Zippel <zippel@linux-m68k.org>
224 モード (0 = Phase Locked Loop, 1 = Frequency Locked Loop; 読み出し専用)
225 .TP 
226 \fBSTA_CLK\fP (Linux 2.6.26 以降)
227 .\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
228 .\" Author: Roman Zippel <zippel@linux-m68k.org>
229 .\" FIXME It would be helpful to have some explanation of what
230 .\"       "Clock source" is.
231 クロック源 (0 = A, 1 = B; 読み出し専用)
232 .PP
233 \fIstatus\fP の読み出し専用ビットを設定しようとした場合は黙って無視される。
234 .SH 返り値
235 成功した場合、 \fBadjtimex\fP()  は クロックの状態、つまり、以下のいずれかの値を返す。
236 .TP  12
237 \fBTIME_OK\fP
238 クロックが同期している。
239 .TP 
240 \fBTIME_INS\fP
241 閏秒を挿入した。
242 .TP 
243 \fBTIME_DEL\fP
244 閏秒を削除した。
245 .TP 
246 \fBTIME_OOP\fP
247 閏秒が処理中である。
248 .TP 
249 \fBTIME_WAIT\fP
250 閏秒が発生した。
251 .TP 
252 \fBTIME_ERROR\fP
253 クロックが同期していない。 シンボル名 \fBTIME_BAD\fP は \fBTIME_ERROR\fP の同義語であり、 過去互換性のために提供されている。
254 .PP
255 失敗した場合は \fBadjtimex\fP()  は \-1 を返し、 \fIerrno\fP が設定される。
256 .SH エラー
257 .TP 
258 \fBEFAULT\fP
259 \fIbuf\fP が書き込み可能なメモリーを指していない。
260 .TP 
261 \fBEINVAL\fP
262 \fIbuf.offset\fP へ \-131071 〜 +131071 の範囲以外の値を設定しようとしたか、 \fIbuf.status\fP
263 に上記以外の値を設定しようとしたか、 \fIbuf.tick\fP に 900000/\fBHZ\fP 〜 1100000/\fBHZ\fP
264 の範囲以外の値を設定しようとした。 ここで \fBHZ\fP はシステムのタイマー割り込みの周期である。
265 .TP 
266 \fBEPERM\fP
267 \fIbuf.modes\fP が 0 でも \fBADJ_OFFSET_SS_READ\fP でもなく、かつ呼び出し元が十分な特権を持っていない。 Linux
268 では \fBCAP_SYS_TIME\fP ケーパビリティが必要である。
269 .SH 注意
270 構造体 \fItimex\fP では、 \fIfreq\fP, \fIppsfreq\fP, \fIstabil\fP は小数部が 16 ビットの ppm (parts per
271 million) である。 つまり、 これらのフィールドの値 1 は 2^\-16 ppm で、 2^16=65536 が 1 ppm である。 入力
272 (\fIfreq\fP の場合) でも出力でもこの通りである。
273 .SH 準拠
274 \fBadjtimex\fP()  は Linux 特有であり、 移植を意図したプログラムで使用すべきではない。 システムクロックを調整する方法で、
275 移植性があるが自由度は劣る方法については \fBadjtime\fP(3)  を参照のこと。
276 .SH 関連項目
277 \fBsettimeofday\fP(2), \fBadjtime\fP(3), \fBcapabilities\fP(7), \fBtime\fP(7),
278 \fBadjtimex\fP(8)
279 .SH この文書について
280 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
281 である。プロジェクトの説明とバグ報告に関する情報は
282 http://www.kernel.org/doc/man\-pages/ に書かれている。