1 //! Android-specific definitions for linux-like values
5 pub type c_ulong
= u32;
6 pub type clock_t
= i32;
8 pub type suseconds_t
= i32;
9 pub type wchar_t
= u32;
12 pub type blkcnt_t
= u32;
13 pub type blksize_t
= u32;
15 pub type mode_t
= u16;
16 pub type nlink_t
= u16;
17 pub type useconds_t
= i32;
18 pub type socklen_t
= i32;
19 pub type pthread_t
= c_long
;
20 pub type pthread_mutexattr_t
= ::c_long
;
21 pub type sigset_t
= c_ulong
;
22 pub type time64_t
= i64;
26 pub st_dev
: ::c_ulonglong
,
27 __pad0
: [::c_uchar
; 4],
29 pub st_mode
: ::c_uint
,
30 pub st_nlink
: ::c_uint
,
31 pub st_uid
: ::c_ulong
,
32 pub st_gid
: ::c_ulong
,
33 pub st_rdev
: ::c_ulonglong
,
34 __pad3
: [::c_uchar
; 4],
35 pub st_size
: ::c_longlong
,
36 pub st_blksize
: blksize_t
,
37 pub st_blocks
: ::c_ulonglong
,
38 pub st_atime
: ::c_ulong
,
39 pub st_atime_nsec
: ::c_ulong
,
40 pub st_mtime
: ::c_ulong
,
41 pub st_mtime_nsec
: ::c_ulong
,
42 pub st_ctime
: ::c_ulong
,
43 pub st_ctime_nsec
: ::c_ulong
,
44 pub st_ino
: ::c_ulonglong
,
50 pub d_reclen
: ::c_ushort
,
51 pub d_type
: ::c_uchar
,
52 pub d_name
: [::c_char
; 256],
55 pub struct pthread_attr_t
{
56 pub flags
: ::uint32_t
,
57 pub stack_base
: *mut ::c_void
,
58 pub stack_size
: ::size_t
,
59 pub guard_size
: ::size_t
,
60 pub sched_policy
: ::int32_t
,
61 pub sched_priority
: ::int32_t
,
64 pub struct pthread_mutex_t { value: ::c_int }
66 pub struct pthread_cond_t { value: ::c_int }
68 pub struct pthread_rwlock_t
{
69 lock
: pthread_mutex_t
,
72 writerThreadId
: ::c_int
,
73 pendingReaders
: ::c_int
,
74 pendingWriters
: ::c_int
,
75 reserved
: [*mut ::c_void
; 4],
79 pub pw_name
: *mut ::c_char
,
80 pub pw_passwd
: *mut ::c_char
,
83 pub pw_dir
: *mut ::c_char
,
84 pub pw_shell
: *mut ::c_char
,
88 pub ss_sp
: *mut ::c_void
,
89 pub ss_flags
: ::c_int
,
93 pub struct siginfo_t
{
94 pub si_signo
: ::c_int
,
95 pub si_errno
: ::c_int
,
97 pub _pad
: [::c_int
; 29],
101 pub const BUFSIZ
: ::c_uint
= 1024;
102 pub const FILENAME_MAX
: ::c_uint
= 1024;
103 pub const FOPEN_MAX
: ::c_uint
= 20;
104 pub const L_tmpnam
: ::c_uint
= 1024;
105 pub const TMP_MAX
: ::c_uint
= 308915776;
106 pub const _PC_NAME_MAX
: ::c_int
= 4;
108 pub const FIONBIO
: ::c_int
= 0x5421;
110 pub const _SC_ARG_MAX
: ::c_int
= 0;
111 pub const _SC_BC_BASE_MAX
: ::c_int
= 1;
112 pub const _SC_BC_DIM_MAX
: ::c_int
= 2;
113 pub const _SC_BC_SCALE_MAX
: ::c_int
= 3;
114 pub const _SC_BC_STRING_MAX
: ::c_int
= 4;
115 pub const _SC_CHILD_MAX
: ::c_int
= 5;
116 pub const _SC_CLK_TCK
: ::c_int
= 6;
117 pub const _SC_COLL_WEIGHTS_MAX
: ::c_int
= 7;
118 pub const _SC_EXPR_NEST_MAX
: ::c_int
= 8;
119 pub const _SC_LINE_MAX
: ::c_int
= 9;
120 pub const _SC_NGROUPS_MAX
: ::c_int
= 10;
121 pub const _SC_OPEN_MAX
: ::c_int
= 11;
122 pub const _SC_2_C_BIND
: ::c_int
= 13;
123 pub const _SC_2_C_DEV
: ::c_int
= 14;
124 pub const _SC_2_C_VERSION
: ::c_int
= 15;
125 pub const _SC_2_CHAR_TERM
: ::c_int
= 16;
126 pub const _SC_2_FORT_DEV
: ::c_int
= 17;
127 pub const _SC_2_FORT_RUN
: ::c_int
= 18;
128 pub const _SC_2_LOCALEDEF
: ::c_int
= 19;
129 pub const _SC_2_SW_DEV
: ::c_int
= 20;
130 pub const _SC_2_UPE
: ::c_int
= 21;
131 pub const _SC_2_VERSION
: ::c_int
= 22;
132 pub const _SC_JOB_CONTROL
: ::c_int
= 23;
133 pub const _SC_SAVED_IDS
: ::c_int
= 24;
134 pub const _SC_VERSION
: ::c_int
= 25;
135 pub const _SC_RE_DUP_MAX
: ::c_int
= 26;
136 pub const _SC_STREAM_MAX
: ::c_int
= 27;
137 pub const _SC_TZNAME_MAX
: ::c_int
= 28;
138 pub const _SC_XOPEN_CRYPT
: ::c_int
= 29;
139 pub const _SC_XOPEN_ENH_I18N
: ::c_int
= 30;
140 pub const _SC_XOPEN_SHM
: ::c_int
= 31;
141 pub const _SC_XOPEN_VERSION
: ::c_int
= 32;
142 pub const _SC_XOPEN_XCU_VERSION
: ::c_int
= 33;
143 pub const _SC_XOPEN_REALTIME
: ::c_int
= 34;
144 pub const _SC_XOPEN_REALTIME_THREADS
: ::c_int
= 35;
145 pub const _SC_XOPEN_LEGACY
: ::c_int
= 36;
146 pub const _SC_ATEXIT_MAX
: ::c_int
= 37;
147 pub const _SC_IOV_MAX
: ::c_int
= 38;
148 pub const _SC_PAGESIZE
: ::c_int
= 39;
149 pub const _SC_XOPEN_UNIX
: ::c_int
= 41;
150 pub const _SC_MQ_PRIO_MAX
: ::c_int
= 51;
151 pub const _SC_GETGR_R_SIZE_MAX
: ::c_int
= 71;
152 pub const _SC_GETPW_R_SIZE_MAX
: ::c_int
= 72;
153 pub const _SC_LOGIN_NAME_MAX
: ::c_int
= 73;
154 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS
: ::c_int
= 74;
155 pub const _SC_THREAD_KEYS_MAX
: ::c_int
= 75;
156 pub const _SC_THREAD_STACK_MIN
: ::c_int
= 76;
157 pub const _SC_THREAD_THREADS_MAX
: ::c_int
= 77;
158 pub const _SC_TTY_NAME_MAX
: ::c_int
= 78;
159 pub const _SC_THREADS
: ::c_int
= 79;
160 pub const _SC_THREAD_ATTR_STACKADDR
: ::c_int
= 80;
161 pub const _SC_THREAD_ATTR_STACKSIZE
: ::c_int
= 81;
162 pub const _SC_THREAD_PRIORITY_SCHEDULING
: ::c_int
= 82;
163 pub const _SC_THREAD_PRIO_INHERIT
: ::c_int
= 83;
164 pub const _SC_THREAD_PRIO_PROTECT
: ::c_int
= 84;
165 pub const _SC_THREAD_SAFE_FUNCTIONS
: ::c_int
= 85;
167 pub const PTHREAD_STACK_MIN
: ::size_t
= 8192;
168 pub const PTHREAD_MUTEX_INITIALIZER
: pthread_mutex_t
= pthread_mutex_t
{
171 pub const PTHREAD_COND_INITIALIZER
: pthread_cond_t
= pthread_cond_t
{
174 pub const PTHREAD_RWLOCK_INITIALIZER
: pthread_rwlock_t
= pthread_rwlock_t
{
175 lock
: PTHREAD_MUTEX_INITIALIZER
,
176 cond
: PTHREAD_COND_INITIALIZER
,
181 reserved
: [0 as *mut _
; 4],
183 pub const PTHREAD_MUTEX_RECURSIVE
: ::c_int
= 1;
185 pub const FIOCLEX
: ::c_int
= 0x5451;
187 pub const SA_ONSTACK
: ::c_ulong
= 0x08000000;
188 pub const SA_SIGINFO
: ::c_ulong
= 0x00000004;
189 pub const SA_NOCLDWAIT
: ::c_ulong
= 0x00000002;
191 pub const SIGCHLD
: ::c_int
= 17;
192 pub const SIGBUS
: ::c_int
= 7;
193 pub const SIG_SETMASK
: ::c_int
= 2;
195 pub const RUSAGE_CHILDREN
: ::c_int
= -1;
197 pub const MAP_ANON
: ::c_int
= 0x0020;
198 pub const MAP_ANONYMOUS
: ::c_int
= 0x0020;
199 pub const MAP_GROWSDOWN
: ::c_int
= 0x0100;
200 pub const MAP_DENYWRITE
: ::c_int
= 0x0800;
201 pub const MAP_EXECUTABLE
: ::c_int
= 0x01000;
202 pub const MAP_LOCKED
: ::c_int
= 0x02000;
203 pub const MAP_NORESERVE
: ::c_int
= 0x04000;
204 pub const MAP_POPULATE
: ::c_int
= 0x08000;
205 pub const MAP_NONBLOCK
: ::c_int
= 0x010000;
206 pub const MAP_STACK
: ::c_int
= 0x020000;
208 pub const EDEADLK
: ::c_int
= 35;
209 pub const ENAMETOOLONG
: ::c_int
= 36;
210 pub const ENOLCK
: ::c_int
= 37;
211 pub const ENOSYS
: ::c_int
= 38;
212 pub const ENOTEMPTY
: ::c_int
= 39;
213 pub const ELOOP
: ::c_int
= 40;
214 pub const ENOMSG
: ::c_int
= 42;
215 pub const EIDRM
: ::c_int
= 43;
216 pub const ECHRNG
: ::c_int
= 44;
217 pub const EL2NSYNC
: ::c_int
= 45;
218 pub const EL3HLT
: ::c_int
= 46;
219 pub const EL3RST
: ::c_int
= 47;
220 pub const ELNRNG
: ::c_int
= 48;
221 pub const EUNATCH
: ::c_int
= 49;
222 pub const ENOCSI
: ::c_int
= 50;
223 pub const EL2HLT
: ::c_int
= 51;
224 pub const EBADE
: ::c_int
= 52;
225 pub const EBADR
: ::c_int
= 53;
226 pub const EXFULL
: ::c_int
= 54;
227 pub const ENOANO
: ::c_int
= 55;
228 pub const EBADRQC
: ::c_int
= 56;
229 pub const EBADSLT
: ::c_int
= 57;
231 pub const EMULTIHOP
: ::c_int
= 72;
232 pub const EBADMSG
: ::c_int
= 74;
233 pub const EOVERFLOW
: ::c_int
= 75;
234 pub const ENOTUNIQ
: ::c_int
= 76;
235 pub const EBADFD
: ::c_int
= 77;
236 pub const EREMCHG
: ::c_int
= 78;
237 pub const ELIBACC
: ::c_int
= 79;
238 pub const ELIBBAD
: ::c_int
= 80;
239 pub const ELIBSCN
: ::c_int
= 81;
240 pub const ELIBMAX
: ::c_int
= 82;
241 pub const ELIBEXEC
: ::c_int
= 83;
242 pub const EILSEQ
: ::c_int
= 84;
243 pub const ERESTART
: ::c_int
= 85;
244 pub const ESTRPIPE
: ::c_int
= 86;
245 pub const EUSERS
: ::c_int
= 87;
246 pub const ENOTSOCK
: ::c_int
= 88;
247 pub const EDESTADDRREQ
: ::c_int
= 89;
248 pub const EMSGSIZE
: ::c_int
= 90;
249 pub const EPROTOTYPE
: ::c_int
= 91;
250 pub const ENOPROTOOPT
: ::c_int
= 92;
251 pub const EPROTONOSUPPORT
: ::c_int
= 93;
252 pub const ESOCKTNOSUPPORT
: ::c_int
= 94;
253 pub const EOPNOTSUPP
: ::c_int
= 95;
254 pub const EPFNOSUPPORT
: ::c_int
= 96;
255 pub const EAFNOSUPPORT
: ::c_int
= 97;
256 pub const EADDRINUSE
: ::c_int
= 98;
257 pub const EADDRNOTAVAIL
: ::c_int
= 99;
258 pub const ENETDOWN
: ::c_int
= 100;
259 pub const ENETUNREACH
: ::c_int
= 101;
260 pub const ENETRESET
: ::c_int
= 102;
261 pub const ECONNABORTED
: ::c_int
= 103;
262 pub const ECONNRESET
: ::c_int
= 104;
263 pub const ENOBUFS
: ::c_int
= 105;
264 pub const EISCONN
: ::c_int
= 106;
265 pub const ENOTCONN
: ::c_int
= 107;
266 pub const ESHUTDOWN
: ::c_int
= 108;
267 pub const ETOOMANYREFS
: ::c_int
= 109;
268 pub const ETIMEDOUT
: ::c_int
= 110;
269 pub const ECONNREFUSED
: ::c_int
= 111;
270 pub const EHOSTDOWN
: ::c_int
= 112;
271 pub const EHOSTUNREACH
: ::c_int
= 113;
272 pub const EALREADY
: ::c_int
= 114;
273 pub const EINPROGRESS
: ::c_int
= 115;
274 pub const ESTALE
: ::c_int
= 116;
275 pub const EUCLEAN
: ::c_int
= 117;
276 pub const ENOTNAM
: ::c_int
= 118;
277 pub const ENAVAIL
: ::c_int
= 119;
278 pub const EISNAM
: ::c_int
= 120;
279 pub const EREMOTEIO
: ::c_int
= 121;
280 pub const EDQUOT
: ::c_int
= 122;
281 pub const ENOMEDIUM
: ::c_int
= 123;
282 pub const EMEDIUMTYPE
: ::c_int
= 124;
283 pub const ECANCELED
: ::c_int
= 125;
284 pub const ENOKEY
: ::c_int
= 126;
285 pub const EKEYEXPIRED
: ::c_int
= 127;
286 pub const EKEYREVOKED
: ::c_int
= 128;
287 pub const EKEYREJECTED
: ::c_int
= 129;
288 pub const EOWNERDEAD
: ::c_int
= 130;
289 pub const ENOTRECOVERABLE
: ::c_int
= 131;
291 pub const SOCK_STREAM
: ::c_int
= 1;
292 pub const SOCK_DGRAM
: ::c_int
= 2;
294 pub const SOL_SOCKET
: ::c_int
= 1;
296 pub const SO_REUSEADDR
: ::c_int
= 2;
297 pub const SO_TYPE
: ::c_int
= 3;
298 pub const SO_ERROR
: ::c_int
= 4;
299 pub const SO_DONTROUTE
: ::c_int
= 5;
300 pub const SO_BROADCAST
: ::c_int
= 6;
301 pub const SO_SNDBUF
: ::c_int
= 7;
302 pub const SO_RCVBUF
: ::c_int
= 8;
303 pub const SO_KEEPALIVE
: ::c_int
= 9;
304 pub const SO_OOBINLINE
: ::c_int
= 10;
305 pub const SO_LINGER
: ::c_int
= 13;
306 pub const SO_RCVLOWAT
: ::c_int
= 18;
307 pub const SO_SNDLOWAT
: ::c_int
= 19;
308 pub const SO_RCVTIMEO
: ::c_int
= 20;
309 pub const SO_SNDTIMEO
: ::c_int
= 21;
310 pub const SO_ACCEPTCONN
: ::c_int
= 30;
312 pub const O_ACCMODE
: ::c_int
= 3;
313 pub const O_APPEND
: ::c_int
= 1024;
314 pub const O_CREAT
: ::c_int
= 64;
315 pub const O_EXCL
: ::c_int
= 128;
316 pub const O_NOCTTY
: ::c_int
= 256;
317 pub const O_NONBLOCK
: ::c_int
= 2048;
318 pub const O_SYNC
: ::c_int
= 0x1000;
320 pub const NI_MAXHOST
: ::size_t
= 1025;
323 pub fn sigemptyset(set
: *mut sigset_t
) -> ::c_int
{
327 pub fn sigaddset(set
: *mut sigset_t
, signum
: ::c_int
) -> ::c_int
{
328 *set
|= signum
as sigset_t
;
331 pub fn sigfillset(set
: *mut sigset_t
) -> ::c_int
{
335 pub fn sigdelset(set
: *mut sigset_t
, signum
: ::c_int
) -> ::c_int
{
336 *set
&= !(signum
as sigset_t
);
339 pub fn sigismember(set
: *const sigset_t
, signum
: ::c_int
) -> ::c_int
{
340 (*set
& (signum
as sigset_t
)) as ::c_int
345 pub fn madvise(addr
: *const ::c_void
, len
: ::size_t
, advice
: ::c_int
)
347 pub fn ioctl(fd
: ::c_int
, request
: ::c_int
, ...) -> ::c_int
;
348 pub fn putenv(string
: *const ::c_char
) -> ::c_int
;
349 pub fn readlink(path
: *const ::c_char
,
353 pub fn msync(addr
: *const ::c_void
, len
: ::size_t
,
354 flags
: ::c_int
) -> ::c_int
;
355 pub fn mprotect(addr
: *const ::c_void
, len
: ::size_t
, prot
: ::c_int
)
357 pub fn sysconf(name
: ::c_int
) -> ::c_long
;
358 pub fn usleep(secs
: ::c_ulong
) -> ::c_int
;
359 pub fn recvfrom(socket
: ::c_int
, buf
: *mut ::c_void
, len
: ::size_t
,
360 flags
: ::c_uint
, addr
: *const ::sockaddr
,
361 addrlen
: *mut ::socklen_t
) -> ::ssize_t
;
362 pub fn send(socket
: ::c_int
, buf
: *const ::c_void
, len
: ::size_t
,
363 flags
: ::c_uint
) -> ::ssize_t
;
364 pub fn recv(socket
: ::c_int
, buf
: *mut ::c_void
, len
: ::size_t
,
365 flags
: ::c_uint
) -> ::ssize_t
;
366 pub fn getnameinfo(sa
: *const ::sockaddr
,
372 flags
: ::c_int
) -> ::c_int
;
373 pub fn timegm64(tm
: *const ::tm
) -> time64_t
;
377 if #[cfg(target_pointer_width = "32")] {
379 pub use self::b32
::*;
380 } else if #[cfg(target_pointer_width = "64")] {
382 pub use self::b64
::*;