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

1//! 64-bit specific definitions for linux-like values
2
3use crate::prelude::*;
4
5pub type ino_t = u64;
6pub type off_t = i64;
7pub type blkcnt_t = i64;
8pub type shmatt_t = u64;
9pub type msgqnum_t = u64;
10pub type msglen_t = u64;
11pub type fsblkcnt_t = u64;
12pub type fsfilcnt_t = u64;
13pub type rlim_t = u64;
14#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
15pub type __syscall_ulong_t = c_ulonglong;
16#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
17pub type __syscall_ulong_t = c_ulong;
18
19cfg_if! {
20    if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] {
21        pub type clock_t = i32;
22        pub type time_t = i32;
23        pub type __fsword_t = i32;
24    } else {
25        pub type __fsword_t = i64;
26        pub type clock_t = i64;
27        pub type time_t = i64;
28    }
29}
30
31s! {
32    pub struct sigset_t {
33        #[cfg(target_pointer_width = "32")]
34        __val: [u32; 32],
35        #[cfg(target_pointer_width = "64")]
36        __val: [u64; 16],
37    }
38
39    pub struct sysinfo {
40        pub uptime: i64,
41        pub loads: [u64; 3],
42        pub totalram: u64,
43        pub freeram: u64,
44        pub sharedram: u64,
45        pub bufferram: u64,
46        pub totalswap: u64,
47        pub freeswap: u64,
48        pub procs: c_ushort,
49        pub pad: c_ushort,
50        pub totalhigh: u64,
51        pub freehigh: u64,
52        pub mem_unit: c_uint,
53        pub _f: [c_char; 0],
54    }
55
56    pub struct msqid_ds {
57        pub msg_perm: crate::ipc_perm,
58        pub msg_stime: crate::time_t,
59        pub msg_rtime: crate::time_t,
60        pub msg_ctime: crate::time_t,
61        pub __msg_cbytes: u64,
62        pub msg_qnum: crate::msgqnum_t,
63        pub msg_qbytes: crate::msglen_t,
64        pub msg_lspid: crate::pid_t,
65        pub msg_lrpid: crate::pid_t,
66        __glibc_reserved4: u64,
67        __glibc_reserved5: u64,
68    }
69
70    pub struct semid_ds {
71        pub sem_perm: ipc_perm,
72        pub sem_otime: crate::time_t,
73        #[cfg(not(any(
74            target_arch = "aarch64",
75            target_arch = "loongarch64",
76            target_arch = "mips64",
77            target_arch = "mips64r6",
78            target_arch = "powerpc64",
79            target_arch = "riscv64",
80            target_arch = "sparc64",
81            target_arch = "s390x",
82        )))]
83        __reserved: crate::__syscall_ulong_t,
84        pub sem_ctime: crate::time_t,
85        #[cfg(not(any(
86            target_arch = "aarch64",
87            target_arch = "loongarch64",
88            target_arch = "mips64",
89            target_arch = "mips64r6",
90            target_arch = "powerpc64",
91            target_arch = "riscv64",
92            target_arch = "sparc64",
93            target_arch = "s390x",
94        )))]
95        __reserved2: crate::__syscall_ulong_t,
96        pub sem_nsems: crate::__syscall_ulong_t,
97        __glibc_reserved3: crate::__syscall_ulong_t,
98        __glibc_reserved4: crate::__syscall_ulong_t,
99    }
100
101    pub struct timex {
102        pub modes: c_uint,
103        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
104        pub offset: i64,
105        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
106        pub offset: c_long,
107        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
108        pub freq: i64,
109        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
110        pub freq: c_long,
111        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
112        pub maxerror: i64,
113        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
114        pub maxerror: c_long,
115        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
116        pub esterror: i64,
117        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
118        pub esterror: c_long,
119        pub status: c_int,
120        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
121        pub constant: i64,
122        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
123        pub constant: c_long,
124        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
125        pub precision: i64,
126        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
127        pub precision: c_long,
128        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
129        pub tolerance: i64,
130        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
131        pub tolerance: c_long,
132        pub time: crate::timeval,
133        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
134        pub tick: i64,
135        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
136        pub tick: c_long,
137        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
138        pub ppsfreq: i64,
139        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
140        pub ppsfreq: c_long,
141        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
142        pub jitter: i64,
143        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
144        pub jitter: c_long,
145        pub shift: c_int,
146        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
147        pub stabil: i64,
148        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
149        pub stabil: c_long,
150        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
151        pub jitcnt: i64,
152        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
153        pub jitcnt: c_long,
154        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
155        pub calcnt: i64,
156        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
157        pub calcnt: c_long,
158        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
159        pub errcnt: i64,
160        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
161        pub errcnt: c_long,
162        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
163        pub stbcnt: i64,
164        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
165        pub stbcnt: c_long,
166        pub tai: c_int,
167        pub __unused1: i32,
168        pub __unused2: i32,
169        pub __unused3: i32,
170        pub __unused4: i32,
171        pub __unused5: i32,
172        pub __unused6: i32,
173        pub __unused7: i32,
174        pub __unused8: i32,
175        pub __unused9: i32,
176        pub __unused10: i32,
177        pub __unused11: i32,
178    }
179}
180
181pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
182
183pub const O_LARGEFILE: c_int = 0;
184
185cfg_if! {
186    if #[cfg(target_arch = "aarch64")] {
187        mod aarch64;
188        pub use self::aarch64::*;
189    } else if #[cfg(any(target_arch = "powerpc64"))] {
190        mod powerpc64;
191        pub use self::powerpc64::*;
192    } else if #[cfg(any(target_arch = "sparc64"))] {
193        mod sparc64;
194        pub use self::sparc64::*;
195    } else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] {
196        mod mips64;
197        pub use self::mips64::*;
198    } else if #[cfg(any(target_arch = "s390x"))] {
199        mod s390x;
200        pub use self::s390x::*;
201    } else if #[cfg(target_arch = "x86_64")] {
202        mod x86_64;
203        pub use self::x86_64::*;
204    } else if #[cfg(any(target_arch = "riscv64"))] {
205        mod riscv64;
206        pub use self::riscv64::*;
207    } else if #[cfg(any(target_arch = "loongarch64"))] {
208        mod loongarch64;
209        pub use self::loongarch64::*;
210    } else {
211        // Unknown target_arch
212    }
213}