1 /*
2 * Copyright (c) 2019-2021 Dmitry V. Levin <ldv@strace.io>
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #ifndef STRACE_KERNEL_TIMEX_H
9 # define STRACE_KERNEL_TIMEX_H
10
11 # include "kernel_timeval.h"
12
13 typedef struct {
14 unsigned int modes;
15 int pad0;
16 long long offset;
17 long long freq;
18 long long maxerror;
19 long long esterror;
20 int status;
21 int pad1;
22 long long constant;
23 long long precision;
24 long long tolerance;
25 kernel_timeval64_t time;
26 long long tick;
27 long long ppsfreq;
28 long long jitter;
29 int shift;
30 int pad2;
31 long long stabil;
32 long long jitcnt;
33 long long calcnt;
34 long long errcnt;
35 long long stbcnt;
36 int tai;
37 int pad3[11];
38 } kernel_timex64_t;
39
40 # ifdef SPARC64
41
42 typedef struct {
43 unsigned int modes;
44 int pad0;
45 long long offset;
46 long long freq;
47 long long maxerror;
48 long long esterror;
49 int status;
50 int pad1;
51 long long constant;
52 long long precision;
53 long long tolerance;
54 struct {
55 long long tv_sec;
56 int tv_usec;
57 } time;
58 long long tick;
59 long long ppsfreq;
60 long long jitter;
61 int shift;
62 int pad2;
63 long long stabil;
64 long long jitcnt;
65 long long calcnt;
66 long long errcnt;
67 long long stbcnt;
68 int tai;
69 int pad3[11];
70 } kernel_sparc64_timex_t;
71
72 # endif /* SPARC64 */
73
74 # if HAVE_ARCH_TIME32_SYSCALLS
75
76 typedef struct {
77 unsigned int modes;
78 int offset;
79 int freq;
80 int maxerror;
81 int esterror;
82 int status;
83 int constant;
84 int precision;
85 int tolerance;
86 struct {
87 int tv_sec;
88 int tv_usec;
89 } time;
90 int tick;
91 int ppsfreq;
92 int jitter;
93 int shift;
94 int stabil;
95 int jitcnt;
96 int calcnt;
97 int errcnt;
98 int stbcnt;
99 int tai;
100 int pad0[11];
101 } kernel_timex32_t;
102
103 # endif /* HAVE_ARCH_TIME32_SYSCALLS */
104
105 #endif /* !STRACE_KERNEL_TIMEX_H */