Skip to content

Commit a0b46fe

Browse files
committed
gnu: Move struct timex to gnu/b64 and gnu/b32/time*.rs
Do not use gnu/b32/time*.rs for riscv32 and sparc. Add timex to gnu/b32/(riscv32|sparc)/mod.rs instead.
1 parent cbbeb49 commit a0b46fe

File tree

7 files changed

+210
-82
lines changed

7 files changed

+210
-82
lines changed

src/unix/linux_like/linux/gnu/b32/mod.rs

+13
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pub type __fsword_t = i32;
1616
pub type fsblkcnt64_t = u64;
1717
pub type fsfilcnt64_t = u64;
1818
pub type __syscall_ulong_t = ::c_ulong;
19+
pub type __syscall_slong_t = ::c_long;
1920

2021
cfg_if! {
2122
if #[cfg(target_arch = "riscv32")] {
@@ -383,3 +384,15 @@ cfg_if! {
383384
// Unknown target_arch
384385
}
385386
}
387+
388+
cfg_if! {
389+
if #[cfg(any(target_arch = "riscv32", target_arch = "sparc"))] {
390+
// use the defs in self::riscv32 or self::sparc
391+
} else if #[cfg(gnu_time64_abi)] {
392+
mod time64;
393+
pub use self::time64::*;
394+
} else {
395+
mod time32;
396+
pub use self::time32::*;
397+
}
398+
}

src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs

+34
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,40 @@ s! {
126126
pub __f_spare: [::c_int; 6],
127127
}
128128

129+
pub struct timex {
130+
pub modes: ::c_uint,
131+
pub offset: ::c_long,
132+
pub freq: ::c_long,
133+
pub maxerror: ::c_long,
134+
pub esterror: ::c_long,
135+
pub status: ::c_int,
136+
pub constant: ::c_long,
137+
pub precision: ::c_long,
138+
pub tolerance: ::c_long,
139+
pub time: ::timeval,
140+
pub tick: ::c_long,
141+
pub ppsfreq: ::c_long,
142+
pub jitter: ::c_long,
143+
pub shift: ::c_int,
144+
pub stabil: ::c_long,
145+
pub jitcnt: ::c_long,
146+
pub calcnt: ::c_long,
147+
pub errcnt: ::c_long,
148+
pub stbcnt: ::c_long,
149+
pub tai: ::c_int,
150+
pub __unused1: i32,
151+
pub __unused2: i32,
152+
pub __unused3: i32,
153+
pub __unused4: i32,
154+
pub __unused5: i32,
155+
pub __unused6: i32,
156+
pub __unused7: i32,
157+
pub __unused8: i32,
158+
pub __unused9: i32,
159+
pub __unused10: i32,
160+
pub __unused11: i32,
161+
}
162+
129163
pub struct siginfo_t {
130164
pub si_signo: ::c_int,
131165
pub si_errno: ::c_int,

src/unix/linux_like/linux/gnu/b32/sparc/mod.rs

+34
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,40 @@ s! {
145145
__f_spare: [::c_int; 6],
146146
}
147147

148+
pub struct timex {
149+
pub modes: ::c_uint,
150+
pub offset: ::c_long,
151+
pub freq: ::c_long,
152+
pub maxerror: ::c_long,
153+
pub esterror: ::c_long,
154+
pub status: ::c_int,
155+
pub constant: ::c_long,
156+
pub precision: ::c_long,
157+
pub tolerance: ::c_long,
158+
pub time: ::timeval,
159+
pub tick: ::c_long,
160+
pub ppsfreq: ::c_long,
161+
pub jitter: ::c_long,
162+
pub shift: ::c_int,
163+
pub stabil: ::c_long,
164+
pub jitcnt: ::c_long,
165+
pub calcnt: ::c_long,
166+
pub errcnt: ::c_long,
167+
pub stbcnt: ::c_long,
168+
pub tai: ::c_int,
169+
pub __unused1: i32,
170+
pub __unused2: i32,
171+
pub __unused3: i32,
172+
pub __unused4: i32,
173+
pub __unused5: i32,
174+
pub __unused6: i32,
175+
pub __unused7: i32,
176+
pub __unused8: i32,
177+
pub __unused9: i32,
178+
pub __unused10: i32,
179+
pub __unused11: i32,
180+
}
181+
148182
pub struct ipc_perm {
149183
pub __key: ::key_t,
150184
pub uid: ::uid_t,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
//! 32-bit specific definitions for linux-like values when gnu_time64_abi is not set
2+
3+
s! {
4+
pub struct timex {
5+
pub modes: ::c_uint,
6+
7+
pub offset: ::__syscall_slong_t,
8+
pub freq: ::__syscall_slong_t,
9+
pub maxerror: ::__syscall_slong_t,
10+
pub esterror: ::__syscall_slong_t,
11+
pub status: ::c_int,
12+
pub constant: ::__syscall_slong_t,
13+
pub precision: ::__syscall_slong_t,
14+
pub tolerance: ::__syscall_slong_t,
15+
pub time: ::timeval,
16+
pub tick: ::__syscall_slong_t,
17+
pub ppsfreq: ::__syscall_slong_t,
18+
pub jitter: ::__syscall_slong_t,
19+
pub shift: ::c_int,
20+
pub stabil: ::__syscall_slong_t,
21+
pub jitcnt: ::__syscall_slong_t,
22+
pub calcnt: ::__syscall_slong_t,
23+
pub errcnt: ::__syscall_slong_t,
24+
pub stbcnt: ::__syscall_slong_t,
25+
pub tai: ::c_int,
26+
pub __unused1: i32,
27+
pub __unused2: i32,
28+
pub __unused3: i32,
29+
pub __unused4: i32,
30+
pub __unused5: i32,
31+
pub __unused6: i32,
32+
pub __unused7: i32,
33+
pub __unused8: i32,
34+
pub __unused9: i32,
35+
pub __unused10: i32,
36+
pub __unused11: i32,
37+
}
38+
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//! 32-bit specific definitions for linux-like values when gnu_time64_abi is set
2+
3+
s! {
4+
pub struct timex {
5+
pub modes: ::c_uint,
6+
7+
__unused_pad1: i32,
8+
pub offset: ::c_longlong,
9+
pub freq: ::c_longlong,
10+
pub maxerror: ::c_longlong,
11+
pub esterror: ::c_longlong,
12+
pub status: ::c_int,
13+
__unused_pad2: i32,
14+
pub constant: ::c_longlong,
15+
pub precision: ::c_longlong,
16+
pub tolerance: ::c_longlong,
17+
pub time: ::timeval,
18+
pub tick: ::c_longlong,
19+
pub ppsfreq: ::c_longlong,
20+
pub jitter: ::c_longlong,
21+
pub shift: ::c_int,
22+
__unused_pad3: i32,
23+
pub stabil: ::c_longlong,
24+
pub jitcnt: ::c_longlong,
25+
pub calcnt: ::c_longlong,
26+
pub errcnt: ::c_longlong,
27+
pub stbcnt: ::c_longlong,
28+
pub tai: ::c_int,
29+
__unused1: i32,
30+
__unused2: i32,
31+
__unused3: i32,
32+
__unused4: i32,
33+
__unused5: i32,
34+
__unused6: i32,
35+
__unused7: i32,
36+
__unused8: i32,
37+
__unused9: i32,
38+
__unused10: i32,
39+
__unused11: i32,
40+
}
41+
}

src/unix/linux_like/linux/gnu/b64/mod.rs

+49-4
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@ pub type msglen_t = u64;
99
pub type fsblkcnt_t = u64;
1010
pub type fsfilcnt_t = u64;
1111
pub type rlim_t = u64;
12-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
13-
pub type __syscall_ulong_t = ::c_ulonglong;
14-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
15-
pub type __syscall_ulong_t = ::c_ulong;
1612

13+
cfg_if! {
14+
if #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] {
15+
pub type __syscall_ulong_t = ::c_ulonglong;
16+
pub type __syscall_slong_t = ::c_longlong;
17+
} else {
18+
pub type __syscall_ulong_t = ::c_ulong;
19+
pub type __syscall_slong_t = ::c_long;
20+
}
21+
}
1722
cfg_if! {
1823
if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] {
1924
pub type clock_t = i32;
@@ -91,6 +96,46 @@ s! {
9196
__glibc_reserved3: ::__syscall_ulong_t,
9297
__glibc_reserved4: ::__syscall_ulong_t,
9398
}
99+
100+
pub struct timex {
101+
pub modes: ::c_uint,
102+
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
103+
pub __unused_pad1: i32,
104+
pub offset: ::__syscall_slong_t,
105+
pub freq: ::__syscall_slong_t,
106+
pub maxerror: ::__syscall_slong_t,
107+
pub esterror: ::__syscall_slong_t,
108+
pub status: ::c_int,
109+
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
110+
pub __unused_pad2: i32,
111+
pub constant: ::__syscall_slong_t,
112+
pub precision: ::__syscall_slong_t,
113+
pub tolerance: ::__syscall_slong_t,
114+
pub time: ::timeval,
115+
pub tick: ::__syscall_slong_t,
116+
pub ppsfreq: ::__syscall_slong_t,
117+
pub jitter: ::__syscall_slong_t,
118+
pub shift: ::c_int,
119+
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
120+
pub __unused_pad3: i32,
121+
pub stabil: ::__syscall_slong_t,
122+
pub jitcnt: ::__syscall_slong_t,
123+
pub calcnt: ::__syscall_slong_t,
124+
pub errcnt: ::__syscall_slong_t,
125+
pub stbcnt: ::__syscall_slong_t,
126+
pub tai: ::c_int,
127+
pub __unused1: i32,
128+
pub __unused2: i32,
129+
pub __unused3: i32,
130+
pub __unused4: i32,
131+
pub __unused5: i32,
132+
pub __unused6: i32,
133+
pub __unused7: i32,
134+
pub __unused8: i32,
135+
pub __unused9: i32,
136+
pub __unused10: i32,
137+
pub __unused11: i32,
138+
}
94139
}
95140

96141
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;

src/unix/linux_like/linux/gnu/mod.rs

-78
Original file line numberDiff line numberDiff line change
@@ -198,84 +198,6 @@ s! {
198198
pub rt_irtt: ::c_ushort,
199199
}
200200

201-
pub struct timex {
202-
pub modes: ::c_uint,
203-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
204-
pub offset: i64,
205-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
206-
pub offset: ::c_long,
207-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
208-
pub freq: i64,
209-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
210-
pub freq: ::c_long,
211-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
212-
pub maxerror: i64,
213-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
214-
pub maxerror: ::c_long,
215-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
216-
pub esterror: i64,
217-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
218-
pub esterror: ::c_long,
219-
pub status: ::c_int,
220-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
221-
pub constant: i64,
222-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
223-
pub constant: ::c_long,
224-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
225-
pub precision: i64,
226-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
227-
pub precision: ::c_long,
228-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
229-
pub tolerance: i64,
230-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
231-
pub tolerance: ::c_long,
232-
pub time: ::timeval,
233-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
234-
pub tick: i64,
235-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
236-
pub tick: ::c_long,
237-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
238-
pub ppsfreq: i64,
239-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
240-
pub ppsfreq: ::c_long,
241-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
242-
pub jitter: i64,
243-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
244-
pub jitter: ::c_long,
245-
pub shift: ::c_int,
246-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
247-
pub stabil: i64,
248-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
249-
pub stabil: ::c_long,
250-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
251-
pub jitcnt: i64,
252-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
253-
pub jitcnt: ::c_long,
254-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
255-
pub calcnt: i64,
256-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
257-
pub calcnt: ::c_long,
258-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
259-
pub errcnt: i64,
260-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
261-
pub errcnt: ::c_long,
262-
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
263-
pub stbcnt: i64,
264-
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
265-
pub stbcnt: ::c_long,
266-
pub tai: ::c_int,
267-
pub __unused1: i32,
268-
pub __unused2: i32,
269-
pub __unused3: i32,
270-
pub __unused4: i32,
271-
pub __unused5: i32,
272-
pub __unused6: i32,
273-
pub __unused7: i32,
274-
pub __unused8: i32,
275-
pub __unused9: i32,
276-
pub __unused10: i32,
277-
pub __unused11: i32,
278-
}
279201

280202
pub struct ntptimeval {
281203
pub time: ::timeval,

0 commit comments

Comments
 (0)