]>
Commit | Line | Data |
---|---|---|
476ff2be SL |
1 | //! 32-bit specific definitions for linux-like values |
2 | ||
3 | pub type c_long = i32; | |
4 | pub type c_ulong = u32; | |
5 | pub type clock_t = i32; | |
6 | pub type time_t = i32; | |
7 | pub type suseconds_t = i32; | |
8 | pub type ino_t = u32; | |
9 | pub type off_t = i32; | |
10 | pub type blkcnt_t = i32; | |
11 | pub type __fsword_t = i32; | |
12 | ||
abe05a73 XL |
13 | pub type fsblkcnt_t = ::c_ulong; |
14 | pub type fsfilcnt_t = ::c_ulong; | |
15 | pub type rlim_t = c_ulong; | |
16 | pub type shmatt_t = ::c_ulong; | |
17 | pub type msgqnum_t = ::c_ulong; | |
18 | pub type msglen_t = ::c_ulong; | |
476ff2be SL |
19 | pub type blksize_t = i32; |
20 | pub type nlink_t = u32; | |
041b39d2 | 21 | pub type __u64 = ::c_ulonglong; |
476ff2be SL |
22 | |
23 | s! { | |
24 | pub struct stat { | |
25 | pub st_dev: ::dev_t, | |
26 | __pad1: ::c_short, | |
27 | pub st_ino: ::ino_t, | |
28 | pub st_mode: ::mode_t, | |
29 | pub st_nlink: ::nlink_t, | |
30 | pub st_uid: ::uid_t, | |
31 | pub st_gid: ::gid_t, | |
32 | pub st_rdev: ::dev_t, | |
33 | __pad2: ::c_short, | |
34 | pub st_size: ::off_t, | |
35 | pub st_blksize: ::blksize_t, | |
36 | pub st_blocks: ::blkcnt_t, | |
37 | pub st_atime: ::time_t, | |
38 | pub st_atime_nsec: ::c_long, | |
39 | pub st_mtime: ::time_t, | |
40 | pub st_mtime_nsec: ::c_long, | |
41 | pub st_ctime: ::time_t, | |
42 | pub st_ctime_nsec: ::c_long, | |
43 | __unused4: ::c_long, | |
44 | __unused5: ::c_long, | |
45 | } | |
46 | ||
47 | pub struct pthread_attr_t { | |
48 | __size: [u32; 9] | |
49 | } | |
50 | ||
51 | pub struct sigset_t { | |
52 | __val: [::c_ulong; 32], | |
53 | } | |
54 | ||
55 | pub struct sysinfo { | |
56 | pub uptime: ::c_long, | |
57 | pub loads: [::c_ulong; 3], | |
58 | pub totalram: ::c_ulong, | |
59 | pub freeram: ::c_ulong, | |
60 | pub sharedram: ::c_ulong, | |
61 | pub bufferram: ::c_ulong, | |
62 | pub totalswap: ::c_ulong, | |
63 | pub freeswap: ::c_ulong, | |
64 | pub procs: ::c_ushort, | |
65 | pub pad: ::c_ushort, | |
66 | pub totalhigh: ::c_ulong, | |
67 | pub freehigh: ::c_ulong, | |
68 | pub mem_unit: ::c_uint, | |
69 | pub _f: [::c_char; 8], | |
70 | } | |
71 | } | |
72 | ||
8bb4bdeb XL |
73 | pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; |
74 | pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; | |
75 | ||
76 | pub const RLIMIT_NOFILE: ::c_int = 7; | |
77 | pub const RLIMIT_NPROC: ::c_int = 6; | |
78 | ||
79 | pub const O_APPEND: ::c_int = 1024; | |
80 | pub const O_CREAT: ::c_int = 64; | |
81 | pub const O_EXCL: ::c_int = 128; | |
82 | pub const O_NOCTTY: ::c_int = 256; | |
83 | pub const O_NONBLOCK: ::c_int = 2048; | |
84 | pub const O_SYNC: ::c_int = 1052672; | |
85 | pub const O_RSYNC: ::c_int = 1052672; | |
86 | pub const O_DSYNC: ::c_int = 4096; | |
87 | pub const O_FSYNC: ::c_int = 0x101000; | |
3b2f2976 XL |
88 | pub const O_NOATIME: ::c_int = 0o1000000; |
89 | pub const O_PATH: ::c_int = 0o10000000; | |
8bb4bdeb XL |
90 | |
91 | pub const MAP_GROWSDOWN: ::c_int = 0x0100; | |
92 | ||
93 | pub const EDEADLK: ::c_int = 35; | |
94 | pub const ENAMETOOLONG: ::c_int = 36; | |
95 | pub const ENOLCK: ::c_int = 37; | |
96 | pub const ENOSYS: ::c_int = 38; | |
97 | pub const ENOTEMPTY: ::c_int = 39; | |
98 | pub const ELOOP: ::c_int = 40; | |
99 | pub const ENOMSG: ::c_int = 42; | |
100 | pub const EIDRM: ::c_int = 43; | |
101 | pub const ECHRNG: ::c_int = 44; | |
102 | pub const EL2NSYNC: ::c_int = 45; | |
103 | pub const EL3HLT: ::c_int = 46; | |
104 | pub const EL3RST: ::c_int = 47; | |
105 | pub const ELNRNG: ::c_int = 48; | |
106 | pub const EUNATCH: ::c_int = 49; | |
107 | pub const ENOCSI: ::c_int = 50; | |
108 | pub const EL2HLT: ::c_int = 51; | |
109 | pub const EBADE: ::c_int = 52; | |
110 | pub const EBADR: ::c_int = 53; | |
111 | pub const EXFULL: ::c_int = 54; | |
112 | pub const ENOANO: ::c_int = 55; | |
113 | pub const EBADRQC: ::c_int = 56; | |
114 | pub const EBADSLT: ::c_int = 57; | |
115 | pub const EMULTIHOP: ::c_int = 72; | |
116 | pub const EOVERFLOW: ::c_int = 75; | |
117 | pub const ENOTUNIQ: ::c_int = 76; | |
118 | pub const EBADFD: ::c_int = 77; | |
119 | pub const EBADMSG: ::c_int = 74; | |
120 | pub const EREMCHG: ::c_int = 78; | |
121 | pub const ELIBACC: ::c_int = 79; | |
122 | pub const ELIBBAD: ::c_int = 80; | |
123 | pub const ELIBSCN: ::c_int = 81; | |
124 | pub const ELIBMAX: ::c_int = 82; | |
125 | pub const ELIBEXEC: ::c_int = 83; | |
126 | pub const EILSEQ: ::c_int = 84; | |
127 | pub const ERESTART: ::c_int = 85; | |
128 | pub const ESTRPIPE: ::c_int = 86; | |
129 | pub const EUSERS: ::c_int = 87; | |
130 | pub const ENOTSOCK: ::c_int = 88; | |
131 | pub const EDESTADDRREQ: ::c_int = 89; | |
132 | pub const EMSGSIZE: ::c_int = 90; | |
133 | pub const EPROTOTYPE: ::c_int = 91; | |
134 | pub const ENOPROTOOPT: ::c_int = 92; | |
135 | pub const EPROTONOSUPPORT: ::c_int = 93; | |
136 | pub const ESOCKTNOSUPPORT: ::c_int = 94; | |
137 | pub const EOPNOTSUPP: ::c_int = 95; | |
138 | pub const EPFNOSUPPORT: ::c_int = 96; | |
139 | pub const EAFNOSUPPORT: ::c_int = 97; | |
140 | pub const EADDRINUSE: ::c_int = 98; | |
141 | pub const EADDRNOTAVAIL: ::c_int = 99; | |
142 | pub const ENETDOWN: ::c_int = 100; | |
143 | pub const ENETUNREACH: ::c_int = 101; | |
144 | pub const ENETRESET: ::c_int = 102; | |
145 | pub const ECONNABORTED: ::c_int = 103; | |
146 | pub const ECONNRESET: ::c_int = 104; | |
147 | pub const ENOBUFS: ::c_int = 105; | |
148 | pub const EISCONN: ::c_int = 106; | |
149 | pub const ENOTCONN: ::c_int = 107; | |
150 | pub const ESHUTDOWN: ::c_int = 108; | |
151 | pub const ETOOMANYREFS: ::c_int = 109; | |
152 | pub const ETIMEDOUT: ::c_int = 110; | |
153 | pub const ECONNREFUSED: ::c_int = 111; | |
154 | pub const EHOSTDOWN: ::c_int = 112; | |
155 | pub const EHOSTUNREACH: ::c_int = 113; | |
156 | pub const EALREADY: ::c_int = 114; | |
157 | pub const EINPROGRESS: ::c_int = 115; | |
158 | pub const ESTALE: ::c_int = 116; | |
159 | pub const EDQUOT: ::c_int = 122; | |
160 | pub const ENOMEDIUM: ::c_int = 123; | |
161 | pub const EMEDIUMTYPE: ::c_int = 124; | |
162 | pub const ECANCELED: ::c_int = 125; | |
163 | pub const ENOKEY: ::c_int = 126; | |
164 | pub const EKEYEXPIRED: ::c_int = 127; | |
165 | pub const EKEYREVOKED: ::c_int = 128; | |
166 | pub const EKEYREJECTED: ::c_int = 129; | |
167 | pub const EOWNERDEAD: ::c_int = 130; | |
168 | pub const ENOTRECOVERABLE: ::c_int = 131; | |
169 | pub const EHWPOISON: ::c_int = 133; | |
170 | pub const ERFKILL: ::c_int = 132; | |
171 | ||
172 | pub const SOL_SOCKET: ::c_int = 1; | |
173 | ||
174 | pub const SO_REUSEADDR: ::c_int = 2; | |
175 | pub const SO_TYPE: ::c_int = 3; | |
176 | pub const SO_ERROR: ::c_int = 4; | |
177 | pub const SO_DONTROUTE: ::c_int = 5; | |
178 | pub const SO_BROADCAST: ::c_int = 6; | |
179 | pub const SO_SNDBUF: ::c_int = 7; | |
180 | pub const SO_RCVBUF: ::c_int = 8; | |
181 | pub const SO_KEEPALIVE: ::c_int = 9; | |
182 | pub const SO_OOBINLINE: ::c_int = 10; | |
041b39d2 | 183 | pub const SO_PRIORITY: ::c_int = 12; |
8bb4bdeb | 184 | pub const SO_LINGER: ::c_int = 13; |
041b39d2 | 185 | pub const SO_BSDCOMPAT: ::c_int = 14; |
8bb4bdeb | 186 | pub const SO_REUSEPORT: ::c_int = 15; |
041b39d2 XL |
187 | pub const SO_BINDTODEVICE: ::c_int = 25; |
188 | pub const SO_TIMESTAMP: ::c_int = 29; | |
8bb4bdeb | 189 | pub const SO_ACCEPTCONN: ::c_int = 30; |
041b39d2 XL |
190 | pub const SO_MARK: ::c_int = 36; |
191 | pub const SO_PROTOCOL: ::c_int = 38; | |
192 | pub const SO_DOMAIN: ::c_int = 39; | |
193 | pub const SO_RXQ_OVFL: ::c_int = 40; | |
194 | pub const SO_PEEK_OFF: ::c_int = 42; | |
195 | pub const SO_BUSY_POLL: ::c_int = 46; | |
8bb4bdeb XL |
196 | |
197 | pub const SA_ONSTACK: ::c_int = 0x08000000; | |
198 | pub const SA_SIGINFO: ::c_int = 0x00000004; | |
199 | pub const SA_NOCLDWAIT: ::c_int = 0x00000002; | |
200 | ||
201 | pub const SIGCHLD: ::c_int = 17; | |
202 | pub const SIGBUS: ::c_int = 7; | |
203 | pub const SIGUSR1: ::c_int = 10; | |
204 | pub const SIGUSR2: ::c_int = 12; | |
205 | pub const SIGCONT: ::c_int = 18; | |
206 | pub const SIGSTOP: ::c_int = 19; | |
207 | pub const SIGTSTP: ::c_int = 20; | |
208 | pub const SIGURG: ::c_int = 23; | |
209 | pub const SIGIO: ::c_int = 29; | |
210 | pub const SIGSYS: ::c_int = 31; | |
211 | pub const SIGSTKFLT: ::c_int = 16; | |
212 | pub const SIGUNUSED: ::c_int = 31; | |
213 | pub const SIGPOLL: ::c_int = 29; | |
214 | pub const SIGPWR: ::c_int = 30; | |
215 | pub const SIG_SETMASK: ::c_int = 2; | |
216 | pub const SIG_BLOCK: ::c_int = 0x000000; | |
217 | pub const SIG_UNBLOCK: ::c_int = 0x01; | |
218 | ||
219 | pub const POLLWRNORM: ::c_short = 0x100; | |
220 | pub const POLLWRBAND: ::c_short = 0x200; | |
221 | ||
222 | pub const O_ASYNC: ::c_int = 0x2000; | |
223 | pub const O_NDELAY: ::c_int = 0x800; | |
224 | ||
225 | pub const PTRACE_DETACH: ::c_uint = 17; | |
226 | ||
227 | pub const EFD_NONBLOCK: ::c_int = 0x800; | |
228 | ||
229 | pub const F_GETLK: ::c_int = 5; | |
230 | pub const F_GETOWN: ::c_int = 9; | |
231 | pub const F_SETOWN: ::c_int = 8; | |
232 | pub const F_SETLK: ::c_int = 6; | |
233 | pub const F_SETLKW: ::c_int = 7; | |
234 | ||
235 | pub const SFD_NONBLOCK: ::c_int = 0x0800; | |
236 | ||
237 | pub const TIOCEXCL: ::c_ulong = 0x540C; | |
238 | pub const TIOCNXCL: ::c_ulong = 0x540D; | |
239 | pub const TIOCSCTTY: ::c_ulong = 0x540E; | |
240 | pub const TIOCSTI: ::c_ulong = 0x5412; | |
241 | pub const TIOCMGET: ::c_ulong = 0x5415; | |
242 | pub const TIOCMBIS: ::c_ulong = 0x5416; | |
243 | pub const TIOCMBIC: ::c_ulong = 0x5417; | |
244 | pub const TIOCMSET: ::c_ulong = 0x5418; | |
245 | pub const TIOCCONS: ::c_ulong = 0x541D; | |
8bb4bdeb XL |
246 | |
247 | pub const SFD_CLOEXEC: ::c_int = 0x080000; | |
248 | ||
249 | pub const NCCS: usize = 32; | |
250 | ||
251 | pub const O_TRUNC: ::c_int = 512; | |
252 | ||
253 | pub const O_CLOEXEC: ::c_int = 0x80000; | |
254 | ||
255 | pub const EBFONT: ::c_int = 59; | |
256 | pub const ENOSTR: ::c_int = 60; | |
257 | pub const ENODATA: ::c_int = 61; | |
258 | pub const ETIME: ::c_int = 62; | |
259 | pub const ENOSR: ::c_int = 63; | |
260 | pub const ENONET: ::c_int = 64; | |
261 | pub const ENOPKG: ::c_int = 65; | |
262 | pub const EREMOTE: ::c_int = 66; | |
263 | pub const ENOLINK: ::c_int = 67; | |
264 | pub const EADV: ::c_int = 68; | |
265 | pub const ESRMNT: ::c_int = 69; | |
266 | pub const ECOMM: ::c_int = 70; | |
267 | pub const EPROTO: ::c_int = 71; | |
268 | pub const EDOTDOT: ::c_int = 73; | |
269 | ||
270 | pub const SA_NODEFER: ::c_int = 0x40000000; | |
271 | pub const SA_RESETHAND: ::c_int = 0x80000000; | |
272 | pub const SA_RESTART: ::c_int = 0x10000000; | |
273 | pub const SA_NOCLDSTOP: ::c_int = 0x00000001; | |
274 | ||
275 | pub const EPOLL_CLOEXEC: ::c_int = 0x80000; | |
276 | ||
277 | pub const EFD_CLOEXEC: ::c_int = 0x80000; | |
278 | ||
476ff2be SL |
279 | pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; |
280 | pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; | |
281 | pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; | |
282 | pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; | |
041b39d2 | 283 | pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; |
476ff2be SL |
284 | |
285 | pub const PTRACE_GETFPREGS: ::c_uint = 14; | |
286 | pub const PTRACE_SETFPREGS: ::c_uint = 15; | |
287 | pub const PTRACE_GETREGS: ::c_uint = 12; | |
288 | pub const PTRACE_SETREGS: ::c_uint = 13; | |
289 | ||
abe05a73 XL |
290 | #[link(name = "util")] |
291 | extern { | |
292 | pub fn sysctl(name: *mut ::c_int, | |
293 | namelen: ::c_int, | |
294 | oldp: *mut ::c_void, | |
295 | oldlenp: *mut ::size_t, | |
296 | newp: *mut ::c_void, | |
297 | newlen: ::size_t) | |
298 | -> ::c_int; | |
299 | } | |
300 | ||
476ff2be SL |
301 | cfg_if! { |
302 | if #[cfg(target_arch = "x86")] { | |
303 | mod x86; | |
304 | pub use self::x86::*; | |
305 | } else if #[cfg(target_arch = "arm")] { | |
306 | mod arm; | |
307 | pub use self::arm::*; | |
308 | } else if #[cfg(target_arch = "powerpc")] { | |
309 | mod powerpc; | |
310 | pub use self::powerpc::*; | |
311 | } else { | |
312 | // Unknown target_arch | |
313 | } | |
314 | } |