1#pragma once
2
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#define __NEED_clockid_t
8
9#include <bits/alltypes.h>
10
11#include <sys/time.h>
12
13struct ntptimeval {
14    struct timeval time;
15    long maxerror, esterror;
16};
17
18struct timex {
19    unsigned modes;
20    long offset, freq, maxerror, esterror;
21    int status;
22    long constant, precision, tolerance;
23    struct timeval time;
24    long tick, ppsfreq, jitter;
25    int shift;
26    long stabil, jitcnt, calcnt, errcnt, stbcnt;
27    int tai;
28    int __padding[11];
29};
30
31#define ADJ_OFFSET 0x0001
32#define ADJ_FREQUENCY 0x0002
33#define ADJ_MAXERROR 0x0004
34#define ADJ_ESTERROR 0x0008
35#define ADJ_STATUS 0x0010
36#define ADJ_TIMECONST 0x0020
37#define ADJ_TAI 0x0080
38#define ADJ_SETOFFSET 0x0100
39#define ADJ_MICRO 0x1000
40#define ADJ_NANO 0x2000
41#define ADJ_TICK 0x4000
42#define ADJ_OFFSET_SINGLESHOT 0x8001
43#define ADJ_OFFSET_SS_READ 0xa001
44
45#define MOD_OFFSET ADJ_OFFSET
46#define MOD_FREQUENCY ADJ_FREQUENCY
47#define MOD_MAXERROR ADJ_MAXERROR
48#define MOD_ESTERROR ADJ_ESTERROR
49#define MOD_STATUS ADJ_STATUS
50#define MOD_TIMECONST ADJ_TIMECONST
51#define MOD_CLKB ADJ_TICK
52#define MOD_CLKA ADJ_OFFSET_SINGLESHOT
53#define MOD_TAI ADJ_TAI
54#define MOD_MICRO ADJ_MICRO
55#define MOD_NANO ADJ_NANO
56
57#define STA_PLL 0x0001
58#define STA_PPSFREQ 0x0002
59#define STA_PPSTIME 0x0004
60#define STA_FLL 0x0008
61
62#define STA_INS 0x0010
63#define STA_DEL 0x0020
64#define STA_UNSYNC 0x0040
65#define STA_FREQHOLD 0x0080
66
67#define STA_PPSSIGNAL 0x0100
68#define STA_PPSJITTER 0x0200
69#define STA_PPSWANDER 0x0400
70#define STA_PPSERROR 0x0800
71
72#define STA_CLOCKERR 0x1000
73#define STA_NANO 0x2000
74#define STA_MODE 0x4000
75#define STA_CLK 0x8000
76
77#define STA_RONLY                                                                             \
78    (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | \
79     STA_MODE | STA_CLK)
80
81#define TIME_OK 0
82#define TIME_INS 1
83#define TIME_DEL 2
84#define TIME_OOP 3
85#define TIME_WAIT 4
86#define TIME_ERROR 5
87#define TIME_BAD TIME_ERROR
88
89#define MAXTC 6
90
91int adjtimex(struct timex*);
92int clock_adjtime(clockid_t, struct timex*);
93
94#ifdef __cplusplus
95}
96#endif
97