Skip to content

Commit 6653298

Browse files
committed
gnu b32: Copy struct stat to mips and use it
Just a simple copy, no cfg conditionals have been removed. This makes it easier to review this commit.
1 parent 090201c commit 6653298

File tree

2 files changed

+101
-47
lines changed

2 files changed

+101
-47
lines changed

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,54 @@ use crate::{off64_t, off_t};
44
pub type wchar_t = i32;
55

66
s! {
7+
pub struct stat {
8+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
9+
pub st_dev: crate::dev_t,
10+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
11+
pub st_dev: c_ulong,
12+
13+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
14+
__pad1: c_short,
15+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
16+
st_pad1: [c_long; 3],
17+
pub st_ino: crate::ino_t,
18+
pub st_mode: crate::mode_t,
19+
pub st_nlink: crate::nlink_t,
20+
pub st_uid: crate::uid_t,
21+
pub st_gid: crate::gid_t,
22+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
23+
pub st_rdev: crate::dev_t,
24+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
25+
pub st_rdev: c_ulong,
26+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
27+
__pad2: c_short,
28+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
29+
st_pad2: [c_long; 2],
30+
pub st_size: off_t,
31+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
32+
st_pad3: c_long,
33+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
34+
pub st_blksize: crate::blksize_t,
35+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
36+
pub st_blocks: crate::blkcnt_t,
37+
pub st_atime: crate::time_t,
38+
pub st_atime_nsec: c_long,
39+
pub st_mtime: crate::time_t,
40+
pub st_mtime_nsec: c_long,
41+
pub st_ctime: crate::time_t,
42+
pub st_ctime_nsec: c_long,
43+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
44+
__unused4: c_long,
45+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
46+
__unused5: c_long,
47+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
48+
pub st_blksize: crate::blksize_t,
49+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
50+
pub st_blocks: crate::blkcnt_t,
51+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
52+
st_pad5: [c_long; 14],
53+
}
54+
755
pub struct stat64 {
856
pub st_dev: c_ulong,
957
st_pad1: [c_long; 3],

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

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -40,55 +40,61 @@ cfg_if! {
4040
}
4141
}
4242

43-
s! {
44-
pub struct stat {
45-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
46-
pub st_dev: crate::dev_t,
47-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
48-
pub st_dev: c_ulong,
49-
50-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
51-
__pad1: c_short,
52-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
53-
st_pad1: [c_long; 3],
54-
pub st_ino: crate::ino_t,
55-
pub st_mode: crate::mode_t,
56-
pub st_nlink: crate::nlink_t,
57-
pub st_uid: crate::uid_t,
58-
pub st_gid: crate::gid_t,
59-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
60-
pub st_rdev: crate::dev_t,
61-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
62-
pub st_rdev: c_ulong,
63-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
64-
__pad2: c_short,
65-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
66-
st_pad2: [c_long; 2],
67-
pub st_size: off_t,
68-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
69-
st_pad3: c_long,
70-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
71-
pub st_blksize: crate::blksize_t,
72-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
73-
pub st_blocks: crate::blkcnt_t,
74-
pub st_atime: crate::time_t,
75-
pub st_atime_nsec: c_long,
76-
pub st_mtime: crate::time_t,
77-
pub st_mtime_nsec: c_long,
78-
pub st_ctime: crate::time_t,
79-
pub st_ctime_nsec: c_long,
80-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
81-
__unused4: c_long,
82-
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
83-
__unused5: c_long,
84-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
85-
pub st_blksize: crate::blksize_t,
86-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
87-
pub st_blocks: crate::blkcnt_t,
88-
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
89-
st_pad5: [c_long; 14],
43+
cfg_if! {
44+
if #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] {
45+
s! {
46+
pub struct stat {
47+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
48+
pub st_dev: crate::dev_t,
49+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
50+
pub st_dev: c_ulong,
51+
52+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
53+
__pad1: c_short,
54+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
55+
st_pad1: [c_long; 3],
56+
pub st_ino: crate::ino_t,
57+
pub st_mode: crate::mode_t,
58+
pub st_nlink: crate::nlink_t,
59+
pub st_uid: crate::uid_t,
60+
pub st_gid: crate::gid_t,
61+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
62+
pub st_rdev: crate::dev_t,
63+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
64+
pub st_rdev: c_ulong,
65+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
66+
__pad2: c_short,
67+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
68+
st_pad2: [c_long; 2],
69+
pub st_size: off_t,
70+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
71+
st_pad3: c_long,
72+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
73+
pub st_blksize: crate::blksize_t,
74+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
75+
pub st_blocks: crate::blkcnt_t,
76+
pub st_atime: crate::time_t,
77+
pub st_atime_nsec: c_long,
78+
pub st_mtime: crate::time_t,
79+
pub st_mtime_nsec: c_long,
80+
pub st_ctime: crate::time_t,
81+
pub st_ctime_nsec: c_long,
82+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
83+
__unused4: c_long,
84+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
85+
__unused5: c_long,
86+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
87+
pub st_blksize: crate::blksize_t,
88+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
89+
pub st_blocks: crate::blkcnt_t,
90+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
91+
st_pad5: [c_long; 14],
92+
}
93+
}
9094
}
95+
}
9196

97+
s! {
9298
pub struct statvfs {
9399
pub f_bsize: c_ulong,
94100
pub f_frsize: c_ulong,

0 commit comments

Comments
 (0)