.\" .\" Copyright (c) 2003 Tom Rhodes .\" All rights reserved. .\" .\" 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 AUTHOR 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 AUTHOR 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. .\" .\" %FreeBSD: src/lib/libc/sys/ntp_adjtime.2,v 1.2 2003/06/20 21:14:59 imp Exp % .\" .\" $FreeBSD$ .Dd April 1, 2003 .Dt NTP_ADJTIME 2 .Os .Sh 名称 .Nm ntp_adjtime .Nd NTP デーモンアプリケーションインタフェース .Sh 書式 .In sys/types.h .In sys/timex.h .Ft int .Fn ntp_adjtime "struct timex *tp" .Sh 解説 .Fn ntp_adjtime システムコールは Network Time Protocol (ネットワークタイムプロトコル) デーモン .Xr ntpd 8 のためのカーネルインタフェースとして使用されます。 .Vt timex 構造体の特定のフィールドは、 .Va status ワードの .Dv STA_NANO ビットの状態に従って、マイクロ秒またはナノ秒に変換されます。 .Pp .Fx カーネルの中では、 .Fn ntp_adjtime および .Xr ntp_gettime 2 システムコールはどちらの分解能を使用するかを決定するために、または もう一方を選択するために、いつでも使用することが可能です。 選択された分解能は、 .Fn ntp_gettime および .Fn ntp_adjtime システムコールの中の特定のフィールドのスケーリングに影響を及ぼします。 .Pp この .Tn API は非常に複雑で、状態があることに注意してください。 ユーザは、はじめに .Xr ntpd 8 のソースを徹底的に吟味することなしに、修正を試みるべきではありません。 .Bd -literal /* * NTP デーモンインタフェース (ntp_adjtime()) - CPU クロック発振器の * 制御規約と状態の決定のために使用されます。 * * 注意: offset, precision および jitter メンバは STA_NANO が 0 であれば * マイクロ秒で、そうでなければナノ秒です。 */ struct timex { unsigned int modes; /* クロックモードビット (wo) */ long offset; /* 時刻オフセット (ns/us) (rw) */ long freq; /* 周波数オフセット (PPM 単位) (rw) */ long maxerror; /* 最大誤差 (us) (rw) */ long esterror; /* 推定誤差 (us) (rw) */ int status; /* クロック状態ビット (rw) */ long constant; /* ポール間隔 (log2 s) (rw) */ long precision; /* 時刻の精度 (ns/us) (ro) */ long tolerance; /* クロック周波数の公差 (PPM 単位) (ro) */ /* * 以下の読み取り専用の構造体メンバは、カーネル内に PPS * シグナル制御規約がコンフィギュレーションされている場合のみ * 実装されます。これらはポータビリティを保証するために、全ての * コンフィギュレーションに含まれます。 */ long ppsfreq; /* PPS 周波数 (PPM 単位) (ro) */ long jitter; /* PPS ジッタ (ns/us) (ro) */ int shift; /* 存続期間 (s) (シフト) (ro) */ long stabil; /* PPS 安定性 (PPM 単位) (ro) */ long jitcnt; /* 超過したジッタ制限 (ro) */ long calcnt; /* 測定間隔 (ro) */ long errcnt; /* 測定誤差 (ro) */ long stbcnt; /* 超過した安定性制限 (ro) */ }; .Ed .Pp 成功して完了したときには、 .Fn ntp_adjtime は .Fa tp 引数に現在のクロックの状態を入れます。 .Sh 戻り値 成功時には完了したクロック状態が返されます。 そうでなければ、\-1 が返されグローバル変数 .Va errno がそのエラーを示すために設定されます。 .Pp 起こりうるクロックの状態は以下のとおりです: .Pp .Bl -tag -compact -width ".Dv TIME_ERROR" .It Dv TIME_OK 全てが OK で、閏秒の警告もありません。 .It Dv TIME_INS 閏秒挿入の警告です。 .It Dv TIME_DEL 閏秒削除の警告です。 .It Dv TIME_OOP 閏秒の経過中です。 .It Dv TIME_WAIT 閏秒が発生しました。 .It Dv TIME_ERROR クロックが同期していません。 .El .Sh エラー .Fn ntp_gettime システムコールは、呼び出し側が十分なパーミッションを持っていない場合に、 .Er EPERM を返すことがあります。 .Sh 関連項目 .Xr ntp_gettime 2 , .Xr ntpd 8 .Sh 作者 このマニュアルページは .An Tom Rhodes Aq trhodes@FreeBSD.org が書きました。