1 use crate::prelude::*; 2 use crate::{off64_t, off_t, pthread_mutex_t}; 3 4 pub type wchar_t = i32; 5 6 pub type blksize_t = i32; 7 pub type nlink_t = u32; 8 pub type suseconds_t = i64; 9 pub type __u64 = c_ulonglong; 10 pub type __s64 = c_longlong; 11 12 s! { 13 pub struct stat { 14 pub st_dev: crate::dev_t, 15 pub st_ino: crate::ino_t, 16 pub st_mode: crate::mode_t, 17 pub st_nlink: crate::nlink_t, 18 pub st_uid: crate::uid_t, 19 pub st_gid: crate::gid_t, 20 pub st_rdev: crate::dev_t, 21 __pad1: crate::dev_t, 22 pub st_size: off_t, 23 pub st_blksize: crate::blksize_t, 24 __pad2: c_int, 25 pub st_blocks: crate::blkcnt_t, 26 pub st_atime: crate::time_t, 27 pub st_atime_nsec: c_long, 28 pub st_mtime: crate::time_t, 29 pub st_mtime_nsec: c_long, 30 pub st_ctime: crate::time_t, 31 pub st_ctime_nsec: c_long, 32 __unused: [c_int; 2], 33 } 34 35 pub struct stat64 { 36 pub st_dev: crate::dev_t, 37 pub st_ino: crate::ino64_t, 38 pub st_mode: crate::mode_t, 39 pub st_nlink: crate::nlink_t, 40 pub st_uid: crate::uid_t, 41 pub st_gid: crate::gid_t, 42 pub st_rdev: crate::dev_t, 43 pub __pad1: crate::dev_t, 44 pub st_size: off64_t, 45 pub st_blksize: crate::blksize_t, 46 pub __pad2: c_int, 47 pub st_blocks: crate::blkcnt_t, 48 pub st_atime: crate::time_t, 49 pub st_atime_nsec: c_long, 50 pub st_mtime: crate::time_t, 51 pub st_mtime_nsec: c_long, 52 pub st_ctime: crate::time_t, 53 pub st_ctime_nsec: c_long, 54 __unused: [c_int; 2], 55 } 56 57 pub struct statfs { 58 pub f_type: crate::__fsword_t, 59 pub f_bsize: crate::__fsword_t, 60 pub f_blocks: crate::fsblkcnt_t, 61 pub f_bfree: crate::fsblkcnt_t, 62 pub f_bavail: crate::fsblkcnt_t, 63 pub f_files: crate::fsfilcnt_t, 64 pub f_ffree: crate::fsfilcnt_t, 65 pub f_fsid: crate::fsid_t, 66 pub f_namelen: crate::__fsword_t, 67 pub f_frsize: crate::__fsword_t, 68 pub f_flags: crate::__fsword_t, 69 pub f_spare: [crate::__fsword_t; 4], 70 } 71 72 pub struct statfs64 { 73 pub f_type: crate::__fsword_t, 74 pub f_bsize: crate::__fsword_t, 75 pub f_blocks: u64, 76 pub f_bfree: u64, 77 pub f_bavail: u64, 78 pub f_files: u64, 79 pub f_ffree: u64, 80 pub f_fsid: crate::fsid_t, 81 pub f_namelen: crate::__fsword_t, 82 pub f_frsize: crate::__fsword_t, 83 pub f_flags: crate::__fsword_t, 84 pub f_spare: [crate::__fsword_t; 4], 85 } 86 87 pub struct flock { 88 pub l_type: c_short, 89 pub l_whence: c_short, 90 pub l_start: off_t, 91 pub l_len: off_t, 92 pub l_pid: crate::pid_t, 93 } 94 95 pub struct flock64 { 96 pub l_type: c_short, 97 pub l_whence: c_short, 98 pub l_start: off64_t, 99 pub l_len: off64_t, 100 pub l_pid: crate::pid_t, 101 } 102 103 pub struct statvfs { 104 pub f_bsize: c_ulong, 105 pub f_frsize: c_ulong, 106 pub f_blocks: crate::fsblkcnt_t, 107 pub f_bfree: crate::fsblkcnt_t, 108 pub f_bavail: crate::fsblkcnt_t, 109 pub f_files: crate::fsfilcnt_t, 110 pub f_ffree: crate::fsfilcnt_t, 111 pub f_favail: crate::fsfilcnt_t, 112 pub f_fsid: c_ulong, 113 pub f_flag: c_ulong, 114 pub f_namemax: c_ulong, 115 __f_spare: [c_int; 6], 116 } 117 118 pub struct statvfs64 { 119 pub f_bsize: c_ulong, 120 pub f_frsize: c_ulong, 121 pub f_blocks: u64, 122 pub f_bfree: u64, 123 pub f_bavail: u64, 124 pub f_files: u64, 125 pub f_ffree: u64, 126 pub f_favail: u64, 127 pub f_fsid: c_ulong, 128 pub f_flag: c_ulong, 129 pub f_namemax: c_ulong, 130 __f_spare: [c_int; 6], 131 } 132 133 pub struct pthread_attr_t { 134 __size: [c_ulong; 7], 135 } 136 137 // FIXME(1.0): This should not implement `PartialEq` 138 #[allow(unpredictable_function_pointer_comparisons)] 139 pub struct sigaction { 140 pub sa_sigaction: crate::sighandler_t, 141 pub sa_mask: crate::sigset_t, 142 pub sa_flags: c_int, 143 pub sa_restorer: Option<extern "C" fn()>, 144 } 145 146 pub struct stack_t { 147 pub ss_sp: *mut c_void, 148 pub ss_flags: c_int, 149 pub ss_size: size_t, 150 } 151 152 pub struct siginfo_t { 153 pub si_signo: c_int, 154 pub si_errno: c_int, 155 pub si_code: c_int, 156 #[doc(hidden)] 157 #[deprecated( 158 since = "0.2.54", 159 note = "Please leave a comment on \ 160 https://github.com/rust-lang/libc/pull/1316 if you're using \ 161 this field" 162 )] 163 pub _pad: [c_int; 29], 164 _align: [u64; 0], 165 } 166 167 pub struct ipc_perm { 168 pub __key: crate::key_t, 169 pub uid: crate::uid_t, 170 pub gid: crate::gid_t, 171 pub cuid: crate::uid_t, 172 pub cgid: crate::gid_t, 173 pub mode: c_uint, 174 pub __seq: c_ushort, 175 __pad2: c_ushort, 176 __unused1: c_ulong, 177 __unused2: c_ulong, 178 } 179 180 pub struct shmid_ds { 181 pub shm_perm: crate::ipc_perm, 182 pub shm_segsz: size_t, 183 pub shm_atime: crate::time_t, 184 pub shm_dtime: crate::time_t, 185 pub shm_ctime: crate::time_t, 186 pub shm_cpid: crate::pid_t, 187 pub shm_lpid: crate::pid_t, 188 pub shm_nattch: crate::shmatt_t, 189 __unused4: c_ulong, 190 __unused5: c_ulong, 191 } 192 193 pub struct user_regs_struct { 194 pub regs: [u64; 32], 195 pub orig_a0: u64, 196 pub csr_era: u64, 197 pub csr_badv: u64, 198 pub reserved: [u64; 10], 199 } 200 201 pub struct user_fp_struct { 202 pub fpr: [u64; 32], 203 pub fcc: u64, 204 pub fcsr: u32, 205 } 206 207 pub struct ucontext_t { 208 pub uc_flags: c_ulong, 209 pub uc_link: *mut ucontext_t, 210 pub uc_stack: crate::stack_t, 211 pub uc_sigmask: crate::sigset_t, 212 pub uc_mcontext: mcontext_t, 213 } 214 215 #[repr(align(16))] 216 pub struct mcontext_t { 217 pub __pc: c_ulonglong, 218 pub __gregs: [c_ulonglong; 32], 219 pub __flags: c_uint, 220 pub __extcontext: [c_ulonglong; 0], 221 } 222 223 #[repr(align(8))] 224 pub struct clone_args { 225 pub flags: c_ulonglong, 226 pub pidfd: c_ulonglong, 227 pub child_tid: c_ulonglong, 228 pub parent_tid: c_ulonglong, 229 pub exit_signal: c_ulonglong, 230 pub stack: c_ulonglong, 231 pub stack_size: c_ulonglong, 232 pub tls: c_ulonglong, 233 pub set_tid: c_ulonglong, 234 pub set_tid_size: c_ulonglong, 235 pub cgroup: c_ulonglong, 236 } 237 } 238 239 s_no_extra_traits! { 240 #[allow(missing_debug_implementations)] 241 #[repr(align(16))] 242 pub struct max_align_t { 243 priv_: [f64; 4], 244 } 245 } 246 247 pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; 248 pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; 249 pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4; 250 pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; 251 pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; 252 pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32; 253 254 #[cfg(target_endian = "little")] 255 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 256 size: [ 257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259 ], 260 }; 261 #[cfg(target_endian = "little")] 262 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 263 size: [ 264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266 ], 267 }; 268 #[cfg(target_endian = "little")] 269 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 270 size: [ 271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273 ], 274 }; 275 #[cfg(target_endian = "big")] 276 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 277 size: [ 278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280 ], 281 }; 282 #[cfg(target_endian = "big")] 283 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 284 size: [ 285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287 ], 288 }; 289 #[cfg(target_endian = "big")] 290 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t { 291 size: [ 292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294 ], 295 }; 296 297 pub const HWCAP_LOONGARCH_CPUCFG: c_ulong = 1 << 0; 298 pub const HWCAP_LOONGARCH_LAM: c_ulong = 1 << 1; 299 pub const HWCAP_LOONGARCH_UAL: c_ulong = 1 << 2; 300 pub const HWCAP_LOONGARCH_FPU: c_ulong = 1 << 3; 301 pub const HWCAP_LOONGARCH_LSX: c_ulong = 1 << 4; 302 pub const HWCAP_LOONGARCH_LASX: c_ulong = 1 << 5; 303 pub const HWCAP_LOONGARCH_CRC32: c_ulong = 1 << 6; 304 pub const HWCAP_LOONGARCH_COMPLEX: c_ulong = 1 << 7; 305 pub const HWCAP_LOONGARCH_CRYPTO: c_ulong = 1 << 8; 306 pub const HWCAP_LOONGARCH_LVZ: c_ulong = 1 << 9; 307 pub const HWCAP_LOONGARCH_LBT_X86: c_ulong = 1 << 10; 308 pub const HWCAP_LOONGARCH_LBT_ARM: c_ulong = 1 << 11; 309 pub const HWCAP_LOONGARCH_LBT_MIPS: c_ulong = 1 << 12; 310 pub const HWCAP_LOONGARCH_PTW: c_ulong = 1 << 13; 311 312 pub const SYS_io_setup: c_long = 0; 313 pub const SYS_io_destroy: c_long = 1; 314 pub const SYS_io_submit: c_long = 2; 315 pub const SYS_io_cancel: c_long = 3; 316 pub const SYS_io_getevents: c_long = 4; 317 pub const SYS_setxattr: c_long = 5; 318 pub const SYS_lsetxattr: c_long = 6; 319 pub const SYS_fsetxattr: c_long = 7; 320 pub const SYS_getxattr: c_long = 8; 321 pub const SYS_lgetxattr: c_long = 9; 322 pub const SYS_fgetxattr: c_long = 10; 323 pub const SYS_listxattr: c_long = 11; 324 pub const SYS_llistxattr: c_long = 12; 325 pub const SYS_flistxattr: c_long = 13; 326 pub const SYS_removexattr: c_long = 14; 327 pub const SYS_lremovexattr: c_long = 15; 328 pub const SYS_fremovexattr: c_long = 16; 329 pub const SYS_getcwd: c_long = 17; 330 pub const SYS_lookup_dcookie: c_long = 18; 331 pub const SYS_eventfd2: c_long = 19; 332 pub const SYS_epoll_create1: c_long = 20; 333 pub const SYS_epoll_ctl: c_long = 21; 334 pub const SYS_epoll_pwait: c_long = 22; 335 pub const SYS_dup: c_long = 23; 336 pub const SYS_dup3: c_long = 24; 337 pub const SYS_fcntl: c_long = 25; 338 pub const SYS_inotify_init1: c_long = 26; 339 pub const SYS_inotify_add_watch: c_long = 27; 340 pub const SYS_inotify_rm_watch: c_long = 28; 341 pub const SYS_ioctl: c_long = 29; 342 pub const SYS_ioprio_set: c_long = 30; 343 pub const SYS_ioprio_get: c_long = 31; 344 pub const SYS_flock: c_long = 32; 345 pub const SYS_mknodat: c_long = 33; 346 pub const SYS_mkdirat: c_long = 34; 347 pub const SYS_unlinkat: c_long = 35; 348 pub const SYS_symlinkat: c_long = 36; 349 pub const SYS_linkat: c_long = 37; 350 pub const SYS_umount2: c_long = 39; 351 pub const SYS_mount: c_long = 40; 352 pub const SYS_pivot_root: c_long = 41; 353 pub const SYS_nfsservctl: c_long = 42; 354 pub const SYS_statfs: c_long = 43; 355 pub const SYS_fstatfs: c_long = 44; 356 pub const SYS_truncate: c_long = 45; 357 pub const SYS_ftruncate: c_long = 46; 358 pub const SYS_fallocate: c_long = 47; 359 pub const SYS_faccessat: c_long = 48; 360 pub const SYS_chdir: c_long = 49; 361 pub const SYS_fchdir: c_long = 50; 362 pub const SYS_chroot: c_long = 51; 363 pub const SYS_fchmod: c_long = 52; 364 pub const SYS_fchmodat: c_long = 53; 365 pub const SYS_fchownat: c_long = 54; 366 pub const SYS_fchown: c_long = 55; 367 pub const SYS_openat: c_long = 56; 368 pub const SYS_close: c_long = 57; 369 pub const SYS_vhangup: c_long = 58; 370 pub const SYS_pipe2: c_long = 59; 371 pub const SYS_quotactl: c_long = 60; 372 pub const SYS_getdents64: c_long = 61; 373 pub const SYS_lseek: c_long = 62; 374 pub const SYS_read: c_long = 63; 375 pub const SYS_write: c_long = 64; 376 pub const SYS_readv: c_long = 65; 377 pub const SYS_writev: c_long = 66; 378 pub const SYS_pread64: c_long = 67; 379 pub const SYS_pwrite64: c_long = 68; 380 pub const SYS_preadv: c_long = 69; 381 pub const SYS_pwritev: c_long = 70; 382 pub const SYS_sendfile: c_long = 71; 383 pub const SYS_pselect6: c_long = 72; 384 pub const SYS_ppoll: c_long = 73; 385 pub const SYS_signalfd4: c_long = 74; 386 pub const SYS_vmsplice: c_long = 75; 387 pub const SYS_splice: c_long = 76; 388 pub const SYS_tee: c_long = 77; 389 pub const SYS_readlinkat: c_long = 78; 390 pub const SYS_sync: c_long = 81; 391 pub const SYS_fsync: c_long = 82; 392 pub const SYS_fdatasync: c_long = 83; 393 pub const SYS_sync_file_range: c_long = 84; 394 pub const SYS_timerfd_create: c_long = 85; 395 pub const SYS_timerfd_settime: c_long = 86; 396 pub const SYS_timerfd_gettime: c_long = 87; 397 pub const SYS_utimensat: c_long = 88; 398 pub const SYS_acct: c_long = 89; 399 pub const SYS_capget: c_long = 90; 400 pub const SYS_capset: c_long = 91; 401 pub const SYS_personality: c_long = 92; 402 pub const SYS_exit: c_long = 93; 403 pub const SYS_exit_group: c_long = 94; 404 pub const SYS_waitid: c_long = 95; 405 pub const SYS_set_tid_address: c_long = 96; 406 pub const SYS_unshare: c_long = 97; 407 pub const SYS_futex: c_long = 98; 408 pub const SYS_set_robust_list: c_long = 99; 409 pub const SYS_get_robust_list: c_long = 100; 410 pub const SYS_nanosleep: c_long = 101; 411 pub const SYS_getitimer: c_long = 102; 412 pub const SYS_setitimer: c_long = 103; 413 pub const SYS_kexec_load: c_long = 104; 414 pub const SYS_init_module: c_long = 105; 415 pub const SYS_delete_module: c_long = 106; 416 pub const SYS_timer_create: c_long = 107; 417 pub const SYS_timer_gettime: c_long = 108; 418 pub const SYS_timer_getoverrun: c_long = 109; 419 pub const SYS_timer_settime: c_long = 110; 420 pub const SYS_timer_delete: c_long = 111; 421 pub const SYS_clock_settime: c_long = 112; 422 pub const SYS_clock_gettime: c_long = 113; 423 pub const SYS_clock_getres: c_long = 114; 424 pub const SYS_clock_nanosleep: c_long = 115; 425 pub const SYS_syslog: c_long = 116; 426 pub const SYS_ptrace: c_long = 117; 427 pub const SYS_sched_setparam: c_long = 118; 428 pub const SYS_sched_setscheduler: c_long = 119; 429 pub const SYS_sched_getscheduler: c_long = 120; 430 pub const SYS_sched_getparam: c_long = 121; 431 pub const SYS_sched_setaffinity: c_long = 122; 432 pub const SYS_sched_getaffinity: c_long = 123; 433 pub const SYS_sched_yield: c_long = 124; 434 pub const SYS_sched_get_priority_max: c_long = 125; 435 pub const SYS_sched_get_priority_min: c_long = 126; 436 pub const SYS_sched_rr_get_interval: c_long = 127; 437 pub const SYS_restart_syscall: c_long = 128; 438 pub const SYS_kill: c_long = 129; 439 pub const SYS_tkill: c_long = 130; 440 pub const SYS_tgkill: c_long = 131; 441 pub const SYS_sigaltstack: c_long = 132; 442 pub const SYS_rt_sigsuspend: c_long = 133; 443 pub const SYS_rt_sigaction: c_long = 134; 444 pub const SYS_rt_sigprocmask: c_long = 135; 445 pub const SYS_rt_sigpending: c_long = 136; 446 pub const SYS_rt_sigtimedwait: c_long = 137; 447 pub const SYS_rt_sigqueueinfo: c_long = 138; 448 pub const SYS_rt_sigreturn: c_long = 139; 449 pub const SYS_setpriority: c_long = 140; 450 pub const SYS_getpriority: c_long = 141; 451 pub const SYS_reboot: c_long = 142; 452 pub const SYS_setregid: c_long = 143; 453 pub const SYS_setgid: c_long = 144; 454 pub const SYS_setreuid: c_long = 145; 455 pub const SYS_setuid: c_long = 146; 456 pub const SYS_setresuid: c_long = 147; 457 pub const SYS_getresuid: c_long = 148; 458 pub const SYS_setresgid: c_long = 149; 459 pub const SYS_getresgid: c_long = 150; 460 pub const SYS_setfsuid: c_long = 151; 461 pub const SYS_setfsgid: c_long = 152; 462 pub const SYS_times: c_long = 153; 463 pub const SYS_setpgid: c_long = 154; 464 pub const SYS_getpgid: c_long = 155; 465 pub const SYS_getsid: c_long = 156; 466 pub const SYS_setsid: c_long = 157; 467 pub const SYS_getgroups: c_long = 158; 468 pub const SYS_setgroups: c_long = 159; 469 pub const SYS_uname: c_long = 160; 470 pub const SYS_sethostname: c_long = 161; 471 pub const SYS_setdomainname: c_long = 162; 472 pub const SYS_getrusage: c_long = 165; 473 pub const SYS_umask: c_long = 166; 474 pub const SYS_prctl: c_long = 167; 475 pub const SYS_getcpu: c_long = 168; 476 pub const SYS_gettimeofday: c_long = 169; 477 pub const SYS_settimeofday: c_long = 170; 478 pub const SYS_adjtimex: c_long = 171; 479 pub const SYS_getpid: c_long = 172; 480 pub const SYS_getppid: c_long = 173; 481 pub const SYS_getuid: c_long = 174; 482 pub const SYS_geteuid: c_long = 175; 483 pub const SYS_getgid: c_long = 176; 484 pub const SYS_getegid: c_long = 177; 485 pub const SYS_gettid: c_long = 178; 486 pub const SYS_sysinfo: c_long = 179; 487 pub const SYS_mq_open: c_long = 180; 488 pub const SYS_mq_unlink: c_long = 181; 489 pub const SYS_mq_timedsend: c_long = 182; 490 pub const SYS_mq_timedreceive: c_long = 183; 491 pub const SYS_mq_notify: c_long = 184; 492 pub const SYS_mq_getsetattr: c_long = 185; 493 pub const SYS_msgget: c_long = 186; 494 pub const SYS_msgctl: c_long = 187; 495 pub const SYS_msgrcv: c_long = 188; 496 pub const SYS_msgsnd: c_long = 189; 497 pub const SYS_semget: c_long = 190; 498 pub const SYS_semctl: c_long = 191; 499 pub const SYS_semtimedop: c_long = 192; 500 pub const SYS_semop: c_long = 193; 501 pub const SYS_shmget: c_long = 194; 502 pub const SYS_shmctl: c_long = 195; 503 pub const SYS_shmat: c_long = 196; 504 pub const SYS_shmdt: c_long = 197; 505 pub const SYS_socket: c_long = 198; 506 pub const SYS_socketpair: c_long = 199; 507 pub const SYS_bind: c_long = 200; 508 pub const SYS_listen: c_long = 201; 509 pub const SYS_accept: c_long = 202; 510 pub const SYS_connect: c_long = 203; 511 pub const SYS_getsockname: c_long = 204; 512 pub const SYS_getpeername: c_long = 205; 513 pub const SYS_sendto: c_long = 206; 514 pub const SYS_recvfrom: c_long = 207; 515 pub const SYS_setsockopt: c_long = 208; 516 pub const SYS_getsockopt: c_long = 209; 517 pub const SYS_shutdown: c_long = 210; 518 pub const SYS_sendmsg: c_long = 211; 519 pub const SYS_recvmsg: c_long = 212; 520 pub const SYS_readahead: c_long = 213; 521 pub const SYS_brk: c_long = 214; 522 pub const SYS_munmap: c_long = 215; 523 pub const SYS_mremap: c_long = 216; 524 pub const SYS_add_key: c_long = 217; 525 pub const SYS_request_key: c_long = 218; 526 pub const SYS_keyctl: c_long = 219; 527 pub const SYS_clone: c_long = 220; 528 pub const SYS_execve: c_long = 221; 529 pub const SYS_mmap: c_long = 222; 530 pub const SYS_fadvise64: c_long = 223; 531 pub const SYS_swapon: c_long = 224; 532 pub const SYS_swapoff: c_long = 225; 533 pub const SYS_mprotect: c_long = 226; 534 pub const SYS_msync: c_long = 227; 535 pub const SYS_mlock: c_long = 228; 536 pub const SYS_munlock: c_long = 229; 537 pub const SYS_mlockall: c_long = 230; 538 pub const SYS_munlockall: c_long = 231; 539 pub const SYS_mincore: c_long = 232; 540 pub const SYS_madvise: c_long = 233; 541 pub const SYS_remap_file_pages: c_long = 234; 542 pub const SYS_mbind: c_long = 235; 543 pub const SYS_get_mempolicy: c_long = 236; 544 pub const SYS_set_mempolicy: c_long = 237; 545 pub const SYS_migrate_pages: c_long = 238; 546 pub const SYS_move_pages: c_long = 239; 547 pub const SYS_rt_tgsigqueueinfo: c_long = 240; 548 pub const SYS_perf_event_open: c_long = 241; 549 pub const SYS_accept4: c_long = 242; 550 pub const SYS_recvmmsg: c_long = 243; 551 //pub const SYS_arch_specific_syscall: c_long = 244; 552 pub const SYS_wait4: c_long = 260; 553 pub const SYS_prlimit64: c_long = 261; 554 pub const SYS_fanotify_init: c_long = 262; 555 pub const SYS_fanotify_mark: c_long = 263; 556 pub const SYS_name_to_handle_at: c_long = 264; 557 pub const SYS_open_by_handle_at: c_long = 265; 558 pub const SYS_clock_adjtime: c_long = 266; 559 pub const SYS_syncfs: c_long = 267; 560 pub const SYS_setns: c_long = 268; 561 pub const SYS_sendmmsg: c_long = 269; 562 pub const SYS_process_vm_readv: c_long = 270; 563 pub const SYS_process_vm_writev: c_long = 271; 564 pub const SYS_kcmp: c_long = 272; 565 pub const SYS_finit_module: c_long = 273; 566 pub const SYS_sched_setattr: c_long = 274; 567 pub const SYS_sched_getattr: c_long = 275; 568 pub const SYS_renameat2: c_long = 276; 569 pub const SYS_seccomp: c_long = 277; 570 pub const SYS_getrandom: c_long = 278; 571 pub const SYS_memfd_create: c_long = 279; 572 pub const SYS_bpf: c_long = 280; 573 pub const SYS_execveat: c_long = 281; 574 pub const SYS_userfaultfd: c_long = 282; 575 pub const SYS_membarrier: c_long = 283; 576 pub const SYS_mlock2: c_long = 284; 577 pub const SYS_copy_file_range: c_long = 285; 578 pub const SYS_preadv2: c_long = 286; 579 pub const SYS_pwritev2: c_long = 287; 580 pub const SYS_pkey_mprotect: c_long = 288; 581 pub const SYS_pkey_alloc: c_long = 289; 582 pub const SYS_pkey_free: c_long = 290; 583 pub const SYS_statx: c_long = 291; 584 pub const SYS_io_pgetevents: c_long = 292; 585 pub const SYS_rseq: c_long = 293; 586 pub const SYS_kexec_file_load: c_long = 294; 587 pub const SYS_pidfd_send_signal: c_long = 424; 588 pub const SYS_io_uring_setup: c_long = 425; 589 pub const SYS_io_uring_enter: c_long = 426; 590 pub const SYS_io_uring_register: c_long = 427; 591 pub const SYS_open_tree: c_long = 428; 592 pub const SYS_move_mount: c_long = 429; 593 pub const SYS_fsopen: c_long = 430; 594 pub const SYS_fsconfig: c_long = 431; 595 pub const SYS_fsmount: c_long = 432; 596 pub const SYS_fspick: c_long = 433; 597 pub const SYS_pidfd_open: c_long = 434; 598 pub const SYS_clone3: c_long = 435; 599 pub const SYS_close_range: c_long = 436; 600 pub const SYS_openat2: c_long = 437; 601 pub const SYS_pidfd_getfd: c_long = 438; 602 pub const SYS_faccessat2: c_long = 439; 603 pub const SYS_process_madvise: c_long = 440; 604 pub const SYS_epoll_pwait2: c_long = 441; 605 pub const SYS_mount_setattr: c_long = 442; 606 pub const SYS_quotactl_fd: c_long = 443; 607 pub const SYS_landlock_create_ruleset: c_long = 444; 608 pub const SYS_landlock_add_rule: c_long = 445; 609 pub const SYS_landlock_restrict_self: c_long = 446; 610 pub const SYS_process_mrelease: c_long = 448; 611 pub const SYS_futex_waitv: c_long = 449; 612 pub const SYS_set_mempolicy_home_node: c_long = 450; 613 614 pub const POSIX_FADV_DONTNEED: c_int = 4; 615 pub const POSIX_FADV_NOREUSE: c_int = 5; 616 pub const O_DIRECT: c_int = 0o00040000; 617 pub const O_DIRECTORY: c_int = 0o00200000; 618 pub const O_NOFOLLOW: c_int = 0o00400000; 619 pub const O_TRUNC: c_int = 0o00001000; 620 pub const O_NOATIME: c_int = 0o1000000; 621 pub const O_CLOEXEC: c_int = 0o02000000; 622 pub const O_PATH: c_int = 0o10000000; 623 pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY; 624 pub const O_APPEND: c_int = 0o00002000; 625 pub const O_CREAT: c_int = 0o00000100; 626 pub const O_EXCL: c_int = 0o00000200; 627 pub const O_NOCTTY: c_int = 0o00000400; 628 pub const O_NONBLOCK: c_int = 0o00004000; 629 pub const FASYNC: c_int = 0o00020000; 630 pub const O_SYNC: c_int = 0o04010000; 631 pub const O_RSYNC: c_int = 0o04010000; 632 pub const O_FSYNC: c_int = O_SYNC; 633 pub const O_ASYNC: c_int = 0o00020000; 634 pub const O_DSYNC: c_int = 0o00010000; 635 pub const O_NDELAY: c_int = O_NONBLOCK; 636 pub const F_RDLCK: c_int = 0; 637 pub const F_WRLCK: c_int = 1; 638 pub const F_UNLCK: c_int = 2; 639 pub const F_GETLK: c_int = 5; 640 pub const F_SETLK: c_int = 6; 641 pub const F_SETLKW: c_int = 7; 642 pub const F_SETOWN: c_int = 8; 643 pub const F_GETOWN: c_int = 9; 644 pub const F_OFD_GETLK: c_int = 36; 645 pub const F_OFD_SETLK: c_int = 37; 646 pub const F_OFD_SETLKW: c_int = 38; 647 648 pub const EDEADLK: c_int = 35; 649 pub const EDEADLOCK: c_int = 35; 650 pub const ENAMETOOLONG: c_int = 36; 651 pub const ENOLCK: c_int = 37; 652 pub const ENOSYS: c_int = 38; 653 pub const ENOTEMPTY: c_int = 39; 654 pub const ELOOP: c_int = 40; 655 pub const ENOMSG: c_int = 42; 656 pub const EIDRM: c_int = 43; 657 pub const ECHRNG: c_int = 44; 658 pub const EL2NSYNC: c_int = 45; 659 pub const EL3HLT: c_int = 46; 660 pub const EL3RST: c_int = 47; 661 pub const ELNRNG: c_int = 48; 662 pub const EUNATCH: c_int = 49; 663 pub const ENOCSI: c_int = 50; 664 pub const EL2HLT: c_int = 51; 665 pub const EBADE: c_int = 52; 666 pub const EBADR: c_int = 53; 667 pub const EXFULL: c_int = 54; 668 pub const ENOANO: c_int = 55; 669 pub const EBADRQC: c_int = 56; 670 pub const EBADSLT: c_int = 57; 671 pub const EBFONT: c_int = 59; 672 pub const ENOSTR: c_int = 60; 673 pub const ENODATA: c_int = 61; 674 pub const ETIME: c_int = 62; 675 pub const ENOSR: c_int = 63; 676 pub const ENONET: c_int = 64; 677 pub const ENOPKG: c_int = 65; 678 pub const EREMOTE: c_int = 66; 679 pub const ENOLINK: c_int = 67; 680 pub const EADV: c_int = 68; 681 pub const ESRMNT: c_int = 69; 682 pub const ECOMM: c_int = 70; 683 pub const EPROTO: c_int = 71; 684 pub const EDOTDOT: c_int = 73; 685 pub const EMULTIHOP: c_int = 72; 686 pub const EOVERFLOW: c_int = 75; 687 pub const ENOTUNIQ: c_int = 76; 688 pub const EBADFD: c_int = 77; 689 pub const EBADMSG: c_int = 74; 690 pub const EREMCHG: c_int = 78; 691 pub const ELIBACC: c_int = 79; 692 pub const ELIBBAD: c_int = 80; 693 pub const ELIBSCN: c_int = 81; 694 pub const ELIBMAX: c_int = 82; 695 pub const ELIBEXEC: c_int = 83; 696 pub const EILSEQ: c_int = 84; 697 pub const ERESTART: c_int = 85; 698 pub const ESTRPIPE: c_int = 86; 699 pub const EUSERS: c_int = 87; 700 pub const ENOTSOCK: c_int = 88; 701 pub const EDESTADDRREQ: c_int = 89; 702 pub const EMSGSIZE: c_int = 90; 703 pub const EPROTOTYPE: c_int = 91; 704 pub const ENOPROTOOPT: c_int = 92; 705 pub const EPROTONOSUPPORT: c_int = 93; 706 pub const ESOCKTNOSUPPORT: c_int = 94; 707 pub const EOPNOTSUPP: c_int = 95; 708 pub const EPFNOSUPPORT: c_int = 96; 709 pub const EAFNOSUPPORT: c_int = 97; 710 pub const EADDRINUSE: c_int = 98; 711 pub const EADDRNOTAVAIL: c_int = 99; 712 pub const ENETDOWN: c_int = 100; 713 pub const ENETUNREACH: c_int = 101; 714 pub const ENETRESET: c_int = 102; 715 pub const ECONNABORTED: c_int = 103; 716 pub const ECONNRESET: c_int = 104; 717 pub const ENOBUFS: c_int = 105; 718 pub const EISCONN: c_int = 106; 719 pub const ENOTCONN: c_int = 107; 720 pub const ESHUTDOWN: c_int = 108; 721 pub const ETOOMANYREFS: c_int = 109; 722 pub const ETIMEDOUT: c_int = 110; 723 pub const ECONNREFUSED: c_int = 111; 724 pub const EHOSTDOWN: c_int = 112; 725 pub const EHOSTUNREACH: c_int = 113; 726 pub const EALREADY: c_int = 114; 727 pub const EINPROGRESS: c_int = 115; 728 pub const ESTALE: c_int = 116; 729 pub const EUCLEAN: c_int = 117; 730 pub const ENOTNAM: c_int = 118; 731 pub const ENAVAIL: c_int = 119; 732 pub const EISNAM: c_int = 120; 733 pub const EREMOTEIO: c_int = 121; 734 pub const EDQUOT: c_int = 122; 735 pub const ENOMEDIUM: c_int = 123; 736 pub const EMEDIUMTYPE: c_int = 124; 737 pub const ECANCELED: c_int = 125; 738 pub const ENOKEY: c_int = 126; 739 pub const EKEYEXPIRED: c_int = 127; 740 pub const EKEYREVOKED: c_int = 128; 741 pub const EKEYREJECTED: c_int = 129; 742 pub const EOWNERDEAD: c_int = 130; 743 pub const ENOTRECOVERABLE: c_int = 131; 744 pub const ERFKILL: c_int = 132; 745 pub const EHWPOISON: c_int = 133; 746 747 pub const MADV_SOFT_OFFLINE: c_int = 101; 748 749 pub const MAP_NORESERVE: c_int = 0x4000; 750 pub const MAP_ANONYMOUS: c_int = 0x0020; 751 pub const MAP_ANON: c_int = 0x0020; 752 pub const MAP_GROWSDOWN: c_int = 0x0100; 753 pub const MAP_DENYWRITE: c_int = 0x0800; 754 pub const MAP_EXECUTABLE: c_int = 0x1000; 755 pub const MAP_LOCKED: c_int = 0x2000; 756 pub const MAP_POPULATE: c_int = 0x8000; 757 pub const MAP_NONBLOCK: c_int = 0x10000; 758 pub const MAP_STACK: c_int = 0x20000; 759 pub const MAP_HUGETLB: c_int = 0x40000; 760 pub const MAP_SYNC: c_int = 0x080000; 761 pub const MCL_CURRENT: c_int = 0x0001; 762 pub const MCL_FUTURE: c_int = 0x0002; 763 pub const MCL_ONFAULT: c_int = 0x0004; 764 765 pub const SOCK_STREAM: c_int = 1; 766 pub const SOCK_DGRAM: c_int = 2; 767 768 pub const SFD_NONBLOCK: c_int = 0x800; 769 pub const SFD_CLOEXEC: c_int = 0x080000; 770 pub const SA_NODEFER: c_int = 0x40000000; 771 pub const SA_RESETHAND: c_int = 0x80000000; 772 pub const SA_RESTART: c_int = 0x10000000; 773 pub const SA_NOCLDSTOP: c_int = 0x00000001; 774 pub const SA_ONSTACK: c_int = 0x08000000; 775 pub const SA_SIGINFO: c_int = 0x00000004; 776 pub const SA_NOCLDWAIT: c_int = 0x00000002; 777 pub const SIG_BLOCK: c_int = 0; 778 pub const SIG_UNBLOCK: c_int = 1; 779 pub const SIG_SETMASK: c_int = 2; 780 pub const SIGBUS: c_int = 7; 781 pub const SIGUSR1: c_int = 10; 782 pub const SIGUSR2: c_int = 12; 783 pub const SIGSTKFLT: c_int = 16; 784 pub const SIGCHLD: c_int = 17; 785 pub const SIGCONT: c_int = 18; 786 pub const SIGSTOP: c_int = 19; 787 pub const SIGTSTP: c_int = 20; 788 pub const SIGTTIN: c_int = 21; 789 pub const SIGTTOU: c_int = 22; 790 pub const SIGURG: c_int = 23; 791 pub const SIGXCPU: c_int = 24; 792 pub const SIGXFSZ: c_int = 25; 793 pub const SIGVTALRM: c_int = 26; 794 pub const SIGPROF: c_int = 27; 795 pub const SIGWINCH: c_int = 28; 796 pub const SIGIO: c_int = 29; 797 pub const SIGPOLL: c_int = 29; 798 pub const SIGPWR: c_int = 30; 799 pub const SIGSYS: c_int = 31; 800 pub const SIGUNUSED: c_int = 31; 801 802 pub const POLLWRNORM: c_short = 0x100; 803 pub const POLLWRBAND: c_short = 0x200; 804 805 pub const PTRACE_GETFPREGS: c_uint = 14; 806 pub const PTRACE_SETFPREGS: c_uint = 15; 807 pub const PTRACE_DETACH: c_uint = 17; 808 pub const PTRACE_GETFPXREGS: c_uint = 18; 809 pub const PTRACE_SETFPXREGS: c_uint = 19; 810 pub const PTRACE_GETREGS: c_uint = 12; 811 pub const PTRACE_SETREGS: c_uint = 13; 812 pub const PTRACE_SYSEMU: c_uint = 31; 813 pub const PTRACE_SYSEMU_SINGLESTEP: c_uint = 32; 814 815 pub const RTLD_DEEPBIND: c_int = 0x8; 816 pub const RTLD_GLOBAL: c_int = 0x100; 817 pub const RTLD_NOLOAD: c_int = 0x4; 818 819 pub const VEOF: usize = 4; 820 pub const VTIME: usize = 5; 821 pub const VMIN: usize = 6; 822 pub const VSWTC: usize = 7; 823 pub const VSTART: usize = 8; 824 pub const VSTOP: usize = 9; 825 pub const VSUSP: usize = 10; 826 pub const VEOL: usize = 11; 827 pub const VREPRINT: usize = 12; 828 pub const VDISCARD: usize = 13; 829 pub const VWERASE: usize = 14; 830 pub const VEOL2: usize = 16; 831 pub const IEXTEN: crate::tcflag_t = 0x00008000; 832 pub const TOSTOP: crate::tcflag_t = 0x00000100; 833 pub const FLUSHO: crate::tcflag_t = 0x00001000; 834 pub const EXTPROC: crate::tcflag_t = 0x00010000; 835 pub const TCSANOW: c_int = 0; 836 pub const TCSADRAIN: c_int = 1; 837 pub const TCSAFLUSH: c_int = 2; 838 pub const SIGSTKSZ: size_t = 16384; 839 pub const MINSIGSTKSZ: size_t = 4096; 840 pub const CBAUD: crate::tcflag_t = 0o0010017; 841 pub const CSIZE: crate::tcflag_t = 0x00000030; 842 pub const CS6: crate::tcflag_t = 0x00000010; 843 pub const CS7: crate::tcflag_t = 0x00000020; 844 pub const CS8: crate::tcflag_t = 0x00000030; 845 pub const CSTOPB: crate::tcflag_t = 0x00000040; 846 pub const CREAD: crate::tcflag_t = 0x00000080; 847 pub const PARENB: crate::tcflag_t = 0x00000100; 848 pub const PARODD: crate::tcflag_t = 0x00000200; 849 pub const HUPCL: crate::tcflag_t = 0x00000400; 850 pub const CLOCAL: crate::tcflag_t = 0x00000800; 851 pub const CIBAUD: crate::tcflag_t = 0o02003600000; 852 pub const CBAUDEX: crate::tcflag_t = 0o010000; 853 pub const B0: crate::speed_t = 0o000000; 854 pub const B50: crate::speed_t = 0o000001; 855 pub const B75: crate::speed_t = 0o000002; 856 pub const B110: crate::speed_t = 0o000003; 857 pub const B134: crate::speed_t = 0o000004; 858 pub const B150: crate::speed_t = 0o000005; 859 pub const B200: crate::speed_t = 0o000006; 860 pub const B300: crate::speed_t = 0o000007; 861 pub const B600: crate::speed_t = 0o000010; 862 pub const B1200: crate::speed_t = 0o000011; 863 pub const B1800: crate::speed_t = 0o000012; 864 pub const B2400: crate::speed_t = 0o000013; 865 pub const B4800: crate::speed_t = 0o000014; 866 pub const B9600: crate::speed_t = 0o000015; 867 pub const B19200: crate::speed_t = 0o000016; 868 pub const B38400: crate::speed_t = 0o000017; 869 pub const EXTA: crate::speed_t = B19200; 870 pub const EXTB: crate::speed_t = B38400; 871 pub const B57600: crate::speed_t = 0o010001; 872 pub const B115200: crate::speed_t = 0o010002; 873 pub const B230400: crate::speed_t = 0o010003; 874 pub const B460800: crate::speed_t = 0o010004; 875 pub const B500000: crate::speed_t = 0o010005; 876 pub const B576000: crate::speed_t = 0o010006; 877 pub const B921600: crate::speed_t = 0o010007; 878 pub const B1000000: crate::speed_t = 0o010010; 879 pub const B1152000: crate::speed_t = 0o010011; 880 pub const B1500000: crate::speed_t = 0o010012; 881 pub const B2000000: crate::speed_t = 0o010013; 882 pub const B2500000: crate::speed_t = 0o010014; 883 pub const B3000000: crate::speed_t = 0o010015; 884 pub const B3500000: crate::speed_t = 0o010016; 885 pub const B4000000: crate::speed_t = 0o010017; 886 pub const TAB1: crate::tcflag_t = 0x00000800; 887 pub const TAB2: crate::tcflag_t = 0x00001000; 888 pub const TAB3: crate::tcflag_t = 0x00001800; 889 pub const CR1: crate::tcflag_t = 0x00000200; 890 pub const CR2: crate::tcflag_t = 0x00000400; 891 pub const CR3: crate::tcflag_t = 0x00000600; 892 pub const FF1: crate::tcflag_t = 0x00008000; 893 pub const BS1: crate::tcflag_t = 0x00002000; 894 pub const OLCUC: crate::tcflag_t = 0o000002; 895 pub const NLDLY: crate::tcflag_t = 0o000400; 896 pub const CRDLY: crate::tcflag_t = 0o003000; 897 pub const TABDLY: crate::tcflag_t = 0o014000; 898 pub const BSDLY: crate::tcflag_t = 0o020000; 899 pub const FFDLY: crate::tcflag_t = 0o100000; 900 pub const VTDLY: crate::tcflag_t = 0o040000; 901 pub const XTABS: crate::tcflag_t = 0o014000; 902 pub const VT1: crate::tcflag_t = 0x00004000; 903 pub const ONLCR: crate::tcflag_t = 0x4; 904 pub const IXON: crate::tcflag_t = 0x00000400; 905 pub const IXOFF: crate::tcflag_t = 0x00001000; 906 pub const ECHOKE: crate::tcflag_t = 0x00000800; 907 pub const ECHOE: crate::tcflag_t = 0x00000010; 908 pub const ECHOK: crate::tcflag_t = 0x00000020; 909 pub const ECHONL: crate::tcflag_t = 0x00000040; 910 pub const ECHOPRT: crate::tcflag_t = 0x00000400; 911 pub const ECHOCTL: crate::tcflag_t = 0x00000200; 912 pub const ISIG: crate::tcflag_t = 0x00000001; 913 pub const ICANON: crate::tcflag_t = 0x00000002; 914 pub const XCASE: crate::tcflag_t = 0x00000004; 915 pub const PENDIN: crate::tcflag_t = 0x00004000; 916 pub const NOFLSH: crate::tcflag_t = 0x00000080; 917 918 pub const NCCS: usize = 32; 919 920 pub const EPOLL_CLOEXEC: c_int = 0x80000; 921 922 pub const EFD_CLOEXEC: c_int = 0x80000; 923 pub const EFD_NONBLOCK: c_int = 0x800; 924