| 総合手引 | セクション 2 | English | オプション |
#include <sys/types.h>
#include <sys/timex.h>
FreeBSD カーネルの中では、 ntp_adjtime() および ntp_gettime(2) システムコールはどちらの分解能を使用するかを決定するために、または もう一方を選択するために、いつでも使用することが可能です。 選択された分解能は、 ntp_gettime() および ntp_adjtime() システムコールの中の特定のフィールドのスケーリングに影響を及ぼします。
この API は非常に複雑で、状態があることに注意してください。 ユーザは、はじめに ntpd(8) のソースを徹底的に吟味することなしに、修正を試みるべきではありません。
/*
* 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) */
};
成功して完了したときには、 ntp_adjtime() は tp 引数に現在のクロックの状態を入れます。
起こりうるクロックの状態は以下のとおりです:
| TIME_OK | 全てが OK で、閏秒の警告もありません。 |
| TIME_INS | 閏秒挿入の警告です。 |
| TIME_DEL | 閏秒削除の警告です。 |
| TIME_OOP | 閏秒の経過中です。 |
| TIME_WAIT | 閏秒が発生しました。 |
| TIME_ERROR | クロックが同期していません。 |
| NTP_ADJTIME (2) | April 1, 2003 |
| 総合手引 | セクション 2 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
| “ | How do you pronounce UNIX ? You Nix ! | ” |