From f4f8986fedc9f873cc9f53999686a1edd3caeba9 Mon Sep 17 00:00:00 2001 From: Danilo Bargen Date: Sun, 19 May 2019 01:17:17 +0200 Subject: [PATCH 001/296] Add ttyname_r --- src/unix/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 1565b6338c121..9160af3f0cefa 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -753,6 +753,8 @@ extern { pub fn tcgetpgrp(fd: ::c_int) -> pid_t; pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; + pub fn ttyname_r(fd: ::c_int, + buf: *mut c_char, buflen: ::size_t) -> ::c_int; pub fn unlink(c: *const c_char) -> ::c_int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "wait$UNIX2003")] From a85e001b935420bac164afb7f3ea52d3393a6b8b Mon Sep 17 00:00:00 2001 From: red75prime Date: Sun, 2 Jun 2019 20:36:20 +0500 Subject: [PATCH 002/296] Fix libstd compilation for arm-uclibc target --- src/unix/uclibc/arm/mod.rs | 377 ++++++++++++++++++++++++++++++++++++- 1 file changed, 368 insertions(+), 9 deletions(-) diff --git a/src/unix/uclibc/arm/mod.rs b/src/unix/uclibc/arm/mod.rs index 16512859be3bb..a96154569c3bd 100644 --- a/src/unix/uclibc/arm/mod.rs +++ b/src/unix/uclibc/arm/mod.rs @@ -51,9 +51,12 @@ s! { pub st_size: ::off_t, pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_ulong, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_ulong, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_ulong, pub __unused4: ::c_ulong, pub __unused5: ::c_ulong, } @@ -72,9 +75,12 @@ s! { pub st_size: ::off64_t, pub st_blksize: ::blksize_t, pub st_blocks: ::blkcnt64_t, - pub st_atim: ::timespec, - pub st_mtim: ::timespec, - pub st_ctim: ::timespec, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_ulong, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_ulong, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_ulong, pub st_ino: ::ino64_t, } @@ -134,8 +140,8 @@ s! { pub struct stack_t { pub ss_sp: *mut ::c_void, - ss_flags: ::c_int, - ss_size: ::size_t, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, } pub struct ipc_perm { @@ -462,6 +468,7 @@ pub const POLLRDBAND: ::c_short = 0x80; pub const POLLRDNORM: ::c_short = 0x40; pub const POLLWRBAND: ::c_short = 0x200; pub const POLLWRNORM: ::c_short = 0x100; +pub const PTHREAD_STACK_MIN: ::size_t = 16384; pub const QIF_ALL: u32 = 0x3f; pub const QIF_BLIMITS: u32 = 0x1; pub const QIF_BTIME: u32 = 0x10; @@ -488,6 +495,7 @@ pub const SIGIO: ::c_int = 0x1d; pub const SIGPROF: ::c_int = 0x1b; pub const SIGPWR: ::c_int = 0x1e; pub const SIGSTKFLT: ::c_int = 0x10; +pub const SIGSTKSZ: ::size_t = 8192; pub const SIGSTOP: ::c_int = 0x13; pub const SIGSYS: ::c_int = 0x1f; pub const SIGTSTP: ::c_int = 0x14; @@ -534,7 +542,6 @@ pub const SO_SNDLOWAT: ::c_int = 0x13; pub const SO_SNDTIMEO: ::c_int = 0x15; pub const SO_TIMESTAMP: ::c_int = 0x1d; pub const SO_TYPE: ::c_int = 0x3; -pub const SYS_gettid: ::c_int = 0xe0; pub const TAB1: ::c_int = 0x800; pub const TAB2: ::c_int = 0x1000; pub const TAB3: ::c_int = 0x1800; @@ -611,6 +618,358 @@ pub const _SC_V6_LP64_OFF64: ::c_int = 0xb2; pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 0xb3; pub const _SC_XOPEN_STREAMS: ::c_int = 0xf6; +// Syscall table is copied from src/unix/notbsd/linux/musl/b32/arm.rs +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execve: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_mount: ::c_long = 21; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_pause: ::c_long = 29; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_rename: ::c_long = 38; +pub const SYS_mkdir: ::c_long = 39; +pub const SYS_rmdir: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_brk: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_umount2: ::c_long = 52; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_fcntl: ::c_long = 55; +pub const SYS_setpgid: ::c_long = 57; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_ustat: ::c_long = 62; +pub const SYS_dup2: ::c_long = 63; +pub const SYS_getppid: ::c_long = 64; +pub const SYS_getpgrp: ::c_long = 65; +pub const SYS_setsid: ::c_long = 66; +pub const SYS_sigaction: ::c_long = 67; +pub const SYS_setreuid: ::c_long = 70; +pub const SYS_setregid: ::c_long = 71; +pub const SYS_sigsuspend: ::c_long = 72; +pub const SYS_sigpending: ::c_long = 73; +pub const SYS_sethostname: ::c_long = 74; +pub const SYS_setrlimit: ::c_long = 75; +pub const SYS_getrusage: ::c_long = 77; +pub const SYS_gettimeofday: ::c_long = 78; +pub const SYS_settimeofday: ::c_long = 79; +pub const SYS_getgroups: ::c_long = 80; +pub const SYS_setgroups: ::c_long = 81; +pub const SYS_symlink: ::c_long = 83; +pub const SYS_readlink: ::c_long = 85; +pub const SYS_uselib: ::c_long = 86; +pub const SYS_swapon: ::c_long = 87; +pub const SYS_reboot: ::c_long = 88; +pub const SYS_munmap: ::c_long = 91; +pub const SYS_truncate: ::c_long = 92; +pub const SYS_ftruncate: ::c_long = 93; +pub const SYS_fchmod: ::c_long = 94; +pub const SYS_fchown: ::c_long = 95; +pub const SYS_getpriority: ::c_long = 96; +pub const SYS_setpriority: ::c_long = 97; +pub const SYS_statfs: ::c_long = 99; +pub const SYS_fstatfs: ::c_long = 100; +pub const SYS_syslog: ::c_long = 103; +pub const SYS_setitimer: ::c_long = 104; +pub const SYS_getitimer: ::c_long = 105; +pub const SYS_stat: ::c_long = 106; +pub const SYS_lstat: ::c_long = 107; +pub const SYS_fstat: ::c_long = 108; +pub const SYS_vhangup: ::c_long = 111; +pub const SYS_wait4: ::c_long = 114; +pub const SYS_swapoff: ::c_long = 115; +pub const SYS_sysinfo: ::c_long = 116; +pub const SYS_fsync: ::c_long = 118; +pub const SYS_sigreturn: ::c_long = 119; +pub const SYS_clone: ::c_long = 120; +pub const SYS_setdomainname: ::c_long = 121; +pub const SYS_uname: ::c_long = 122; +pub const SYS_adjtimex: ::c_long = 124; +pub const SYS_mprotect: ::c_long = 125; +pub const SYS_sigprocmask: ::c_long = 126; +pub const SYS_init_module: ::c_long = 128; +pub const SYS_delete_module: ::c_long = 129; +pub const SYS_quotactl: ::c_long = 131; +pub const SYS_getpgid: ::c_long = 132; +pub const SYS_fchdir: ::c_long = 133; +pub const SYS_bdflush: ::c_long = 134; +pub const SYS_sysfs: ::c_long = 135; +pub const SYS_personality: ::c_long = 136; +pub const SYS_setfsuid: ::c_long = 138; +pub const SYS_setfsgid: ::c_long = 139; +pub const SYS__llseek: ::c_long = 140; +pub const SYS_getdents: ::c_long = 141; +pub const SYS__newselect: ::c_long = 142; +pub const SYS_flock: ::c_long = 143; +pub const SYS_msync: ::c_long = 144; +pub const SYS_readv: ::c_long = 145; +pub const SYS_writev: ::c_long = 146; +pub const SYS_getsid: ::c_long = 147; +pub const SYS_fdatasync: ::c_long = 148; +pub const SYS__sysctl: ::c_long = 149; +pub const SYS_mlock: ::c_long = 150; +pub const SYS_munlock: ::c_long = 151; +pub const SYS_mlockall: ::c_long = 152; +pub const SYS_munlockall: ::c_long = 153; +pub const SYS_sched_setparam: ::c_long = 154; +pub const SYS_sched_getparam: ::c_long = 155; +pub const SYS_sched_setscheduler: ::c_long = 156; +pub const SYS_sched_getscheduler: ::c_long = 157; +pub const SYS_sched_yield: ::c_long = 158; +pub const SYS_sched_get_priority_max: ::c_long = 159; +pub const SYS_sched_get_priority_min: ::c_long = 160; +pub const SYS_sched_rr_get_interval: ::c_long = 161; +pub const SYS_nanosleep: ::c_long = 162; +pub const SYS_mremap: ::c_long = 163; +pub const SYS_setresuid: ::c_long = 164; +pub const SYS_getresuid: ::c_long = 165; +pub const SYS_poll: ::c_long = 168; +pub const SYS_nfsservctl: ::c_long = 169; +pub const SYS_setresgid: ::c_long = 170; +pub const SYS_getresgid: ::c_long = 171; +pub const SYS_prctl: ::c_long = 172; +pub const SYS_rt_sigreturn: ::c_long = 173; +pub const SYS_rt_sigaction: ::c_long = 174; +pub const SYS_rt_sigprocmask: ::c_long = 175; +pub const SYS_rt_sigpending: ::c_long = 176; +pub const SYS_rt_sigtimedwait: ::c_long = 177; +pub const SYS_rt_sigqueueinfo: ::c_long = 178; +pub const SYS_rt_sigsuspend: ::c_long = 179; +pub const SYS_pread64: ::c_long = 180; +pub const SYS_pwrite64: ::c_long = 181; +pub const SYS_chown: ::c_long = 182; +pub const SYS_getcwd: ::c_long = 183; +pub const SYS_capget: ::c_long = 184; +pub const SYS_capset: ::c_long = 185; +pub const SYS_sigaltstack: ::c_long = 186; +pub const SYS_sendfile: ::c_long = 187; +pub const SYS_vfork: ::c_long = 190; +pub const SYS_ugetrlimit: ::c_long = 191; +pub const SYS_mmap2: ::c_long = 192; +pub const SYS_truncate64: ::c_long = 193; +pub const SYS_ftruncate64: ::c_long = 194; +pub const SYS_stat64: ::c_long = 195; +pub const SYS_lstat64: ::c_long = 196; +pub const SYS_fstat64: ::c_long = 197; +pub const SYS_lchown32: ::c_long = 198; +pub const SYS_getuid32: ::c_long = 199; +pub const SYS_getgid32: ::c_long = 200; +pub const SYS_geteuid32: ::c_long = 201; +pub const SYS_getegid32: ::c_long = 202; +pub const SYS_setreuid32: ::c_long = 203; +pub const SYS_setregid32: ::c_long = 204; +pub const SYS_getgroups32: ::c_long = 205; +pub const SYS_setgroups32: ::c_long = 206; +pub const SYS_fchown32: ::c_long = 207; +pub const SYS_setresuid32: ::c_long = 208; +pub const SYS_getresuid32: ::c_long = 209; +pub const SYS_setresgid32: ::c_long = 210; +pub const SYS_getresgid32: ::c_long = 211; +pub const SYS_chown32: ::c_long = 212; +pub const SYS_setuid32: ::c_long = 213; +pub const SYS_setgid32: ::c_long = 214; +pub const SYS_setfsuid32: ::c_long = 215; +pub const SYS_setfsgid32: ::c_long = 216; +pub const SYS_getdents64: ::c_long = 217; +pub const SYS_pivot_root: ::c_long = 218; +pub const SYS_mincore: ::c_long = 219; +pub const SYS_madvise: ::c_long = 220; +pub const SYS_fcntl64: ::c_long = 221; +pub const SYS_gettid: ::c_long = 224; +pub const SYS_readahead: ::c_long = 225; +pub const SYS_setxattr: ::c_long = 226; +pub const SYS_lsetxattr: ::c_long = 227; +pub const SYS_fsetxattr: ::c_long = 228; +pub const SYS_getxattr: ::c_long = 229; +pub const SYS_lgetxattr: ::c_long = 230; +pub const SYS_fgetxattr: ::c_long = 231; +pub const SYS_listxattr: ::c_long = 232; +pub const SYS_llistxattr: ::c_long = 233; +pub const SYS_flistxattr: ::c_long = 234; +pub const SYS_removexattr: ::c_long = 235; +pub const SYS_lremovexattr: ::c_long = 236; +pub const SYS_fremovexattr: ::c_long = 237; +pub const SYS_tkill: ::c_long = 238; +pub const SYS_sendfile64: ::c_long = 239; +pub const SYS_futex: ::c_long = 240; +pub const SYS_sched_setaffinity: ::c_long = 241; +pub const SYS_sched_getaffinity: ::c_long = 242; +pub const SYS_io_setup: ::c_long = 243; +pub const SYS_io_destroy: ::c_long = 244; +pub const SYS_io_getevents: ::c_long = 245; +pub const SYS_io_submit: ::c_long = 246; +pub const SYS_io_cancel: ::c_long = 247; +pub const SYS_exit_group: ::c_long = 248; +pub const SYS_lookup_dcookie: ::c_long = 249; +pub const SYS_epoll_create: ::c_long = 250; +pub const SYS_epoll_ctl: ::c_long = 251; +pub const SYS_epoll_wait: ::c_long = 252; +pub const SYS_remap_file_pages: ::c_long = 253; +pub const SYS_set_tid_address: ::c_long = 256; +pub const SYS_timer_create: ::c_long = 257; +pub const SYS_timer_settime: ::c_long = 258; +pub const SYS_timer_gettime: ::c_long = 259; +pub const SYS_timer_getoverrun: ::c_long = 260; +pub const SYS_timer_delete: ::c_long = 261; +pub const SYS_clock_settime: ::c_long = 262; +pub const SYS_clock_gettime: ::c_long = 263; +pub const SYS_clock_getres: ::c_long = 264; +pub const SYS_clock_nanosleep: ::c_long = 265; +pub const SYS_statfs64: ::c_long = 266; +pub const SYS_fstatfs64: ::c_long = 267; +pub const SYS_tgkill: ::c_long = 268; +pub const SYS_utimes: ::c_long = 269; +pub const SYS_pciconfig_iobase: ::c_long = 271; +pub const SYS_pciconfig_read: ::c_long = 272; +pub const SYS_pciconfig_write: ::c_long = 273; +pub const SYS_mq_open: ::c_long = 274; +pub const SYS_mq_unlink: ::c_long = 275; +pub const SYS_mq_timedsend: ::c_long = 276; +pub const SYS_mq_timedreceive: ::c_long = 277; +pub const SYS_mq_notify: ::c_long = 278; +pub const SYS_mq_getsetattr: ::c_long = 279; +pub const SYS_waitid: ::c_long = 280; +pub const SYS_socket: ::c_long = 281; +pub const SYS_bind: ::c_long = 282; +pub const SYS_connect: ::c_long = 283; +pub const SYS_listen: ::c_long = 284; +pub const SYS_accept: ::c_long = 285; +pub const SYS_getsockname: ::c_long = 286; +pub const SYS_getpeername: ::c_long = 287; +pub const SYS_socketpair: ::c_long = 288; +pub const SYS_send: ::c_long = 289; +pub const SYS_sendto: ::c_long = 290; +pub const SYS_recv: ::c_long = 291; +pub const SYS_recvfrom: ::c_long = 292; +pub const SYS_shutdown: ::c_long = 293; +pub const SYS_setsockopt: ::c_long = 294; +pub const SYS_getsockopt: ::c_long = 295; +pub const SYS_sendmsg: ::c_long = 296; +pub const SYS_recvmsg: ::c_long = 297; +pub const SYS_semop: ::c_long = 298; +pub const SYS_semget: ::c_long = 299; +pub const SYS_semctl: ::c_long = 300; +pub const SYS_msgsnd: ::c_long = 301; +pub const SYS_msgrcv: ::c_long = 302; +pub const SYS_msgget: ::c_long = 303; +pub const SYS_msgctl: ::c_long = 304; +pub const SYS_shmat: ::c_long = 305; +pub const SYS_shmdt: ::c_long = 306; +pub const SYS_shmget: ::c_long = 307; +pub const SYS_shmctl: ::c_long = 308; +pub const SYS_add_key: ::c_long = 309; +pub const SYS_request_key: ::c_long = 310; +pub const SYS_keyctl: ::c_long = 311; +pub const SYS_semtimedop: ::c_long = 312; +pub const SYS_vserver: ::c_long = 313; +pub const SYS_ioprio_set: ::c_long = 314; +pub const SYS_ioprio_get: ::c_long = 315; +pub const SYS_inotify_init: ::c_long = 316; +pub const SYS_inotify_add_watch: ::c_long = 317; +pub const SYS_inotify_rm_watch: ::c_long = 318; +pub const SYS_mbind: ::c_long = 319; +pub const SYS_get_mempolicy: ::c_long = 320; +pub const SYS_set_mempolicy: ::c_long = 321; +pub const SYS_openat: ::c_long = 322; +pub const SYS_mkdirat: ::c_long = 323; +pub const SYS_mknodat: ::c_long = 324; +pub const SYS_fchownat: ::c_long = 325; +pub const SYS_futimesat: ::c_long = 326; +pub const SYS_fstatat64: ::c_long = 327; +pub const SYS_unlinkat: ::c_long = 328; +pub const SYS_renameat: ::c_long = 329; +pub const SYS_linkat: ::c_long = 330; +pub const SYS_symlinkat: ::c_long = 331; +pub const SYS_readlinkat: ::c_long = 332; +pub const SYS_fchmodat: ::c_long = 333; +pub const SYS_faccessat: ::c_long = 334; +pub const SYS_pselect6: ::c_long = 335; +pub const SYS_ppoll: ::c_long = 336; +pub const SYS_unshare: ::c_long = 337; +pub const SYS_set_robust_list: ::c_long = 338; +pub const SYS_get_robust_list: ::c_long = 339; +pub const SYS_splice: ::c_long = 340; +pub const SYS_tee: ::c_long = 342; +pub const SYS_vmsplice: ::c_long = 343; +pub const SYS_move_pages: ::c_long = 344; +pub const SYS_getcpu: ::c_long = 345; +pub const SYS_epoll_pwait: ::c_long = 346; +pub const SYS_kexec_load: ::c_long = 347; +pub const SYS_utimensat: ::c_long = 348; +pub const SYS_signalfd: ::c_long = 349; +pub const SYS_timerfd_create: ::c_long = 350; +pub const SYS_eventfd: ::c_long = 351; +pub const SYS_fallocate: ::c_long = 352; +pub const SYS_timerfd_settime: ::c_long = 353; +pub const SYS_timerfd_gettime: ::c_long = 354; +pub const SYS_signalfd4: ::c_long = 355; +pub const SYS_eventfd2: ::c_long = 356; +pub const SYS_epoll_create1: ::c_long = 357; +pub const SYS_dup3: ::c_long = 358; +pub const SYS_pipe2: ::c_long = 359; +pub const SYS_inotify_init1: ::c_long = 360; +pub const SYS_preadv: ::c_long = 361; +pub const SYS_pwritev: ::c_long = 362; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 363; +pub const SYS_perf_event_open: ::c_long = 364; +pub const SYS_recvmmsg: ::c_long = 365; +pub const SYS_accept4: ::c_long = 366; +pub const SYS_fanotify_init: ::c_long = 367; +pub const SYS_fanotify_mark: ::c_long = 368; +pub const SYS_prlimit64: ::c_long = 369; +pub const SYS_name_to_handle_at: ::c_long = 370; +pub const SYS_open_by_handle_at: ::c_long = 371; +pub const SYS_clock_adjtime: ::c_long = 372; +pub const SYS_syncfs: ::c_long = 373; +pub const SYS_sendmmsg: ::c_long = 374; +pub const SYS_setns: ::c_long = 375; +pub const SYS_process_vm_readv: ::c_long = 376; +pub const SYS_process_vm_writev: ::c_long = 377; +pub const SYS_kcmp: ::c_long = 378; +pub const SYS_finit_module: ::c_long = 379; +pub const SYS_sched_setattr: ::c_long = 380; +pub const SYS_sched_getattr: ::c_long = 381; +pub const SYS_renameat2: ::c_long = 382; +pub const SYS_seccomp: ::c_long = 383; +pub const SYS_getrandom: ::c_long = 384; +pub const SYS_memfd_create: ::c_long = 385; +pub const SYS_bpf: ::c_long = 386; +pub const SYS_execveat: ::c_long = 387; +pub const SYS_userfaultfd: ::c_long = 388; +pub const SYS_membarrier: ::c_long = 389; +pub const SYS_mlock2: ::c_long = 390; +pub const SYS_copy_file_range: ::c_long = 391; +pub const SYS_preadv2: ::c_long = 392; +pub const SYS_pwritev2: ::c_long = 393; +pub const SYS_pkey_mprotect: ::c_long = 394; +pub const SYS_pkey_alloc: ::c_long = 395; +pub const SYS_pkey_free: ::c_long = 396; + fn CMSG_ALIGN(len: usize) -> usize { len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) } From 8f098a3e3a65b09e65b21e3df0f6767d80e83f4c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 3 Jun 2019 21:46:43 +0200 Subject: [PATCH 003/296] Rename the notbsd module to linux_like --- src/unix/{notbsd => linux_like}/android/b32/arm.rs | 0 src/unix/{notbsd => linux_like}/android/b32/mod.rs | 0 src/unix/{notbsd => linux_like}/android/b32/x86.rs | 0 .../{notbsd => linux_like}/android/b64/aarch64.rs | 0 src/unix/{notbsd => linux_like}/android/b64/mod.rs | 0 .../{notbsd => linux_like}/android/b64/x86_64.rs | 0 src/unix/{notbsd => linux_like}/android/mod.rs | 0 .../{notbsd => linux_like}/emscripten/align.rs | 0 src/unix/{notbsd => linux_like}/emscripten/mod.rs | 2 +- .../{notbsd => linux_like}/emscripten/no_align.rs | 0 src/unix/{notbsd => linux_like}/linux/align.rs | 0 .../{notbsd => linux_like}/linux/mips/align.rs | 0 .../{notbsd => linux_like}/linux/mips/mips32.rs | 0 .../{notbsd => linux_like}/linux/mips/mips64.rs | 0 src/unix/{notbsd => linux_like}/linux/mips/mod.rs | 0 .../{notbsd => linux_like}/linux/mips/no_align.rs | 0 src/unix/{notbsd => linux_like}/linux/mod.rs | 0 .../{notbsd => linux_like}/linux/musl/b32/arm.rs | 0 .../{notbsd => linux_like}/linux/musl/b32/mips.rs | 0 .../{notbsd => linux_like}/linux/musl/b32/mod.rs | 0 .../linux/musl/b32/powerpc.rs | 0 .../{notbsd => linux_like}/linux/musl/b32/x86.rs | 0 .../linux/musl/b64/aarch64.rs | 0 .../{notbsd => linux_like}/linux/musl/b64/mod.rs | 0 .../linux/musl/b64/powerpc64.rs | 0 .../linux/musl/b64/x86_64.rs | 0 src/unix/{notbsd => linux_like}/linux/musl/mod.rs | 2 +- src/unix/{notbsd => linux_like}/linux/no_align.rs | 0 .../{notbsd => linux_like}/linux/other/align.rs | 0 .../{notbsd => linux_like}/linux/other/b32/arm.rs | 0 .../{notbsd => linux_like}/linux/other/b32/mod.rs | 0 .../linux/other/b32/powerpc.rs | 0 .../{notbsd => linux_like}/linux/other/b32/x86.rs | 0 .../linux/other/b64/aarch64.rs | 0 .../{notbsd => linux_like}/linux/other/b64/mod.rs | 0 .../linux/other/b64/not_x32.rs | 0 .../linux/other/b64/powerpc64.rs | 0 .../linux/other/b64/sparc64.rs | 0 .../{notbsd => linux_like}/linux/other/b64/x32.rs | 0 .../linux/other/b64/x86_64.rs | 0 src/unix/{notbsd => linux_like}/linux/other/mod.rs | 5 ++--- .../{notbsd => linux_like}/linux/other/no_align.rs | 0 .../{notbsd => linux_like}/linux/s390x/align.rs | 0 src/unix/{notbsd => linux_like}/linux/s390x/mod.rs | 0 .../{notbsd => linux_like}/linux/s390x/no_align.rs | 0 src/unix/{notbsd => linux_like}/mod.rs | 0 src/unix/mod.rs | 4 ++-- src/unix/uclibc/arm/mod.rs | 14 +++++++------- 48 files changed, 13 insertions(+), 14 deletions(-) rename src/unix/{notbsd => linux_like}/android/b32/arm.rs (100%) rename src/unix/{notbsd => linux_like}/android/b32/mod.rs (100%) rename src/unix/{notbsd => linux_like}/android/b32/x86.rs (100%) rename src/unix/{notbsd => linux_like}/android/b64/aarch64.rs (100%) rename src/unix/{notbsd => linux_like}/android/b64/mod.rs (100%) rename src/unix/{notbsd => linux_like}/android/b64/x86_64.rs (100%) rename src/unix/{notbsd => linux_like}/android/mod.rs (100%) rename src/unix/{notbsd => linux_like}/emscripten/align.rs (100%) rename src/unix/{notbsd => linux_like}/emscripten/mod.rs (99%) rename src/unix/{notbsd => linux_like}/emscripten/no_align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mips/align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mips/mips32.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mips/mips64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mips/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mips/no_align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b32/arm.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b32/mips.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b32/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b32/powerpc.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b32/x86.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b64/aarch64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b64/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b64/powerpc64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/b64/x86_64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/musl/mod.rs (99%) rename src/unix/{notbsd => linux_like}/linux/no_align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b32/arm.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b32/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b32/powerpc.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b32/x86.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/aarch64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/not_x32.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/powerpc64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/sparc64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/x32.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/b64/x86_64.rs (100%) rename src/unix/{notbsd => linux_like}/linux/other/mod.rs (99%) rename src/unix/{notbsd => linux_like}/linux/other/no_align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/s390x/align.rs (100%) rename src/unix/{notbsd => linux_like}/linux/s390x/mod.rs (100%) rename src/unix/{notbsd => linux_like}/linux/s390x/no_align.rs (100%) rename src/unix/{notbsd => linux_like}/mod.rs (100%) diff --git a/src/unix/notbsd/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs similarity index 100% rename from src/unix/notbsd/android/b32/arm.rs rename to src/unix/linux_like/android/b32/arm.rs diff --git a/src/unix/notbsd/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs similarity index 100% rename from src/unix/notbsd/android/b32/mod.rs rename to src/unix/linux_like/android/b32/mod.rs diff --git a/src/unix/notbsd/android/b32/x86.rs b/src/unix/linux_like/android/b32/x86.rs similarity index 100% rename from src/unix/notbsd/android/b32/x86.rs rename to src/unix/linux_like/android/b32/x86.rs diff --git a/src/unix/notbsd/android/b64/aarch64.rs b/src/unix/linux_like/android/b64/aarch64.rs similarity index 100% rename from src/unix/notbsd/android/b64/aarch64.rs rename to src/unix/linux_like/android/b64/aarch64.rs diff --git a/src/unix/notbsd/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs similarity index 100% rename from src/unix/notbsd/android/b64/mod.rs rename to src/unix/linux_like/android/b64/mod.rs diff --git a/src/unix/notbsd/android/b64/x86_64.rs b/src/unix/linux_like/android/b64/x86_64.rs similarity index 100% rename from src/unix/notbsd/android/b64/x86_64.rs rename to src/unix/linux_like/android/b64/x86_64.rs diff --git a/src/unix/notbsd/android/mod.rs b/src/unix/linux_like/android/mod.rs similarity index 100% rename from src/unix/notbsd/android/mod.rs rename to src/unix/linux_like/android/mod.rs diff --git a/src/unix/notbsd/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs similarity index 100% rename from src/unix/notbsd/emscripten/align.rs rename to src/unix/linux_like/emscripten/align.rs diff --git a/src/unix/notbsd/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs similarity index 99% rename from src/unix/notbsd/emscripten/mod.rs rename to src/unix/linux_like/emscripten/mod.rs index ba13d8eb7dc30..63e3e13f1cfdb 100644 --- a/src/unix/notbsd/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -1295,7 +1295,7 @@ pub const RTLD_GLOBAL: ::c_int = 0x100; pub const RTLD_NOLOAD: ::c_int = 0x4; // TODO(#247) Temporarily musl-specific (available since musl 0.9.12 / Linux -// kernel 3.10). See also notbsd/mod.rs +// kernel 3.10). See also linux_like/mod.rs pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; pub const CLOCK_TAI: ::clockid_t = 11; diff --git a/src/unix/notbsd/emscripten/no_align.rs b/src/unix/linux_like/emscripten/no_align.rs similarity index 100% rename from src/unix/notbsd/emscripten/no_align.rs rename to src/unix/linux_like/emscripten/no_align.rs diff --git a/src/unix/notbsd/linux/align.rs b/src/unix/linux_like/linux/align.rs similarity index 100% rename from src/unix/notbsd/linux/align.rs rename to src/unix/linux_like/linux/align.rs diff --git a/src/unix/notbsd/linux/mips/align.rs b/src/unix/linux_like/linux/mips/align.rs similarity index 100% rename from src/unix/notbsd/linux/mips/align.rs rename to src/unix/linux_like/linux/mips/align.rs diff --git a/src/unix/notbsd/linux/mips/mips32.rs b/src/unix/linux_like/linux/mips/mips32.rs similarity index 100% rename from src/unix/notbsd/linux/mips/mips32.rs rename to src/unix/linux_like/linux/mips/mips32.rs diff --git a/src/unix/notbsd/linux/mips/mips64.rs b/src/unix/linux_like/linux/mips/mips64.rs similarity index 100% rename from src/unix/notbsd/linux/mips/mips64.rs rename to src/unix/linux_like/linux/mips/mips64.rs diff --git a/src/unix/notbsd/linux/mips/mod.rs b/src/unix/linux_like/linux/mips/mod.rs similarity index 100% rename from src/unix/notbsd/linux/mips/mod.rs rename to src/unix/linux_like/linux/mips/mod.rs diff --git a/src/unix/notbsd/linux/mips/no_align.rs b/src/unix/linux_like/linux/mips/no_align.rs similarity index 100% rename from src/unix/notbsd/linux/mips/no_align.rs rename to src/unix/linux_like/linux/mips/no_align.rs diff --git a/src/unix/notbsd/linux/mod.rs b/src/unix/linux_like/linux/mod.rs similarity index 100% rename from src/unix/notbsd/linux/mod.rs rename to src/unix/linux_like/linux/mod.rs diff --git a/src/unix/notbsd/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b32/arm.rs rename to src/unix/linux_like/linux/musl/b32/arm.rs diff --git a/src/unix/notbsd/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b32/mips.rs rename to src/unix/linux_like/linux/musl/b32/mips.rs diff --git a/src/unix/notbsd/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b32/mod.rs rename to src/unix/linux_like/linux/musl/b32/mod.rs diff --git a/src/unix/notbsd/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b32/powerpc.rs rename to src/unix/linux_like/linux/musl/b32/powerpc.rs diff --git a/src/unix/notbsd/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b32/x86.rs rename to src/unix/linux_like/linux/musl/b32/x86.rs diff --git a/src/unix/notbsd/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b64/aarch64.rs rename to src/unix/linux_like/linux/musl/b64/aarch64.rs diff --git a/src/unix/notbsd/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b64/mod.rs rename to src/unix/linux_like/linux/musl/b64/mod.rs diff --git a/src/unix/notbsd/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b64/powerpc64.rs rename to src/unix/linux_like/linux/musl/b64/powerpc64.rs diff --git a/src/unix/notbsd/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs similarity index 100% rename from src/unix/notbsd/linux/musl/b64/x86_64.rs rename to src/unix/linux_like/linux/musl/b64/x86_64.rs diff --git a/src/unix/notbsd/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs similarity index 99% rename from src/unix/notbsd/linux/musl/mod.rs rename to src/unix/linux_like/linux/musl/mod.rs index 99d3ed8324f42..5dea49b92b905 100644 --- a/src/unix/notbsd/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -301,7 +301,7 @@ pub const RTLD_GLOBAL: ::c_int = 0x100; pub const RTLD_NOLOAD: ::c_int = 0x4; // TODO(#247) Temporarily musl-specific (available since musl 0.9.12 / Linux -// kernel 3.10). See also notbsd/mod.rs +// kernel 3.10). See also linux_like/mod.rs pub const CLOCK_SGI_CYCLE: ::clockid_t = 10; pub const CLOCK_TAI: ::clockid_t = 11; diff --git a/src/unix/notbsd/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs similarity index 100% rename from src/unix/notbsd/linux/no_align.rs rename to src/unix/linux_like/linux/no_align.rs diff --git a/src/unix/notbsd/linux/other/align.rs b/src/unix/linux_like/linux/other/align.rs similarity index 100% rename from src/unix/notbsd/linux/other/align.rs rename to src/unix/linux_like/linux/other/align.rs diff --git a/src/unix/notbsd/linux/other/b32/arm.rs b/src/unix/linux_like/linux/other/b32/arm.rs similarity index 100% rename from src/unix/notbsd/linux/other/b32/arm.rs rename to src/unix/linux_like/linux/other/b32/arm.rs diff --git a/src/unix/notbsd/linux/other/b32/mod.rs b/src/unix/linux_like/linux/other/b32/mod.rs similarity index 100% rename from src/unix/notbsd/linux/other/b32/mod.rs rename to src/unix/linux_like/linux/other/b32/mod.rs diff --git a/src/unix/notbsd/linux/other/b32/powerpc.rs b/src/unix/linux_like/linux/other/b32/powerpc.rs similarity index 100% rename from src/unix/notbsd/linux/other/b32/powerpc.rs rename to src/unix/linux_like/linux/other/b32/powerpc.rs diff --git a/src/unix/notbsd/linux/other/b32/x86.rs b/src/unix/linux_like/linux/other/b32/x86.rs similarity index 100% rename from src/unix/notbsd/linux/other/b32/x86.rs rename to src/unix/linux_like/linux/other/b32/x86.rs diff --git a/src/unix/notbsd/linux/other/b64/aarch64.rs b/src/unix/linux_like/linux/other/b64/aarch64.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/aarch64.rs rename to src/unix/linux_like/linux/other/b64/aarch64.rs diff --git a/src/unix/notbsd/linux/other/b64/mod.rs b/src/unix/linux_like/linux/other/b64/mod.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/mod.rs rename to src/unix/linux_like/linux/other/b64/mod.rs diff --git a/src/unix/notbsd/linux/other/b64/not_x32.rs b/src/unix/linux_like/linux/other/b64/not_x32.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/not_x32.rs rename to src/unix/linux_like/linux/other/b64/not_x32.rs diff --git a/src/unix/notbsd/linux/other/b64/powerpc64.rs b/src/unix/linux_like/linux/other/b64/powerpc64.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/powerpc64.rs rename to src/unix/linux_like/linux/other/b64/powerpc64.rs diff --git a/src/unix/notbsd/linux/other/b64/sparc64.rs b/src/unix/linux_like/linux/other/b64/sparc64.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/sparc64.rs rename to src/unix/linux_like/linux/other/b64/sparc64.rs diff --git a/src/unix/notbsd/linux/other/b64/x32.rs b/src/unix/linux_like/linux/other/b64/x32.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/x32.rs rename to src/unix/linux_like/linux/other/b64/x32.rs diff --git a/src/unix/notbsd/linux/other/b64/x86_64.rs b/src/unix/linux_like/linux/other/b64/x86_64.rs similarity index 100% rename from src/unix/notbsd/linux/other/b64/x86_64.rs rename to src/unix/linux_like/linux/other/b64/x86_64.rs diff --git a/src/unix/notbsd/linux/other/mod.rs b/src/unix/linux_like/linux/other/mod.rs similarity index 99% rename from src/unix/notbsd/linux/other/mod.rs rename to src/unix/linux_like/linux/other/mod.rs index 9714f1274610e..4acf30e1ae69a 100644 --- a/src/unix/notbsd/linux/other/mod.rs +++ b/src/unix/linux_like/linux/other/mod.rs @@ -1101,11 +1101,10 @@ extern { pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwent_r")] - pub fn getpwent_r(pwd: *mut ::unix::notbsd::linux::passwd, + pub fn getpwent_r(pwd: *mut ::passwd, buf: *mut ::c_char, buflen: ::size_t, - result: *mut *mut ::unix::notbsd - ::linux::passwd) -> ::c_int; + result: *mut *mut ::passwd) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getgrent_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrent_r")] pub fn getgrent_r(grp: *mut ::group, diff --git a/src/unix/notbsd/linux/other/no_align.rs b/src/unix/linux_like/linux/other/no_align.rs similarity index 100% rename from src/unix/notbsd/linux/other/no_align.rs rename to src/unix/linux_like/linux/other/no_align.rs diff --git a/src/unix/notbsd/linux/s390x/align.rs b/src/unix/linux_like/linux/s390x/align.rs similarity index 100% rename from src/unix/notbsd/linux/s390x/align.rs rename to src/unix/linux_like/linux/s390x/align.rs diff --git a/src/unix/notbsd/linux/s390x/mod.rs b/src/unix/linux_like/linux/s390x/mod.rs similarity index 100% rename from src/unix/notbsd/linux/s390x/mod.rs rename to src/unix/linux_like/linux/s390x/mod.rs diff --git a/src/unix/notbsd/linux/s390x/no_align.rs b/src/unix/linux_like/linux/s390x/no_align.rs similarity index 100% rename from src/unix/notbsd/linux/s390x/no_align.rs rename to src/unix/linux_like/linux/s390x/no_align.rs diff --git a/src/unix/notbsd/mod.rs b/src/unix/linux_like/mod.rs similarity index 100% rename from src/unix/notbsd/mod.rs rename to src/unix/linux_like/mod.rs diff --git a/src/unix/mod.rs b/src/unix/mod.rs index efaad41e84e20..24df725655c31 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1147,8 +1147,8 @@ cfg_if! { } else if #[cfg(any(target_os = "linux", target_os = "android", target_os = "emscripten"))] { - mod notbsd; - pub use self::notbsd::*; + mod linux_like; + pub use self::linux_like::*; } else if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd", diff --git a/src/unix/uclibc/arm/mod.rs b/src/unix/uclibc/arm/mod.rs index 16512859be3bb..4611467cd2d22 100644 --- a/src/unix/uclibc/arm/mod.rs +++ b/src/unix/uclibc/arm/mod.rs @@ -215,8 +215,8 @@ pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; // from linux/mod.rs pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; // from linux/mod.rs pub const EPOLLWAKEUP: ::c_int = 0x20000000; // from linux/other/mod.rs pub const EXTPROC: ::tcflag_t = 0o200000; // from asm-generic/termbits.h -pub const F_GETPIPE_SZ: ::c_int = 1032; // from notbsd/mod.rs -pub const F_SETPIPE_SZ: ::c_int = 1031; // from notbsd/mod.rs +pub const F_GETPIPE_SZ: ::c_int = 1032; // from linux_like/mod.rs +pub const F_SETPIPE_SZ: ::c_int = 1031; // from linux_like/mod.rs pub const LIO_NOP: ::c_int = 2; // from linux/mod.rs pub const LIO_NOWAIT: ::c_int = 1; // from linux/mod.rs pub const LIO_READ: ::c_int = 0; // from linux/mod.rs @@ -226,12 +226,12 @@ pub const MAP_HUGETLB: ::c_int = 0x040000; // from linux/other/mod.rs pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32; // from linux/mod.rs pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32; // from linux/mod.rs -pub const SO_BUSY_POLL: ::c_int = 46; // from src/unix/notbsd/mod.rs -pub const SO_PEEK_OFF: ::c_int = 42; // from src/unix/notbsd/mod.rs -pub const SO_REUSEPORT: ::c_int = 15; // from src/unix/notbsd/mod.rs -pub const SOL_NETLINK: ::c_int = 270; // from src/unix/notbsd/mod.rs +pub const SO_BUSY_POLL: ::c_int = 46; // from src/unix/linux_like/mod.rs +pub const SO_PEEK_OFF: ::c_int = 42; // from src/unix/linux_like/mod.rs +pub const SO_REUSEPORT: ::c_int = 15; // from src/unix/linux_like/mod.rs +pub const SOL_NETLINK: ::c_int = 270; // from src/unix/linux_like/mod.rs pub const _POSIX_VDISABLE: ::cc_t = 0; // from linux/mod.rs -pub const AT_EMPTY_PATH: ::c_int = 0x1000; // from notbsd/mod.rs +pub const AT_EMPTY_PATH: ::c_int = 0x1000; // from linux_like/mod.rs // autogenerated constants with hand tuned types pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; From 65f23e6aca49ab91325fe26ed3bee0463990680f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 4 Jun 2019 16:23:47 +0200 Subject: [PATCH 004/296] Move s390x into the gnu module --- .../linux_like/linux/{mips => gnu}/align.rs | 0 .../linux/{other => gnu}/b32/arm.rs | 0 .../linux/{other => gnu}/b32/mod.rs | 9 + .../linux/{other => gnu}/b32/powerpc.rs | 0 .../linux/{other => gnu}/b32/x86.rs | 0 .../linux/{other => gnu}/b64/aarch64.rs | 9 + .../linux/{other => gnu}/b64/mod.rs | 4 + .../linux/{other => gnu}/b64/not_x32.rs | 9 + .../linux/{other => gnu}/b64/powerpc64.rs | 9 + .../linux/{s390x/mod.rs => gnu/b64/s390x.rs} | 413 +----------------- .../linux/{other => gnu}/b64/sparc64.rs | 9 + .../linux/{other => gnu}/b64/x32.rs | 9 + .../linux/{other => gnu}/b64/x86_64.rs | 9 + .../linux/{other => gnu/mips}/align.rs | 0 .../linux_like/linux/{ => gnu}/mips/mips32.rs | 0 .../linux_like/linux/{ => gnu}/mips/mips64.rs | 0 .../linux_like/linux/{ => gnu}/mips/mod.rs | 0 .../linux/{ => gnu}/mips/no_align.rs | 0 .../linux_like/linux/{other => gnu}/mod.rs | 16 +- .../linux/{other => gnu}/no_align.rs | 0 src/unix/linux_like/linux/mod.rs | 13 +- src/unix/linux_like/linux/s390x/align.rs | 10 - src/unix/linux_like/linux/s390x/no_align.rs | 7 - 23 files changed, 92 insertions(+), 434 deletions(-) rename src/unix/linux_like/linux/{mips => gnu}/align.rs (100%) rename src/unix/linux_like/linux/{other => gnu}/b32/arm.rs (100%) rename src/unix/linux_like/linux/{other => gnu}/b32/mod.rs (97%) rename src/unix/linux_like/linux/{other => gnu}/b32/powerpc.rs (100%) rename src/unix/linux_like/linux/{other => gnu}/b32/x86.rs (100%) rename src/unix/linux_like/linux/{other => gnu}/b64/aarch64.rs (99%) rename src/unix/linux_like/linux/{other => gnu}/b64/mod.rs (95%) rename src/unix/linux_like/linux/{other => gnu}/b64/not_x32.rs (98%) rename src/unix/linux_like/linux/{other => gnu}/b64/powerpc64.rs (99%) rename src/unix/linux_like/linux/{s390x/mod.rs => gnu/b64/s390x.rs} (70%) rename src/unix/linux_like/linux/{other => gnu}/b64/sparc64.rs (99%) rename src/unix/linux_like/linux/{other => gnu}/b64/x32.rs (98%) rename src/unix/linux_like/linux/{other => gnu}/b64/x86_64.rs (98%) rename src/unix/linux_like/linux/{other => gnu/mips}/align.rs (100%) rename src/unix/linux_like/linux/{ => gnu}/mips/mips32.rs (100%) rename src/unix/linux_like/linux/{ => gnu}/mips/mips64.rs (100%) rename src/unix/linux_like/linux/{ => gnu}/mips/mod.rs (100%) rename src/unix/linux_like/linux/{ => gnu}/mips/no_align.rs (100%) rename src/unix/linux_like/linux/{other => gnu}/mod.rs (99%) rename src/unix/linux_like/linux/{other => gnu}/no_align.rs (100%) delete mode 100644 src/unix/linux_like/linux/s390x/align.rs delete mode 100644 src/unix/linux_like/linux/s390x/no_align.rs diff --git a/src/unix/linux_like/linux/mips/align.rs b/src/unix/linux_like/linux/gnu/align.rs similarity index 100% rename from src/unix/linux_like/linux/mips/align.rs rename to src/unix/linux_like/linux/gnu/align.rs diff --git a/src/unix/linux_like/linux/other/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs similarity index 100% rename from src/unix/linux_like/linux/other/b32/arm.rs rename to src/unix/linux_like/linux/gnu/b32/arm.rs diff --git a/src/unix/linux_like/linux/other/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs similarity index 97% rename from src/unix/linux_like/linux/other/b32/mod.rs rename to src/unix/linux_like/linux/gnu/b32/mod.rs index 08c0ed2362a16..29f509361b6d6 100644 --- a/src/unix/linux_like/linux/other/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -62,6 +62,15 @@ s! { __f_spare: [::c_int; 6], } + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct pthread_attr_t { __size: [u32; 9] } diff --git a/src/unix/linux_like/linux/other/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs similarity index 100% rename from src/unix/linux_like/linux/other/b32/powerpc.rs rename to src/unix/linux_like/linux/gnu/b32/powerpc.rs diff --git a/src/unix/linux_like/linux/other/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs similarity index 100% rename from src/unix/linux_like/linux/other/b32/x86.rs rename to src/unix/linux_like/linux/gnu/b32/x86.rs diff --git a/src/unix/linux_like/linux/other/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs similarity index 99% rename from src/unix/linux_like/linux/other/b64/aarch64.rs rename to src/unix/linux_like/linux/gnu/b64/aarch64.rs index 9699a7d48a55a..501531bf2b078 100644 --- a/src/unix/linux_like/linux/other/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -12,6 +12,15 @@ pub type suseconds_t = i64; pub type __u64 = ::c_ulonglong; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, diff --git a/src/unix/linux_like/linux/other/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs similarity index 95% rename from src/unix/linux_like/linux/other/b64/mod.rs rename to src/unix/linux_like/linux/gnu/b64/mod.rs index 7fcf8ba7646b0..065fa8832fcff 100644 --- a/src/unix/linux_like/linux/other/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -51,6 +51,7 @@ s! { __glibc_reserved4: u64, __glibc_reserved5: u64, } + } pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; @@ -67,6 +68,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "sparc64"))] { mod sparc64; pub use self::sparc64::*; + } else if #[cfg(any(target_arch = "s390x"))] { + mod s390x; + pub use self::s390x::*; } else if #[cfg(any(target_arch = "x86_64"))] { mod x86_64; pub use self::x86_64::*; diff --git a/src/unix/linux_like/linux/other/b64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/not_x32.rs similarity index 98% rename from src/unix/linux_like/linux/other/b64/not_x32.rs rename to src/unix/linux_like/linux/gnu/b64/not_x32.rs index 97e21f279df2a..044c846f1cfc5 100644 --- a/src/unix/linux_like/linux/other/b64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/not_x32.rs @@ -4,6 +4,15 @@ pub type c_long = i64; pub type c_ulong = u64; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/other/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs similarity index 99% rename from src/unix/linux_like/linux/other/b64/powerpc64.rs rename to src/unix/linux_like/linux/gnu/b64/powerpc64.rs index d4538224ca59e..3061690c158fd 100644 --- a/src/unix/linux_like/linux/other/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -12,6 +12,15 @@ pub type suseconds_t = i64; pub type __u64 = ::c_ulong; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, diff --git a/src/unix/linux_like/linux/s390x/mod.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs similarity index 70% rename from src/unix/linux_like/linux/s390x/mod.rs rename to src/unix/linux_like/linux/gnu/b64/s390x.rs index 7a7b426a39733..4e0c0fca2f9e4 100644 --- a/src/unix/linux_like/linux/s390x/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -1,47 +1,24 @@ -use ::pthread_mutex_t; +//! s390x + +use pthread_mutex_t; -pub type __rlimit_resource_t = ::c_uint; -pub type pthread_t = c_ulong; -pub type blkcnt_t = i64; pub type blksize_t = i64; pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; -pub type fsblkcnt_t = u64; -pub type fsfilcnt_t = u64; -pub type ino_t = u64; pub type nlink_t = u64; -pub type off_t = i64; -pub type rlim_t = u64; pub type suseconds_t = i64; -pub type time_t = i64; pub type wchar_t = i32; pub type greg_t = u64; -pub type clock_t = i64; -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type __fsword_t = ::c_long; -pub type __priority_which_t = ::c_uint; pub type __u64 = u64; s! { - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, - pub aio_offset: off_t, - #[cfg(target_pointer_width = "32")] - __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32] + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + __glibc_reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + pub sa_mask: ::sigset_t, } pub struct stat { @@ -90,32 +67,6 @@ s! { __size: [::c_ulong; 7] } - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - __glibc_reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - pub sa_mask: sigset_t, - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t, - } - - pub struct sigset_t { - __size: [::c_ulong; 16], - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - _pad: ::c_int, - _pad2: [::c_long; 14], - } - pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, @@ -142,21 +93,6 @@ s! { __unused5: ::c_ulong } - pub struct statfs { - pub f_type: ::c_uint, - pub f_bsize: ::c_uint, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_uint, - pub f_frsize: ::c_uint, - pub f_flags: ::c_uint, - f_spare: [::c_uint; 4], - } - pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -172,33 +108,6 @@ s! { __f_spare: [::c_int; 6], } - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - pub struct termios2 { pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, @@ -210,36 +119,6 @@ s! { pub c_ospeed: ::speed_t, } - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } - - pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, @@ -274,20 +153,6 @@ s! { pub uc_sigmask: ::sigset_t, } - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - pub struct statfs64 { pub f_type: ::c_uint, pub f_bsize: ::c_uint, @@ -354,15 +219,11 @@ cfg_if! { } } -pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; pub const O_TRUNC: ::c_int = 512; -pub const O_LARGEFILE: ::c_int = 0; pub const O_NOATIME: ::c_int = 0o1000000; pub const O_CLOEXEC: ::c_int = 0x80000; pub const O_PATH: ::c_int = 0o10000000; @@ -392,8 +253,6 @@ pub const EPOLL_CLOEXEC: ::c_int = 0x80000; pub const EFD_CLOEXEC: ::c_int = 0x80000; -pub const POSIX_FADV_DONTNEED: ::c_int = 6; -pub const POSIX_FADV_NOREUSE: ::c_int = 7; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; @@ -436,15 +295,10 @@ pub const ENOTCONN: ::c_int = 107; pub const ETIMEDOUT: ::c_int = 110; pub const FIOCLEX: ::c_ulong = 0x5451; pub const FIONBIO: ::c_ulong = 0x5421; -pub const MAP_ANON: ::c_int = 0x20; -pub const O_ACCMODE: ::c_int = 3; pub const O_APPEND: ::c_int = 1024; pub const O_CREAT: ::c_int = 64; pub const O_EXCL: ::c_int = 128; pub const O_NONBLOCK: ::c_int = 2048; -pub const PTHREAD_STACK_MIN: ::size_t = 16384; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; -pub const RLIM_INFINITY: ::rlim_t = 0xffffffffffffffff; pub const SA_NOCLDWAIT: ::c_int = 2; pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 4; @@ -452,8 +306,6 @@ pub const SIGBUS: ::c_int = 7; pub const SIGSTKSZ: ::size_t = 0x2000; pub const MINSIGSTKSZ: ::size_t = 2048; pub const SIG_SETMASK: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOCK_STREAM: ::c_int = 1; pub const SOL_SOCKET: ::c_int = 1; pub const SO_BROADCAST: ::c_int = 6; pub const SO_ERROR: ::c_int = 4; @@ -469,13 +321,8 @@ pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16; pub const O_NOCTTY: ::c_int = 256; pub const O_SYNC: ::c_int = 1052672; @@ -486,44 +333,9 @@ pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = (1 << LC_PAPER); -pub const LC_NAME_MASK: ::c_int = (1 << LC_NAME); -pub const LC_ADDRESS_MASK: ::c_int = (1 << LC_ADDRESS); -pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE); -pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT); -pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION); -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; - -pub const MAP_ANONYMOUS: ::c_int = 0x0020; pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; -pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; pub const EDEADLOCK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -569,7 +381,6 @@ pub const ENOPROTOOPT: ::c_int = 92; pub const EPROTONOSUPPORT: ::c_int = 93; pub const ESOCKTNOSUPPORT: ::c_int = 94; pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; pub const EPFNOSUPPORT: ::c_int = 96; pub const EAFNOSUPPORT: ::c_int = 97; pub const ENETDOWN: ::c_int = 100; @@ -584,11 +395,6 @@ pub const EHOSTUNREACH: ::c_int = 113; pub const EALREADY: ::c_int = 114; pub const EINPROGRESS: ::c_int = 115; pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; pub const EDQUOT: ::c_int = 122; pub const ENOMEDIUM: ::c_int = 123; pub const EMEDIUMTYPE: ::c_int = 124; @@ -602,8 +408,6 @@ pub const ENOTRECOVERABLE: ::c_int = 131; pub const EHWPOISON: ::c_int = 133; pub const ERFKILL: ::c_int = 132; -pub const SOCK_SEQPACKET: ::c_int = 5; - pub const SO_TYPE: ::c_int = 3; pub const SO_DONTROUTE: ::c_int = 5; pub const SO_SNDBUF: ::c_int = 7; @@ -622,17 +426,6 @@ pub const SO_ACCEPTCONN: ::c_int = 30; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16; -pub const TCP_THIN_DUPACK: ::c_int = 17; -pub const TCP_USER_TIMEOUT: ::c_int = 18; -pub const TCP_REPAIR: ::c_int = 19; -pub const TCP_REPAIR_QUEUE: ::c_int = 20; -pub const TCP_QUEUE_SEQ: ::c_int = 21; -pub const TCP_REPAIR_OPTIONS: ::c_int = 22; -pub const TCP_FASTOPEN: ::c_int = 23; -pub const TCP_TIMESTAMP: ::c_int = 24; - pub const SIGCHLD: ::c_int = 17; pub const SIGUSR1: ::c_int = 10; pub const SIGUSR2: ::c_int = 12; @@ -648,22 +441,11 @@ pub const SIGSTKFLT: ::c_int = 16; note = "Use SIGSYS instead" )] pub const SIGUNUSED: ::c_int = 31; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; pub const SIG_BLOCK: ::c_int = 0x000000; pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const BUFSIZ: ::c_uint = 8192; -pub const TMP_MAX: ::c_uint = 238328; -pub const FOPEN_MAX: ::c_uint = 16; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; pub const _SC_PII: ::c_int = 53; @@ -741,37 +523,7 @@ pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; pub const O_ASYNC: ::c_int = 0x2000; pub const O_NDELAY: ::c_int = 0x800; -pub const ST_RELATIME: ::c_ulong = 4096; -pub const NI_MAXHOST: ::socklen_t = 1025; - -pub const ADFS_SUPER_MAGIC: ::c_int = 0x0000adf5; -pub const AFFS_SUPER_MAGIC: ::c_int = 0x0000adff; -pub const CODA_SUPER_MAGIC: ::c_int = 0x73757245; -pub const CRAMFS_MAGIC: ::c_int = 0x28cd3d45; -pub const EFS_SUPER_MAGIC: ::c_int = 0x00414a53; -pub const EXT2_SUPER_MAGIC: ::c_int = 0x0000ef53; -pub const EXT3_SUPER_MAGIC: ::c_int = 0x0000ef53; -pub const EXT4_SUPER_MAGIC: ::c_int = 0x0000ef53; -pub const HPFS_SUPER_MAGIC: ::c_int = 0xf995e849; -pub const HUGETLBFS_MAGIC: ::c_int = 0x958458f6; -pub const ISOFS_SUPER_MAGIC: ::c_int = 0x00009660; -pub const JFFS2_SUPER_MAGIC: ::c_int = 0x000072b6; -pub const MINIX_SUPER_MAGIC: ::c_int = 0x0000137f; -pub const MINIX_SUPER_MAGIC2: ::c_int = 0x0000138f; -pub const MINIX2_SUPER_MAGIC: ::c_int = 0x00002468; -pub const MINIX2_SUPER_MAGIC2: ::c_int = 0x00002478; -pub const MSDOS_SUPER_MAGIC: ::c_int = 0x00004d44; -pub const NCP_SUPER_MAGIC: ::c_int = 0x0000564c; -pub const NFS_SUPER_MAGIC: ::c_int = 0x00006969; -pub const OPENPROM_SUPER_MAGIC: ::c_int = 0x00009fa1; -pub const PROC_SUPER_MAGIC: ::c_int = 0x00009fa0; -pub const QNX4_SUPER_MAGIC: ::c_int = 0x0000002f; -pub const REISERFS_SUPER_MAGIC: ::c_int = 0x52654973; -pub const SMB_SUPER_MAGIC: ::c_int = 0x0000517b; -pub const TMPFS_MAGIC: ::c_int = 0x01021994; -pub const USBDEVICE_SUPER_MAGIC: ::c_int = 0x00009fa2; -pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -779,41 +531,13 @@ pub const IEXTEN: ::tcflag_t = 0x00008000; pub const TOSTOP: ::tcflag_t = 0x00000100; pub const FLUSHO: ::tcflag_t = 0x00001000; -pub const CPU_SETSIZE: ::c_int = 0x400; - pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const PTRACE_TRACEME: ::c_uint = 0; -pub const PTRACE_PEEKTEXT: ::c_uint = 1; -pub const PTRACE_PEEKDATA: ::c_uint = 2; -pub const PTRACE_PEEKUSER: ::c_uint = 3; -pub const PTRACE_POKETEXT: ::c_uint = 4; -pub const PTRACE_POKEDATA: ::c_uint = 5; -pub const PTRACE_POKEUSER: ::c_uint = 6; -pub const PTRACE_CONT: ::c_uint = 7; -pub const PTRACE_KILL: ::c_uint = 8; -pub const PTRACE_SINGLESTEP: ::c_uint = 9; -pub const PTRACE_ATTACH: ::c_uint = 16; pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_SYSCALL: ::c_uint = 24; -pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; -pub const PTRACE_GETREGSET: ::c_uint = 0x4204; -pub const PTRACE_SETREGSET: ::c_uint = 0x4205; -pub const PTRACE_SEIZE: ::c_uint = 0x4206; -pub const PTRACE_INTERRUPT: ::c_uint = 0x4207; -pub const PTRACE_LISTEN: ::c_uint = 0x4208; -pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - pub const EFD_NONBLOCK: ::c_int = 0x800; pub const F_RDLCK: ::c_int = 0; @@ -825,15 +549,8 @@ pub const F_SETOWN: ::c_int = 8; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; -pub const SEEK_DATA: ::c_int = 3; -pub const SEEK_HOLE: ::c_int = 4; - pub const SFD_NONBLOCK: ::c_int = 0x0800; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; pub const TCSETSW: ::c_ulong = 0x5403; @@ -848,8 +565,6 @@ pub const TCFLSH: ::c_ulong = 0x540B; pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; pub const TIOCINQ: ::c_ulong = 0x541B; -pub const TIOCLINUX: ::c_ulong = 0x541C; -pub const TIOCGSERIAL: ::c_ulong = 0x541E; pub const TIOCEXCL: ::c_ulong = 0x540C; pub const TIOCNXCL: ::c_ulong = 0x540D; pub const TIOCSCTTY: ::c_ulong = 0x540E; @@ -866,25 +581,6 @@ pub const TIOCMSET: ::c_ulong = 0x5418; pub const FIONREAD: ::c_ulong = 0x541B; pub const TIOCCONS: ::c_ulong = 0x541D; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - pub const VTIME: usize = 5; pub const VSWTC: usize = 7; pub const VSTART: usize = 8; @@ -912,20 +608,6 @@ pub const VTDLY: ::tcflag_t = 0o040000; pub const VT1: ::tcflag_t = 0x00004000; pub const XTABS: ::tcflag_t = 0o014000; -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; - -pub const SIGEV_THREAD_ID: ::c_int = 4; - pub const CBAUD: ::speed_t = 0o010017; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -992,17 +674,6 @@ pub const POLLWRBAND: ::c_short = 0x200; pub const IXON: ::tcflag_t = 0o002000; pub const IXOFF: ::tcflag_t = 0o010000; -pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; -pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; -pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; -pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; -pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; -pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; -pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; -pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; -pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; -pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - pub const SYS_exit: ::c_long = 1; pub const SYS_fork: ::c_long = 2; pub const SYS_read: ::c_long = 3; @@ -1328,26 +999,6 @@ pub const SYS_newfstatat: ::c_long = 293; #[link(name = "util")] extern { - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; - - pub fn getrlimit64(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit(pid: ::pid_t, - resource: ::__rlimit_resource_t, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; pub fn sysctl(name: *mut ::c_int, namelen: ::c_int, @@ -1356,48 +1007,12 @@ extern { newp: *mut ::c_void, newlen: ::size_t) -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; - pub fn glob64(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t) -> ::c_int; - pub fn globfree64(pglob: *mut glob64_t); - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, - prio: ::c_int) -> ::c_int; - pub fn pthread_getaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_setaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; - pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; - pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, + pub fn getcontext(ucp: *mut ::ucontext_t) -> ::c_int; + pub fn setcontext(ucp: *const ::ucontext_t) -> ::c_int; + pub fn makecontext(ucp: *mut ::ucontext_t, func: extern fn (), argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, - ucp: *const ucontext_t) -> ::c_int; + pub fn swapcontext(uocp: *mut ::ucontext_t, + ucp: *const ::ucontext_t) -> ::c_int; } -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/other/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs similarity index 99% rename from src/unix/linux_like/linux/other/b64/sparc64.rs rename to src/unix/linux_like/linux/gnu/b64/sparc64.rs index 264a3f1d9ef92..28b0ea0b0b7e2 100644 --- a/src/unix/linux_like/linux/other/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -12,6 +12,15 @@ pub type suseconds_t = i32; pub type __u64 = ::c_ulonglong; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct stat { pub st_dev: ::dev_t, __pad0: u64, diff --git a/src/unix/linux_like/linux/other/b64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x32.rs similarity index 98% rename from src/unix/linux_like/linux/other/b64/x32.rs rename to src/unix/linux_like/linux/gnu/b64/x32.rs index 37468818afb85..203ffae856b01 100644 --- a/src/unix/linux_like/linux/other/b64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x32.rs @@ -4,6 +4,15 @@ pub type c_long = i32; pub type c_ulong = u32; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, diff --git a/src/unix/linux_like/linux/other/b64/x86_64.rs b/src/unix/linux_like/linux/gnu/b64/x86_64.rs similarity index 98% rename from src/unix/linux_like/linux/other/b64/x86_64.rs rename to src/unix/linux_like/linux/gnu/b64/x86_64.rs index 32f7265a9740d..4a349b626ddb0 100644 --- a/src/unix/linux_like/linux/other/b64/x86_64.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64.rs @@ -9,6 +9,15 @@ pub type suseconds_t = i64; pub type __u64 = ::c_ulonglong; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + #[cfg(target_arch = "sparc64")] + __reserved0: ::c_int, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, diff --git a/src/unix/linux_like/linux/other/align.rs b/src/unix/linux_like/linux/gnu/mips/align.rs similarity index 100% rename from src/unix/linux_like/linux/other/align.rs rename to src/unix/linux_like/linux/gnu/mips/align.rs diff --git a/src/unix/linux_like/linux/mips/mips32.rs b/src/unix/linux_like/linux/gnu/mips/mips32.rs similarity index 100% rename from src/unix/linux_like/linux/mips/mips32.rs rename to src/unix/linux_like/linux/gnu/mips/mips32.rs diff --git a/src/unix/linux_like/linux/mips/mips64.rs b/src/unix/linux_like/linux/gnu/mips/mips64.rs similarity index 100% rename from src/unix/linux_like/linux/mips/mips64.rs rename to src/unix/linux_like/linux/gnu/mips/mips64.rs diff --git a/src/unix/linux_like/linux/mips/mod.rs b/src/unix/linux_like/linux/gnu/mips/mod.rs similarity index 100% rename from src/unix/linux_like/linux/mips/mod.rs rename to src/unix/linux_like/linux/gnu/mips/mod.rs diff --git a/src/unix/linux_like/linux/mips/no_align.rs b/src/unix/linux_like/linux/gnu/mips/no_align.rs similarity index 100% rename from src/unix/linux_like/linux/mips/no_align.rs rename to src/unix/linux_like/linux/gnu/mips/no_align.rs diff --git a/src/unix/linux_like/linux/other/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs similarity index 99% rename from src/unix/linux_like/linux/other/mod.rs rename to src/unix/linux_like/linux/gnu/mod.rs index 4acf30e1ae69a..b05cb68d9a7e2 100644 --- a/src/unix/linux_like/linux/other/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -61,14 +61,6 @@ s! { pub tv_usec: i32, } - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } pub struct stack_t { pub ss_sp: *mut ::c_void, @@ -88,6 +80,8 @@ s! { this field" )] pub _pad: [::c_int; 29], + #[cfg(target_arch = "s390x")] + _pad2: [::c_long; 14], #[cfg(target_arch = "x86_64")] _align: [u64; 0], #[cfg(not(target_arch = "x86_64"))] @@ -120,7 +114,12 @@ s! { pub f_namelen: __fsword_t, pub f_frsize: __fsword_t, + #[cfg(not(target_arch = "s390x"))] f_spare: [__fsword_t; 5], + #[cfg(target_arch = "s390x")] + pub f_flags: ::c_uint, + #[cfg(target_arch = "s390x")] + f_spare: [::c_uint; 4], } pub struct msghdr { @@ -1122,6 +1121,7 @@ cfg_if! { } else if #[cfg(any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", + target_arch = "s390x", target_arch = "sparc64"))] { mod b64; pub use self::b64::*; diff --git a/src/unix/linux_like/linux/other/no_align.rs b/src/unix/linux_like/linux/gnu/no_align.rs similarity index 100% rename from src/unix/linux_like/linux/other/no_align.rs rename to src/unix/linux_like/linux/gnu/no_align.rs diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3b7bc292078a5..f6f2e6370b95d 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2647,16 +2647,9 @@ cfg_if! { if #[cfg(target_env = "musl")] { mod musl; pub use self::musl::*; - } else if #[cfg(any(target_arch = "mips", - target_arch = "mips64"))] { - mod mips; - pub use self::mips::*; - } else if #[cfg(any(target_arch = "s390x"))] { - mod s390x; - pub use self::s390x::*; - } else { - mod other; - pub use self::other::*; + } else if #[cfg(target_env = "gnu")] { + mod gnu; + pub use self::gnu::*; } } diff --git a/src/unix/linux_like/linux/s390x/align.rs b/src/unix/linux_like/linux/s390x/align.rs deleted file mode 100644 index 21e21907d4a70..0000000000000 --- a/src/unix/linux_like/linux/s390x/align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/s390x/no_align.rs b/src/unix/linux_like/linux/s390x/no_align.rs deleted file mode 100644 index 8909114cdfa42..0000000000000 --- a/src/unix/linux_like/linux/s390x/no_align.rs +++ /dev/null @@ -1,7 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} From 4bd419ebec2d691f55331e91e799d5fa96180044 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 4 Jun 2019 18:17:19 +0200 Subject: [PATCH 005/296] Move the mips module into the gnu module --- src/unix/linux_like/linux/gnu/b32/arm.rs | 233 ++++ .../linux/gnu/{mips/mips32.rs => b32/mips.rs} | 559 ++++++--- src/unix/linux_like/linux/gnu/b32/mod.rs | 193 +--- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 232 ++++ src/unix/linux_like/linux/gnu/b32/x86.rs | 233 ++++ src/unix/linux_like/linux/gnu/b64/aarch64.rs | 74 ++ .../linux/gnu/{mips => b64}/mips64.rs | 548 +++++++-- src/unix/linux_like/linux/gnu/b64/mod.rs | 3 + src/unix/linux_like/linux/gnu/b64/not_x32.rs | 69 ++ .../linux_like/linux/gnu/b64/powerpc64.rs | 72 ++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 74 +- src/unix/linux_like/linux/gnu/b64/sparc64.rs | 72 ++ src/unix/linux_like/linux/gnu/b64/x32.rs | 69 ++ src/unix/linux_like/linux/gnu/b64/x86_64.rs | 72 ++ src/unix/linux_like/linux/gnu/mips/align.rs | 13 - src/unix/linux_like/linux/gnu/mips/mod.rs | 1008 ----------------- .../linux_like/linux/gnu/mips/no_align.rs | 10 - src/unix/linux_like/linux/gnu/mod.rs | 113 +- 18 files changed, 2074 insertions(+), 1573 deletions(-) rename src/unix/linux_like/linux/gnu/{mips/mips32.rs => b32/mips.rs} (61%) rename src/unix/linux_like/linux/gnu/{mips => b64}/mips64.rs (58%) delete mode 100644 src/unix/linux_like/linux/gnu/mips/align.rs delete mode 100644 src/unix/linux_like/linux/gnu/mips/mod.rs delete mode 100644 src/unix/linux_like/linux/gnu/mips/no_align.rs diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index a2d190d67c2d5..c1163522be7b0 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -2,6 +2,21 @@ pub type c_char = u8; pub type wchar_t = u32; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, @@ -112,18 +127,167 @@ s! { pub c_ispeed: ::speed_t, pub c_ospeed: ::speed_t, } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const O_DIRECT: ::c_int = 0x10000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_NOFOLLOW: ::c_int = 0x8000; pub const O_LARGEFILE: ::c_int = 0o400000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; + +pub const SOL_SOCKET: ::c_int = 1; pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_LINGER: ::c_int = 13; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 16; pub const SO_PEERCRED: ::c_int = 17; pub const SO_RCVLOWAT: ::c_int = 18; @@ -133,12 +297,56 @@ pub const SO_SNDTIMEO: ::c_int = 21; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const FIOCLEX: ::c_ulong = 0x5451; pub const FIONBIO: ::c_ulong = 0x5421; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated( + since = "0.2.55", + note = "Use SIGSYS instead" +)] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; pub const CBAUD: ::tcflag_t = 0o0010017; @@ -256,6 +464,31 @@ pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; pub const FIONREAD: ::c_ulong = 0x541B; +pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; +pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; +pub const TIOCEXCL: ::c_ulong = 0x540C; +pub const TIOCNXCL: ::c_ulong = 0x540D; +pub const TIOCSCTTY: ::c_ulong = 0x540E; +pub const TIOCSTI: ::c_ulong = 0x5412; +pub const TIOCMGET: ::c_ulong = 0x5415; +pub const TIOCMBIS: ::c_ulong = 0x5416; +pub const TIOCMBIC: ::c_ulong = 0x5417; +pub const TIOCMSET: ::c_ulong = 0x5418; +pub const TIOCCONS: ::c_ulong = 0x541D; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + // Syscall table pub const SYS_restart_syscall: ::c_long = 0; pub const SYS_exit: ::c_long = 1; diff --git a/src/unix/linux_like/linux/gnu/mips/mips32.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs similarity index 61% rename from src/unix/linux_like/linux/gnu/mips/mips32.rs rename to src/unix/linux_like/linux/gnu/b32/mips.rs index d9d55891309d7..a5d9dc9490a42 100644 --- a/src/unix/linux_like/linux/gnu/mips/mips32.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -1,60 +1,7 @@ -use pthread_mutex_t; - pub type c_char = i8; -pub type c_long = i32; -pub type c_ulong = u32; -pub type clock_t = i32; -pub type time_t = i32; -pub type suseconds_t = i32; pub type wchar_t = i32; -pub type off_t = i32; -pub type ino_t = u32; -pub type blkcnt_t = i32; -pub type blksize_t = i32; -pub type nlink_t = u32; -pub type __u64 = ::c_ulonglong; s! { - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, - pub aio_offset: off_t, - __unused1: [::c_char; 4], - __glibc_reserved: [::c_char; 32] - } - - pub struct stat { - pub st_dev: ::c_ulong, - st_pad1: [::c_long; 3], - pub st_ino: ::ino_t, - pub st_mode: ::mode_t, - pub st_nlink: ::nlink_t, - pub st_uid: ::uid_t, - pub st_gid: ::gid_t, - pub st_rdev: ::c_ulong, - pub st_pad2: [::c_long; 2], - pub st_size: ::off_t, - st_pad3: ::c_long, - pub st_atime: ::time_t, - pub st_atime_nsec: ::c_long, - pub st_mtime: ::time_t, - pub st_mtime_nsec: ::c_long, - pub st_ctime: ::time_t, - pub st_ctime_nsec: ::c_long, - pub st_blksize: ::blksize_t, - pub st_blocks: ::blkcnt_t, - st_pad5: [::c_long; 14], - } - pub struct stat64 { pub st_dev: ::c_ulong, st_pad1: [::c_long; 3], @@ -93,22 +40,6 @@ s! { pub f_spare: [::c_long; 5], } - pub struct statvfs { - pub f_bsize: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_favail: ::fsfilcnt_t, - pub f_fsid: ::c_ulong, - __f_unused: ::c_int, - pub f_flag: ::c_ulong, - pub f_namemax: ::c_ulong, - __f_spare: [::c_int; 6], - } - pub struct statvfs64 { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -125,14 +56,10 @@ s! { __f_spare: [::c_int; 6], } - pub struct pthread_attr_t { - __size: [u32; 9] - } - pub struct sigaction { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, + pub sa_mask: ::sigset_t, pub sa_restorer: ::Option, _resv: [::c_int; 1], } @@ -143,10 +70,6 @@ s! { pub ss_flags: ::c_int, } - pub struct sigset_t { - __val: [::c_ulong; 32], - } - pub struct siginfo_t { pub si_signo: ::c_int, pub si_code: ::c_int, @@ -206,46 +129,6 @@ s! { __glibc_reserved5: ::c_ulong, } - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } - - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, - } - - pub struct termios { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, @@ -256,21 +139,15 @@ s! { pad: [::c_long; 4], } - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 23], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, } } @@ -280,61 +157,8 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; -align_const! { - #[cfg(target_endian = "little")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "little")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; - #[cfg(target_endian = "big")] - pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = - pthread_mutex_t { - size: [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, - ], - }; -} - pub const O_LARGEFILE: ::c_int = 0x2000; -pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; - pub const SYS_syscall: ::c_long = 4000 + 0; pub const SYS_exit: ::c_long = 4000 + 1; pub const SYS_fork: ::c_long = 4000 + 2; @@ -693,3 +517,366 @@ pub const SYS_pwritev2: ::c_long = 4000 + 362; pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; pub const SYS_pkey_alloc: ::c_long = 4000 + 364; pub const SYS_pkey_free: ::c_long = 4000 + 365; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 6; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_FSYNC: ::c_int = 0x4010; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_NDELAY: ::c_int = 0x80; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_ANONYMOUS: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_STYLE: ::c_int = SO_TYPE; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ACCEPTCONN: ::c_int = 0x1009; +pub const SO_PROTOCOL: ::c_int = 0x1028; +pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PASSCRED: ::c_int = 17; +pub const SO_PEERCRED: ::c_int = 18; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_PEERSEC: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 31; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; + +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; + +pub const FIOCLEX: ::c_ulong = 0x6601; +pub const FIONBIO: ::c_ulong = 0x667e; + +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; +pub const TCSANOW: ::c_int = 0x540e; +pub const TCSADRAIN: ::c_int = 0x540f; +pub const TCSAFLUSH: ::c_int = 0x5410; + +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; + +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const EFD_NONBLOCK: ::c_int = 0x80; + +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; + +pub const SFD_NONBLOCK: ::c_int = 0x80; + +pub const TCGETS: ::c_ulong = 0x540d; +pub const TCSETS: ::c_ulong = 0x540e; +pub const TCSETSW: ::c_ulong = 0x540f; +pub const TCSETSF: ::c_ulong = 0x5410; +pub const TCGETA: ::c_ulong = 0x5401; +pub const TCSETA: ::c_ulong = 0x5402; +pub const TCSETAW: ::c_ulong = 0x5403; +pub const TCSETAF: ::c_ulong = 0x5404; +pub const TCSBRK: ::c_ulong = 0x5405; +pub const TCXONC: ::c_ulong = 0x5406; +pub const TCFLSH: ::c_ulong = 0x5407; +pub const TIOCGSOFTCAR: ::c_ulong = 0x5481; +pub const TIOCSSOFTCAR: ::c_ulong = 0x5482; +pub const TIOCINQ: ::c_ulong = 0x467f; +pub const TIOCLINUX: ::c_ulong = 0x5483; +pub const TIOCGSERIAL: ::c_ulong = 0x5484; +pub const TIOCEXCL: ::c_ulong = 0x740d; +pub const TIOCNXCL: ::c_ulong = 0x740e; +pub const TIOCSCTTY: ::c_ulong = 0x5480; +pub const TIOCGPGRP: ::c_ulong = 0x40047477; +pub const TIOCSPGRP: ::c_ulong = 0x80047476; +pub const TIOCOUTQ: ::c_ulong = 0x7472; +pub const TIOCSTI: ::c_ulong = 0x5472; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCMGET: ::c_ulong = 0x741d; +pub const TIOCMBIS: ::c_ulong = 0x741b; +pub const TIOCMBIC: ::c_ulong = 0x741c; +pub const TIOCMSET: ::c_ulong = 0x741a; +pub const FIONREAD: ::c_ulong = 0x467f; +pub const TIOCCONS: ::c_ulong = 0x80047478; + +pub const RTLD_DEEPBIND: ::c_int = 0x10; +pub const RTLD_GLOBAL: ::c_int = 0x4; +pub const RTLD_NOLOAD: ::c_int = 0x8; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const BOTHER: ::speed_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const TIOCM_ST: ::c_int = 0x010; +pub const TIOCM_SR: ::c_int = 0x020; +pub const TIOCM_CTS: ::c_int = 0x040; +pub const TIOCM_CAR: ::c_int = 0x100; +pub const TIOCM_RNG: ::c_int = 0x200; +pub const TIOCM_DSR: ::c_int = 0x400; + +pub const EHWPOISON: ::c_int = 168; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 29f509361b6d6..a8db650842cbb 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -25,16 +25,26 @@ pub type __u64 = ::c_ulonglong; s! { pub struct stat { pub st_dev: ::dev_t, + #[cfg(not(target_arch = "mips"))] __pad1: ::c_short, + #[cfg(target_arch = "mips")] + st_pad1: [::c_long; 3], pub st_ino: ::ino_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, pub st_rdev: ::dev_t, + #[cfg(not(target_arch = "mips"))] __pad2: ::c_short, + #[cfg(target_arch = "mips")] + st_pad2: [::c_long; 2], pub st_size: ::off_t, + #[cfg(target_arch = "mips")] + st_pad3: ::c_long, + #[cfg(not(target_arch = "mips"))] pub st_blksize: ::blksize_t, + #[cfg(not(target_arch = "mips"))] pub st_blocks: ::blkcnt_t, pub st_atime: ::time_t, pub st_atime_nsec: ::c_long, @@ -42,8 +52,16 @@ s! { pub st_mtime_nsec: ::c_long, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, + #[cfg(not(target_arch = "mips"))] __unused4: ::c_long, + #[cfg(not(target_arch = "mips"))] __unused5: ::c_long, + #[cfg(target_arch = "mips")] + pub st_blksize: ::blksize_t, + #[cfg(target_arch = "mips")] + pub st_blocks: ::blkcnt_t, + #[cfg(target_arch = "mips")] + st_pad5: [::c_long; 14], } pub struct statvfs { @@ -62,15 +80,6 @@ s! { __f_spare: [::c_int; 6], } - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - pub struct pthread_attr_t { __size: [u32; 9] } @@ -89,6 +98,10 @@ s! { pub totalswap: ::c_ulong, pub freeswap: ::c_ulong, pub procs: ::c_ushort, + #[deprecated( + since = "0.2.58", + note = "This padding field might become private in the future" + )] pub pad: ::c_ushort, pub totalhigh: ::c_ulong, pub freehigh: ::c_ulong, @@ -97,170 +110,23 @@ s! { } } -pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; -pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; - -pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; -pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; - -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; -pub const O_FSYNC: ::c_int = 0x101000; pub const O_NOATIME: ::c_int = 0o1000000; pub const O_PATH: ::c_int = 0o10000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; - -pub const EDEADLK: ::c_int = 35; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EBADMSG: ::c_int = 74; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const EHWPOISON: ::c_int = 133; -pub const ERFKILL: ::c_int = 132; - -pub const SOL_SOCKET: ::c_int = 1; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; pub const SO_BINDTODEVICE: ::c_int = 25; pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_ACCEPTCONN: ::c_int = 30; pub const SO_MARK: ::c_int = 36; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] -pub const SIGUNUSED: ::c_int = 31; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_NDELAY: ::c_int = 0x800; pub const PTRACE_DETACH: ::c_uint = 17; -pub const EFD_NONBLOCK: ::c_int = 0x800; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETOWN: ::c_int = 8; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; @@ -268,18 +134,6 @@ pub const F_RDLCK: ::c_int = 0; pub const F_WRLCK: ::c_int = 1; pub const F_UNLCK: ::c_int = 2; -pub const SFD_NONBLOCK: ::c_int = 0x0800; - -pub const TIOCEXCL: ::c_ulong = 0x540C; -pub const TIOCNXCL: ::c_ulong = 0x540D; -pub const TIOCSCTTY: ::c_ulong = 0x540E; -pub const TIOCSTI: ::c_ulong = 0x5412; -pub const TIOCMGET: ::c_ulong = 0x5415; -pub const TIOCMBIS: ::c_ulong = 0x5416; -pub const TIOCMBIC: ::c_ulong = 0x5417; -pub const TIOCMSET: ::c_ulong = 0x5418; -pub const TIOCCONS: ::c_ulong = 0x541D; - pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; @@ -392,6 +246,9 @@ cfg_if! { } else if #[cfg(target_arch = "arm")] { mod arm; pub use self::arm::*; + } else if #[cfg(target_arch = "mips")] { + mod mips; + pub use self::mips::*; } else if #[cfg(target_arch = "powerpc")] { mod powerpc; pub use self::powerpc::*; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index a64f07528adb0..80f0e298a1aaf 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -2,6 +2,21 @@ pub type c_char = u8; pub type wchar_t = i32; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct ipc_perm { __key: ::key_t, pub uid: ::uid_t, @@ -101,18 +116,179 @@ s! { __glibc_reserved4: ::c_ulong, __glibc_reserved5: ::c_ulong, } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const O_DIRECT: ::c_int = 0x20000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_NOFOLLOW: ::c_int = 0x8000; pub const O_LARGEFILE: ::c_int = 0o200000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; pub const MAP_LOCKED: ::c_int = 0x00080; pub const MAP_NORESERVE: ::c_int = 0x00040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; + +pub const SOL_SOCKET: ::c_int = 1; pub const EDEADLOCK: ::c_int = 58; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_LINGER: ::c_int = 13; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; pub const SO_NO_CHECK: ::c_int = 11; @@ -123,12 +299,68 @@ pub const SO_SNDTIMEO: ::c_int = 19; pub const SO_PASSCRED: ::c_int = 20; pub const SO_PEERCRED: ::c_int = 21; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const FIOCLEX: ::c_ulong = 0x20006601; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const MCL_CURRENT: ::c_int = 0x2000; pub const MCL_FUTURE: ::c_int = 0x4000; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; +pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; +pub const TIOCEXCL: ::c_ulong = 0x540C; +pub const TIOCNXCL: ::c_ulong = 0x540D; +pub const TIOCSCTTY: ::c_ulong = 0x540E; +pub const TIOCSTI: ::c_ulong = 0x5412; +pub const TIOCMGET: ::c_ulong = 0x5415; +pub const TIOCMBIS: ::c_ulong = 0x5416; +pub const TIOCMBIC: ::c_ulong = 0x5417; +pub const TIOCMSET: ::c_ulong = 0x5418; +pub const TIOCCONS: ::c_ulong = 0x541D; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated( + since = "0.2.55", + note = "Use SIGSYS instead" +)] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGSTKSZ: ::size_t = 0x4000; pub const MINSIGSTKSZ: ::size_t = 4096; pub const CBAUD: ::tcflag_t = 0xff; diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 00f1f1a191ea0..2a367b2ac4f89 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -3,6 +3,21 @@ pub type wchar_t = i32; pub type greg_t = i32; s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct _libc_fpreg { pub significand: [u16; 4], pub exponent: u16, @@ -186,6 +201,27 @@ s! { pub c_ispeed: ::speed_t, pub c_ospeed: ::speed_t, } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } s_no_extra_traits!{ @@ -315,17 +351,145 @@ cfg_if! { } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x20000; pub const O_LARGEFILE: ::c_int = 0o0100000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 0x101000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_NDELAY: ::c_int = 0x800; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; + +pub const SOL_SOCKET: ::c_int = 1; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_LINGER: ::c_int = 13; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; pub const SO_NO_CHECK: ::c_int = 11; @@ -336,6 +500,16 @@ pub const SO_SNDLOWAT: ::c_int = 19; pub const SO_RCVTIMEO: ::c_int = 20; pub const SO_SNDTIMEO: ::c_int = 21; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; + pub const FIOCLEX: ::c_ulong = 0x5451; pub const FIONBIO: ::c_ulong = 0x5421; @@ -345,6 +519,40 @@ pub const PTRACE_SETFPXREGS: ::c_uint = 19; pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const SFD_NONBLOCK: ::c_int = 0x0800; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +#[deprecated( + since = "0.2.55", + note = "Use SIGSYS instead" +)] +pub const SIGUNUSED: ::c_int = 31; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; pub const CBAUD: ::tcflag_t = 0o0010017; @@ -399,6 +607,18 @@ pub const FFDLY: ::tcflag_t = 0o100000; pub const VTDLY: ::tcflag_t = 0o040000; pub const XTABS: ::tcflag_t = 0o014000; +pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; +pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; +pub const TIOCEXCL: ::c_ulong = 0x540C; +pub const TIOCNXCL: ::c_ulong = 0x540D; +pub const TIOCSCTTY: ::c_ulong = 0x540E; +pub const TIOCSTI: ::c_ulong = 0x5412; +pub const TIOCMGET: ::c_ulong = 0x5415; +pub const TIOCMBIS: ::c_ulong = 0x5416; +pub const TIOCMBIC: ::c_ulong = 0x5417; +pub const TIOCMSET: ::c_ulong = 0x5418; +pub const TIOCCONS: ::c_ulong = 0x541D; + pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; pub const B75: ::speed_t = 0o000002; @@ -462,6 +682,19 @@ pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; pub const FIONREAD: ::c_ulong = 0x541B; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + // Syscall table pub const SYS_restart_syscall: ::c_long = 0; pub const SYS_exit: ::c_long = 1; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index 501531bf2b078..adb9726231256 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -21,6 +21,14 @@ s! { pub sa_restorer: ::Option, } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -150,15 +158,44 @@ s! { pub c_ispeed: ::speed_t, pub c_ospeed: ::speed_t, } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } +pub const VEOF: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; @@ -177,6 +214,11 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; pub const EDEADLK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; pub const ENOLCK: ::c_int = 37; @@ -311,10 +353,20 @@ pub const SO_INCOMING_CPU: ::c_int = 49; pub const SO_ATTACH_BPF: ::c_int = 50; pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGCHLD: ::c_int = 17; pub const SIGBUS: ::c_int = 7; pub const SIGUSR1: ::c_int = 10; @@ -369,6 +421,13 @@ pub const TIOCMBIC: ::c_ulong = 0x5417; pub const TIOCMSET: ::c_ulong = 0x5418; pub const TIOCCONS: ::c_ulong = 0x541D; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; @@ -438,6 +497,14 @@ pub const O_NOFOLLOW: ::c_int = 0x8000; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const EDEADLOCK: ::c_int = 35; @@ -562,6 +629,13 @@ pub const TIOCGWINSZ: ::c_ulong = 0x5413; pub const TIOCSWINSZ: ::c_ulong = 0x5414; pub const FIONREAD: ::c_ulong = 0x541B; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; + // Syscall table pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; diff --git a/src/unix/linux_like/linux/gnu/mips/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs similarity index 58% rename from src/unix/linux_like/linux/gnu/mips/mips64.rs rename to src/unix/linux_like/linux/gnu/b64/mips64.rs index f480e50a848ef..e27c11d6f3955 100644 --- a/src/unix/linux_like/linux/gnu/mips/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -1,36 +1,15 @@ use pthread_mutex_t; -pub type blkcnt_t = i64; pub type blksize_t = i64; pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; -pub type ino_t = u64; pub type nlink_t = u64; -pub type off_t = i64; pub type suseconds_t = i64; -pub type time_t = i64; pub type wchar_t = i32; -pub type clock_t = i64; pub type __u64 = ::c_ulong; s! { - pub struct aiocb { - pub aio_fildes: ::c_int, - pub aio_lio_opcode: ::c_int, - pub aio_reqprio: ::c_int, - pub aio_buf: *mut ::c_void, - pub aio_nbytes: ::size_t, - pub aio_sigevent: ::sigevent, - __next_prio: *mut aiocb, - __abs_prio: ::c_int, - __policy: ::c_int, - __error_code: ::c_int, - __return_value: ::ssize_t, - pub aio_offset: off_t, - __glibc_reserved: [::c_char; 32] - } - pub struct stat { pub st_dev: ::c_ulong, st_pad1: [::c_long; 2], @@ -55,6 +34,14 @@ s! { st_pad5: [::c_long; 7], } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct stat64 { pub st_dev: ::c_ulong, st_pad1: [::c_long; 2], @@ -130,7 +117,7 @@ s! { pub struct sigaction { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, + pub sa_mask: ::sigset_t, pub sa_restorer: ::Option, } @@ -140,10 +127,6 @@ s! { pub ss_flags: ::c_int, } - pub struct sigset_t { - __size: [::c_ulong; 16], - } - pub struct siginfo_t { pub si_signo: ::c_int, pub si_code: ::c_int, @@ -178,83 +161,28 @@ s! { __unused5: ::c_ulong } - pub struct msqid_ds { - pub msg_perm: ::ipc_perm, - pub msg_stime: ::time_t, - pub msg_rtime: ::time_t, - pub msg_ctime: ::time_t, - __msg_cbytes: ::c_ulong, - pub msg_qnum: ::msgqnum_t, - pub msg_qbytes: ::msglen_t, - pub msg_lspid: ::pid_t, - pub msg_lrpid: ::pid_t, - __glibc_reserved4: ::c_ulong, - __glibc_reserved5: ::c_ulong, - } - - pub struct statfs { - pub f_type: ::c_long, - pub f_bsize: ::c_long, - pub f_frsize: ::c_long, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_files: ::fsblkcnt_t, - pub f_ffree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - pub f_namelen: ::c_long, - f_spare: [::c_long; 6], - } - - pub struct msghdr { - pub msg_name: *mut ::c_void, - pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, - pub msg_controllen: ::size_t, - pub msg_flags: ::c_int, - } + pub struct glob64_t { + pub gl_pathc: ::size_t, + pub gl_pathv: *mut *mut ::c_char, + pub gl_offs: ::size_t, + pub gl_flags: ::c_int, - pub struct cmsghdr { - pub cmsg_len: ::size_t, - pub cmsg_level: ::c_int, - pub cmsg_type: ::c_int, + __unused1: *mut ::c_void, + __unused2: *mut ::c_void, + __unused3: *mut ::c_void, + __unused4: *mut ::c_void, + __unused5: *mut ::c_void, } - pub struct termios { + pub struct termios2 { pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, pub c_cflag: ::tcflag_t, pub c_lflag: ::tcflag_t, pub c_line: ::cc_t, - pub c_cc: [::cc_t; ::NCCS], - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], - pub totalram: ::c_ulong, - pub freeram: ::c_ulong, - pub sharedram: ::c_ulong, - pub bufferram: ::c_ulong, - pub totalswap: ::c_ulong, - pub freeswap: ::c_ulong, - pub procs: ::c_ushort, - pub pad: ::c_ushort, - pub totalhigh: ::c_ulong, - pub freehigh: ::c_ulong, - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], + pub c_cc: [::cc_t; 23], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, } } @@ -262,7 +190,6 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; align_const! { #[cfg(target_endian = "little")] @@ -315,10 +242,6 @@ align_const! { }; } -pub const O_LARGEFILE: ::c_int = 0; - -pub const RLIM_INFINITY: ::rlim_t = 0xffff_ffff_ffff_ffff; - pub const SYS_read: ::c_long = 5000 + 0; pub const SYS_write: ::c_long = 5000 + 1; pub const SYS_open: ::c_long = 5000 + 2; @@ -643,3 +566,428 @@ pub const SYS_pwritev2: ::c_long = 5000 + 322; pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; pub const SYS_pkey_alloc: ::c_long = 5000 + 324; pub const SYS_pkey_free: ::c_long = 5000 + 325; + +pub const SFD_CLOEXEC: ::c_int = 0x080000; + +pub const NCCS: usize = 32; + +pub const O_TRUNC: ::c_int = 512; + +pub const O_NOATIME: ::c_int = 0o1000000; +pub const O_CLOEXEC: ::c_int = 0x80000; +pub const O_PATH: ::c_int = 0o10000000; +pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; + +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; + +pub const SA_NODEFER: ::c_int = 0x40000000; +pub const SA_RESETHAND: ::c_int = 0x80000000; +pub const SA_RESTART: ::c_int = 0x10000000; +pub const SA_NOCLDSTOP: ::c_int = 0x00000001; + +pub const EPOLL_CLOEXEC: ::c_int = 0x80000; + +pub const EFD_CLOEXEC: ::c_int = 0x80000; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 6; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_FSYNC: ::c_int = 0x4010; +pub const O_ASYNC: ::c_int = 0x1000; +pub const O_NDELAY: ::c_int = 0x80; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_ANONYMOUS: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_STYLE: ::c_int = SO_TYPE; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ACCEPTCONN: ::c_int = 0x1009; +pub const SO_PROTOCOL: ::c_int = 0x1028; +pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_PASSCRED: ::c_int = 17; +pub const SO_PEERCRED: ::c_int = 18; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_PEERSEC: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 31; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SO_MARK: ::c_int = 36; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; + +pub const FIOCLEX: ::c_ulong = 0x6601; +pub const FIONBIO: ::c_ulong = 0x667e; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; +pub const TCSANOW: ::c_int = 0x540e; +pub const TCSADRAIN: ::c_int = 0x540f; +pub const TCSAFLUSH: ::c_int = 0x5410; + +pub const PTRACE_GETFPREGS: ::c_uint = 14; +pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_GETFPXREGS: ::c_uint = 18; +pub const PTRACE_SETFPXREGS: ::c_uint = 19; +pub const PTRACE_GETREGS: ::c_uint = 12; +pub const PTRACE_SETREGS: ::c_uint = 13; + +pub const EFD_NONBLOCK: ::c_int = 0x80; + +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; + +pub const SFD_NONBLOCK: ::c_int = 0x80; + +pub const TCGETS: ::c_ulong = 0x540d; +pub const TCSETS: ::c_ulong = 0x540e; +pub const TCSETSW: ::c_ulong = 0x540f; +pub const TCSETSF: ::c_ulong = 0x5410; +pub const TCGETA: ::c_ulong = 0x5401; +pub const TCSETA: ::c_ulong = 0x5402; +pub const TCSETAW: ::c_ulong = 0x5403; +pub const TCSETAF: ::c_ulong = 0x5404; +pub const TCSBRK: ::c_ulong = 0x5405; +pub const TCXONC: ::c_ulong = 0x5406; +pub const TCFLSH: ::c_ulong = 0x5407; +pub const TIOCGSOFTCAR: ::c_ulong = 0x5481; +pub const TIOCSSOFTCAR: ::c_ulong = 0x5482; +pub const TIOCINQ: ::c_ulong = 0x467f; +pub const TIOCLINUX: ::c_ulong = 0x5483; +pub const TIOCGSERIAL: ::c_ulong = 0x5484; +pub const TIOCEXCL: ::c_ulong = 0x740d; +pub const TIOCNXCL: ::c_ulong = 0x740e; +pub const TIOCSCTTY: ::c_ulong = 0x5480; +pub const TIOCGPGRP: ::c_ulong = 0x40047477; +pub const TIOCSPGRP: ::c_ulong = 0x80047476; +pub const TIOCOUTQ: ::c_ulong = 0x7472; +pub const TIOCSTI: ::c_ulong = 0x5472; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCMGET: ::c_ulong = 0x741d; +pub const TIOCMBIS: ::c_ulong = 0x741b; +pub const TIOCMBIC: ::c_ulong = 0x741c; +pub const TIOCMSET: ::c_ulong = 0x741a; +pub const FIONREAD: ::c_ulong = 0x467f; +pub const TIOCCONS: ::c_ulong = 0x80047478; + +pub const RTLD_DEEPBIND: ::c_int = 0x10; +pub const RTLD_GLOBAL: ::c_int = 0x4; +pub const RTLD_NOLOAD: ::c_int = 0x8; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const BOTHER: ::speed_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const TIOCM_ST: ::c_int = 0x010; +pub const TIOCM_SR: ::c_int = 0x020; +pub const TIOCM_CTS: ::c_int = 0x040; +pub const TIOCM_CAR: ::c_int = 0x100; +pub const TIOCM_RNG: ::c_int = 0x200; +pub const TIOCM_DSR: ::c_int = 0x400; + +pub const EHWPOISON: ::c_int = 168; + +#[link(name = "util")] +extern { + pub fn sysctl(name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t) + -> ::c_int; +} diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 065fa8832fcff..af1f11d1091cf 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -68,6 +68,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "sparc64"))] { mod sparc64; pub use self::sparc64::*; + } else if #[cfg(any(target_arch = "mips64"))] { + mod mips64; + pub use self::mips64::*; } else if #[cfg(any(target_arch = "s390x"))] { mod s390x; pub use self::s390x::*; diff --git a/src/unix/linux_like/linux/gnu/b64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/not_x32.rs index 044c846f1cfc5..b4a12822fde14 100644 --- a/src/unix/linux_like/linux/gnu/b64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/not_x32.rs @@ -27,10 +27,79 @@ s! { pub f_namemax: ::c_ulong, __f_spare: [::c_int; 6], } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; align_const! { #[cfg(target_endian = "little")] diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 3061690c158fd..000966464369a 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -21,6 +21,14 @@ s! { pub sa_restorer: ::Option, } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -137,13 +145,41 @@ s! { __unused4: ::c_ulong, __unused5: ::c_ulong } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; +pub const VEOF: usize = 4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; @@ -161,6 +197,14 @@ pub const O_PATH: ::c_int = 0o10000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const EDEADLK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -296,10 +340,20 @@ pub const SO_INCOMING_CPU: ::c_int = 49; pub const SO_ATTACH_BPF: ::c_int = 50; pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGCHLD: ::c_int = 17; pub const SIGBUS: ::c_int = 7; pub const SIGUSR1: ::c_int = 10; @@ -344,6 +398,12 @@ pub const F_UNLCK: ::c_int = 2; pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; pub const TIOCEXCL: ::c_ulong = 0x540C; pub const TIOCNXCL: ::c_ulong = 0x540D; pub const TIOCSCTTY: ::c_ulong = 0x540E; @@ -356,6 +416,13 @@ pub const TIOCCONS: ::c_ulong = 0x541D; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; @@ -451,6 +518,11 @@ pub const MAP_LOCKED: ::c_int = 0x00080; pub const MAP_NORESERVE: ::c_int = 0x00040; pub const EDEADLOCK: ::c_int = 58; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; pub const FIOCLEX: ::c_ulong = 0x20006601; pub const FIONBIO: ::c_ulong = 0x8004667e; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 4e0c0fca2f9e4..607396f30b827 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -21,6 +21,36 @@ s! { pub sa_mask: ::sigset_t, } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _pad2: [::c_long; 14], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -219,6 +249,10 @@ cfg_if! { } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; @@ -253,7 +287,6 @@ pub const EPOLL_CLOEXEC: ::c_int = 0x80000; pub const EFD_CLOEXEC: ::c_int = 0x80000; - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; @@ -284,6 +317,11 @@ align_const! { }; } +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; pub const EADDRINUSE: ::c_int = 98; pub const EADDRNOTAVAIL: ::c_int = 99; pub const ECONNABORTED: ::c_int = 103; @@ -321,6 +359,12 @@ pub const SO_RXQ_OVFL: ::c_int = 40; pub const SO_PEEK_OFF: ::c_int = 42; pub const SO_BUSY_POLL: ::c_int = 46; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; @@ -336,6 +380,14 @@ pub const O_NOFOLLOW: ::c_int = 0x20000; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const EDEADLOCK: ::c_int = 35; pub const ENAMETOOLONG: ::c_int = 36; @@ -426,6 +478,13 @@ pub const SO_ACCEPTCONN: ::c_int = 30; pub const SO_SNDBUFFORCE: ::c_int = 32; pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGCHLD: ::c_int = 17; pub const SIGUSR1: ::c_int = 10; pub const SIGUSR2: ::c_int = 12; @@ -581,6 +640,19 @@ pub const TIOCMSET: ::c_ulong = 0x5418; pub const FIONREAD: ::c_ulong = 0x541B; pub const TIOCCONS: ::c_ulong = 0x541D; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + pub const VTIME: usize = 5; pub const VSWTC: usize = 7; pub const VSTART: usize = 8; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 28b0ea0b0b7e2..1633e1715c7c1 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -21,6 +21,35 @@ s! { pub sa_restorer: ::Option, } + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + pub struct stat { pub st_dev: ::dev_t, __pad0: u64, @@ -152,11 +181,18 @@ s! { } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const TIOCGSOFTCAR: ::c_ulong = 0x40047464; pub const TIOCSSOFTCAR: ::c_ulong = 0x80047465; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 6; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; @@ -174,6 +210,14 @@ pub const O_PATH: ::c_int = 0x1000000; pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; pub const MAP_GROWSDOWN: ::c_int = 0x0200; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const EDEADLK: ::c_int = 78; pub const ENAMETOOLONG: ::c_int = 63; @@ -279,10 +323,20 @@ pub const SO_LINGER: ::c_int = 128; pub const SO_REUSEPORT: ::c_int = 0x200; pub const SO_ACCEPTCONN: ::c_int = 0x8000; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const SA_ONSTACK: ::c_int = 1; pub const SA_SIGINFO: ::c_int = 0x200; pub const SA_NOCLDWAIT: ::c_int = 0x100; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGCHLD: ::c_int = 20; pub const SIGBUS: ::c_int = 10; pub const SIGUSR1: ::c_int = 30; @@ -321,6 +375,12 @@ pub const F_UNLCK: ::c_int = 3; pub const SFD_NONBLOCK: ::c_int = 0x4000; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; pub const TIOCEXCL: ::c_ulong = 0x2000740d; pub const TIOCNXCL: ::c_ulong = 0x2000740e; pub const TIOCSCTTY: ::c_ulong = 0x20007484; @@ -331,6 +391,13 @@ pub const TIOCMBIC: ::c_ulong = 0x8004746b; pub const TIOCMSET: ::c_ulong = 0x8004746d; pub const TIOCCONS: ::c_ulong = 0x20007424; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + pub const SFD_CLOEXEC: ::c_int = 0x400000; pub const NCCS: usize = 17; @@ -397,6 +464,11 @@ pub const MAP_LOCKED: ::c_int = 0x0100; pub const MAP_NORESERVE: ::c_int = 0x00040; pub const EDEADLOCK: ::c_int = 108; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; pub const SO_PEERCRED: ::c_int = 0x40; pub const SO_RCVLOWAT: ::c_int = 0x800; diff --git a/src/unix/linux_like/linux/gnu/b64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x32.rs index 203ffae856b01..57f51021bcbe5 100644 --- a/src/unix/linux_like/linux/gnu/b64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x32.rs @@ -13,6 +13,14 @@ s! { pub sa_restorer: ::Option, } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -27,10 +35,71 @@ s! { pub f_namemax: ::c_ulong, __f_spare: [::c_int; 6], } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; align_const! { pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64.rs b/src/unix/linux_like/linux/gnu/b64/x86_64.rs index 4a349b626ddb0..e673c24471990 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64.rs @@ -18,6 +18,35 @@ s! { pub sa_restorer: ::Option, } + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -339,11 +368,18 @@ cfg_if! { } } +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7; pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6; @@ -496,10 +532,20 @@ pub const SO_INCOMING_CPU: ::c_int = 49; pub const SO_ATTACH_BPF: ::c_int = 50; pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; pub const SIGCHLD: ::c_int = 17; pub const SIGBUS: ::c_int = 7; pub const SIGUSR1: ::c_int = 10; @@ -544,6 +590,12 @@ pub const F_UNLCK: ::c_int = 2; pub const SFD_NONBLOCK: ::c_int = 0x0800; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; pub const TIOCEXCL: ::c_ulong = 0x540C; pub const TIOCNXCL: ::c_ulong = 0x540D; pub const TIOCSCTTY: ::c_ulong = 0x540E; @@ -554,6 +606,13 @@ pub const TIOCMBIC: ::c_ulong = 0x5417; pub const TIOCMSET: ::c_ulong = 0x5418; pub const TIOCCONS: ::c_ulong = 0x541D; +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; @@ -593,11 +652,24 @@ pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; pub const FIOCLEX: ::c_ulong = 0x5451; pub const FIONBIO: ::c_ulong = 0x5421; diff --git a/src/unix/linux_like/linux/gnu/mips/align.rs b/src/unix/linux_like/linux/gnu/mips/align.rs deleted file mode 100644 index 4a0e07460ebb1..0000000000000 --- a/src/unix/linux_like/linux/gnu/mips/align.rs +++ /dev/null @@ -1,13 +0,0 @@ -s! { - // FIXME this is actually a union - #[cfg_attr(target_pointer_width = "32", - repr(align(4)))] - #[cfg_attr(target_pointer_width = "64", - repr(align(8)))] - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - } -} diff --git a/src/unix/linux_like/linux/gnu/mips/mod.rs b/src/unix/linux_like/linux/gnu/mips/mod.rs deleted file mode 100644 index 8416daf34f64b..0000000000000 --- a/src/unix/linux_like/linux/gnu/mips/mod.rs +++ /dev/null @@ -1,1008 +0,0 @@ -pub type pthread_t = c_ulong; -pub type shmatt_t = ::c_ulong; -pub type msgqnum_t = ::c_ulong; -pub type msglen_t = ::c_ulong; -pub type fsblkcnt_t = ::c_ulong; -pub type fsfilcnt_t = ::c_ulong; -pub type rlim_t = c_ulong; -pub type __priority_which_t = ::c_uint; -pub type __rlimit_resource_t = ::c_uint; - -s! { - pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - - pub struct termios2 { - pub c_iflag: ::tcflag_t, - pub c_oflag: ::tcflag_t, - pub c_cflag: ::tcflag_t, - pub c_lflag: ::tcflag_t, - pub c_line: ::cc_t, - pub c_cc: [::cc_t; 23], - pub c_ispeed: ::speed_t, - pub c_ospeed: ::speed_t, - } - - pub struct nlmsghdr { - pub nlmsg_len: u32, - pub nlmsg_type: u16, - pub nlmsg_flags: u16, - pub nlmsg_seq: u32, - pub nlmsg_pid: u32, - } - - pub struct nlmsgerr { - pub error: ::c_int, - pub msg: nlmsghdr, - } - - pub struct nl_pktinfo { - pub group: u32, - } - - pub struct nl_mmap_req { - pub nm_block_size: ::c_uint, - pub nm_block_nr: ::c_uint, - pub nm_frame_size: ::c_uint, - pub nm_frame_nr: ::c_uint, - } - - pub struct nl_mmap_hdr { - pub nm_status: ::c_uint, - pub nm_len: ::c_uint, - pub nm_group: u32, - pub nm_pid: u32, - pub nm_uid: u32, - pub nm_gid: u32, - } - - pub struct nlattr { - pub nla_len: u16, - pub nla_type: u16, - } -} - -pub const MS_RMT_MASK: ::c_ulong = 0x02800051; - -pub const SFD_CLOEXEC: ::c_int = 0x080000; - -pub const NCCS: usize = 32; - -pub const O_TRUNC: ::c_int = 512; - -pub const O_NOATIME: ::c_int = 0o1000000; -pub const O_CLOEXEC: ::c_int = 0x80000; -pub const O_PATH: ::c_int = 0o10000000; -pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - -pub const EBFONT: ::c_int = 59; -pub const ENOSTR: ::c_int = 60; -pub const ENODATA: ::c_int = 61; -pub const ETIME: ::c_int = 62; -pub const ENOSR: ::c_int = 63; -pub const ENONET: ::c_int = 64; -pub const ENOPKG: ::c_int = 65; -pub const EREMOTE: ::c_int = 66; -pub const ENOLINK: ::c_int = 67; -pub const EADV: ::c_int = 68; -pub const ESRMNT: ::c_int = 69; -pub const ECOMM: ::c_int = 70; -pub const EPROTO: ::c_int = 71; -pub const EDOTDOT: ::c_int = 73; - -pub const SA_NODEFER: ::c_int = 0x40000000; -pub const SA_RESETHAND: ::c_int = 0x80000000; -pub const SA_RESTART: ::c_int = 0x10000000; -pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - -pub const EPOLL_CLOEXEC: ::c_int = 0x80000; - -pub const EFD_CLOEXEC: ::c_int = 0x80000; - -pub const BUFSIZ: ::c_uint = 8192; -pub const TMP_MAX: ::c_uint = 238328; -pub const FOPEN_MAX: ::c_uint = 16; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; -pub const POSIX_MADV_DONTNEED: ::c_int = 4; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; -pub const _SC_PII: ::c_int = 53; -pub const _SC_PII_XTI: ::c_int = 54; -pub const _SC_PII_SOCKET: ::c_int = 55; -pub const _SC_PII_INTERNET: ::c_int = 56; -pub const _SC_PII_OSI: ::c_int = 57; -pub const _SC_POLL: ::c_int = 58; -pub const _SC_SELECT: ::c_int = 59; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; -pub const _SC_PII_OSI_COTS: ::c_int = 63; -pub const _SC_PII_OSI_CLTS: ::c_int = 64; -pub const _SC_PII_OSI_M: ::c_int = 65; -pub const _SC_T_IOV_MAX: ::c_int = 66; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const _SC_CHAR_BIT: ::c_int = 101; -pub const _SC_CHAR_MAX: ::c_int = 102; -pub const _SC_CHAR_MIN: ::c_int = 103; -pub const _SC_INT_MAX: ::c_int = 104; -pub const _SC_INT_MIN: ::c_int = 105; -pub const _SC_LONG_BIT: ::c_int = 106; -pub const _SC_WORD_BIT: ::c_int = 107; -pub const _SC_MB_LEN_MAX: ::c_int = 108; -pub const _SC_SSIZE_MAX: ::c_int = 110; -pub const _SC_SCHAR_MAX: ::c_int = 111; -pub const _SC_SCHAR_MIN: ::c_int = 112; -pub const _SC_SHRT_MAX: ::c_int = 113; -pub const _SC_SHRT_MIN: ::c_int = 114; -pub const _SC_UCHAR_MAX: ::c_int = 115; -pub const _SC_UINT_MAX: ::c_int = 116; -pub const _SC_ULONG_MAX: ::c_int = 117; -pub const _SC_USHRT_MAX: ::c_int = 118; -pub const _SC_NL_ARGMAX: ::c_int = 119; -pub const _SC_NL_LANGMAX: ::c_int = 120; -pub const _SC_NL_MSGMAX: ::c_int = 121; -pub const _SC_NL_NMAX: ::c_int = 122; -pub const _SC_NL_SETMAX: ::c_int = 123; -pub const _SC_NL_TEXTMAX: ::c_int = 124; -pub const _SC_BASE: ::c_int = 134; -pub const _SC_C_LANG_SUPPORT: ::c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; -pub const _SC_DEVICE_IO: ::c_int = 140; -pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; -pub const _SC_FD_MGMT: ::c_int = 143; -pub const _SC_FIFO: ::c_int = 144; -pub const _SC_PIPE: ::c_int = 145; -pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; -pub const _SC_FILE_LOCKING: ::c_int = 147; -pub const _SC_FILE_SYSTEM: ::c_int = 148; -pub const _SC_MULTI_PROCESS: ::c_int = 150; -pub const _SC_SINGLE_PROCESS: ::c_int = 151; -pub const _SC_NETWORKING: ::c_int = 152; -pub const _SC_REGEX_VERSION: ::c_int = 156; -pub const _SC_SIGNALS: ::c_int = 158; -pub const _SC_SYSTEM_DATABASE: ::c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; -pub const _SC_USER_GROUPS: ::c_int = 166; -pub const _SC_USER_GROUPS_R: ::c_int = 167; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; -pub const O_ACCMODE: ::c_int = 3; -pub const O_DIRECT: ::c_int = 0x8000; -pub const O_DIRECTORY: ::c_int = 0x10000; -pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const ST_RELATIME: ::c_ulong = 4096; -pub const NI_MAXHOST: ::socklen_t = 1025; - -pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; -pub const RLIMIT_AS: ::__rlimit_resource_t = 6; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; -pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 9; -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16; - -pub const O_APPEND: ::c_int = 8; -pub const O_CREAT: ::c_int = 256; -pub const O_EXCL: ::c_int = 1024; -pub const O_NOCTTY: ::c_int = 2048; -pub const O_NONBLOCK: ::c_int = 128; -pub const O_SYNC: ::c_int = 0x4010; -pub const O_RSYNC: ::c_int = 0x4010; -pub const O_DSYNC: ::c_int = 0x10; -pub const O_FSYNC: ::c_int = 0x4010; -pub const O_ASYNC: ::c_int = 0x1000; -pub const O_NDELAY: ::c_int = 0x80; - -pub const SOCK_NONBLOCK: ::c_int = 128; - -pub const EDEADLK: ::c_int = 45; -pub const ENAMETOOLONG: ::c_int = 78; -pub const ENOLCK: ::c_int = 46; -pub const ENOSYS: ::c_int = 89; -pub const ENOTEMPTY: ::c_int = 93; -pub const ELOOP: ::c_int = 90; -pub const ENOMSG: ::c_int = 35; -pub const EIDRM: ::c_int = 36; -pub const ECHRNG: ::c_int = 37; -pub const EL2NSYNC: ::c_int = 38; -pub const EL3HLT: ::c_int = 39; -pub const EL3RST: ::c_int = 40; -pub const ELNRNG: ::c_int = 41; -pub const EUNATCH: ::c_int = 42; -pub const ENOCSI: ::c_int = 43; -pub const EL2HLT: ::c_int = 44; -pub const EBADE: ::c_int = 50; -pub const EBADR: ::c_int = 51; -pub const EXFULL: ::c_int = 52; -pub const ENOANO: ::c_int = 53; -pub const EBADRQC: ::c_int = 54; -pub const EBADSLT: ::c_int = 55; -pub const EDEADLOCK: ::c_int = 56; -pub const EMULTIHOP: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 79; -pub const ENOTUNIQ: ::c_int = 80; -pub const EBADFD: ::c_int = 81; -pub const EBADMSG: ::c_int = 77; -pub const EREMCHG: ::c_int = 82; -pub const ELIBACC: ::c_int = 83; -pub const ELIBBAD: ::c_int = 84; -pub const ELIBSCN: ::c_int = 85; -pub const ELIBMAX: ::c_int = 86; -pub const ELIBEXEC: ::c_int = 87; -pub const EILSEQ: ::c_int = 88; -pub const ERESTART: ::c_int = 91; -pub const ESTRPIPE: ::c_int = 92; -pub const EUSERS: ::c_int = 94; -pub const ENOTSOCK: ::c_int = 95; -pub const EDESTADDRREQ: ::c_int = 96; -pub const EMSGSIZE: ::c_int = 97; -pub const EPROTOTYPE: ::c_int = 98; -pub const ENOPROTOOPT: ::c_int = 99; -pub const EPROTONOSUPPORT: ::c_int = 120; -pub const ESOCKTNOSUPPORT: ::c_int = 121; -pub const EOPNOTSUPP: ::c_int = 122; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 123; -pub const EAFNOSUPPORT: ::c_int = 124; -pub const EADDRINUSE: ::c_int = 125; -pub const EADDRNOTAVAIL: ::c_int = 126; -pub const ENETDOWN: ::c_int = 127; -pub const ENETUNREACH: ::c_int = 128; -pub const ENETRESET: ::c_int = 129; -pub const ECONNABORTED: ::c_int = 130; -pub const ECONNRESET: ::c_int = 131; -pub const ENOBUFS: ::c_int = 132; -pub const EISCONN: ::c_int = 133; -pub const ENOTCONN: ::c_int = 134; -pub const ESHUTDOWN: ::c_int = 143; -pub const ETOOMANYREFS: ::c_int = 144; -pub const ETIMEDOUT: ::c_int = 145; -pub const ECONNREFUSED: ::c_int = 146; -pub const EHOSTDOWN: ::c_int = 147; -pub const EHOSTUNREACH: ::c_int = 148; -pub const EALREADY: ::c_int = 149; -pub const EINPROGRESS: ::c_int = 150; -pub const ESTALE: ::c_int = 151; -pub const EUCLEAN: ::c_int = 135; -pub const ENOTNAM: ::c_int = 137; -pub const ENAVAIL: ::c_int = 138; -pub const EISNAM: ::c_int = 139; -pub const EREMOTEIO: ::c_int = 140; -pub const EDQUOT: ::c_int = 1133; -pub const ENOMEDIUM: ::c_int = 159; -pub const EMEDIUMTYPE: ::c_int = 160; -pub const ECANCELED: ::c_int = 158; -pub const ENOKEY: ::c_int = 161; -pub const EKEYEXPIRED: ::c_int = 162; -pub const EKEYREVOKED: ::c_int = 163; -pub const EKEYREJECTED: ::c_int = 164; -pub const EOWNERDEAD: ::c_int = 165; -pub const ENOTRECOVERABLE: ::c_int = 166; -pub const ERFKILL: ::c_int = 167; - -pub const LC_PAPER: ::c_int = 7; -pub const LC_NAME: ::c_int = 8; -pub const LC_ADDRESS: ::c_int = 9; -pub const LC_TELEPHONE: ::c_int = 10; -pub const LC_MEASUREMENT: ::c_int = 11; -pub const LC_IDENTIFICATION: ::c_int = 12; -pub const LC_PAPER_MASK: ::c_int = (1 << LC_PAPER); -pub const LC_NAME_MASK: ::c_int = (1 << LC_NAME); -pub const LC_ADDRESS_MASK: ::c_int = (1 << LC_ADDRESS); -pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE); -pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT); -pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION); -pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; - -pub const MAP_NORESERVE: ::c_int = 0x400; -pub const MAP_ANON: ::c_int = 0x800; -pub const MAP_ANONYMOUS: ::c_int = 0x800; -pub const MAP_GROWSDOWN: ::c_int = 0x1000; -pub const MAP_DENYWRITE: ::c_int = 0x2000; -pub const MAP_EXECUTABLE: ::c_int = 0x4000; -pub const MAP_LOCKED: ::c_int = 0x8000; -pub const MAP_POPULATE: ::c_int = 0x10000; -pub const MAP_NONBLOCK: ::c_int = 0x20000; -pub const MAP_STACK: ::c_int = 0x40000; -pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; -pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; - -pub const SOCK_STREAM: ::c_int = 2; -pub const SOCK_DGRAM: ::c_int = 1; -pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOCK_DCCP: ::c_int = 6; -pub const SOCK_PACKET: ::c_int = 10; - -pub const SOL_SOCKET: ::c_int = 0xffff; - -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_OOBINLINE: ::c_int = 0x0100; -pub const SO_REUSEPORT: ::c_int = 0x0200; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_STYLE: ::c_int = SO_TYPE; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_SNDLOWAT: ::c_int = 0x1003; -pub const SO_RCVLOWAT: ::c_int = 0x1004; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ACCEPTCONN: ::c_int = 0x1009; -pub const SO_PROTOCOL: ::c_int = 0x1028; -pub const SO_DOMAIN: ::c_int = 0x1029; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_PASSCRED: ::c_int = 17; -pub const SO_PEERCRED: ::c_int = 18; -pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -pub const SO_BINDTODEVICE: ::c_int = 25; -pub const SO_ATTACH_FILTER: ::c_int = 26; -pub const SO_DETACH_FILTER: ::c_int = 27; -pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -pub const SO_PEERNAME: ::c_int = 28; -pub const SO_TIMESTAMP: ::c_int = 29; -pub const SO_PEERSEC: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 31; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PASSSEC: ::c_int = 34; -pub const SO_TIMESTAMPNS: ::c_int = 35; -pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -pub const SO_MARK: ::c_int = 36; -pub const SO_RXQ_OVFL: ::c_int = 40; -pub const SO_WIFI_STATUS: ::c_int = 41; -pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -pub const SO_PEEK_OFF: ::c_int = 42; -pub const SO_NOFCS: ::c_int = 43; -pub const SO_LOCK_FILTER: ::c_int = 44; -pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -pub const SO_BUSY_POLL: ::c_int = 46; -pub const SO_MAX_PACING_RATE: ::c_int = 47; -pub const SO_BPF_EXTENSIONS: ::c_int = 48; -pub const SO_INCOMING_CPU: ::c_int = 49; -pub const SO_ATTACH_BPF: ::c_int = 50; -pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; - -/* DCCP socket options */ -pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; -pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; -pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3; -pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4; -pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5; -pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6; -pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10; -pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11; -pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12; -pub const DCCP_SOCKOPT_CCID: ::c_int = 13; -pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14; -pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15; -pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16; -pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17; -pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128; -pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; - -/// maximum number of services provided on the same listening port -pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; - -pub const FIOCLEX: ::c_ulong = 0x6601; -pub const FIONBIO: ::c_ulong = 0x667e; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000008; -pub const SA_NOCLDWAIT: ::c_int = 0x00010000; - -pub const SIGCHLD: ::c_int = 18; -pub const SIGBUS: ::c_int = 10; -pub const SIGTTIN: ::c_int = 26; -pub const SIGTTOU: ::c_int = 27; -pub const SIGXCPU: ::c_int = 30; -pub const SIGXFSZ: ::c_int = 31; -pub const SIGVTALRM: ::c_int = 28; -pub const SIGPROF: ::c_int = 29; -pub const SIGWINCH: ::c_int = 20; -pub const SIGUSR1: ::c_int = 16; -pub const SIGUSR2: ::c_int = 17; -pub const SIGCONT: ::c_int = 25; -pub const SIGSTOP: ::c_int = 23; -pub const SIGTSTP: ::c_int = 24; -pub const SIGURG: ::c_int = 21; -pub const SIGIO: ::c_int = 22; -pub const SIGSYS: ::c_int = 12; -pub const SIGPOLL: ::c_int = 22; -pub const SIGPWR: ::c_int = 19; -pub const SIG_SETMASK: ::c_int = 3; -pub const SIG_BLOCK: ::c_int = 0x1; -pub const SIG_UNBLOCK: ::c_int = 0x2; - -pub const POLLWRNORM: ::c_short = 0x004; -pub const POLLWRBAND: ::c_short = 0x100; - -pub const PTHREAD_STACK_MIN: ::size_t = 131072; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; - -pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5; -pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff; -pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245; -pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45; -pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53; -pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53; -pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53; -pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53; -pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849; -pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6; -pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660; -pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6; -pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f; -pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f; -pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468; -pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478; -pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44; -pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c; -pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969; -pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1; -pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0; -pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f; -pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973; -pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; -pub const TMPFS_MAGIC: ::c_long = 0x01021994; -pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; - -pub const VEOF: usize = 16; -pub const VEOL: usize = 17; -pub const VEOL2: usize = 6; -pub const VMIN: usize = 4; -pub const IEXTEN: ::tcflag_t = 0x00000100; -pub const TOSTOP: ::tcflag_t = 0x00008000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const EXTPROC: ::tcflag_t = 0o200000; -pub const TCSANOW: ::c_int = 0x540e; -pub const TCSADRAIN: ::c_int = 0x540f; -pub const TCSAFLUSH: ::c_int = 0x5410; - -pub const CPU_SETSIZE: ::c_int = 0x400; - -pub const PTRACE_TRACEME: ::c_uint = 0; -pub const PTRACE_PEEKTEXT: ::c_uint = 1; -pub const PTRACE_PEEKDATA: ::c_uint = 2; -pub const PTRACE_PEEKUSER: ::c_uint = 3; -pub const PTRACE_POKETEXT: ::c_uint = 4; -pub const PTRACE_POKEDATA: ::c_uint = 5; -pub const PTRACE_POKEUSER: ::c_uint = 6; -pub const PTRACE_CONT: ::c_uint = 7; -pub const PTRACE_KILL: ::c_uint = 8; -pub const PTRACE_SINGLESTEP: ::c_uint = 9; -pub const PTRACE_ATTACH: ::c_uint = 16; -pub const PTRACE_DETACH: ::c_uint = 17; -pub const PTRACE_SYSCALL: ::c_uint = 24; -pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; -pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; -pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; -pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; -pub const PTRACE_GETFPREGS: ::c_uint = 14; -pub const PTRACE_SETFPREGS: ::c_uint = 15; -pub const PTRACE_GETFPXREGS: ::c_uint = 18; -pub const PTRACE_SETFPXREGS: ::c_uint = 19; -pub const PTRACE_GETREGS: ::c_uint = 12; -pub const PTRACE_SETREGS: ::c_uint = 13; - -pub const MAP_HUGETLB: ::c_int = 0x080000; - -pub const EFD_NONBLOCK: ::c_int = 0x80; - -pub const F_RDLCK: ::c_int = 0; -pub const F_WRLCK: ::c_int = 1; -pub const F_UNLCK: ::c_int = 2; -pub const F_GETLK: ::c_int = 14; -pub const F_GETOWN: ::c_int = 23; -pub const F_SETOWN: ::c_int = 24; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; - -pub const SFD_NONBLOCK: ::c_int = 0x80; - -pub const TCGETS: ::c_ulong = 0x540d; -pub const TCSETS: ::c_ulong = 0x540e; -pub const TCSETSW: ::c_ulong = 0x540f; -pub const TCSETSF: ::c_ulong = 0x5410; -pub const TCGETA: ::c_ulong = 0x5401; -pub const TCSETA: ::c_ulong = 0x5402; -pub const TCSETAW: ::c_ulong = 0x5403; -pub const TCSETAF: ::c_ulong = 0x5404; -pub const TCSBRK: ::c_ulong = 0x5405; -pub const TCXONC: ::c_ulong = 0x5406; -pub const TCFLSH: ::c_ulong = 0x5407; -pub const TIOCGSOFTCAR: ::c_ulong = 0x5481; -pub const TIOCSSOFTCAR: ::c_ulong = 0x5482; -pub const TIOCINQ: ::c_ulong = 0x467f; -pub const TIOCLINUX: ::c_ulong = 0x5483; -pub const TIOCGSERIAL: ::c_ulong = 0x5484; -pub const TIOCEXCL: ::c_ulong = 0x740d; -pub const TIOCNXCL: ::c_ulong = 0x740e; -pub const TIOCSCTTY: ::c_ulong = 0x5480; -pub const TIOCGPGRP: ::c_ulong = 0x40047477; -pub const TIOCSPGRP: ::c_ulong = 0x80047476; -pub const TIOCOUTQ: ::c_ulong = 0x7472; -pub const TIOCSTI: ::c_ulong = 0x5472; -pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -pub const TIOCMGET: ::c_ulong = 0x741d; -pub const TIOCMBIS: ::c_ulong = 0x741b; -pub const TIOCMBIC: ::c_ulong = 0x741c; -pub const TIOCMSET: ::c_ulong = 0x741a; -pub const FIONREAD: ::c_ulong = 0x467f; -pub const TIOCCONS: ::c_ulong = 0x80047478; - -pub const RTLD_DEEPBIND: ::c_int = 0x10; -pub const RTLD_GLOBAL: ::c_int = 0x4; -pub const RTLD_NOLOAD: ::c_int = 0x8; - -pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; - -pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; - -pub const MCL_CURRENT: ::c_int = 0x0001; -pub const MCL_FUTURE: ::c_int = 0x0002; - -pub const SIGSTKSZ: ::size_t = 8192; -pub const MINSIGSTKSZ: ::size_t = 2048; -pub const CBAUD: ::tcflag_t = 0o0010017; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; -pub const FF1: ::tcflag_t = 0x00008000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const VWERASE: usize = 14; -pub const VREPRINT: usize = 12; -pub const VSUSP: usize = 10; -pub const VSTART: usize = 8; -pub const VSTOP: usize = 9; -pub const VDISCARD: usize = 13; -pub const VTIME: usize = 5; -pub const IXON: ::tcflag_t = 0x00000400; -pub const IXOFF: ::tcflag_t = 0x00001000; -pub const ONLCR: ::tcflag_t = 0x4; -pub const CSIZE: ::tcflag_t = 0x00000030; -pub const CS6: ::tcflag_t = 0x00000010; -pub const CS7: ::tcflag_t = 0x00000020; -pub const CS8: ::tcflag_t = 0x00000030; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00000800; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const ECHOPRT: ::tcflag_t = 0x00000400; -pub const ECHOCTL: ::tcflag_t = 0x00000200; -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const PENDIN: ::tcflag_t = 0x00004000; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const CIBAUD: ::tcflag_t = 0o02003600000; -pub const CBAUDEX: ::tcflag_t = 0o010000; -pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; -pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; - -pub const B0: ::speed_t = 0o000000; -pub const B50: ::speed_t = 0o000001; -pub const B75: ::speed_t = 0o000002; -pub const B110: ::speed_t = 0o000003; -pub const B134: ::speed_t = 0o000004; -pub const B150: ::speed_t = 0o000005; -pub const B200: ::speed_t = 0o000006; -pub const B300: ::speed_t = 0o000007; -pub const B600: ::speed_t = 0o000010; -pub const B1200: ::speed_t = 0o000011; -pub const B1800: ::speed_t = 0o000012; -pub const B2400: ::speed_t = 0o000013; -pub const B4800: ::speed_t = 0o000014; -pub const B9600: ::speed_t = 0o000015; -pub const B19200: ::speed_t = 0o000016; -pub const B38400: ::speed_t = 0o000017; -pub const EXTA: ::speed_t = B19200; -pub const EXTB: ::speed_t = B38400; -pub const BOTHER: ::speed_t = 0o010000; -pub const B57600: ::speed_t = 0o010001; -pub const B115200: ::speed_t = 0o010002; -pub const B230400: ::speed_t = 0o010003; -pub const B460800: ::speed_t = 0o010004; -pub const B500000: ::speed_t = 0o010005; -pub const B576000: ::speed_t = 0o010006; -pub const B921600: ::speed_t = 0o010007; -pub const B1000000: ::speed_t = 0o010010; -pub const B1152000: ::speed_t = 0o010011; -pub const B1500000: ::speed_t = 0o010012; -pub const B2000000: ::speed_t = 0o010013; -pub const B2500000: ::speed_t = 0o010014; -pub const B3000000: ::speed_t = 0o010015; -pub const B3500000: ::speed_t = 0o010016; -pub const B4000000: ::speed_t = 0o010017; - -pub const TIOCM_LE: ::c_int = 0x001; -pub const TIOCM_DTR: ::c_int = 0x002; -pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x010; -pub const TIOCM_SR: ::c_int = 0x020; -pub const TIOCM_CTS: ::c_int = 0x040; -pub const TIOCM_CAR: ::c_int = 0x100; -pub const TIOCM_CD: ::c_int = TIOCM_CAR; -pub const TIOCM_RNG: ::c_int = 0x200; -pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const TIOCM_DSR: ::c_int = 0x400; - -pub const EHWPOISON: ::c_int = 168; -pub const SIGEV_THREAD_ID: ::c_int = 4; -pub const EPOLLWAKEUP: ::c_int = 0x20000000; - -pub const NF_NETDEV_INGRESS: ::c_int = 0; -pub const NF_NETDEV_NUMHOOKS: ::c_int = 1; - -pub const NFPROTO_INET: ::c_int = 1; -pub const NFPROTO_NETDEV: ::c_int = 5; - -pub const NLA_ALIGNTO: ::c_int = 4; - -pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; - -pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; -pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; - -pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256; -pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256; -pub const NFT_SET_MAXNAMELEN: ::c_int = 256; -pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256; -pub const NFT_USERDATA_MAXLEN: ::c_int = 256; - -pub const NFT_REG_VERDICT: ::c_int = 0; -pub const NFT_REG_1: ::c_int = 1; -pub const NFT_REG_2: ::c_int = 2; -pub const NFT_REG_3: ::c_int = 3; -pub const NFT_REG_4: ::c_int = 4; -pub const __NFT_REG_MAX: ::c_int = 5; -pub const NFT_REG32_00: ::c_int = 8; -pub const NFT_REG32_01: ::c_int = 9; -pub const NFT_REG32_02: ::c_int = 10; -pub const NFT_REG32_03: ::c_int = 11; -pub const NFT_REG32_04: ::c_int = 12; -pub const NFT_REG32_05: ::c_int = 13; -pub const NFT_REG32_06: ::c_int = 14; -pub const NFT_REG32_07: ::c_int = 15; -pub const NFT_REG32_08: ::c_int = 16; -pub const NFT_REG32_09: ::c_int = 17; -pub const NFT_REG32_10: ::c_int = 18; -pub const NFT_REG32_11: ::c_int = 19; -pub const NFT_REG32_12: ::c_int = 20; -pub const NFT_REG32_13: ::c_int = 21; -pub const NFT_REG32_14: ::c_int = 22; -pub const NFT_REG32_15: ::c_int = 23; - -pub const NFT_REG_SIZE: ::c_int = 16; -pub const NFT_REG32_SIZE: ::c_int = 4; - -pub const NFT_CONTINUE: ::c_int = -1; -pub const NFT_BREAK: ::c_int = -2; -pub const NFT_JUMP: ::c_int = -3; -pub const NFT_GOTO: ::c_int = -4; -pub const NFT_RETURN: ::c_int = -5; - -pub const NFT_MSG_NEWTABLE: ::c_int = 0; -pub const NFT_MSG_GETTABLE: ::c_int = 1; -pub const NFT_MSG_DELTABLE: ::c_int = 2; -pub const NFT_MSG_NEWCHAIN: ::c_int = 3; -pub const NFT_MSG_GETCHAIN: ::c_int = 4; -pub const NFT_MSG_DELCHAIN: ::c_int = 5; -pub const NFT_MSG_NEWRULE: ::c_int = 6; -pub const NFT_MSG_GETRULE: ::c_int = 7; -pub const NFT_MSG_DELRULE: ::c_int = 8; -pub const NFT_MSG_NEWSET: ::c_int = 9; -pub const NFT_MSG_GETSET: ::c_int = 10; -pub const NFT_MSG_DELSET: ::c_int = 11; -pub const NFT_MSG_NEWSETELEM: ::c_int = 12; -pub const NFT_MSG_GETSETELEM: ::c_int = 13; -pub const NFT_MSG_DELSETELEM: ::c_int = 14; -pub const NFT_MSG_NEWGEN: ::c_int = 15; -pub const NFT_MSG_GETGEN: ::c_int = 16; -pub const NFT_MSG_TRACE: ::c_int = 17; -pub const NFT_MSG_NEWOBJ: ::c_int = 18; -pub const NFT_MSG_GETOBJ: ::c_int = 19; -pub const NFT_MSG_DELOBJ: ::c_int = 20; -pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21; -pub const NFT_MSG_MAX: ::c_int = 25; - -pub const NFT_SET_ANONYMOUS: ::c_int = 0x1; -pub const NFT_SET_CONSTANT: ::c_int = 0x2; -pub const NFT_SET_INTERVAL: ::c_int = 0x4; -pub const NFT_SET_MAP: ::c_int = 0x8; -pub const NFT_SET_TIMEOUT: ::c_int = 0x10; -pub const NFT_SET_EVAL: ::c_int = 0x20; - -pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0; -pub const NFT_SET_POL_MEMORY: ::c_int = 1; - -pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1; - -pub const NFT_DATA_VALUE: ::c_uint = 0; -pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00; - -pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00; - -pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64; - -pub const NFT_BYTEORDER_NTOH: ::c_int = 0; -pub const NFT_BYTEORDER_HTON: ::c_int = 1; - -pub const NFT_CMP_EQ: ::c_int = 0; -pub const NFT_CMP_NEQ: ::c_int = 1; -pub const NFT_CMP_LT: ::c_int = 2; -pub const NFT_CMP_LTE: ::c_int = 3; -pub const NFT_CMP_GT: ::c_int = 4; -pub const NFT_CMP_GTE: ::c_int = 5; - -pub const NFT_RANGE_EQ: ::c_int = 0; -pub const NFT_RANGE_NEQ: ::c_int = 1; - -pub const NFT_LOOKUP_F_INV: ::c_int = (1 << 0); - -pub const NFT_DYNSET_OP_ADD: ::c_int = 0; -pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1; - -pub const NFT_DYNSET_F_INV: ::c_int = (1 << 0); - -pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0; -pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1; -pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2; - -pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0; -pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1; - -pub const NFT_META_LEN: ::c_int = 0; -pub const NFT_META_PROTOCOL: ::c_int = 1; -pub const NFT_META_PRIORITY: ::c_int = 2; -pub const NFT_META_MARK: ::c_int = 3; -pub const NFT_META_IIF: ::c_int = 4; -pub const NFT_META_OIF: ::c_int = 5; -pub const NFT_META_IIFNAME: ::c_int = 6; -pub const NFT_META_OIFNAME: ::c_int = 7; -pub const NFT_META_IIFTYPE: ::c_int = 8; -pub const NFT_META_OIFTYPE: ::c_int = 9; -pub const NFT_META_SKUID: ::c_int = 10; -pub const NFT_META_SKGID: ::c_int = 11; -pub const NFT_META_NFTRACE: ::c_int = 12; -pub const NFT_META_RTCLASSID: ::c_int = 13; -pub const NFT_META_SECMARK: ::c_int = 14; -pub const NFT_META_NFPROTO: ::c_int = 15; -pub const NFT_META_L4PROTO: ::c_int = 16; -pub const NFT_META_BRI_IIFNAME: ::c_int = 17; -pub const NFT_META_BRI_OIFNAME: ::c_int = 18; -pub const NFT_META_PKTTYPE: ::c_int = 19; -pub const NFT_META_CPU: ::c_int = 20; -pub const NFT_META_IIFGROUP: ::c_int = 21; -pub const NFT_META_OIFGROUP: ::c_int = 22; -pub const NFT_META_CGROUP: ::c_int = 23; -pub const NFT_META_PRANDOM: ::c_int = 24; - -pub const NFT_CT_STATE: ::c_int = 0; -pub const NFT_CT_DIRECTION: ::c_int = 1; -pub const NFT_CT_STATUS: ::c_int = 2; -pub const NFT_CT_MARK: ::c_int = 3; -pub const NFT_CT_SECMARK: ::c_int = 4; -pub const NFT_CT_EXPIRATION: ::c_int = 5; -pub const NFT_CT_HELPER: ::c_int = 6; -pub const NFT_CT_L3PROTOCOL: ::c_int = 7; -pub const NFT_CT_SRC: ::c_int = 8; -pub const NFT_CT_DST: ::c_int = 9; -pub const NFT_CT_PROTOCOL: ::c_int = 10; -pub const NFT_CT_PROTO_SRC: ::c_int = 11; -pub const NFT_CT_PROTO_DST: ::c_int = 12; -pub const NFT_CT_LABELS: ::c_int = 13; -pub const NFT_CT_PKTS: ::c_int = 14; -pub const NFT_CT_BYTES: ::c_int = 15; - -pub const NFT_LIMIT_PKTS: ::c_int = 0; -pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1; - -pub const NFT_LIMIT_F_INV: ::c_int = (1 << 0); - -pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01; -pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02; -pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03; - -pub const NFT_QUOTA_F_INV: ::c_int = (1 << 0); - -pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0; -pub const NFT_REJECT_TCP_RST: ::c_int = 1; -pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2; - -pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0; -pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1; -pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2; -pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3; - -pub const NFT_NAT_SNAT: ::c_int = 0; -pub const NFT_NAT_DNAT: ::c_int = 1; - -pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0; -pub const NFT_TRACETYPE_POLICY: ::c_int = 1; -pub const NFT_TRACETYPE_RETURN: ::c_int = 2; -pub const NFT_TRACETYPE_RULE: ::c_int = 3; - -pub const NFT_NG_INCREMENTAL: ::c_int = 0; -pub const NFT_NG_RANDOM: ::c_int = 1; - -pub const RLIMIT_CPU: ::__rlimit_resource_t = 0; -pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1; -pub const RLIMIT_DATA: ::__rlimit_resource_t = 2; -pub const RLIMIT_STACK: ::__rlimit_resource_t = 3; -pub const RLIMIT_CORE: ::__rlimit_resource_t = 4; -pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10; -pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; -pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; -pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; -pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - -f! { - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) - } -} - -#[link(name = "util")] -extern { - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; - - pub fn getrlimit64(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit(pid: ::pid_t, - resource: ::__rlimit_resource_t, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; - pub fn glob64(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t) -> ::c_int; - pub fn globfree64(pglob: *mut glob64_t); - pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; - pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, - prio: ::c_int) -> ::c_int; - pub fn pthread_getaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_setaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; - pub fn sched_getcpu() -> ::c_int; -} - -cfg_if! { - if #[cfg(target_arch = "mips")] { - mod mips32; - pub use self::mips32::*; - } else if #[cfg(target_arch = "mips64")] { - mod mips64; - pub use self::mips64::*; - } else { - // Unknown target_arch - } -} - -cfg_if! { - if #[cfg(libc_align)] { - mod align; - pub use self::align::*; - } else { - mod no_align; - pub use self::no_align::*; - } -} diff --git a/src/unix/linux_like/linux/gnu/mips/no_align.rs b/src/unix/linux_like/linux/gnu/mips/no_align.rs deleted file mode 100644 index e32bf673d140e..0000000000000 --- a/src/unix/linux_like/linux/gnu/mips/no_align.rs +++ /dev/null @@ -1,10 +0,0 @@ -s! { - // FIXME this is actually a union - pub struct sem_t { - #[cfg(target_pointer_width = "32")] - __size: [::c_char; 16], - #[cfg(target_pointer_width = "64")] - __size: [::c_char; 32], - __align: [::c_long; 0], - } -} diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index b05cb68d9a7e2..a8d576ed3fc2e 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -61,33 +61,6 @@ s! { pub tv_usec: i32, } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - #[cfg(target_arch = "s390x")] - _pad2: [::c_long; 14], - #[cfg(target_arch = "x86_64")] - _align: [u64; 0], - #[cfg(not(target_arch = "x86_64"))] - _align: [usize; 0], - } - pub struct glob64_t { pub gl_pathc: ::size_t, pub gl_pathv: *mut *mut ::c_char, @@ -104,22 +77,34 @@ s! { pub struct statfs { pub f_type: __fsword_t, pub f_bsize: __fsword_t, + #[cfg(any(target_arch = "mips", target_arch = "mips64"))] + pub f_frsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] pub f_bavail: ::fsblkcnt_t, pub f_files: ::fsfilcnt_t, pub f_ffree: ::fsfilcnt_t, + #[cfg(any(target_arch = "mips", target_arch = "mips64"))] + pub f_bavail: ::fsblkcnt_t, pub f_fsid: ::fsid_t, pub f_namelen: __fsword_t, + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] pub f_frsize: __fsword_t, - #[cfg(not(target_arch = "s390x"))] + #[cfg(not(any( + target_arch = "s390x", + target_arch = "mips", + target_arch = "mips64")))] f_spare: [__fsword_t; 5], #[cfg(target_arch = "s390x")] pub f_flags: ::c_uint, #[cfg(target_arch = "s390x")] f_spare: [::c_uint; 4], + #[cfg(any(target_arch = "mips", target_arch = "mips64"))] + f_spare: [::c_uint; 6], } pub struct msghdr { @@ -145,20 +130,18 @@ s! { pub c_lflag: ::tcflag_t, pub c_line: ::cc_t, pub c_cc: [::cc_t; ::NCCS], - #[cfg(not(target_arch = "sparc64"))] + #[cfg(not(any( + target_arch = "sparc64", + target_arch = "mips", + target_arch = "mips64")))] pub c_ispeed: ::speed_t, - #[cfg(not(target_arch = "sparc64"))] + #[cfg(not(any( + target_arch = "sparc64", + target_arch = "mips", + target_arch = "mips64")))] pub c_ospeed: ::speed_t, } - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - pub struct mallinfo { pub arena: ::c_int, pub ordblks: ::c_int, @@ -349,6 +332,8 @@ pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11; pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12; pub const RLIMIT_NICE: ::__rlimit_resource_t = 13; pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; +pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; +pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16; pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MS_RMT_MASK: ::c_ulong = 0x02800051; @@ -367,12 +352,7 @@ pub const USER_PROCESS: ::c_short = 7; pub const DEAD_PROCESS: ::c_short = 8; pub const ACCOUNTING: ::c_short = 9; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const RLIM_INFINITY: ::rlim_t = !0; -pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; -pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16; pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; @@ -412,25 +392,11 @@ pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; + pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOCK_DCCP: ::c_int = 6; pub const SOCK_PACKET: ::c_int = 10; @@ -467,14 +433,6 @@ pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192; /// maximum number of services provided on the same listening port pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; - pub const SIGEV_THREAD_ID: ::c_int = 4; pub const BUFSIZ: ::c_uint = 8192; @@ -589,8 +547,6 @@ pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; pub const TMPFS_MAGIC: ::c_long = 0x01021994; pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; -pub const VEOF: usize = 4; - pub const CPU_SETSIZE: ::c_int = 0x400; pub const PTRACE_TRACEME: ::c_uint = 0; @@ -618,22 +574,9 @@ pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209; pub const EPOLLWAKEUP: ::c_int = 0x20000000; -pub const MAP_HUGETLB: ::c_int = 0x040000; - pub const SEEK_DATA: ::c_int = 3; pub const SEEK_HOLE: ::c_int = 4; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; - -pub const TIOCLINUX: ::c_ulong = 0x541C; -pub const TIOCGSERIAL: ::c_ulong = 0x541E; - -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; - pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; @@ -751,12 +694,6 @@ pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2; pub const TIOCM_LE: ::c_int = 0x001; pub const TIOCM_DTR: ::c_int = 0x002; pub const TIOCM_RTS: ::c_int = 0x004; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; @@ -1115,12 +1052,14 @@ extern { cfg_if! { if #[cfg(any(target_arch = "x86", target_arch = "arm", + target_arch = "mips", target_arch = "powerpc"))] { mod b32; pub use self::b32::*; } else if #[cfg(any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", + target_arch = "mips64", target_arch = "s390x", target_arch = "sparc64"))] { mod b64; From bf92b760cf3037b27a650a4005fbcd3edd93418f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 4 Jun 2019 18:35:07 +0200 Subject: [PATCH 006/296] Remove duplicated flock type in s390x --- src/unix/linux_like/linux/gnu/b64/s390x.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 607396f30b827..be38bdc87ddf7 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -149,14 +149,6 @@ s! { pub c_ospeed: ::speed_t, } - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - pub struct __psw_t { pub mask: u64, pub addr: u64, From 25846bccc17f273f965fa5d0f6558ad26d23bb97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Sun, 31 Mar 2019 23:24:56 +0200 Subject: [PATCH 007/296] Add mq_timedsend() and mq_timedreceive() for Linux --- src/unix/linux_like/linux/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3b7bc292078a5..f2be2b4fdfe3b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2294,10 +2294,20 @@ extern { msg_ptr: *mut ::c_char, msg_len: ::size_t, msq_prio: *mut ::c_uint) -> ::ssize_t; + pub fn mq_timedreceive(mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec) -> ::ssize_t; pub fn mq_send(mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, msq_prio: ::c_uint) -> ::c_int; + pub fn mq_timedsend(mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, From bbcfd3cce2754d13fbf824ed6db3efe7a1ae319f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Sun, 31 Mar 2019 23:25:46 +0200 Subject: [PATCH 008/296] Add posix message queue types and functions for solarish --- src/unix/solarish/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 49f76ea54dcbf..df20f5603bed5 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -31,6 +31,7 @@ pub type pthread_t = ::c_uint; pub type pthread_key_t = ::c_uint; pub type blksize_t = ::c_int; pub type nl_item = ::c_int; +pub type mqd_t = *mut ::c_void; pub type id_t = ::c_int; pub type idtype_t = ::c_uint; @@ -331,6 +332,14 @@ s! { pub if_name: *mut ::c_char, } + pub struct mq_attr { + pub mq_flags: ::c_long, + pub mq_maxmsg: ::c_long, + pub mq_msgsize: ::c_long, + pub mq_curmsgs: ::c_long, + _pad: [::c_int; 4] + } + pub struct port_event { pub portev_events: ::c_int, pub portev_source: ::c_ushort, @@ -1937,6 +1946,31 @@ extern { pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; + pub fn mq_close(mqd: ::mqd_t) -> ::c_int; + pub fn mq_unlink(name: *const ::c_char) -> ::c_int; + pub fn mq_receive(mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint) -> ::ssize_t; + pub fn mq_timedreceive(mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec) -> ::ssize_t; + pub fn mq_send(mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint) -> ::c_int; + pub fn mq_timedsend(mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec) -> ::c_int; + pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr(mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr) -> ::c_int; pub fn port_create() -> ::c_int; pub fn port_associate(port: ::c_int, source: ::c_int, object: ::uintptr_t, events: ::c_int, user: *mut ::c_void) -> ::c_int; From 4c3bc0dd62c0c304604b06f4af4c92d5b9c20d5c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 08:41:21 +0200 Subject: [PATCH 009/296] Fix duplicated constants in x32 and not_x32 modules --- src/unix/linux_like/linux/gnu/b64/not_x32.rs | 40 -------------------- src/unix/linux_like/linux/gnu/b64/x32.rs | 40 -------------------- 2 files changed, 80 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/not_x32.rs index b4a12822fde14..14ae0b8d8e5a0 100644 --- a/src/unix/linux_like/linux/gnu/b64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/not_x32.rs @@ -58,48 +58,8 @@ s! { } } -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const TIOCLINUX: ::c_ulong = 0x541C; -pub const TIOCGSERIAL: ::c_ulong = 0x541E; align_const! { #[cfg(target_endian = "little")] diff --git a/src/unix/linux_like/linux/gnu/b64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x32.rs index 57f51021bcbe5..a81b6510b6d46 100644 --- a/src/unix/linux_like/linux/gnu/b64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x32.rs @@ -58,48 +58,8 @@ s! { } } -pub const VEOF: usize = 4; -pub const RTLD_DEEPBIND: ::c_int = 0x8; -pub const RTLD_GLOBAL: ::c_int = 0x100; -pub const RTLD_NOLOAD: ::c_int = 0x4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44; -pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; -pub const RLIMIT_AS: ::__rlimit_resource_t = 9; -pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; -pub const TIOCM_ST: ::c_int = 0x008; -pub const TIOCM_SR: ::c_int = 0x010; -pub const TIOCM_CTS: ::c_int = 0x020; -pub const TIOCM_CAR: ::c_int = 0x040; -pub const TIOCM_RNG: ::c_int = 0x080; -pub const TIOCM_DSR: ::c_int = 0x100; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_ANONYMOUS: ::c_int = 0x0020; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const TCSANOW: ::c_int = 0; -pub const TCSADRAIN: ::c_int = 1; -pub const TCSAFLUSH: ::c_int = 2; -pub const TIOCLINUX: ::c_ulong = 0x541C; -pub const TIOCGSERIAL: ::c_ulong = 0x541E; align_const! { pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = From 0546d427b4b2bed6ab581618d57608b08704de09 Mon Sep 17 00:00:00 2001 From: Stefano Garzarella Date: Wed, 5 Jun 2019 10:04:52 +0200 Subject: [PATCH 010/296] linux: add VSOCK struct and constants Add struct sockaddr_vm and VMADDR_ constants to use VSOCK on Linux. VSOCK is present since Linux 3.9 Signed-off-by: Stefano Garzarella --- src/unix/linux_like/linux/mod.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3b7bc292078a5..cd789842e1fa3 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -474,6 +474,14 @@ s! { pub cookie: u32, pub len: u32 } + + pub struct sockaddr_vm { + pub svm_family: ::sa_family_t, + pub svm_reserved1: ::c_ushort, + pub svm_port: ::c_uint, + pub svm_cid: ::c_uint, + pub svm_zero: [u8; 4] + } } s_no_extra_traits!{ @@ -2000,6 +2008,13 @@ pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5; pub const ALG_OP_DECRYPT: ::c_int = 0; pub const ALG_OP_ENCRYPT: ::c_int = 1; +// uapi/linux/vm_sockets.h +pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF; +pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0; +pub const VMADDR_CID_RESERVED: ::c_uint = 1; +pub const VMADDR_CID_HOST: ::c_uint = 2; +pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; + // uapi/linux/inotify.h pub const IN_ACCESS: u32 = 0x0000_0001; pub const IN_MODIFY: u32 = 0x0000_0002; From 35ff8c2dbe009065f3e4972649bd01675f97680c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 10:28:11 +0200 Subject: [PATCH 011/296] Remove duplicated constnats from mips32 --- src/unix/linux_like/linux/gnu/b32/mips.rs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs index a5d9dc9490a42..c80b7720123cd 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -151,12 +151,6 @@ s! { } } -pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; - pub const O_LARGEFILE: ::c_int = 0x2000; pub const SYS_syscall: ::c_long = 4000 + 0; From d36963a0b8a011cf16e647a367b304b620a92a8e Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 11:30:10 +0200 Subject: [PATCH 012/296] Remove duplicated constants from s390x --- src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index be38bdc87ddf7..4bee080c3e0da 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -283,7 +283,6 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; align_const! { pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t = From 60571f9143438c74bb3366c7115725f418821451 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 11:32:56 +0200 Subject: [PATCH 013/296] Remove duplicated constants from x86_64 --- src/unix/linux_like/linux/gnu/b64/not_x32.rs | 38 -------------------- src/unix/linux_like/linux/gnu/b64/x32.rs | 38 -------------------- 2 files changed, 76 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/not_x32.rs index 14ae0b8d8e5a0..97e21f279df2a 100644 --- a/src/unix/linux_like/linux/gnu/b64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/not_x32.rs @@ -4,15 +4,6 @@ pub type c_long = i64; pub type c_ulong = u64; s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -27,35 +18,6 @@ s! { pub f_namemax: ::c_ulong, __f_spare: [::c_int; 6], } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } } pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; diff --git a/src/unix/linux_like/linux/gnu/b64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x32.rs index a81b6510b6d46..37468818afb85 100644 --- a/src/unix/linux_like/linux/gnu/b64/x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x32.rs @@ -4,23 +4,6 @@ pub type c_long = i32; pub type c_ulong = u32; s! { - pub struct sigaction { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, - pub sa_restorer: ::Option, - } - - pub struct flock { - pub l_type: ::c_short, - pub l_whence: ::c_short, - pub l_start: ::off_t, - pub l_len: ::off_t, - pub l_pid: ::pid_t, - } - pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -35,27 +18,6 @@ s! { pub f_namemax: ::c_ulong, __f_spare: [::c_int; 6], } - - pub struct siginfo_t { - pub si_signo: ::c_int, - pub si_errno: ::c_int, - pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], - _align: [usize; 0], - } - - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, - pub ss_size: ::size_t - } } pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32; From b988e27498cf91da92db9b913bc43e87907d57f7 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 11:35:00 +0200 Subject: [PATCH 014/296] Refactor linux x86_64 module --- src/unix/linux_like/linux/gnu/b64/mod.rs | 9 --------- .../linux/gnu/b64/{x86_64.rs => x86_64/mod.rs} | 11 +++++++++++ .../linux_like/linux/gnu/b64/{ => x86_64}/not_x32.rs | 0 src/unix/linux_like/linux/gnu/b64/{ => x86_64}/x32.rs | 0 4 files changed, 11 insertions(+), 9 deletions(-) rename src/unix/linux_like/linux/gnu/b64/{x86_64.rs => x86_64/mod.rs} (99%) rename src/unix/linux_like/linux/gnu/b64/{ => x86_64}/not_x32.rs (100%) rename src/unix/linux_like/linux/gnu/b64/{ => x86_64}/x32.rs (100%) diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index af1f11d1091cf..d130debc32a64 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -77,15 +77,6 @@ cfg_if! { } else if #[cfg(any(target_arch = "x86_64"))] { mod x86_64; pub use self::x86_64::*; - cfg_if! { - if #[cfg(target_pointer_width = "32")] { - mod x32; - pub use self::x32::*; - } else { - mod not_x32; - pub use self::not_x32::*; - } - } } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b64/x86_64.rs rename to src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index e673c24471990..a6a879d6f09ee 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -866,3 +866,14 @@ extern { pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int; } + + +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + mod x32; + pub use self::x32::*; + } else { + mod not_x32; + pub use self::not_x32::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs similarity index 100% rename from src/unix/linux_like/linux/gnu/b64/not_x32.rs rename to src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs diff --git a/src/unix/linux_like/linux/gnu/b64/x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs similarity index 100% rename from src/unix/linux_like/linux/gnu/b64/x32.rs rename to src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs From 4825678dee10f0bec113d6aee2893c028d1e1809 Mon Sep 17 00:00:00 2001 From: Stefano Garzarella Date: Wed, 5 Jun 2019 11:44:42 +0200 Subject: [PATCH 015/296] libc-test: include "linux/vm_sockets.h" to test VSOCK Signed-off-by: Stefano Garzarella --- libc-test/build.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 5087906486002..06386f81d2661 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2000,6 +2000,7 @@ fn test_linux(target: &str) { "linux/rtnetlink.h", "linux/seccomp.h", "linux/sockios.h", + "linux/vm_sockets.h", "sys/auxv.h", } From 4f78d5d420f5b6b955683b212a2507ddc3ca1bad Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 5 Jun 2019 11:51:24 +0200 Subject: [PATCH 016/296] Fix style --- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index a6a879d6f09ee..9fcf5514dc7e0 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -867,7 +867,6 @@ extern { turn_on: ::c_int) -> ::c_int; } - cfg_if! { if #[cfg(target_pointer_width = "32")] { mod x32; From 1c97b77cb34344450f2bee92a8b35e82b177bb19 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 14:35:44 +0200 Subject: [PATCH 017/296] Correct bugs in mips, mips64 and s390x --- src/unix/linux_like/linux/gnu/b32/arm.rs | 1 + src/unix/linux_like/linux/gnu/b32/mod.rs | 9 ++- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1 + src/unix/linux_like/linux/gnu/b32/x86.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64.rs | 1 + src/unix/linux_like/linux/gnu/b64/mips64.rs | 13 ---- src/unix/linux_like/linux/gnu/b64/mod.rs | 2 +- .../linux_like/linux/gnu/b64/powerpc64.rs | 1 + src/unix/linux_like/linux/gnu/b64/s390x.rs | 76 +------------------ src/unix/linux_like/linux/gnu/b64/sparc64.rs | 1 + .../linux_like/linux/gnu/b64/x86_64/mod.rs | 1 + src/unix/linux_like/linux/gnu/mod.rs | 35 +++++++-- 12 files changed, 44 insertions(+), 98 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index c1163522be7b0..4f2c62feff893 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -175,6 +175,7 @@ pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; pub const RLIMIT_AS: ::__rlimit_resource_t = 9; pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; pub const MAP_ANON: ::c_int = 0x0020; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index a8db650842cbb..056104b71a248 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -10,7 +10,6 @@ pub type suseconds_t = i32; pub type ino_t = u32; pub type off_t = i32; pub type blkcnt_t = i32; -pub type __fsword_t = i32; pub type fsblkcnt_t = ::c_ulong; pub type fsfilcnt_t = ::c_ulong; @@ -21,10 +20,15 @@ pub type msglen_t = ::c_ulong; pub type blksize_t = i32; pub type nlink_t = u32; pub type __u64 = ::c_ulonglong; +pub type __fsword_t = i32; s! { pub struct stat { + #[cfg(not(target_arch = "mips"))] pub st_dev: ::dev_t, + #[cfg(target_arch = "mips")] + pub st_dev: ::c_ulong, + #[cfg(not(target_arch = "mips"))] __pad1: ::c_short, #[cfg(target_arch = "mips")] @@ -34,7 +38,10 @@ s! { pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, + #[cfg(not(target_arch = "mips"))] pub st_rdev: ::dev_t, + #[cfg(target_arch = "mips")] + pub st_rdev: ::c_ulong, #[cfg(not(target_arch = "mips"))] __pad2: ::c_short, #[cfg(target_arch = "mips")] diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 80f0e298a1aaf..616b66a5767d7 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -176,6 +176,7 @@ pub const TIOCM_CAR: ::c_int = 0x040; pub const TIOCM_RNG: ::c_int = 0x080; pub const TIOCM_DSR: ::c_int = 0x100; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_LOCKED: ::c_int = 0x00080; pub const MAP_NORESERVE: ::c_int = 0x00040; pub const MAP_ANON: ::c_int = 0x0020; diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 2a367b2ac4f89..6fc7d65fad891 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -378,6 +378,7 @@ pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; pub const SOL_SOCKET: ::c_int = 1; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; pub const MAP_32BIT: ::c_int = 0x0040; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index adb9726231256..cf28de0e9159d 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -212,6 +212,7 @@ pub const O_NOATIME: ::c_int = 0o1000000; pub const O_PATH: ::c_int = 0o10000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const EUCLEAN: ::c_int = 117; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index e27c11d6f3955..bbd7198d6bd26 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -161,19 +161,6 @@ s! { __unused5: ::c_ulong } - pub struct glob64_t { - pub gl_pathc: ::size_t, - pub gl_pathv: *mut *mut ::c_char, - pub gl_offs: ::size_t, - pub gl_flags: ::c_int, - - __unused1: *mut ::c_void, - __unused2: *mut ::c_void, - __unused3: *mut ::c_void, - __unused4: *mut ::c_void, - __unused5: *mut ::c_void, - } - pub struct termios2 { pub c_iflag: ::tcflag_t, pub c_oflag: ::tcflag_t, diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index d130debc32a64..62f96c91c0329 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -5,13 +5,13 @@ pub type time_t = i64; pub type ino_t = u64; pub type off_t = i64; pub type blkcnt_t = i64; -pub type __fsword_t = i64; pub type shmatt_t = u64; pub type msgqnum_t = u64; pub type msglen_t = u64; pub type fsblkcnt_t = u64; pub type fsfilcnt_t = u64; pub type rlim_t = u64; +pub type __fsword_t = i64; s! { pub struct sigset_t { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 000966464369a..29d3c93d29283 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -196,6 +196,7 @@ pub const O_NOATIME: ::c_int = 0o1000000; pub const O_PATH: ::c_int = 0o10000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_ANONYMOUS: ::c_int = 0x0020; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 4bee080c3e0da..ff5146e51ac47 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -368,6 +368,7 @@ pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const MAP_LOCKED: ::c_int = 0x02000; pub const MAP_NORESERVE: ::c_int = 0x04000; @@ -496,81 +497,6 @@ pub const SIGPWR: ::c_int = 30; pub const SIG_BLOCK: ::c_int = 0x000000; pub const SIG_UNBLOCK: ::c_int = 0x01; -pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; -pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; -pub const _SC_PII: ::c_int = 53; -pub const _SC_PII_XTI: ::c_int = 54; -pub const _SC_PII_SOCKET: ::c_int = 55; -pub const _SC_PII_INTERNET: ::c_int = 56; -pub const _SC_PII_OSI: ::c_int = 57; -pub const _SC_POLL: ::c_int = 58; -pub const _SC_SELECT: ::c_int = 59; -pub const _SC_PII_INTERNET_STREAM: ::c_int = 61; -pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62; -pub const _SC_PII_OSI_COTS: ::c_int = 63; -pub const _SC_PII_OSI_CLTS: ::c_int = 64; -pub const _SC_PII_OSI_M: ::c_int = 65; -pub const _SC_T_IOV_MAX: ::c_int = 66; -pub const _SC_2_C_VERSION: ::c_int = 96; -pub const _SC_CHAR_BIT: ::c_int = 101; -pub const _SC_CHAR_MAX: ::c_int = 102; -pub const _SC_CHAR_MIN: ::c_int = 103; -pub const _SC_INT_MAX: ::c_int = 104; -pub const _SC_INT_MIN: ::c_int = 105; -pub const _SC_LONG_BIT: ::c_int = 106; -pub const _SC_WORD_BIT: ::c_int = 107; -pub const _SC_MB_LEN_MAX: ::c_int = 108; -pub const _SC_SSIZE_MAX: ::c_int = 110; -pub const _SC_SCHAR_MAX: ::c_int = 111; -pub const _SC_SCHAR_MIN: ::c_int = 112; -pub const _SC_SHRT_MAX: ::c_int = 113; -pub const _SC_SHRT_MIN: ::c_int = 114; -pub const _SC_UCHAR_MAX: ::c_int = 115; -pub const _SC_UINT_MAX: ::c_int = 116; -pub const _SC_ULONG_MAX: ::c_int = 117; -pub const _SC_USHRT_MAX: ::c_int = 118; -pub const _SC_NL_ARGMAX: ::c_int = 119; -pub const _SC_NL_LANGMAX: ::c_int = 120; -pub const _SC_NL_MSGMAX: ::c_int = 121; -pub const _SC_NL_NMAX: ::c_int = 122; -pub const _SC_NL_SETMAX: ::c_int = 123; -pub const _SC_NL_TEXTMAX: ::c_int = 124; -pub const _SC_BASE: ::c_int = 134; -pub const _SC_C_LANG_SUPPORT: ::c_int = 135; -pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136; -pub const _SC_DEVICE_IO: ::c_int = 140; -pub const _SC_DEVICE_SPECIFIC: ::c_int = 141; -pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142; -pub const _SC_FD_MGMT: ::c_int = 143; -pub const _SC_FIFO: ::c_int = 144; -pub const _SC_PIPE: ::c_int = 145; -pub const _SC_FILE_ATTRIBUTES: ::c_int = 146; -pub const _SC_FILE_LOCKING: ::c_int = 147; -pub const _SC_FILE_SYSTEM: ::c_int = 148; -pub const _SC_MULTI_PROCESS: ::c_int = 150; -pub const _SC_SINGLE_PROCESS: ::c_int = 151; -pub const _SC_NETWORKING: ::c_int = 152; -pub const _SC_REGEX_VERSION: ::c_int = 156; -pub const _SC_SIGNALS: ::c_int = 158; -pub const _SC_SYSTEM_DATABASE: ::c_int = 162; -pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163; -pub const _SC_USER_GROUPS: ::c_int = 166; -pub const _SC_USER_GROUPS_R: ::c_int = 167; -pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190; -pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193; -pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196; -pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199; pub const O_ASYNC: ::c_int = 0x2000; pub const O_NDELAY: ::c_int = 0x800; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 1633e1715c7c1..6d31eb408fb37 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -209,6 +209,7 @@ pub const O_NOATIME: ::c_int = 0x200000; pub const O_PATH: ::c_int = 0x1000000; pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_GROWSDOWN: ::c_int = 0x0200; pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_ANONYMOUS: ::c_int = 0x0020; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 9fcf5514dc7e0..368a3ff69fa51 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -396,6 +396,7 @@ pub const O_NOATIME: ::c_int = 0o1000000; pub const O_PATH: ::c_int = 0o10000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; +pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_GROWSDOWN: ::c_int = 0x0100; pub const EDEADLK: ::c_int = 35; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index a8d576ed3fc2e..54c4e717ba0ca 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -75,10 +75,21 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] + pub f_type: ::__fsword_t, + #[cfg(any(target_arch = "mips"))] + pub f_type: ::c_long, + #[cfg(any(target_arch = "s390x"))] + pub f_type: ::c_uint, + + #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] + pub f_bsize: ::__fsword_t, + #[cfg(any(target_arch = "mips"))] + pub f_bsize: ::c_long, + #[cfg(any(target_arch = "s390x"))] + pub f_bsize: ::c_uint, #[cfg(any(target_arch = "mips", target_arch = "mips64"))] - pub f_frsize: __fsword_t, + pub f_frsize: ::c_long, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, @@ -91,14 +102,21 @@ s! { pub f_bavail: ::fsblkcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] - pub f_frsize: __fsword_t, + #[cfg(any(target_arch = "mips", target_arch = "s390x"))] + pub f_namelen: ::__fsword_t, + #[cfg(any(target_arch = "mips"))] + pub f_namelen: ::c_long, + #[cfg(any(target_arch = "s390x"))] + pub f_namelen: ::c_uint, + #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] + pub f_frsize: ::__fsword_t, + #[cfg(any(target_arch = "s390x"))] + pub f_frsize: ::c_uint, #[cfg(not(any( target_arch = "s390x", target_arch = "mips", target_arch = "mips64")))] - f_spare: [__fsword_t; 5], + f_spare: [::__fsword_t; 5], #[cfg(target_arch = "s390x")] pub f_flags: ::c_uint, #[cfg(target_arch = "s390x")] @@ -240,6 +258,7 @@ s_no_extra_traits! { pub ut_exit: __exit_status, #[cfg(any(target_arch = "aarch64", + target_arch = "s390x", all(target_pointer_width = "32", not(target_arch = "x86_64"))))] pub ut_session: ::c_long, @@ -249,6 +268,7 @@ s_no_extra_traits! { pub ut_tv: ::timeval, #[cfg(not(any(target_arch = "aarch64", + target_arch = "s390x", all(target_pointer_width = "32", not(target_arch = "x86_64")))))] pub ut_session: i32, @@ -335,7 +355,6 @@ pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14; pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15; pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16; -pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MS_RMT_MASK: ::c_ulong = 0x02800051; pub const __UT_LINESIZE: usize = 32; From fc7c408bbeb5766a06bb5974c32fca48b73077f6 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 14:41:24 +0200 Subject: [PATCH 018/296] Fix formatting --- src/unix/linux_like/linux/gnu/mod.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 54c4e717ba0ca..0145d17f127ff 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -77,16 +77,16 @@ s! { pub struct statfs { #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] pub f_type: ::__fsword_t, - #[cfg(any(target_arch = "mips"))] + #[cfg(target_arch = "mips")] pub f_type: ::c_long, - #[cfg(any(target_arch = "s390x"))] + #[cfg(target_arch = "s390x")] pub f_type: ::c_uint, #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] pub f_bsize: ::__fsword_t, - #[cfg(any(target_arch = "mips"))] + #[cfg(target_arch = "mips")] pub f_bsize: ::c_long, - #[cfg(any(target_arch = "s390x"))] + #[cfg(target_arch = "s390x")] pub f_bsize: ::c_uint, #[cfg(any(target_arch = "mips", target_arch = "mips64"))] pub f_frsize: ::c_long, @@ -102,13 +102,17 @@ s! { pub f_bavail: ::fsblkcnt_t, pub f_fsid: ::fsid_t, - #[cfg(any(target_arch = "mips", target_arch = "s390x"))] + #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] pub f_namelen: ::__fsword_t, - #[cfg(any(target_arch = "mips"))] + #[cfg(target_arch = "mips")] pub f_namelen: ::c_long, - #[cfg(any(target_arch = "s390x"))] + #[cfg(target_arch = "s390x")] pub f_namelen: ::c_uint, - #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] + #[cfg(not(any( + target_arch = "mips", + target_arch = "mips64", + target_arch = "s390x" + )))] pub f_frsize: ::__fsword_t, #[cfg(any(target_arch = "s390x"))] pub f_frsize: ::c_uint, From f21d91fb38313b09084f359a1b65b89a329f7ea3 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 15:44:55 +0200 Subject: [PATCH 019/296] Fix value of RLIM_INFINITY on mips32 --- src/unix/linux_like/linux/gnu/b32/arm.rs | 1 + src/unix/linux_like/linux/gnu/b32/mips.rs | 1 + src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1 + src/unix/linux_like/linux/gnu/b32/x86.rs | 1 + src/unix/linux_like/linux/gnu/b64/mod.rs | 1 + src/unix/linux_like/linux/gnu/mod.rs | 2 -- 6 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index 4f2c62feff893..735f9d7596b9f 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -150,6 +150,7 @@ s! { } } +pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs index c80b7720123cd..0588a68da5173 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -516,6 +516,7 @@ pub const O_DIRECT: ::c_int = 0x8000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 5; pub const RLIMIT_AS: ::__rlimit_resource_t = 6; pub const RLIMIT_RSS: ::__rlimit_resource_t = 7; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 616b66a5767d7..a2265e7712855 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -139,6 +139,7 @@ s! { } } +pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 6fc7d65fad891..3e7d32e9bbd36 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -351,6 +351,7 @@ cfg_if! { } } +pub const RLIM_INFINITY: ::rlim_t = !0; pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 62f96c91c0329..c91da0d98d1ca 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -54,6 +54,7 @@ s! { } +pub const RLIM_INFINITY: ::rlim_t = !0; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8; pub const O_LARGEFILE: ::c_int = 0; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0145d17f127ff..9aa761d254dad 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -375,8 +375,6 @@ pub const USER_PROCESS: ::c_short = 7; pub const DEAD_PROCESS: ::c_short = 8; pub const ACCOUNTING: ::c_short = 9; -pub const RLIM_INFINITY: ::rlim_t = !0; - pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; pub const SOL_RXRPC: ::c_int = 272; From 5e37553c4feec76b9864975739101f7df6540275 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 15:49:48 +0200 Subject: [PATCH 020/296] Fix statfs --- src/unix/linux_like/linux/gnu/b32/arm.rs | 16 ++++++ src/unix/linux_like/linux/gnu/b32/mips.rs | 15 +++++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 16 ++++++ src/unix/linux_like/linux/gnu/b32/x86.rs | 16 ++++++ src/unix/linux_like/linux/gnu/b64/aarch64.rs | 16 ++++++ src/unix/linux_like/linux/gnu/b64/mips64.rs | 15 +++++ .../linux_like/linux/gnu/b64/powerpc64.rs | 16 ++++++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 15 +++++ src/unix/linux_like/linux/gnu/b64/sparc64.rs | 16 ++++++ .../linux_like/linux/gnu/b64/x86_64/mod.rs | 16 ++++++ src/unix/linux_like/linux/gnu/mod.rs | 55 ------------------- 11 files changed, 157 insertions(+), 55 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index 735f9d7596b9f..2bb66045ae727 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -9,6 +9,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs index 0588a68da5173..69374ed210089 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -25,6 +25,21 @@ s! { st_pad5: [::c_long; 14], } + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + pub struct statfs64 { pub f_type: ::c_long, pub f_bsize: ::c_long, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index a2265e7712855..4a9527ba4e874 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -9,6 +9,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 3e7d32e9bbd36..5a92bc5b4887e 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -10,6 +10,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index cf28de0e9159d..0c6c9248d123f 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -21,6 +21,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index bbd7198d6bd26..0bfef065ff6f5 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -34,6 +34,21 @@ s! { st_pad5: [::c_long; 7], } + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_frsize: ::c_long, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_files: ::fsblkcnt_t, + pub f_ffree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::c_long, + f_spare: [::c_long; 6], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 29d3c93d29283..d6a6078dacaac 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -21,6 +21,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index ff5146e51ac47..180d023d7a4f7 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -21,6 +21,21 @@ s! { pub sa_mask: ::sigset_t, } + pub struct statfs { + pub f_type: ::c_uint, + pub f_bsize: ::c_uint, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_uint, + pub f_frsize: ::c_uint, + pub f_flags: ::c_uint, + f_spare: [::c_uint; 4], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 6d31eb408fb37..964ffe5cf2657 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -21,6 +21,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct siginfo_t { pub si_signo: ::c_int, pub si_errno: ::c_int, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 368a3ff69fa51..dc6907130308a 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -18,6 +18,22 @@ s! { pub sa_restorer: ::Option, } + pub struct statfs { + pub f_type: __fsword_t, + pub f_bsize: __fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: __fsword_t, + pub f_frsize: __fsword_t, + f_spare: [__fsword_t; 5], + } + pub struct flock { pub l_type: ::c_short, pub l_whence: ::c_short, diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 9aa761d254dad..8e3920beb9c1b 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -74,61 +74,6 @@ s! { __unused5: *mut ::c_void, } - pub struct statfs { - #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] - pub f_type: ::__fsword_t, - #[cfg(target_arch = "mips")] - pub f_type: ::c_long, - #[cfg(target_arch = "s390x")] - pub f_type: ::c_uint, - - #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] - pub f_bsize: ::__fsword_t, - #[cfg(target_arch = "mips")] - pub f_bsize: ::c_long, - #[cfg(target_arch = "s390x")] - pub f_bsize: ::c_uint, - #[cfg(any(target_arch = "mips", target_arch = "mips64"))] - pub f_frsize: ::c_long, - - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] - pub f_bavail: ::fsblkcnt_t, - - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - #[cfg(any(target_arch = "mips", target_arch = "mips64"))] - pub f_bavail: ::fsblkcnt_t, - pub f_fsid: ::fsid_t, - - #[cfg(not(any(target_arch = "mips", target_arch = "s390x")))] - pub f_namelen: ::__fsword_t, - #[cfg(target_arch = "mips")] - pub f_namelen: ::c_long, - #[cfg(target_arch = "s390x")] - pub f_namelen: ::c_uint, - #[cfg(not(any( - target_arch = "mips", - target_arch = "mips64", - target_arch = "s390x" - )))] - pub f_frsize: ::__fsword_t, - #[cfg(any(target_arch = "s390x"))] - pub f_frsize: ::c_uint, - #[cfg(not(any( - target_arch = "s390x", - target_arch = "mips", - target_arch = "mips64")))] - f_spare: [::__fsword_t; 5], - #[cfg(target_arch = "s390x")] - pub f_flags: ::c_uint, - #[cfg(target_arch = "s390x")] - f_spare: [::c_uint; 4], - #[cfg(any(target_arch = "mips", target_arch = "mips64"))] - f_spare: [::c_uint; 6], - } - pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, From 090f873e2a8a7de495dfd5e5191002542f97c940 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 15:54:11 +0200 Subject: [PATCH 021/296] Fix utmpx on s390x --- src/unix/linux_like/linux/gnu/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 8e3920beb9c1b..f4ca6b22622cb 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -212,6 +212,7 @@ s_no_extra_traits! { not(target_arch = "x86_64"))))] pub ut_session: ::c_long, #[cfg(any(target_arch = "aarch64", + target_arch = "s390x", all(target_pointer_width = "32", not(target_arch = "x86_64"))))] pub ut_tv: ::timeval, @@ -222,6 +223,7 @@ s_no_extra_traits! { not(target_arch = "x86_64")))))] pub ut_session: i32, #[cfg(not(any(target_arch = "aarch64", + target_arch = "s390x", all(target_pointer_width = "32", not(target_arch = "x86_64")))))] pub ut_tv: __timeval, From 46dbf2d2e36f10a6418c6eb9899ca331340c5f51 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 16:16:02 +0200 Subject: [PATCH 022/296] Fix siginfo_t in s390x --- src/unix/linux_like/linux/gnu/b32/mod.rs | 2 ++ src/unix/linux_like/linux/gnu/b64/aarch64.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/mips64.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/powerpc64.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 13 ++++--------- src/unix/linux_like/linux/gnu/b64/sparc64.rs | 3 +++ src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 3 +++ src/unix/linux_like/linux/gnu/mod.rs | 10 ++++++---- 8 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 056104b71a248..2e584f21310ec 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -133,6 +133,8 @@ pub const SO_BUSY_POLL: ::c_int = 46; pub const SA_ONSTACK: ::c_int = 0x08000000; pub const PTRACE_DETACH: ::c_uint = 17; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; pub const F_SETLK: ::c_int = 6; pub const F_SETLKW: ::c_int = 7; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index 0c6c9248d123f..ff16951a7bba8 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -315,6 +315,9 @@ pub const ENOTRECOVERABLE: ::c_int = 131; pub const EHWPOISON: ::c_int = 133; pub const ERFKILL: ::c_int = 132; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const SOL_SOCKET: ::c_int = 1; pub const SO_REUSEADDR: ::c_int = 2; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index 0bfef065ff6f5..706faae8e7eed 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -600,6 +600,9 @@ pub const SA_RESETHAND: ::c_int = 0x80000000; pub const SA_RESTART: ::c_int = 0x10000000; pub const SA_NOCLDSTOP: ::c_int = 0x00000001; +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const EPOLL_CLOEXEC: ::c_int = 0x80000; pub const EFD_CLOEXEC: ::c_int = 0x80000; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index d6a6078dacaac..751add9c0d689 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -184,6 +184,9 @@ s! { } } +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; pub const RTLD_NOLOAD: ::c_int = 0x4; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 180d023d7a4f7..8fb0345ecccde 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -48,16 +48,8 @@ s! { pub si_signo: ::c_int, pub si_errno: ::c_int, pub si_code: ::c_int, - #[doc(hidden)] - #[deprecated( - since="0.2.54", - note="Please leave a comment on \ - https://github.com/rust-lang/libc/pull/1316 if you're using \ - this field" - )] - pub _pad: [::c_int; 29], + _pad: ::c_int, _pad2: [::c_long; 14], - _align: [usize; 0], } pub struct stack_t { @@ -256,6 +248,9 @@ cfg_if! { } } +pub const POSIX_FADV_DONTNEED: ::c_int = 6; +pub const POSIX_FADV_NOREUSE: ::c_int = 7; + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 964ffe5cf2657..7168e0a7441e8 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -197,6 +197,9 @@ s! { } } +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index dc6907130308a..96bd4b913ab1c 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -384,6 +384,9 @@ cfg_if! { } } +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + pub const VEOF: usize = 4; pub const RTLD_DEEPBIND: ::c_int = 0x8; pub const RTLD_GLOBAL: ::c_int = 0x100; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index f4ca6b22622cb..cbca5a32363ee 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -406,8 +406,6 @@ pub const SIGEV_THREAD_ID: ::c_int = 4; pub const BUFSIZ: ::c_uint = 8192; pub const TMP_MAX: ::c_uint = 238328; pub const FOPEN_MAX: ::c_uint = 16; -pub const POSIX_FADV_DONTNEED: ::c_int = 4; -pub const POSIX_FADV_NOREUSE: ::c_int = 5; pub const POSIX_MADV_DONTNEED: ::c_int = 4; pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41; pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45; @@ -914,8 +912,12 @@ pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; cfg_if! { - if #[cfg(any(target_arch = "arm", target_arch = "x86", - target_arch = "x86_64"))] { + if #[cfg(any( + target_arch = "arm", + target_arch = "x86", + target_arch = "x86_64", + target_arch = "s390x" + ))] { pub const PTHREAD_STACK_MIN: ::size_t = 16384; } else if #[cfg(target_arch = "sparc64")] { pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; From fbe38dd0ab5c8ff6db58d77080de3adca1aa17fc Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 6 Jun 2019 16:47:09 +0200 Subject: [PATCH 023/296] Fix builds --- src/unix/linux_like/linux/gnu/b32/arm.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b32/x86.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b64/aarch64.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b64/powerpc64.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b64/sparc64.rs | 10 +++++----- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 10 +++++----- 7 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index 2bb66045ae727..2c1ecf97334f1 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -10,8 +10,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -20,9 +20,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 4a9527ba4e874..66a8097c20a48 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -10,8 +10,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -20,9 +20,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 5a92bc5b4887e..47a35123b11f5 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -11,8 +11,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -21,9 +21,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index ff16951a7bba8..eaed8609d21f5 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -22,8 +22,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -32,9 +32,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 751add9c0d689..02aad6459f921 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -22,8 +22,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -32,9 +32,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 7168e0a7441e8..7022cae39d2d0 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -22,8 +22,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -32,9 +32,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 96bd4b913ab1c..6d61cd5dc64f9 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -19,8 +19,8 @@ s! { } pub struct statfs { - pub f_type: __fsword_t, - pub f_bsize: __fsword_t, + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, pub f_blocks: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, pub f_bavail: ::fsblkcnt_t, @@ -29,9 +29,9 @@ s! { pub f_ffree: ::fsfilcnt_t, pub f_fsid: ::fsid_t, - pub f_namelen: __fsword_t, - pub f_frsize: __fsword_t, - f_spare: [__fsword_t; 5], + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], } pub struct flock { From 1f27f5d247eef61a7a0586b674b0064acddd89cb Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Fri, 7 Jun 2019 05:25:22 -0700 Subject: [PATCH 024/296] Re-add PTRACE_DETACH for mips64 GNU targets During the refactor in 4bd419eb, PTRACE_DETACH was accidentally removed on these targets. This re-adds it. --- src/unix/linux_like/linux/gnu/b64/mips64.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index 706faae8e7eed..f8618c66279c6 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -831,6 +831,7 @@ pub const TCSAFLUSH: ::c_int = 0x5410; pub const PTRACE_GETFPREGS: ::c_uint = 14; pub const PTRACE_SETFPREGS: ::c_uint = 15; +pub const PTRACE_DETACH: ::c_uint = 17; pub const PTRACE_GETFPXREGS: ::c_uint = 18; pub const PTRACE_SETFPXREGS: ::c_uint = 19; pub const PTRACE_GETREGS: ::c_uint = 12; From a319b62fbd8d5e6799f04c6ba1660055f5e5ecab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Mon, 27 May 2019 19:23:54 +0200 Subject: [PATCH 025/296] Generalize some FIO* constants to all BSDs * Change the type of FIONCLEX on apple platforms from c_uint to c_ulong * Add FIONCLEX, FIONREAD, FIOASYNC, FIOSETOWN and FIOGETOWN for DragonFly and OpenBSD --- src/unix/bsd/apple/mod.rs | 5 ----- src/unix/bsd/freebsdlike/freebsd/mod.rs | 5 ----- src/unix/bsd/mod.rs | 5 +++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 5 ----- 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index af28dba7eb99a..6fd017c1902b4 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1704,11 +1704,6 @@ pub const TIOCPTYGRANT: ::c_uint = 0x20007454; pub const TIOCPTYGNAME: ::c_uint = 0x40807453; pub const TIOCPTYUNLK: ::c_uint = 0x20007452; -pub const FIONCLEX: ::c_uint = 0x20006602; -pub const FIONREAD: ::c_ulong = 0x4004667f; -pub const FIOASYNC: ::c_ulong = 0x8004667d; -pub const FIOSETOWN: ::c_ulong = 0x8004667c; -pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const B0: speed_t = 0; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index e5945517eb0b2..2fd5eef712b23 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -540,11 +540,6 @@ pub const TIOCSIG: ::c_uint = 0x2004745f; pub const TIOCM_DCD: ::c_int = 0x40; pub const H4DISC: ::c_int = 0x7; -pub const FIONCLEX: ::c_ulong = 0x20006602; -pub const FIONREAD: ::c_ulong = 0x4004667f; -pub const FIOASYNC: ::c_ulong = 0x8004667d; -pub const FIOSETOWN: ::c_ulong = 0x8004667c; -pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const FIOGETLBA: ::c_ulong = 0x40046679; pub const FIODGNAME: ::c_ulong = 0x80106678; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 8bc6c7c64ce12..77f82b182bb57 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -233,7 +233,12 @@ pub const LC_TIME: ::c_int = 5; pub const LC_MESSAGES: ::c_int = 6; pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; +pub const FIONREAD: ::c_ulong = 0x4004667f; pub const FIONBIO: ::c_ulong = 0x8004667e; +pub const FIOASYNC: ::c_ulong = 0x8004667d; +pub const FIOSETOWN: ::c_ulong = 0x8004667c; +pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const PATH_MAX: ::c_int = 1024; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9d710eb02deb3..b1316bc28b7d1 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1347,14 +1347,9 @@ pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; pub const SOCK_CLOEXEC: ::c_int = 0x10000000; pub const SOCK_NONBLOCK: ::c_int = 0x20000000; -pub const FIONCLEX: ::c_ulong = 0x20006602; // Uncomment on next NetBSD release // pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; // pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; -pub const FIONREAD: ::c_ulong = 0x4004667f; -pub const FIOASYNC: ::c_ulong = 0x8004667d; -pub const FIOSETOWN: ::c_ulong = 0x8004667c; -pub const FIOGETOWN: ::c_ulong = 0x4004667b; pub const OFIOGETBMAP: ::c_ulong = 0xc004667a; pub const FIOGETBMAP: ::c_ulong = 0xc008667a; pub const FIONWRITE: ::c_ulong = 0x40046679; From 2293748dfe5ac705f82de52f39ff71796666364c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Thu, 30 May 2019 14:32:18 +0200 Subject: [PATCH 026/296] Add FIODTYPE, FIGETLBA and FIODGNAME for DragonFly --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 3 --- src/unix/bsd/freebsdlike/mod.rs | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 2fd5eef712b23..136fb3559924b 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -540,9 +540,6 @@ pub const TIOCSIG: ::c_uint = 0x2004745f; pub const TIOCM_DCD: ::c_int = 0x40; pub const H4DISC: ::c_int = 0x7; -pub const FIODTYPE: ::c_ulong = 0x4004667a; -pub const FIOGETLBA: ::c_ulong = 0x40046679; -pub const FIODGNAME: ::c_ulong = 0x80106678; pub const FIONWRITE: ::c_ulong = 0x40046677; pub const FIONSPACE: ::c_ulong = 0x40046676; pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 64168ebe289cb..48c790f983565 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -997,6 +997,10 @@ pub const SLIPDISC: ::c_int = 0x4; pub const PPPDISC: ::c_int = 0x5; pub const NETGRAPHDISC: ::c_int = 0x6; +pub const FIODTYPE: ::c_ulong = 0x4004667a; +pub const FIOGETLBA: ::c_ulong = 0x40046679; +pub const FIODGNAME: ::c_ulong = 0x80106678; + pub const B0: speed_t = 0; pub const B50: speed_t = 50; pub const B75: speed_t = 75; From 2c10c4c8878ff244a5344a9115eb1d8e82b3463d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Birch=20Moltu?= Date: Sat, 25 May 2019 23:55:02 +0200 Subject: [PATCH 027/296] Add FIONCLEX for Linux --- src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/gnu/b32/arm.rs | 1 + src/unix/linux_like/linux/gnu/b32/mips.rs | 1 + src/unix/linux_like/linux/gnu/b32/powerpc.rs | 1 + src/unix/linux_like/linux/gnu/b32/x86.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64.rs | 1 + src/unix/linux_like/linux/gnu/b64/mips64.rs | 1 + src/unix/linux_like/linux/gnu/b64/powerpc64.rs | 1 + src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 + src/unix/linux_like/linux/gnu/b64/sparc64.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 1 + src/unix/linux_like/linux/musl/b32/arm.rs | 1 + src/unix/linux_like/linux/musl/b32/mips.rs | 1 + src/unix/linux_like/linux/musl/b32/powerpc.rs | 1 + src/unix/linux_like/linux/musl/b32/x86.rs | 1 + src/unix/linux_like/linux/musl/b64/aarch64.rs | 1 + src/unix/linux_like/linux/musl/b64/powerpc64.rs | 1 + src/unix/linux_like/linux/musl/b64/x86_64.rs | 1 + src/unix/newlib/mod.rs | 1 + src/unix/uclibc/arm/mod.rs | 1 + src/unix/uclibc/mips/mod.rs | 1 + 21 files changed, 21 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index f4fb83de5a5ff..2662262963c8c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -785,6 +785,7 @@ pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; pub const SIGCHLD: ::c_int = 17; pub const SIGBUS: ::c_int = 7; diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index 2c1ecf97334f1..e186c241d67c2 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -322,6 +322,7 @@ pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FIONBIO: ::c_ulong = 0x5421; pub const MCL_CURRENT: ::c_int = 0x0001; diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs index 69374ed210089..f21b8c4cae640 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -698,6 +698,7 @@ pub const SO_ATTACH_BPF: ::c_int = 50; pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; pub const FIOCLEX: ::c_ulong = 0x6601; +pub const FIONCLEX: ::c_ulong = 0x6602; pub const FIONBIO: ::c_ulong = 0x667e; pub const SA_SIGINFO: ::c_int = 0x00000008; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 66a8097c20a48..8f57b72639983 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -324,6 +324,7 @@ pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const MCL_CURRENT: ::c_int = 0x2000; diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 47a35123b11f5..654a18d73d830 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -529,6 +529,7 @@ pub const F_GETOWN: ::c_int = 9; pub const F_SETOWN: ::c_int = 8; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FIONBIO: ::c_ulong = 0x5421; pub const PTRACE_GETFPXREGS: ::c_uint = 18; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index eaed8609d21f5..3e1bff5a1d877 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -529,6 +529,7 @@ pub const MAP_HUGETLB: ::c_int = 0x040000; pub const EDEADLOCK: ::c_int = 35; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FIONBIO: ::c_ulong = 0x5421; pub const MCL_CURRENT: ::c_int = 0x0001; diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index f8618c66279c6..baaa330028fe1 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -785,6 +785,7 @@ pub const SO_ATTACH_BPF: ::c_int = 50; pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; pub const FIOCLEX: ::c_ulong = 0x6601; +pub const FIONCLEX: ::c_ulong = 0x6602; pub const FIONBIO: ::c_ulong = 0x667e; pub const SA_ONSTACK: ::c_int = 0x08000000; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 02aad6459f921..432495983fb37 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -545,6 +545,7 @@ pub const EISNAM: ::c_int = 120; pub const EREMOTEIO: ::c_int = 121; pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const MCL_CURRENT: ::c_int = 0x2000; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 8fb0345ecccde..b8fda7aeeeacb 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -333,6 +333,7 @@ pub const ENOSYS: ::c_int = 38; pub const ENOTCONN: ::c_int = 107; pub const ETIMEDOUT: ::c_int = 110; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FIONBIO: ::c_ulong = 0x5421; pub const O_APPEND: ::c_int = 1024; pub const O_CREAT: ::c_int = 64; diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index 7022cae39d2d0..d3f854e5dd650 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -497,6 +497,7 @@ pub const SO_RCVTIMEO: ::c_int = 0x2000; pub const SO_SNDTIMEO: ::c_int = 0x4000; pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; pub const FIONBIO: ::c_ulong = 0x8004667e; pub const MCL_CURRENT: ::c_int = 0x2000; diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 6d61cd5dc64f9..1318713a424b6 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -692,6 +692,7 @@ pub const EISNAM: ::c_int = 120; pub const EREMOTEIO: ::c_int = 121; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FIONBIO: ::c_ulong = 0x5421; pub const PTRACE_GETFPREGS: ::c_uint = 14; diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs index 7162fdf193b77..9d79f5b53466a 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm.rs @@ -162,6 +162,7 @@ pub const O_ASYNC: ::c_int = 0x2000; pub const O_LARGEFILE: ::c_int = 0o400000; pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const RLIMIT_RSS: ::c_int = 5; diff --git a/src/unix/linux_like/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips.rs index fbecb490ca144..5ab1d7337444c 100644 --- a/src/unix/linux_like/linux/musl/b32/mips.rs +++ b/src/unix/linux_like/linux/musl/b32/mips.rs @@ -173,6 +173,7 @@ pub const O_ASYNC: ::c_int = 0o10000; pub const O_LARGEFILE: ::c_int = 0x2000; pub const FIOCLEX: ::c_int = 0x6601; +pub const FIONCLEX: ::c_int = 0x6602; pub const FIONBIO: ::c_int = 0x667E; pub const RLIMIT_RSS: ::c_int = 7; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index eafd7a6555be9..0ea8e400d7801 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -166,6 +166,7 @@ pub const O_ASYNC: ::c_int = 0x2000; pub const O_LARGEFILE: ::c_int = 0x10000; pub const FIOCLEX: ::c_int = 0x20006601; +pub const FIONCLEX: ::c_int = 0x20006602; pub const FIONBIO: ::c_int = 0x8004667E; pub const RLIMIT_RSS: ::c_int = 5; diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs index 3e8579a17a970..b574a414edf74 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86.rs @@ -222,6 +222,7 @@ pub const O_ASYNC: ::c_int = 0x2000; pub const O_LARGEFILE: ::c_int = 0o0100000; pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const RLIMIT_RSS: ::c_int = 5; diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index 16cb46d557639..a72d071bb660e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -424,6 +424,7 @@ pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 4a8df270fc34c..c869828703a10 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -448,6 +448,7 @@ pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; pub const FIOCLEX: ::c_int = 0x20006601; +pub const FIONCLEX: ::c_int = 0x20006602; pub const FIONBIO: ::c_int = 0x8004667e; pub const EDEADLK: ::c_int = 58; pub const EDEADLOCK: ::c_int = EDEADLK; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index df0ce40f3c9f5..1a123ff452d19 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -584,6 +584,7 @@ pub const B3500000: ::speed_t = 0o010016; pub const B4000000: ::speed_t = 0o010017; pub const FIOCLEX: ::c_int = 0x5451; +pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index f27874cbe5821..7e7310965d913 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -408,6 +408,7 @@ pub const SEEK_END: ::c_int = 2; pub const FIONBIO: ::c_ulong = 1; pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; pub const S_BLKSIZE: ::mode_t = 1024; pub const S_IREAD: ::mode_t = 256; diff --git a/src/unix/uclibc/arm/mod.rs b/src/unix/uclibc/arm/mod.rs index 4611467cd2d22..b237077834a06 100644 --- a/src/unix/uclibc/arm/mod.rs +++ b/src/unix/uclibc/arm/mod.rs @@ -394,6 +394,7 @@ pub const FF1: ::c_int = 0x8000; pub const FFDLY: ::c_int = 0x8000; pub const FIONBIO: ::c_ulong = 0x5421; pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONCLEX: ::c_ulong = 0x5450; pub const FLUSHO: ::tcflag_t = 0x1000; pub const F_GETLK: ::c_int = 0x5; pub const F_SETLK: ::c_int = 0x6; diff --git a/src/unix/uclibc/mips/mod.rs b/src/unix/uclibc/mips/mod.rs index fa4b0cbb995aa..6a9b41c9f0be9 100644 --- a/src/unix/uclibc/mips/mod.rs +++ b/src/unix/uclibc/mips/mod.rs @@ -224,6 +224,7 @@ pub const SO_MAX_PACING_RATE: ::c_int = 47; pub const SO_BPF_EXTENSIONS: ::c_int = 48; pub const FIOCLEX: ::c_ulong = 0x6601; +pub const FIONCLEX: ::c_ulong = 0x6602; pub const FIONBIO: ::c_ulong = 0x667e; pub const SA_ONSTACK: ::c_uint = 0x08000000; From 7c265919ec6405f5ee19f7198186ec157879abe7 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Sun, 9 Jun 2019 12:29:55 -0700 Subject: [PATCH 028/296] Switch to manual trait impls for sigevent sigevent structs on most platforms have padding or unused fields. Rather than display those in the Debug impl by deriving it, manually implement all extra_traits instead ignoring those fields. --- src/fuchsia/mod.rs | 51 +++++++++++++++++---- src/unix/bsd/apple/mod.rs | 49 ++++++++++++++++---- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 52 +++++++++++++++------ src/unix/bsd/freebsdlike/freebsd/mod.rs | 54 +++++++++++++++++----- src/unix/bsd/netbsdlike/netbsd/mod.rs | 46 +++++++++++++++---- src/unix/haiku/mod.rs | 46 +++++++++++++++---- src/unix/linux_like/mod.rs | 56 +++++++++++++++++------ src/unix/solarish/mod.rs | 52 +++++++++++++++++---- src/unix/uclibc/mod.rs | 56 +++++++++++++++++------ 9 files changed, 369 insertions(+), 93 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 1d6834155a73e..8a9cc9cda6079 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -432,15 +432,6 @@ s! { pub int_n_sign_posn: ::c_char, } - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - pub sigev_notify_function: fn(::sigval), - pub sigev_notify_attributes: *mut pthread_attr_t, - pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], - } - pub struct rlimit64 { pub rlim_cur: rlim64_t, pub rlim_max: rlim64_t, @@ -962,6 +953,15 @@ s_no_extra_traits! { pub nl_pid: u32, pub nl_groups: u32 } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + pub sigev_notify_function: fn(::sigval), + pub sigev_notify_attributes: *mut pthread_attr_t, + pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */], + } } cfg_if! { @@ -1255,6 +1255,39 @@ cfg_if! { self.nl_groups.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_value == other.sigev_value + && self.sigev_signo == other.sigev_signo + && self.sigev_notify == other.sigev_notify + && self.sigev_notify_function == other.sigev_notify_function + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_value", &self.sigev_value) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_notify", &self.sigev_notify) + .field("sigev_notify_function", &self.sigev_notify_function) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_value.hash(state); + self.sigev_signo.hash(state); + self.sigev_notify.hash(state); + self.sigev_notify_function.hash(state); + self.sigev_notify_attributes.hash(state); + } + } } } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index af28dba7eb99a..c8d294dce4683 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -287,14 +287,6 @@ s! { pub int_n_sign_posn: ::c_char, } - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t - } - pub struct proc_taskinfo { pub pti_virtual_size: u64, pub pti_resident_size: u64, @@ -612,6 +604,14 @@ s_no_extra_traits!{ pub ut_host: [::c_char; _UTX_HOSTSIZE], ut_pad: [u32; 16], } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::pthread_attr_t + } } cfg_if! { @@ -1159,6 +1159,39 @@ cfg_if! { self.ut_pad.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + + impl Eq for sigevent {} + + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } } } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 26faffef9f3b2..dadcda9c701a7 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -70,19 +70,6 @@ s! { pub mq_curmsgs: ::c_long, } - pub struct sigevent { - pub sigev_notify: ::c_int, - // The union is 8-byte in size, so it is aligned at a 8-byte offset. - #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - pub sigev_signo: ::c_int, //actually a union - // pad the union - #[cfg(target_pointer_width = "64")] - __unused2: ::c_int, - pub sigev_value: ::sigval, - __unused3: *mut ::c_void //actually a function pointer - } - pub struct statvfs { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -234,6 +221,20 @@ s_no_extra_traits! { pub f_asyncreads: ::c_long, pub f_mntfromname: [::c_char; 90], } + + pub struct sigevent { + pub sigev_notify: ::c_int, + // The union is 8-byte in size, so it is aligned at a 8-byte offset. + #[cfg(target_pointer_width = "64")] + __unused1: ::c_int, + pub sigev_signo: ::c_int, //actually a union + // pad the union + #[cfg(target_pointer_width = "64")] + __unused2: ::c_int, + pub sigev_value: ::sigval, + __unused3: *mut ::c_void //actually a function pointer + } + } cfg_if! { @@ -408,6 +409,31 @@ cfg_if! { self.f_mntfromname.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + } + } } } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index e5945517eb0b2..4e50ad243c24a 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -46,18 +46,6 @@ s! { pub ip6: *mut ::in6_addr, } - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - //The rest of the structure is actually a union. We expose only - //sigev_notify_thread_id because it's the most useful union member. - pub sigev_notify_thread_id: ::lwpid_t, - #[cfg(target_pointer_width = "64")] - __unused1: ::c_int, - __unused2: [::c_long; 7] - } - pub struct statvfs { pub f_bavail: ::fsblkcnt_t, pub f_bfree: ::fsblkcnt_t, @@ -151,6 +139,18 @@ s_no_extra_traits! { pub mq_curmsgs: ::c_long, __reserved: [::c_long; 4] } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + //The rest of the structure is actually a union. We expose only + //sigev_notify_thread_id because it's the most useful union member. + pub sigev_notify_thread_id: ::lwpid_t, + #[cfg(target_pointer_width = "64")] + __unused1: ::c_int, + __unused2: [::c_long; 7] + } } cfg_if! { @@ -274,6 +274,36 @@ cfg_if! { self.mq_curmsgs.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_thread_id + == other.sigev_notify_thread_id + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_thread_id", + &self.sigev_notify_thread_id) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_thread_id.hash(state); + } + } } } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9d710eb02deb3..c1b0f60fc1f81 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -46,14 +46,6 @@ s! { pub mq_curmsgs: ::c_long, } - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, //actually a function pointer - pub sigev_notify_attributes: *mut ::c_void - } - pub struct sigset_t { __bits: [u32; 4], } @@ -356,6 +348,14 @@ s_no_extra_traits! { __ss_pad2: i64, __ss_pad3: [u8; 112], } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, //actually a function pointer + pub sigev_notify_attributes: *mut ::c_void + } } cfg_if! { @@ -658,6 +658,36 @@ cfg_if! { self.__ss_pad3.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } } } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index be9a6cf3ccb5e..00ca8946d8c33 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -287,14 +287,6 @@ s! { sa_userdata: *mut ::c_void, } - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - __unused1: *mut ::c_void, // actually a function pointer - pub sigev_notify_attributes: *mut ::pthread_attr_t, - } - pub struct sem_t { pub se_type: i32, pub se_named_id: i32, // this is actually a union @@ -329,6 +321,14 @@ s_no_extra_traits! { pub d_reclen: ::c_ushort, pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + __unused1: *mut ::c_void, // actually a function pointer + pub sigev_notify_attributes: *mut ::pthread_attr_t, + } } cfg_if! { @@ -438,6 +438,36 @@ cfg_if! { self.d_name.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.sigev_notify_attributes.hash(state); + } + } } } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 27064662f32f2..ad20dbeee86f4 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -135,19 +135,6 @@ s! { pub int_n_sign_posn: ::c_char, } - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - // Actually a union. We only expose sigev_notify_thread_id because it's - // the most useful member - pub sigev_notify_thread_id: ::c_int, - #[cfg(target_pointer_width = "64")] - __unused1: [::c_int; 11], - #[cfg(target_pointer_width = "32")] - __unused1: [::c_int; 12] - } - pub struct in_pktinfo { pub ipi_ifindex: ::c_int, pub ipi_spec_dst: ::in_addr, @@ -242,6 +229,19 @@ s_no_extra_traits!{ pub machine: [::c_char; 65], pub domainname: [::c_char; 65] } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + // Actually a union. We only expose sigev_notify_thread_id because it's + // the most useful member + pub sigev_notify_thread_id: ::c_int, + #[cfg(target_pointer_width = "64")] + __unused1: [::c_int; 11], + #[cfg(target_pointer_width = "32")] + __unused1: [::c_int; 12] + } } cfg_if! { @@ -387,6 +387,36 @@ cfg_if! { self.domainname.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_value == other.sigev_value + && self.sigev_signo == other.sigev_signo + && self.sigev_notify == other.sigev_notify + && self.sigev_notify_thread_id + == other.sigev_notify_thread_id + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_value", &self.sigev_value) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_notify", &self.sigev_notify) + .field("sigev_notify_thread_id", + &self.sigev_notify_thread_id) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_value.hash(state); + self.sigev_signo.hash(state); + self.sigev_notify.hash(state); + self.sigev_notify_thread_id.hash(state); + } + } } } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index df20f5603bed5..b37e8ddbfe22c 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -211,15 +211,6 @@ s! { pub sa_mask: sigset_t, } - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, - pub sigev_value: ::sigval, - pub ss_sp: *mut ::c_void, - pub sigev_notify_attributes: *const ::pthread_attr_t, - __sigev_pad2: ::c_int, - } - pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_size: ::size_t, @@ -401,6 +392,15 @@ s_no_extra_traits! { pub sdl_slen: ::c_uchar, pub sdl_data: [::c_char; 244], } + + pub struct sigevent { + pub sigev_notify: ::c_int, + pub sigev_signo: ::c_int, + pub sigev_value: ::sigval, + pub ss_sp: *mut ::c_void, + pub sigev_notify_attributes: *const ::pthread_attr_t, + __sigev_pad2: ::c_int, + } } cfg_if! { @@ -636,6 +636,40 @@ cfg_if! { self.sdl_data.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_notify == other.sigev_notify + && self.sigev_signo == other.sigev_signo + && self.sigev_value == other.sigev_value + && self.ss_sp == other.ss_sp + && self.sigev_notify_attributes + == other.sigev_notify_attributes + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_notify", &self.sigev_notify) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_value", &self.sigev_value) + .field("ss_sp", &self.ss_sp) + .field("sigev_notify_attributes", + &self.sigev_notify_attributes) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_notify.hash(state); + self.sigev_signo.hash(state); + self.sigev_value.hash(state); + self.ss_sp.hash(state); + self.sigev_notify_attributes.hash(state); + } + } + } } diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index 568e0bc293efc..25e8f8bffe2a3 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -146,19 +146,6 @@ s! { pub int_n_sign_posn: ::c_char, } - pub struct sigevent { - pub sigev_value: ::sigval, - pub sigev_signo: ::c_int, - pub sigev_notify: ::c_int, - // Actually a union. We only expose sigev_notify_thread_id because it's - // the most useful member - pub sigev_notify_thread_id: ::c_int, - #[cfg(target_pointer_width = "64")] - __unused1: [::c_int; 11], - #[cfg(target_pointer_width = "32")] - __unused1: [::c_int; 12] - } - pub struct rlimit64 { pub rlim_cur: rlim64_t, pub rlim_max: rlim64_t, @@ -368,6 +355,19 @@ s_no_extra_traits! { pub nl_pid: u32, pub nl_groups: u32 } + + pub struct sigevent { + pub sigev_value: ::sigval, + pub sigev_signo: ::c_int, + pub sigev_notify: ::c_int, + // Actually a union. We only expose sigev_notify_thread_id because it's + // the most useful member + pub sigev_notify_thread_id: ::c_int, + #[cfg(target_pointer_width = "64")] + __unused1: [::c_int; 11], + #[cfg(target_pointer_width = "32")] + __unused1: [::c_int; 12] + } } cfg_if! { @@ -424,6 +424,36 @@ cfg_if! { self.nl_groups.hash(state); } } + + impl PartialEq for sigevent { + fn eq(&self, other: &sigevent) -> bool { + self.sigev_value == other.sigev_value + && self.sigev_signo == other.sigev_signo + && self.sigev_notify == other.sigev_notify + && self.sigev_notify_thread_id + == other.sigev_notify_thread_id + } + } + impl Eq for sigevent {} + impl ::fmt::Debug for sigevent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigevent") + .field("sigev_value", &self.sigev_value) + .field("sigev_signo", &self.sigev_signo) + .field("sigev_notify", &self.sigev_notify) + .field("sigev_notify_thread_id", + &self.sigev_notify_thread_id) + .finish() + } + } + impl ::hash::Hash for sigevent { + fn hash(&self, state: &mut H) { + self.sigev_value.hash(state); + self.sigev_signo.hash(state); + self.sigev_notify.hash(state); + self.sigev_notify_thread_id.hash(state); + } + } } } From 3b27cb3a13268c6bb33b2bd6343fc8ab531504c9 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 13 Jun 2019 14:55:27 -0700 Subject: [PATCH 029/296] Remove Linux constants from Fushia PR #849 just moved all of the Linux structures into `src/fuchsia`. While this is good for the most part, we really don't want the `SYS_*` constants exported on Fushia, as these are not Fuchsia's syscalls. This also removes Linux-specific `GRND_*` constants. --- src/fuchsia/aarch64.rs | 265 -------------------------------- src/fuchsia/mod.rs | 3 - src/fuchsia/x86_64.rs | 334 ----------------------------------------- 3 files changed, 602 deletions(-) diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index 654e8d1b25589..b7abcd6a291f1 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -80,268 +80,3 @@ pub const PF_MAX: ::c_int = 43; )] #[allow(deprecated)] pub const AF_MAX: ::c_int = PF_MAX; - -pub const SYS_io_setup: ::c_long = 0; -pub const SYS_io_destroy: ::c_long = 1; -pub const SYS_io_submit: ::c_long = 2; -pub const SYS_io_cancel: ::c_long = 3; -pub const SYS_io_getevents: ::c_long = 4; -pub const SYS_setxattr: ::c_long = 5; -pub const SYS_lsetxattr: ::c_long = 6; -pub const SYS_fsetxattr: ::c_long = 7; -pub const SYS_getxattr: ::c_long = 8; -pub const SYS_lgetxattr: ::c_long = 9; -pub const SYS_fgetxattr: ::c_long = 10; -pub const SYS_listxattr: ::c_long = 11; -pub const SYS_llistxattr: ::c_long = 12; -pub const SYS_flistxattr: ::c_long = 13; -pub const SYS_removexattr: ::c_long = 14; -pub const SYS_lremovexattr: ::c_long = 15; -pub const SYS_fremovexattr: ::c_long = 16; -pub const SYS_getcwd: ::c_long = 17; -pub const SYS_lookup_dcookie: ::c_long = 18; -pub const SYS_eventfd2: ::c_long = 19; -pub const SYS_epoll_create1: ::c_long = 20; -pub const SYS_epoll_ctl: ::c_long = 21; -pub const SYS_epoll_pwait: ::c_long = 22; -pub const SYS_dup: ::c_long = 23; -pub const SYS_dup3: ::c_long = 24; -pub const SYS_inotify_init1: ::c_long = 26; -pub const SYS_inotify_add_watch: ::c_long = 27; -pub const SYS_inotify_rm_watch: ::c_long = 28; -pub const SYS_ioctl: ::c_long = 29; -pub const SYS_ioprio_set: ::c_long = 30; -pub const SYS_ioprio_get: ::c_long = 31; -pub const SYS_flock: ::c_long = 32; -pub const SYS_mknodat: ::c_long = 33; -pub const SYS_mkdirat: ::c_long = 34; -pub const SYS_unlinkat: ::c_long = 35; -pub const SYS_symlinkat: ::c_long = 36; -pub const SYS_linkat: ::c_long = 37; -pub const SYS_renameat: ::c_long = 38; -pub const SYS_umount2: ::c_long = 39; -pub const SYS_mount: ::c_long = 40; -pub const SYS_pivot_root: ::c_long = 41; -pub const SYS_nfsservctl: ::c_long = 42; -pub const SYS_fallocate: ::c_long = 47; -pub const SYS_faccessat: ::c_long = 48; -pub const SYS_chdir: ::c_long = 49; -pub const SYS_fchdir: ::c_long = 50; -pub const SYS_chroot: ::c_long = 51; -pub const SYS_fchmod: ::c_long = 52; -pub const SYS_fchmodat: ::c_long = 53; -pub const SYS_fchownat: ::c_long = 54; -pub const SYS_fchown: ::c_long = 55; -pub const SYS_openat: ::c_long = 56; -pub const SYS_close: ::c_long = 57; -pub const SYS_vhangup: ::c_long = 58; -pub const SYS_pipe2: ::c_long = 59; -pub const SYS_quotactl: ::c_long = 60; -pub const SYS_getdents64: ::c_long = 61; -pub const SYS_read: ::c_long = 63; -pub const SYS_write: ::c_long = 64; -pub const SYS_readv: ::c_long = 65; -pub const SYS_writev: ::c_long = 66; -pub const SYS_pread64: ::c_long = 67; -pub const SYS_pwrite64: ::c_long = 68; -pub const SYS_preadv: ::c_long = 69; -pub const SYS_pwritev: ::c_long = 70; -pub const SYS_pselect6: ::c_long = 72; -pub const SYS_ppoll: ::c_long = 73; -pub const SYS_signalfd4: ::c_long = 74; -pub const SYS_vmsplice: ::c_long = 75; -pub const SYS_splice: ::c_long = 76; -pub const SYS_tee: ::c_long = 77; -pub const SYS_readlinkat: ::c_long = 78; -pub const SYS_sync: ::c_long = 81; -pub const SYS_fsync: ::c_long = 82; -pub const SYS_fdatasync: ::c_long = 83; -pub const SYS_sync_file_range: ::c_long = 84; -pub const SYS_timerfd_create: ::c_long = 85; -pub const SYS_timerfd_settime: ::c_long = 86; -pub const SYS_timerfd_gettime: ::c_long = 87; -pub const SYS_utimensat: ::c_long = 88; -pub const SYS_acct: ::c_long = 89; -pub const SYS_capget: ::c_long = 90; -pub const SYS_capset: ::c_long = 91; -pub const SYS_personality: ::c_long = 92; -pub const SYS_exit: ::c_long = 93; -pub const SYS_exit_group: ::c_long = 94; -pub const SYS_waitid: ::c_long = 95; -pub const SYS_set_tid_address: ::c_long = 96; -pub const SYS_unshare: ::c_long = 97; -pub const SYS_futex: ::c_long = 98; -pub const SYS_set_robust_list: ::c_long = 99; -pub const SYS_get_robust_list: ::c_long = 100; -pub const SYS_nanosleep: ::c_long = 101; -pub const SYS_getitimer: ::c_long = 102; -pub const SYS_setitimer: ::c_long = 103; -pub const SYS_kexec_load: ::c_long = 104; -pub const SYS_init_module: ::c_long = 105; -pub const SYS_delete_module: ::c_long = 106; -pub const SYS_timer_create: ::c_long = 107; -pub const SYS_timer_gettime: ::c_long = 108; -pub const SYS_timer_getoverrun: ::c_long = 109; -pub const SYS_timer_settime: ::c_long = 110; -pub const SYS_timer_delete: ::c_long = 111; -pub const SYS_clock_settime: ::c_long = 112; -pub const SYS_clock_gettime: ::c_long = 113; -pub const SYS_clock_getres: ::c_long = 114; -pub const SYS_clock_nanosleep: ::c_long = 115; -pub const SYS_syslog: ::c_long = 116; -pub const SYS_ptrace: ::c_long = 117; -pub const SYS_sched_setparam: ::c_long = 118; -pub const SYS_sched_setscheduler: ::c_long = 119; -pub const SYS_sched_getscheduler: ::c_long = 120; -pub const SYS_sched_getparam: ::c_long = 121; -pub const SYS_sched_setaffinity: ::c_long = 122; -pub const SYS_sched_getaffinity: ::c_long = 123; -pub const SYS_sched_yield: ::c_long = 124; -pub const SYS_sched_get_priority_max: ::c_long = 125; -pub const SYS_sched_get_priority_min: ::c_long = 126; -pub const SYS_sched_rr_get_interval: ::c_long = 127; -pub const SYS_restart_syscall: ::c_long = 128; -pub const SYS_kill: ::c_long = 129; -pub const SYS_tkill: ::c_long = 130; -pub const SYS_tgkill: ::c_long = 131; -pub const SYS_sigaltstack: ::c_long = 132; -pub const SYS_rt_sigsuspend: ::c_long = 133; -pub const SYS_rt_sigaction: ::c_long = 134; -pub const SYS_rt_sigprocmask: ::c_long = 135; -pub const SYS_rt_sigpending: ::c_long = 136; -pub const SYS_rt_sigtimedwait: ::c_long = 137; -pub const SYS_rt_sigqueueinfo: ::c_long = 138; -pub const SYS_rt_sigreturn: ::c_long = 139; -pub const SYS_setpriority: ::c_long = 140; -pub const SYS_getpriority: ::c_long = 141; -pub const SYS_reboot: ::c_long = 142; -pub const SYS_setregid: ::c_long = 143; -pub const SYS_setgid: ::c_long = 144; -pub const SYS_setreuid: ::c_long = 145; -pub const SYS_setuid: ::c_long = 146; -pub const SYS_setresuid: ::c_long = 147; -pub const SYS_getresuid: ::c_long = 148; -pub const SYS_setresgid: ::c_long = 149; -pub const SYS_getresgid: ::c_long = 150; -pub const SYS_setfsuid: ::c_long = 151; -pub const SYS_setfsgid: ::c_long = 152; -pub const SYS_times: ::c_long = 153; -pub const SYS_setpgid: ::c_long = 154; -pub const SYS_getpgid: ::c_long = 155; -pub const SYS_getsid: ::c_long = 156; -pub const SYS_setsid: ::c_long = 157; -pub const SYS_getgroups: ::c_long = 158; -pub const SYS_setgroups: ::c_long = 159; -pub const SYS_uname: ::c_long = 160; -pub const SYS_sethostname: ::c_long = 161; -pub const SYS_setdomainname: ::c_long = 162; -pub const SYS_getrlimit: ::c_long = 163; -pub const SYS_setrlimit: ::c_long = 164; -pub const SYS_getrusage: ::c_long = 165; -pub const SYS_umask: ::c_long = 166; -pub const SYS_prctl: ::c_long = 167; -pub const SYS_getcpu: ::c_long = 168; -pub const SYS_gettimeofday: ::c_long = 169; -pub const SYS_settimeofday: ::c_long = 170; -pub const SYS_adjtimex: ::c_long = 171; -pub const SYS_getpid: ::c_long = 172; -pub const SYS_getppid: ::c_long = 173; -pub const SYS_getuid: ::c_long = 174; -pub const SYS_geteuid: ::c_long = 175; -pub const SYS_getgid: ::c_long = 176; -pub const SYS_getegid: ::c_long = 177; -pub const SYS_gettid: ::c_long = 178; -pub const SYS_sysinfo: ::c_long = 179; -pub const SYS_mq_open: ::c_long = 180; -pub const SYS_mq_unlink: ::c_long = 181; -pub const SYS_mq_timedsend: ::c_long = 182; -pub const SYS_mq_timedreceive: ::c_long = 183; -pub const SYS_mq_notify: ::c_long = 184; -pub const SYS_mq_getsetattr: ::c_long = 185; -pub const SYS_msgget: ::c_long = 186; -pub const SYS_msgctl: ::c_long = 187; -pub const SYS_msgrcv: ::c_long = 188; -pub const SYS_msgsnd: ::c_long = 189; -pub const SYS_semget: ::c_long = 190; -pub const SYS_semctl: ::c_long = 191; -pub const SYS_semtimedop: ::c_long = 192; -pub const SYS_semop: ::c_long = 193; -pub const SYS_shmget: ::c_long = 194; -pub const SYS_shmctl: ::c_long = 195; -pub const SYS_shmat: ::c_long = 196; -pub const SYS_shmdt: ::c_long = 197; -pub const SYS_socket: ::c_long = 198; -pub const SYS_socketpair: ::c_long = 199; -pub const SYS_bind: ::c_long = 200; -pub const SYS_listen: ::c_long = 201; -pub const SYS_accept: ::c_long = 202; -pub const SYS_connect: ::c_long = 203; -pub const SYS_getsockname: ::c_long = 204; -pub const SYS_getpeername: ::c_long = 205; -pub const SYS_sendto: ::c_long = 206; -pub const SYS_recvfrom: ::c_long = 207; -pub const SYS_setsockopt: ::c_long = 208; -pub const SYS_getsockopt: ::c_long = 209; -pub const SYS_shutdown: ::c_long = 210; -pub const SYS_sendmsg: ::c_long = 211; -pub const SYS_recvmsg: ::c_long = 212; -pub const SYS_readahead: ::c_long = 213; -pub const SYS_brk: ::c_long = 214; -pub const SYS_munmap: ::c_long = 215; -pub const SYS_mremap: ::c_long = 216; -pub const SYS_add_key: ::c_long = 217; -pub const SYS_request_key: ::c_long = 218; -pub const SYS_keyctl: ::c_long = 219; -pub const SYS_clone: ::c_long = 220; -pub const SYS_execve: ::c_long = 221; -pub const SYS_swapon: ::c_long = 224; -pub const SYS_swapoff: ::c_long = 225; -pub const SYS_mprotect: ::c_long = 226; -pub const SYS_msync: ::c_long = 227; -pub const SYS_mlock: ::c_long = 228; -pub const SYS_munlock: ::c_long = 229; -pub const SYS_mlockall: ::c_long = 230; -pub const SYS_munlockall: ::c_long = 231; -pub const SYS_mincore: ::c_long = 232; -pub const SYS_madvise: ::c_long = 233; -pub const SYS_remap_file_pages: ::c_long = 234; -pub const SYS_mbind: ::c_long = 235; -pub const SYS_get_mempolicy: ::c_long = 236; -pub const SYS_set_mempolicy: ::c_long = 237; -pub const SYS_migrate_pages: ::c_long = 238; -pub const SYS_move_pages: ::c_long = 239; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; -pub const SYS_perf_event_open: ::c_long = 241; -pub const SYS_accept4: ::c_long = 242; -pub const SYS_recvmmsg: ::c_long = 243; -pub const SYS_wait4: ::c_long = 260; -pub const SYS_prlimit64: ::c_long = 261; -pub const SYS_fanotify_init: ::c_long = 262; -pub const SYS_fanotify_mark: ::c_long = 263; -pub const SYS_name_to_handle_at: ::c_long = 264; -pub const SYS_open_by_handle_at: ::c_long = 265; -pub const SYS_clock_adjtime: ::c_long = 266; -pub const SYS_syncfs: ::c_long = 267; -pub const SYS_setns: ::c_long = 268; -pub const SYS_sendmmsg: ::c_long = 269; -pub const SYS_process_vm_readv: ::c_long = 270; -pub const SYS_process_vm_writev: ::c_long = 271; -pub const SYS_kcmp: ::c_long = 272; -pub const SYS_finit_module: ::c_long = 273; -pub const SYS_sched_setattr: ::c_long = 274; -pub const SYS_sched_getattr: ::c_long = 275; -pub const SYS_renameat2: ::c_long = 276; -pub const SYS_seccomp: ::c_long = 277; -pub const SYS_getrandom: ::c_long = 278; -pub const SYS_memfd_create: ::c_long = 279; -pub const SYS_bpf: ::c_long = 280; -pub const SYS_execveat: ::c_long = 281; -pub const SYS_userfaultfd: ::c_long = 282; -pub const SYS_membarrier: ::c_long = 283; -pub const SYS_mlock2: ::c_long = 284; -pub const SYS_copy_file_range: ::c_long = 285; -pub const SYS_preadv2: ::c_long = 286; -pub const SYS_pwritev2: ::c_long = 287; -pub const SYS_pkey_mprotect: ::c_long = 288; -pub const SYS_pkey_alloc: ::c_long = 289; -pub const SYS_pkey_free: ::c_long = 290; diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 8a9cc9cda6079..f2f9844298a5a 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -2596,9 +2596,6 @@ pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; -pub const GRND_NONBLOCK: ::c_uint = 0x0001; -pub const GRND_RANDOM: ::c_uint = 0x0002; - pub const ITIMER_REAL: ::c_int = 0; pub const ITIMER_VIRTUAL: ::c_int = 1; pub const ITIMER_PROF: ::c_int = 2; diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index e01f16d425a04..0f1a4e9ebf536 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -117,340 +117,6 @@ cfg_if! { } } -// Syscall table - -pub const SYS_read: ::c_long = 0; -pub const SYS_write: ::c_long = 1; -pub const SYS_open: ::c_long = 2; -pub const SYS_close: ::c_long = 3; -pub const SYS_stat: ::c_long = 4; -pub const SYS_fstat: ::c_long = 5; -pub const SYS_lstat: ::c_long = 6; -pub const SYS_poll: ::c_long = 7; -pub const SYS_lseek: ::c_long = 8; -pub const SYS_mmap: ::c_long = 9; -pub const SYS_mprotect: ::c_long = 10; -pub const SYS_munmap: ::c_long = 11; -pub const SYS_brk: ::c_long = 12; -pub const SYS_rt_sigaction: ::c_long = 13; -pub const SYS_rt_sigprocmask: ::c_long = 14; -pub const SYS_rt_sigreturn: ::c_long = 15; -pub const SYS_ioctl: ::c_long = 16; -pub const SYS_pread64: ::c_long = 17; -pub const SYS_pwrite64: ::c_long = 18; -pub const SYS_readv: ::c_long = 19; -pub const SYS_writev: ::c_long = 20; -pub const SYS_access: ::c_long = 21; -pub const SYS_pipe: ::c_long = 22; -pub const SYS_select: ::c_long = 23; -pub const SYS_sched_yield: ::c_long = 24; -pub const SYS_mremap: ::c_long = 25; -pub const SYS_msync: ::c_long = 26; -pub const SYS_mincore: ::c_long = 27; -pub const SYS_madvise: ::c_long = 28; -pub const SYS_shmget: ::c_long = 29; -pub const SYS_shmat: ::c_long = 30; -pub const SYS_shmctl: ::c_long = 31; -pub const SYS_dup: ::c_long = 32; -pub const SYS_dup2: ::c_long = 33; -pub const SYS_pause: ::c_long = 34; -pub const SYS_nanosleep: ::c_long = 35; -pub const SYS_getitimer: ::c_long = 36; -pub const SYS_alarm: ::c_long = 37; -pub const SYS_setitimer: ::c_long = 38; -pub const SYS_getpid: ::c_long = 39; -pub const SYS_sendfile: ::c_long = 40; -pub const SYS_socket: ::c_long = 41; -pub const SYS_connect: ::c_long = 42; -pub const SYS_accept: ::c_long = 43; -pub const SYS_sendto: ::c_long = 44; -pub const SYS_recvfrom: ::c_long = 45; -pub const SYS_sendmsg: ::c_long = 46; -pub const SYS_recvmsg: ::c_long = 47; -pub const SYS_shutdown: ::c_long = 48; -pub const SYS_bind: ::c_long = 49; -pub const SYS_listen: ::c_long = 50; -pub const SYS_getsockname: ::c_long = 51; -pub const SYS_getpeername: ::c_long = 52; -pub const SYS_socketpair: ::c_long = 53; -pub const SYS_setsockopt: ::c_long = 54; -pub const SYS_getsockopt: ::c_long = 55; -pub const SYS_clone: ::c_long = 56; -pub const SYS_fork: ::c_long = 57; -pub const SYS_vfork: ::c_long = 58; -pub const SYS_execve: ::c_long = 59; -pub const SYS_exit: ::c_long = 60; -pub const SYS_wait4: ::c_long = 61; -pub const SYS_kill: ::c_long = 62; -pub const SYS_uname: ::c_long = 63; -pub const SYS_semget: ::c_long = 64; -pub const SYS_semop: ::c_long = 65; -pub const SYS_semctl: ::c_long = 66; -pub const SYS_shmdt: ::c_long = 67; -pub const SYS_msgget: ::c_long = 68; -pub const SYS_msgsnd: ::c_long = 69; -pub const SYS_msgrcv: ::c_long = 70; -pub const SYS_msgctl: ::c_long = 71; -pub const SYS_fcntl: ::c_long = 72; -pub const SYS_flock: ::c_long = 73; -pub const SYS_fsync: ::c_long = 74; -pub const SYS_fdatasync: ::c_long = 75; -pub const SYS_truncate: ::c_long = 76; -pub const SYS_ftruncate: ::c_long = 77; -pub const SYS_getdents: ::c_long = 78; -pub const SYS_getcwd: ::c_long = 79; -pub const SYS_chdir: ::c_long = 80; -pub const SYS_fchdir: ::c_long = 81; -pub const SYS_rename: ::c_long = 82; -pub const SYS_mkdir: ::c_long = 83; -pub const SYS_rmdir: ::c_long = 84; -pub const SYS_creat: ::c_long = 85; -pub const SYS_link: ::c_long = 86; -pub const SYS_unlink: ::c_long = 87; -pub const SYS_symlink: ::c_long = 88; -pub const SYS_readlink: ::c_long = 89; -pub const SYS_chmod: ::c_long = 90; -pub const SYS_fchmod: ::c_long = 91; -pub const SYS_chown: ::c_long = 92; -pub const SYS_fchown: ::c_long = 93; -pub const SYS_lchown: ::c_long = 94; -pub const SYS_umask: ::c_long = 95; -pub const SYS_gettimeofday: ::c_long = 96; -pub const SYS_getrlimit: ::c_long = 97; -pub const SYS_getrusage: ::c_long = 98; -pub const SYS_sysinfo: ::c_long = 99; -pub const SYS_times: ::c_long = 100; -pub const SYS_ptrace: ::c_long = 101; -pub const SYS_getuid: ::c_long = 102; -pub const SYS_syslog: ::c_long = 103; -pub const SYS_getgid: ::c_long = 104; -pub const SYS_setuid: ::c_long = 105; -pub const SYS_setgid: ::c_long = 106; -pub const SYS_geteuid: ::c_long = 107; -pub const SYS_getegid: ::c_long = 108; -pub const SYS_setpgid: ::c_long = 109; -pub const SYS_getppid: ::c_long = 110; -pub const SYS_getpgrp: ::c_long = 111; -pub const SYS_setsid: ::c_long = 112; -pub const SYS_setreuid: ::c_long = 113; -pub const SYS_setregid: ::c_long = 114; -pub const SYS_getgroups: ::c_long = 115; -pub const SYS_setgroups: ::c_long = 116; -pub const SYS_setresuid: ::c_long = 117; -pub const SYS_getresuid: ::c_long = 118; -pub const SYS_setresgid: ::c_long = 119; -pub const SYS_getresgid: ::c_long = 120; -pub const SYS_getpgid: ::c_long = 121; -pub const SYS_setfsuid: ::c_long = 122; -pub const SYS_setfsgid: ::c_long = 123; -pub const SYS_getsid: ::c_long = 124; -pub const SYS_capget: ::c_long = 125; -pub const SYS_capset: ::c_long = 126; -pub const SYS_rt_sigpending: ::c_long = 127; -pub const SYS_rt_sigtimedwait: ::c_long = 128; -pub const SYS_rt_sigqueueinfo: ::c_long = 129; -pub const SYS_rt_sigsuspend: ::c_long = 130; -pub const SYS_sigaltstack: ::c_long = 131; -pub const SYS_utime: ::c_long = 132; -pub const SYS_mknod: ::c_long = 133; -pub const SYS_uselib: ::c_long = 134; -pub const SYS_personality: ::c_long = 135; -pub const SYS_ustat: ::c_long = 136; -pub const SYS_statfs: ::c_long = 137; -pub const SYS_fstatfs: ::c_long = 138; -pub const SYS_sysfs: ::c_long = 139; -pub const SYS_getpriority: ::c_long = 140; -pub const SYS_setpriority: ::c_long = 141; -pub const SYS_sched_setparam: ::c_long = 142; -pub const SYS_sched_getparam: ::c_long = 143; -pub const SYS_sched_setscheduler: ::c_long = 144; -pub const SYS_sched_getscheduler: ::c_long = 145; -pub const SYS_sched_get_priority_max: ::c_long = 146; -pub const SYS_sched_get_priority_min: ::c_long = 147; -pub const SYS_sched_rr_get_interval: ::c_long = 148; -pub const SYS_mlock: ::c_long = 149; -pub const SYS_munlock: ::c_long = 150; -pub const SYS_mlockall: ::c_long = 151; -pub const SYS_munlockall: ::c_long = 152; -pub const SYS_vhangup: ::c_long = 153; -pub const SYS_modify_ldt: ::c_long = 154; -pub const SYS_pivot_root: ::c_long = 155; -pub const SYS__sysctl: ::c_long = 156; -pub const SYS_prctl: ::c_long = 157; -pub const SYS_arch_prctl: ::c_long = 158; -pub const SYS_adjtimex: ::c_long = 159; -pub const SYS_setrlimit: ::c_long = 160; -pub const SYS_chroot: ::c_long = 161; -pub const SYS_sync: ::c_long = 162; -pub const SYS_acct: ::c_long = 163; -pub const SYS_settimeofday: ::c_long = 164; -pub const SYS_mount: ::c_long = 165; -pub const SYS_umount2: ::c_long = 166; -pub const SYS_swapon: ::c_long = 167; -pub const SYS_swapoff: ::c_long = 168; -pub const SYS_reboot: ::c_long = 169; -pub const SYS_sethostname: ::c_long = 170; -pub const SYS_setdomainname: ::c_long = 171; -pub const SYS_iopl: ::c_long = 172; -pub const SYS_ioperm: ::c_long = 173; -pub const SYS_create_module: ::c_long = 174; -pub const SYS_init_module: ::c_long = 175; -pub const SYS_delete_module: ::c_long = 176; -pub const SYS_get_kernel_syms: ::c_long = 177; -pub const SYS_query_module: ::c_long = 178; -pub const SYS_quotactl: ::c_long = 179; -pub const SYS_nfsservctl: ::c_long = 180; -pub const SYS_getpmsg: ::c_long = 181; -pub const SYS_putpmsg: ::c_long = 182; -pub const SYS_afs_syscall: ::c_long = 183; -pub const SYS_tuxcall: ::c_long = 184; -pub const SYS_security: ::c_long = 185; -pub const SYS_gettid: ::c_long = 186; -pub const SYS_readahead: ::c_long = 187; -pub const SYS_setxattr: ::c_long = 188; -pub const SYS_lsetxattr: ::c_long = 189; -pub const SYS_fsetxattr: ::c_long = 190; -pub const SYS_getxattr: ::c_long = 191; -pub const SYS_lgetxattr: ::c_long = 192; -pub const SYS_fgetxattr: ::c_long = 193; -pub const SYS_listxattr: ::c_long = 194; -pub const SYS_llistxattr: ::c_long = 195; -pub const SYS_flistxattr: ::c_long = 196; -pub const SYS_removexattr: ::c_long = 197; -pub const SYS_lremovexattr: ::c_long = 198; -pub const SYS_fremovexattr: ::c_long = 199; -pub const SYS_tkill: ::c_long = 200; -pub const SYS_time: ::c_long = 201; -pub const SYS_futex: ::c_long = 202; -pub const SYS_sched_setaffinity: ::c_long = 203; -pub const SYS_sched_getaffinity: ::c_long = 204; -pub const SYS_set_thread_area: ::c_long = 205; -pub const SYS_io_setup: ::c_long = 206; -pub const SYS_io_destroy: ::c_long = 207; -pub const SYS_io_getevents: ::c_long = 208; -pub const SYS_io_submit: ::c_long = 209; -pub const SYS_io_cancel: ::c_long = 210; -pub const SYS_get_thread_area: ::c_long = 211; -pub const SYS_lookup_dcookie: ::c_long = 212; -pub const SYS_epoll_create: ::c_long = 213; -pub const SYS_epoll_ctl_old: ::c_long = 214; -pub const SYS_epoll_wait_old: ::c_long = 215; -pub const SYS_remap_file_pages: ::c_long = 216; -pub const SYS_getdents64: ::c_long = 217; -pub const SYS_set_tid_address: ::c_long = 218; -pub const SYS_restart_syscall: ::c_long = 219; -pub const SYS_semtimedop: ::c_long = 220; -pub const SYS_fadvise64: ::c_long = 221; -pub const SYS_timer_create: ::c_long = 222; -pub const SYS_timer_settime: ::c_long = 223; -pub const SYS_timer_gettime: ::c_long = 224; -pub const SYS_timer_getoverrun: ::c_long = 225; -pub const SYS_timer_delete: ::c_long = 226; -pub const SYS_clock_settime: ::c_long = 227; -pub const SYS_clock_gettime: ::c_long = 228; -pub const SYS_clock_getres: ::c_long = 229; -pub const SYS_clock_nanosleep: ::c_long = 230; -pub const SYS_exit_group: ::c_long = 231; -pub const SYS_epoll_wait: ::c_long = 232; -pub const SYS_epoll_ctl: ::c_long = 233; -pub const SYS_tgkill: ::c_long = 234; -pub const SYS_utimes: ::c_long = 235; -pub const SYS_vserver: ::c_long = 236; -pub const SYS_mbind: ::c_long = 237; -pub const SYS_set_mempolicy: ::c_long = 238; -pub const SYS_get_mempolicy: ::c_long = 239; -pub const SYS_mq_open: ::c_long = 240; -pub const SYS_mq_unlink: ::c_long = 241; -pub const SYS_mq_timedsend: ::c_long = 242; -pub const SYS_mq_timedreceive: ::c_long = 243; -pub const SYS_mq_notify: ::c_long = 244; -pub const SYS_mq_getsetattr: ::c_long = 245; -pub const SYS_kexec_load: ::c_long = 246; -pub const SYS_waitid: ::c_long = 247; -pub const SYS_add_key: ::c_long = 248; -pub const SYS_request_key: ::c_long = 249; -pub const SYS_keyctl: ::c_long = 250; -pub const SYS_ioprio_set: ::c_long = 251; -pub const SYS_ioprio_get: ::c_long = 252; -pub const SYS_inotify_init: ::c_long = 253; -pub const SYS_inotify_add_watch: ::c_long = 254; -pub const SYS_inotify_rm_watch: ::c_long = 255; -pub const SYS_migrate_pages: ::c_long = 256; -pub const SYS_openat: ::c_long = 257; -pub const SYS_mkdirat: ::c_long = 258; -pub const SYS_mknodat: ::c_long = 259; -pub const SYS_fchownat: ::c_long = 260; -pub const SYS_futimesat: ::c_long = 261; -pub const SYS_newfstatat: ::c_long = 262; -pub const SYS_unlinkat: ::c_long = 263; -pub const SYS_renameat: ::c_long = 264; -pub const SYS_linkat: ::c_long = 265; -pub const SYS_symlinkat: ::c_long = 266; -pub const SYS_readlinkat: ::c_long = 267; -pub const SYS_fchmodat: ::c_long = 268; -pub const SYS_faccessat: ::c_long = 269; -pub const SYS_pselect6: ::c_long = 270; -pub const SYS_ppoll: ::c_long = 271; -pub const SYS_unshare: ::c_long = 272; -pub const SYS_set_robust_list: ::c_long = 273; -pub const SYS_get_robust_list: ::c_long = 274; -pub const SYS_splice: ::c_long = 275; -pub const SYS_tee: ::c_long = 276; -pub const SYS_sync_file_range: ::c_long = 277; -pub const SYS_vmsplice: ::c_long = 278; -pub const SYS_move_pages: ::c_long = 279; -pub const SYS_utimensat: ::c_long = 280; -pub const SYS_epoll_pwait: ::c_long = 281; -pub const SYS_signalfd: ::c_long = 282; -pub const SYS_timerfd_create: ::c_long = 283; -pub const SYS_eventfd: ::c_long = 284; -pub const SYS_fallocate: ::c_long = 285; -pub const SYS_timerfd_settime: ::c_long = 286; -pub const SYS_timerfd_gettime: ::c_long = 287; -pub const SYS_accept4: ::c_long = 288; -pub const SYS_signalfd4: ::c_long = 289; -pub const SYS_eventfd2: ::c_long = 290; -pub const SYS_epoll_create1: ::c_long = 291; -pub const SYS_dup3: ::c_long = 292; -pub const SYS_pipe2: ::c_long = 293; -pub const SYS_inotify_init1: ::c_long = 294; -pub const SYS_preadv: ::c_long = 295; -pub const SYS_pwritev: ::c_long = 296; -pub const SYS_rt_tgsigqueueinfo: ::c_long = 297; -pub const SYS_perf_event_open: ::c_long = 298; -pub const SYS_recvmmsg: ::c_long = 299; -pub const SYS_fanotify_init: ::c_long = 300; -pub const SYS_fanotify_mark: ::c_long = 301; -pub const SYS_prlimit64: ::c_long = 302; -pub const SYS_name_to_handle_at: ::c_long = 303; -pub const SYS_open_by_handle_at: ::c_long = 304; -pub const SYS_clock_adjtime: ::c_long = 305; -pub const SYS_syncfs: ::c_long = 306; -pub const SYS_sendmmsg: ::c_long = 307; -pub const SYS_setns: ::c_long = 308; -pub const SYS_getcpu: ::c_long = 309; -pub const SYS_process_vm_readv: ::c_long = 310; -pub const SYS_process_vm_writev: ::c_long = 311; -pub const SYS_kcmp: ::c_long = 312; -pub const SYS_finit_module: ::c_long = 313; -pub const SYS_sched_setattr: ::c_long = 314; -pub const SYS_sched_getattr: ::c_long = 315; -pub const SYS_renameat2: ::c_long = 316; -pub const SYS_seccomp: ::c_long = 317; -pub const SYS_getrandom: ::c_long = 318; -pub const SYS_memfd_create: ::c_long = 319; -pub const SYS_kexec_file_load: ::c_long = 320; -pub const SYS_bpf: ::c_long = 321; -pub const SYS_execveat: ::c_long = 322; -pub const SYS_userfaultfd: ::c_long = 323; -pub const SYS_membarrier: ::c_long = 324; -pub const SYS_mlock2: ::c_long = 325; -pub const SYS_copy_file_range: ::c_long = 326; -pub const SYS_preadv2: ::c_long = 327; -pub const SYS_pwritev2: ::c_long = 328; -// FIXME syscalls 329-331 have been added in musl 1.16 -// See discussion https://github.com/rust-lang/libc/pull/699 - // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; pub const R14: ::c_int = 1; From 8bc89810c23125ca85142a441ac0b4a7f268eb95 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 13 Jun 2019 15:02:07 -0700 Subject: [PATCH 030/296] Add getrandom() bindings on linux and android Closes #659 --- src/unix/linux_like/android/mod.rs | 5 +++++ src/unix/linux_like/linux/mod.rs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2662262963c8c..0890eecbf35d4 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2195,6 +2195,11 @@ extern { pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; + pub fn getrandom( + buf: *mut u8, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; } cfg_if! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 6d9c5e72576df..d995004302adc 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2666,6 +2666,11 @@ extern { pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; + pub fn getrandom( + buf: *mut u8, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; } cfg_if! { From 851e9a1ce1a5fe9670058b6f0c0eb26eece98edf Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 13 Jun 2019 18:09:17 -0700 Subject: [PATCH 031/296] Use *mut c_void for buffer pointer. --- src/unix/linux_like/android/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 0890eecbf35d4..6e670c9986610 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2196,7 +2196,7 @@ extern { path: *const ::c_char, mask: u32) -> ::c_int; pub fn getrandom( - buf: *mut u8, + buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint, ) -> ::ssize_t; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index d995004302adc..cf0e578c6430b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2667,7 +2667,7 @@ extern { path: *const ::c_char, mask: u32) -> ::c_int; pub fn getrandom( - buf: *mut u8, + buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint, ) -> ::ssize_t; From 45083afd9c1cf3bcbd5deb96e8fbbf9ec07e8b7c Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 13 Jun 2019 20:38:42 -0700 Subject: [PATCH 032/296] Android doesn't have getrandom() --- src/unix/linux_like/android/mod.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 6e670c9986610..2662262963c8c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2195,11 +2195,6 @@ extern { pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; } cfg_if! { From 3a7da471b87f13826266226817cdb49892e3ebf6 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 13 Jun 2019 23:49:05 -0700 Subject: [PATCH 033/296] Older musl doesn't have getrandom() --- src/unix/linux_like/linux/gnu/mod.rs | 5 +++++ src/unix/linux_like/linux/mod.rs | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index cbca5a32363ee..13f7de5974a68 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -967,6 +967,11 @@ extern { tz: *mut ::timezone) -> ::c_int; pub fn statx(dirfd: ::c_int, pathname: *const c_char, flags: ::c_int, mask: ::c_uint, statxbuf: *mut statx) -> ::c_int; + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; } #[link(name = "util")] diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index cf0e578c6430b..6d9c5e72576df 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2666,11 +2666,6 @@ extern { pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int; - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; } cfg_if! { From 457c02d7b5a517cd7499e98582300058ebc71ade Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Fri, 14 Jun 2019 02:21:17 -0700 Subject: [PATCH 034/296] Add getrandom() on non-mips musl --- src/unix/linux_like/linux/musl/b32/arm.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/powerpc.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b32/x86.rs | 8 ++++++++ src/unix/linux_like/linux/musl/b64/mod.rs | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs index 9d79f5b53466a..016f81b9251f8 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm.rs @@ -152,6 +152,14 @@ s! { } } +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 0ea8e400d7801..6b07e47a9ad9c 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -155,6 +155,14 @@ s! { } } +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs index b574a414edf74..8ba48da273c43 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86.rs @@ -167,6 +167,14 @@ s_no_extra_traits!{ } } +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for ucontext_t { diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 34b376695735f..67f2ab1a4bb7e 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -129,6 +129,14 @@ s! { } } +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; From 14b22c15d08bc6e91ee30a78fab115c8a6b65e50 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Fri, 14 Jun 2019 03:41:24 -0700 Subject: [PATCH 035/296] Fix style lints --- src/unix/linux_like/linux/musl/b32/arm.rs | 16 ++++++++-------- src/unix/linux_like/linux/musl/b32/powerpc.rs | 16 ++++++++-------- src/unix/linux_like/linux/musl/b32/x86.rs | 16 ++++++++-------- src/unix/linux_like/linux/musl/b64/mod.rs | 16 ++++++++-------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs index 016f81b9251f8..7d6dcfde0d75f 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm.rs @@ -152,14 +152,6 @@ s! { } } -extern { - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; -} - pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; @@ -851,3 +843,11 @@ pub const AF_MAX: ::c_int = 45; https://github.com/rust-lang/libc/issues/665" )] pub const PF_MAX: ::c_int = AF_MAX; + +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 6b07e47a9ad9c..04999c625e37b 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -155,14 +155,6 @@ s! { } } -extern { - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; -} - pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; @@ -877,3 +869,11 @@ pub const AF_MAX: ::c_int = 43; https://github.com/rust-lang/libc/issues/665" )] pub const PF_MAX: ::c_int = AF_MAX; + +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs index 8ba48da273c43..3ccf80707b246 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86.rs @@ -167,14 +167,6 @@ s_no_extra_traits!{ } } -extern { - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; -} - cfg_if! { if #[cfg(feature = "extra_traits")] { impl PartialEq for ucontext_t { @@ -959,3 +951,11 @@ pub const AF_MAX: ::c_int = 45; https://github.com/rust-lang/libc/issues/665" )] pub const PF_MAX: ::c_int = AF_MAX; + +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 67f2ab1a4bb7e..12d5c849f6dc4 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -129,14 +129,6 @@ s! { } } -extern { - pub fn getrandom( - buf: *mut ::c_void, - buflen: ::size_t, - flags: ::c_uint, - ) -> ::ssize_t; -} - pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; @@ -320,6 +312,14 @@ pub const VEOF: usize = 4; pub const POLLWRNORM: ::c_short = 0x100; pub const POLLWRBAND: ::c_short = 0x200; +extern { + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; +} + cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; From 60254f1151af28d923c547014483c7598f21c3d4 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Thu, 20 Jun 2019 19:37:20 +0300 Subject: [PATCH 036/296] haiku: add missing ioctl identifiers to control the TTY --- src/unix/haiku/mod.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 00ca8946d8c33..f8f6ca9898ca8 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1183,6 +1183,31 @@ pub const TCIFLUSH: ::c_int = 0x01; pub const TCOFLUSH: ::c_int = 0x02; pub const TCIOFLUSH: ::c_int = 0x03; +pub const TCGETA: ::c_int = 0x8000; +pub const TCSETA: ::c_int = TCGETA + 1; +pub const TCSETAF: ::c_int = TCGETA + 2; +pub const TCSETAW: ::c_int = TCGETA + 3; +pub const TCWAITEVENT: ::c_int = TCGETA + 4; +pub const TCSBRK: ::c_int = TCGETA + 5; +pub const TCFLSH: ::c_int = TCGETA + 6; +pub const TCXONC: ::c_int = TCGETA + 7; +pub const TCQUERYCONNECTED: ::c_int = TCGETA + 8; +pub const TCGETBITS: ::c_int = TCGETA + 9; +pub const TCSETDTR: ::c_int = TCGETA + 10; +pub const TCSETRTS: ::c_int = TCGETA + 11; +pub const TIOCGWINSZ: ::c_int = TCGETA + 12; +pub const TIOCSWINSZ: ::c_int = TCGETA + 13; +pub const TCVTIME: ::c_int = TCGETA + 14; +pub const TIOCGPGRP: ::c_int = TCGETA + 15; +pub const TIOCSPGRP: ::c_int = TCGETA + 16; +pub const TIOCSCTTY: ::c_int = TCGETA + 17; +pub const TIOCMGET: ::c_int = TCGETA + 18; +pub const TIOCMSET: ::c_int = TCGETA + 19; +pub const TIOCSBRK: ::c_int = TCGETA + 20; +pub const TIOCCBRK: ::c_int = TCGETA + 21; +pub const TIOCMBIS: ::c_int = TCGETA + 22; +pub const TIOCMBIC: ::c_int = TCGETA + 23; + f! { pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; From 27f9da96deed5248cd17a0578b7b6064e359b91d Mon Sep 17 00:00:00 2001 From: "Robert D. French" Date: Sat, 22 Jun 2019 23:24:26 -0400 Subject: [PATCH 037/296] Support calls to the SunOS Doors API --- src/unix/solarish/mod.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index b37e8ddbfe22c..4538f6af58e71 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -35,6 +35,9 @@ pub type mqd_t = *mut ::c_void; pub type id_t = ::c_int; pub type idtype_t = ::c_uint; +pub type door_attr_t = ::c_uint; +pub type door_id_t = ::c_ulonglong; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} impl ::Copy for timezone {} @@ -338,6 +341,11 @@ s! { pub portev_object: ::uintptr_t, pub portev_user: *mut ::c_void, } + + pub struct door_desc_t__d_data__d_desc { + pub d_descriptor: ::c_int, + pub d_id: ::door_id_t + } } s_no_extra_traits! { @@ -401,6 +409,25 @@ s_no_extra_traits! { pub sigev_notify_attributes: *const ::pthread_attr_t, __sigev_pad2: ::c_int, } + + pub union door_desc_t__d_data { + pub d_desc: door_desc_t__d_data__d_desc, + d_resv: [::c_int; 5], /* Check out /usr/include/sys/door.h */ + } + + pub struct door_desc_t { + pub d_attributes: door_attr_t, + pub d_data: door_desc_t__d_data, + } + + pub struct door_arg_t { + pub data_ptr: *const ::c_char, + pub data_size: ::size_t, + pub desc_ptr: *const door_desc_t, + pub dec_num: ::c_uint, + pub rbuf: *const ::c_char, + pub rsize: ::size_t, + } } cfg_if! { @@ -1835,6 +1862,14 @@ f! { } } +pub type door_server_proc_t = extern fn( + cookie: *const ::c_void, + argp: *const ::c_char, + arg_size: ::size_t, + dp: *const door_desc_t, + n_desc: ::c_uint +); + extern { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; @@ -2108,6 +2143,10 @@ extern { pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; + pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; + pub fn door_return(data_ptr: *const ::c_char, data_size: ::size_t, desc_ptr: *const door_desc_t, num_desc: ::c_uint); + pub fn door_create(server_procedure: door_server_proc_t, cookie: *const ::c_void, attributes: door_attr_t) -> ::c_int; + pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; } mod compat; From ba459b72a403f2672da795fe99d14c60a4978df8 Mon Sep 17 00:00:00 2001 From: "Robert D. French" Date: Sun, 23 Jun 2019 00:51:36 -0400 Subject: [PATCH 038/296] Obey 80 char line width --- src/unix/solarish/mod.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 4538f6af58e71..b2c23a58ce600 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1862,14 +1862,6 @@ f! { } } -pub type door_server_proc_t = extern fn( - cookie: *const ::c_void, - argp: *const ::c_char, - arg_size: ::size_t, - dp: *const door_desc_t, - n_desc: ::c_uint -); - extern { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; @@ -2144,8 +2136,17 @@ extern { pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; - pub fn door_return(data_ptr: *const ::c_char, data_size: ::size_t, desc_ptr: *const door_desc_t, num_desc: ::c_uint); - pub fn door_create(server_procedure: door_server_proc_t, cookie: *const ::c_void, attributes: door_attr_t) -> ::c_int; + pub fn door_return(data_ptr: *const ::c_char, + data_size: ::size_t, + desc_ptr: *const door_desc_t, + num_desc: ::c_uint); + pub fn door_create(server_procedure: extern fn(cookie: *const ::c_void, + argp: *const ::c_char, + arg_size: ::size_t, + dp: *const door_desc_t, + n_desc: ::c_uint), + cookie: *const ::c_void, + attributes: door_attr_t) -> ::c_int; pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; } From ccdc5ebc2d5bd5c41fb0e46ebc1de651a31c3c9c Mon Sep 17 00:00:00 2001 From: Danilo Bargen Date: Sun, 23 Jun 2019 22:58:06 +0200 Subject: [PATCH 039/296] fixup! Add ttyname_r Add cfg_attr --- src/unix/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 9160af3f0cefa..1d53f4a96516e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -753,6 +753,8 @@ extern { pub fn tcgetpgrp(fd: ::c_int) -> pid_t; pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "ttyname_r$UNIX2003")] pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; pub fn unlink(c: *const c_char) -> ::c_int; From cd5235f6e2db4ab9fad468c682b90ff96502d3f2 Mon Sep 17 00:00:00 2001 From: Travis Finkenauer Date: Tue, 25 Jun 2019 21:55:42 -0400 Subject: [PATCH 040/296] wasi: add c_schar definition --- src/wasi.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wasi.rs b/src/wasi.rs index 95a0837d4f9d4..e1ffeded9f6d6 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -2,6 +2,7 @@ pub use ffi::c_void; pub type c_char = i8; pub type c_uchar = u8; +pub type c_schar = i8; pub type c_int = i32; pub type c_uint = u32; pub type c_short = i16; From d61b55d65f684b7d996056f7066436d46eac54b3 Mon Sep 17 00:00:00 2001 From: John Baublitz Date: Wed, 26 Jun 2019 15:14:37 -0400 Subject: [PATCH 041/296] Add RTM_* constants to linux/mod.rs for rtnetlink --- src/unix/linux_like/linux/mod.rs | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 6d9c5e72576df..f4b8f7ccddae7 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1908,6 +1908,59 @@ pub const TCA_FCNT: ::c_ushort = 6; pub const TCA_STATS2: ::c_ushort = 7; pub const TCA_STAB: ::c_ushort = 8; +pub const RTM_NEWLINK: u16 = 16; +pub const RTM_DELLINK: u16 = 17; +pub const RTM_GETLINK: u16 = 18; +pub const RTM_SETLINK: u16 = 19; +pub const RTM_NEWADDR: u16 = 20; +pub const RTM_DELADDR: u16 = 21; +pub const RTM_GETADDR: u16 = 22; +pub const RTM_NEWROUTE: u16 = 24; +pub const RTM_DELROUTE: u16 = 25; +pub const RTM_GETROUTE: u16 = 26; +pub const RTM_NEWNEIGH: u16 = 28; +pub const RTM_DELNEIGH: u16 = 29; +pub const RTM_GETNEIGH: u16 = 30; +pub const RTM_NEWRULE: u16 = 32; +pub const RTM_DELRULE: u16 = 33; +pub const RTM_GETRULE: u16 = 34; +pub const RTM_NEWQDISC: u16 = 36; +pub const RTM_DELQDISC: u16 = 37; +pub const RTM_GETQDISC: u16 = 38; +pub const RTM_NEWTCLASS: u16 = 40; +pub const RTM_DELTCLASS: u16 = 41; +pub const RTM_GETTCLASS: u16 = 42; +pub const RTM_NEWTFILTER: u16 = 44; +pub const RTM_DELTFILTER: u16 = 45; +pub const RTM_GETTFILTER: u16 = 46; +pub const RTM_NEWACTION: u16 = 48; +pub const RTM_DELACTION: u16 = 49; +pub const RTM_GETACTION: u16 = 50; +pub const RTM_NEWPREFIX: u16 = 52; +pub const RTM_GETMULTICAST: u16 = 58; +pub const RTM_GETANYCAST: u16 = 62; +pub const RTM_NEWNEIGHTBL: u16 = 64; +pub const RTM_GETNEIGHTBL: u16 = 66; +pub const RTM_SETNEIGHTBL: u16 = 67; +pub const RTM_NEWNDUSEROPT: u16 = 68; +pub const RTM_NEWADDRLABEL: u16 = 72; +pub const RTM_DELADDRLABEL: u16 = 73; +pub const RTM_GETADDRLABEL: u16 = 74; +pub const RTM_GETDCB: u16 = 78; +pub const RTM_SETDCB: u16 = 79; +pub const RTM_NEWNETCONF: u16 = 80; +pub const RTM_DELNETCONF: u16 = 81; +pub const RTM_GETNETCONF: u16 = 82; +pub const RTM_NEWMDB: u16 = 84; +pub const RTM_DELMDB: u16 = 85; +pub const RTM_GETMDB: u16 = 86; +pub const RTM_NEWNSID: u16 = 88; +pub const RTM_DELNSID: u16 = 89; +pub const RTM_GETNSID: u16 = 90; +pub const RTM_NEWSTATS: u16 = 92; +pub const RTM_GETSTATS: u16 = 94; +pub const RTM_NEWCACHEREPORT: u16 = 96; + pub const RTM_F_NOTIFY: ::c_uint = 0x100; pub const RTM_F_CLONED: ::c_uint = 0x200; pub const RTM_F_EQUALIZE: ::c_uint = 0x400; From 7705d074f1b04534bb244e059f646a9ff19f23cc Mon Sep 17 00:00:00 2001 From: John Baublitz Date: Wed, 26 Jun 2019 16:13:45 -0400 Subject: [PATCH 042/296] Move constants to gnu/mod.rs that are not musl-compatible --- src/unix/linux_like/linux/gnu/mod.rs | 5 +++++ src/unix/linux_like/linux/mod.rs | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 13f7de5974a68..6c1d1e5946170 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -564,6 +564,11 @@ pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10; pub const TCA_CHAIN: ::c_ushort = 11; pub const TCA_HW_OFFLOAD: ::c_ushort = 12; +pub const RTM_DELNETCONF: u16 = 81; +pub const RTM_NEWSTATS: u16 = 92; +pub const RTM_GETSTATS: u16 = 94; +pub const RTM_NEWCACHEREPORT: u16 = 96; + pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000; pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index f4b8f7ccddae7..80053958715b9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1949,7 +1949,6 @@ pub const RTM_GETADDRLABEL: u16 = 74; pub const RTM_GETDCB: u16 = 78; pub const RTM_SETDCB: u16 = 79; pub const RTM_NEWNETCONF: u16 = 80; -pub const RTM_DELNETCONF: u16 = 81; pub const RTM_GETNETCONF: u16 = 82; pub const RTM_NEWMDB: u16 = 84; pub const RTM_DELMDB: u16 = 85; @@ -1957,9 +1956,6 @@ pub const RTM_GETMDB: u16 = 86; pub const RTM_NEWNSID: u16 = 88; pub const RTM_DELNSID: u16 = 89; pub const RTM_GETNSID: u16 = 90; -pub const RTM_NEWSTATS: u16 = 92; -pub const RTM_GETSTATS: u16 = 94; -pub const RTM_NEWCACHEREPORT: u16 = 96; pub const RTM_F_NOTIFY: ::c_uint = 0x100; pub const RTM_F_CLONED: ::c_uint = 0x200; From dba4138305c5cd28e33775d6d4059a1c5fe2292d Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Wed, 26 Jun 2019 15:51:08 -0700 Subject: [PATCH 043/296] remove newer `__ssp` field from `ucontext_t` for earlier glib compat Per discussion in #1410, this is necessary to avoid struct size mismatches between Rust and C on systems with glibc < 2.28. --- libc-test/build.rs | 5 ++++- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 06386f81d2661..dc4fcc7344fdf 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1950,7 +1950,6 @@ fn test_linux(target: &str) { "syslog.h", "termios.h", "time.h", - "ucontext.h", "unistd.h", "utime.h", "utmp.h", @@ -1968,6 +1967,10 @@ fn test_linux(target: &str) { // is not supported by musl: // https://www.openwall.com/lists/musl/2015/04/09/3 [!musl]: "execinfo.h", + // ucontext_t added a new field as of glibc 2.28; our struct definition is + // conservative and omits the field, but that means the size doesn't match for newer + // glibcs + [!gnu]: "ucontext.h", } // Include linux headers at the end: diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 1318713a424b6..10d74e41252d2 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -285,7 +285,6 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, pub uc_sigmask: ::sigset_t, __private: [u8; 512], - __ssp: [::c_ulonglong; 4], } } From 886bb3f2f863459b0651b6a22c9e57d4ac6dce61 Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Wed, 26 Jun 2019 16:56:53 -0700 Subject: [PATCH 044/296] filter out the struct test rather than removing the header --- libc-test/build.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index dc4fcc7344fdf..55f823187d56d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1950,6 +1950,7 @@ fn test_linux(target: &str) { "syslog.h", "termios.h", "time.h", + "ucontext.h", "unistd.h", "utime.h", "utmp.h", @@ -1967,10 +1968,6 @@ fn test_linux(target: &str) { // is not supported by musl: // https://www.openwall.com/lists/musl/2015/04/09/3 [!musl]: "execinfo.h", - // ucontext_t added a new field as of glibc 2.28; our struct definition is - // conservative and omits the field, but that means the size doesn't match for newer - // glibcs - [!gnu]: "ucontext.h", } // Include linux headers at the end: @@ -2101,6 +2098,11 @@ fn test_linux(target: &str) { // FIXME: musl version using by mips build jobs 1.0.15 is ancient: "ifmap" | "ifreq" | "ifconf" if mips32_musl => true, + // ucontext_t added a new field as of glibc 2.28; our struct definition is + // conservative and omits the field, but that means the size doesn't match for newer + // glibcs (see https://github.com/rust-lang/libc/issues/1410) + "ucontext_t" if gnu => true, + _ => false, } }); From 339fe2265392a1c2bad861043c79c42d29867331 Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Thu, 27 Jun 2019 09:32:52 -0700 Subject: [PATCH 045/296] add fixmes for the ucontext_t shadow stack field --- libc-test/build.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 55f823187d56d..722a513c32fea 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2098,6 +2098,7 @@ fn test_linux(target: &str) { // FIXME: musl version using by mips build jobs 1.0.15 is ancient: "ifmap" | "ifreq" | "ifconf" if mips32_musl => true, + // FIXME: remove once Ubuntu 20.04 LTS is released, somewhere in 2020. // ucontext_t added a new field as of glibc 2.28; our struct definition is // conservative and omits the field, but that means the size doesn't match for newer // glibcs (see https://github.com/rust-lang/libc/issues/1410) diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 10d74e41252d2..ad66123c84fe8 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -285,6 +285,9 @@ s_no_extra_traits! { pub uc_mcontext: mcontext_t, pub uc_sigmask: ::sigset_t, __private: [u8; 512], + // FIXME: the shadow stack field requires glibc >= 2.28. + // Re-add once we drop compatibility with glibc versions older than 2.28. + // __ssp: [::c_ulonglong; 4], } } From e94fffc3099f85dcece9f77cac9275d80bc70e2f Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Thu, 27 Jun 2019 10:57:07 -0700 Subject: [PATCH 046/296] replace deprecated string functions in style script --- ci/style.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index 481f57f74d0bc..70fc0a0814377 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -117,7 +117,7 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { } else { prev_blank = false; } - if line != line.trim_right() { + if line != line.trim_end() { err.error(path, i, "trailing whitespace"); } if line.contains("\t") { @@ -139,7 +139,7 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { } } - let line = line.trim_left(); + let line = line.trim_start(); let is_pub = line.starts_with("pub "); let line = if is_pub {&line[4..]} else {line}; From f6e48fc77c87fa51027e1bf6eb6ff2dc2f4845af Mon Sep 17 00:00:00 2001 From: "Adam C. Foltzer" Date: Thu, 27 Jun 2019 11:42:22 -0700 Subject: [PATCH 047/296] fix line length --- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index ad66123c84fe8..f3b10084fdecd 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -286,7 +286,9 @@ s_no_extra_traits! { pub uc_sigmask: ::sigset_t, __private: [u8; 512], // FIXME: the shadow stack field requires glibc >= 2.28. - // Re-add once we drop compatibility with glibc versions older than 2.28. + // Re-add once we drop compatibility with glibc versions older than + // 2.28. + // // __ssp: [::c_ulonglong; 4], } } From cc33108bb9a83249002454f87d8f4cd9de69bf91 Mon Sep 17 00:00:00 2001 From: Jonathan Behrens Date: Fri, 28 Jun 2019 15:21:44 -0400 Subject: [PATCH 048/296] Fix link in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bde17da6da9a..dc5ff04fccff7 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ newer Rust features are only available on newer Rust toolchains: [Platform-specific documentation (master branch)][docs.master]. See -[`ci/build.sh`](https://github.com/rust-lang/libc/blob/master/libc-test/build.rs) +[`ci/build.sh`](https://github.com/rust-lang/libc/blob/master/ci/build.sh) for the platforms on which `libc` is guaranteed to build for each Rust toolchain. The test-matrix at [Travis-CI], [Appveyor], and [Cirrus-CI] show the platforms in which `libc` tests are run. From 5e3866ad56a4e4906dcd6db3908f7b1182c1becf Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 3 Jul 2019 13:00:03 +0200 Subject: [PATCH 049/296] Update ctest version --- libc-test/build.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 722a513c32fea..8f3c83ea9f0ac 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -225,6 +225,12 @@ fn test_apple(target: &str) { } }); + cfg.skip_roundtrip(|s| match s { + // FIXME: TODO + "utsname" | "statfs" | "dirent" | "utmpx" => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); } From 215f095601637ee7b5c73f2d9d5fc67d9a3f843e Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Fri, 5 Jul 2019 07:39:00 -0700 Subject: [PATCH 050/296] Remove AF_MAX, PF_MAX, NET_MAXID constants These constants have already been deprecated for a few releases with a deprecation notice, so they can finally be removed. Closes rust-lang/libc#665 --- libc-test/build.rs | 7 +----- src/fuchsia/aarch64.rs | 16 ------------ src/fuchsia/x86_64.rs | 16 ------------ src/unix/bsd/apple/mod.rs | 24 ------------------ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 24 ------------------ src/unix/bsd/freebsdlike/freebsd/mod.rs | 19 -------------- src/unix/bsd/netbsdlike/netbsd/mod.rs | 25 ------------------- src/unix/bsd/netbsdlike/openbsd/mod.rs | 24 ------------------ src/unix/haiku/mod.rs | 7 ------ src/unix/linux_like/android/mod.rs | 16 ------------ src/unix/linux_like/emscripten/mod.rs | 15 ----------- src/unix/linux_like/linux/gnu/mod.rs | 16 ------------ src/unix/linux_like/linux/musl/b32/arm.rs | 16 ------------ src/unix/linux_like/linux/musl/b32/mips.rs | 16 ------------ src/unix/linux_like/linux/musl/b32/powerpc.rs | 16 ------------ src/unix/linux_like/linux/musl/b32/x86.rs | 16 ------------ src/unix/linux_like/linux/musl/b64/aarch64.rs | 16 ------------ .../linux_like/linux/musl/b64/powerpc64.rs | 16 ------------ src/unix/linux_like/linux/musl/b64/x86_64.rs | 16 ------------ src/unix/solarish/mod.rs | 7 ------ src/unix/uclibc/mod.rs | 7 ------ 21 files changed, 1 insertion(+), 334 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 722a513c32fea..db51310f8a5bd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1082,11 +1082,6 @@ fn test_dragonflybsd(target: &str) { | "PORT_SOURCE_SIGNAL" | "PTHREAD_STACK_MIN" => true, - // These change all the time from release to release of linux - // distros, let's just not bother trying to verify them. They - // shouldn't be used in code anyway... - "AF_MAX" | "PF_MAX" => true, - _ => false, } }); @@ -1582,7 +1577,7 @@ fn test_freebsd(target: &str) { // These constants were removed in FreeBSD 11 (svn r262489), // and they've never had any legitimate use outside of the // base system anyway. - "CTL_MAXID" | "KERN_MAXID" | "HW_MAXID" | "NET_MAXID" + "CTL_MAXID" | "KERN_MAXID" | "HW_MAXID" | "USER_MAXID" => true, _ => false, diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs index b7abcd6a291f1..259893c0fa84d 100644 --- a/src/fuchsia/aarch64.rs +++ b/src/fuchsia/aarch64.rs @@ -64,19 +64,3 @@ s! { pub const MINSIGSTKSZ: ::size_t = 6144; pub const SIGSTKSZ: ::size_t = 12288; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = 43; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const AF_MAX: ::c_int = PF_MAX; diff --git a/src/fuchsia/x86_64.rs b/src/fuchsia/x86_64.rs index 0f1a4e9ebf536..dca3c247d8b83 100644 --- a/src/fuchsia/x86_64.rs +++ b/src/fuchsia/x86_64.rs @@ -150,19 +150,3 @@ pub const MAP_32BIT: ::c_int = 0x0040; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 42; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 1b7c625397c37..85cbd2e1d941d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2110,13 +2110,6 @@ pub const AF_SYSTEM: ::c_int = 32; pub const AF_NETBIOS: ::c_int = 33; pub const AF_PPP: ::c_int = 34; pub const pseudo_AF_HDRCMPLT: ::c_int = 35; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 40; pub const AF_SYS_CONTROL: ::c_int = 2; pub const SYSPROTO_EVENT: ::c_int = 1; @@ -2157,23 +2150,6 @@ pub const PF_NATM: ::c_int = AF_NATM; pub const PF_SYSTEM: ::c_int = AF_SYSTEM; pub const PF_NETBIOS: ::c_int = AF_NETBIOS; pub const PF_PPP: ::c_int = AF_PPP; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const NET_MAXID: ::c_int = AF_MAX; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index dadcda9c701a7..3088b2dccd6f7 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -917,23 +917,8 @@ pub const TCP_FASTKEEP: ::c_int = 128; pub const AF_BLUETOOTH: ::c_int = 33; pub const AF_MPLS: ::c_int = 34; pub const AF_IEEE80211: ::c_int = 35; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 36; pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; @@ -942,15 +927,6 @@ pub const NET_RT_MAXID: ::c_int = 4; pub const SOMAXOPT_SIZE: ::c_int = 65536; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const NET_MAXID: ::c_int = AF_MAX; - pub const MSG_UNUSED09: ::c_int = 0x00000200; pub const MSG_NOSIGNAL: ::c_int = 0x00000400; pub const MSG_SYNC: ::c_int = 0x00000800; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index d91765dc0af1c..9f11c202bb4ea 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -646,13 +646,6 @@ pub const AF_BLUETOOTH: ::c_int = 36; pub const AF_IEEE80211: ::c_int = 37; pub const AF_INET_SDP: ::c_int = 40; pub const AF_INET6_SDP: ::c_int = 42; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 42; // https://github.com/freebsd/freebsd/blob/master/sys/net/if.h#L140 pub const IFF_UP: ::c_int = 0x1; // (n) interface is up @@ -959,14 +952,6 @@ pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; pub const PF_IEEE80211: ::c_int = AF_IEEE80211; pub const PF_INET_SDP: ::c_int = AF_INET_SDP; pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; @@ -1003,10 +988,6 @@ pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; // compatibility only, and are scheduled to be removed in libc 1.0.0. #[doc(hidden)] #[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] -#[allow(deprecated)] -pub const NET_MAXID: ::c_int = AF_MAX; -#[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] pub const CTL_MAXID: ::c_int = 10; #[doc(hidden)] #[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index c95b61af5bfc2..f936eb5196b77 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -883,22 +883,6 @@ pub const AF_BLUETOOTH: ::c_int = 31; pub const AF_IEEE80211: ::c_int = 32; pub const AF_MPLS: ::c_int = 33; pub const AF_ROUTE: ::c_int = 34; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 36; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const NET_MAXID: ::c_int = AF_MAX; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; pub const NET_RT_OOOIFLIST: ::c_int = 3; @@ -914,15 +898,6 @@ pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; pub const PF_MPLS: ::c_int = AF_MPLS; pub const PF_ROUTE: ::c_int = AF_ROUTE; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - pub const MSG_NBIO: ::c_int = 0x1000; pub const MSG_WAITFORONE: ::c_int = 0x2000; pub const MSG_NOTIFICATION: ::c_int = 0x4000; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 09739cb537cad..fbb2252910f76 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -834,22 +834,6 @@ pub const AF_BLUETOOTH: ::c_int = 32; pub const AF_MPLS: ::c_int = 33; pub const pseudo_AF_PFLOW: ::c_int = 34; pub const pseudo_AF_PIPEX: ::c_int = 35; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 36; - -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const NET_MAXID: ::c_int = AF_MAX; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; pub const NET_RT_IFLIST: ::c_int = 3; @@ -872,14 +856,6 @@ pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; pub const PF_MPLS: ::c_int = AF_MPLS; pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW; pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = AF_MAX; pub const SCM_TIMESTAMP: ::c_int = 0x04; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index f8f6ca9898ca8..7bb3285a2e163 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -800,13 +800,6 @@ pub const AF_NOTIFY: ::c_int = 8; pub const AF_LOCAL: ::c_int = 9; pub const AF_UNIX: ::c_int = AF_LOCAL; pub const AF_BLUETOOTH: ::c_int = 10; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 11; pub const IP_OPTIONS: ::c_int = 1; pub const IP_HDRINCL: ::c_int = 2; diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2662262963c8c..7cc32b082b96c 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -952,22 +952,6 @@ pub const SOL_ATALK: ::c_int = 258; pub const SOL_NETROM: ::c_int = 259; pub const SOL_ROSE: ::c_int = 260; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 43; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - /* DCCP socket options */ pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1; pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2; diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 63e3e13f1cfdb..67631fccf0892 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -921,25 +921,10 @@ pub const AF_IB: ::c_int = 27; pub const AF_MPLS: ::c_int = 28; pub const AF_NFC: ::c_int = 39; pub const AF_VSOCK: ::c_int = 40; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 42; pub const PF_IB: ::c_int = AF_IB; pub const PF_MPLS: ::c_int = AF_MPLS; pub const PF_NFC: ::c_int = AF_NFC; pub const PF_VSOCK: ::c_int = AF_VSOCK; -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = AF_MAX; // System V IPC pub const IPC_PRIVATE: ::key_t = 0; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6c1d1e5946170..0814abf5e8e45 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -874,22 +874,6 @@ pub const M_PERTURB: ::c_int = -6; pub const M_ARENA_TEST: ::c_int = -7; pub const M_ARENA_MAX: ::c_int = -8; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs index 7d6dcfde0d75f..3d6e0013d9083 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm.rs @@ -828,22 +828,6 @@ pub const SYS_pkey_mprotect: ::c_long = 394; pub const SYS_pkey_alloc: ::c_long = 395; pub const SYS_pkey_free: ::c_long = 396; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = AF_MAX; - extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips.rs index 5ab1d7337444c..8da21cac51a81 100644 --- a/src/unix/linux_like/linux/musl/b32/mips.rs +++ b/src/unix/linux_like/linux/musl/b32/mips.rs @@ -836,19 +836,3 @@ pub const SYS_mlock2: ::c_long = 4000 + 359; pub const SYS_copy_file_range: ::c_long = 4000 + 360; pub const SYS_preadv2: ::c_long = 4000 + 361; pub const SYS_pwritev2: ::c_long = 4000 + 362; - -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 42; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 04999c625e37b..76f23dd318af1 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -854,22 +854,6 @@ pub const SYS_pkey_alloc: ::c_long = 384; pub const SYS_pkey_free: ::c_long = 385; pub const SYS_pkey_mprotect: ::c_long = 386; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 43; -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = AF_MAX; - extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs index 3ccf80707b246..91c5945ac287e 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86.rs @@ -936,22 +936,6 @@ pub const EFL: ::c_int = 14; pub const UESP: ::c_int = 15; pub const SS: ::c_int = 16; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[allow(deprecated)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = AF_MAX; - extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index a72d071bb660e..9b2a7c3e67a3f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -70,22 +70,6 @@ pub const O_NOFOLLOW: ::c_int = 0x8000; pub const MINSIGSTKSZ: ::size_t = 6144; pub const SIGSTKSZ: ::size_t = 12288; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const PF_MAX: ::c_int = 45; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const AF_MAX: ::c_int = PF_MAX; - pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index c869828703a10..04ceb79a45d91 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -70,22 +70,6 @@ pub const O_NOFOLLOW: ::c_int = 0x8000; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - // Syscall table pub const SYS_restart_syscall: ::c_long = 0; pub const SYS_exit: ::c_long = 1; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index 1a123ff452d19..b4023f726c293 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -496,22 +496,6 @@ pub const TIOCSRS485: ::c_int = 0x542F; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 45; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -#[allow(deprecated)] -pub const PF_MAX: ::c_int = AF_MAX; - pub const RLIMIT_NLIMITS: ::c_int = 15; pub const TIOCINQ: ::c_int = ::FIONREAD; pub const MCL_CURRENT: ::c_int = 0x0001; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index b2c23a58ce600..78956146adea6 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1246,13 +1246,6 @@ pub const AF_TRILL: ::c_int = 31; pub const AF_PACKET: ::c_int = 32; pub const AF_LX_NETLINK: ::c_int = 33; -#[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 33; pub const SOCK_DGRAM: ::c_int = 1; pub const SOCK_STREAM: ::c_int = 2; pub const SOCK_RAW: ::c_int = 4; diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index 25e8f8bffe2a3..e1eda9b84ee8b 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -1475,13 +1475,6 @@ pub const NOSTR: ::nl_item = 0x503; pub const FILENAME_MAX: ::c_uint = 4095; -#[deprecated( - since = "0.2.55", - note = "If you are using this report to: \ - https://github.com/rust-lang/libc/issues/665" -)] -pub const AF_MAX: ::c_int = 39; - f! { pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let fd = fd as usize; From b81a234913d6fcaa6483765d248b5dc258b2bf2e Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 3 Jul 2019 14:39:54 +0200 Subject: [PATCH 051/296] Silence roundtrip in linux --- libc-test/build.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8f3c83ea9f0ac..3ec1c07f973c6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -225,7 +225,7 @@ fn test_apple(target: &str) { } }); - cfg.skip_roundtrip(|s| match s { + cfg.skip_roundtrip(move |s| match s { // FIXME: TODO "utsname" | "statfs" | "dirent" | "utmpx" => true, _ => false, @@ -2259,6 +2259,19 @@ fn test_linux(target: &str) { field == "ssi_arch")) }); + cfg.skip_roundtrip(move |s| match s { + // FIXME: TODO + "_libc_fpstate" | "user_fpregs_struct" if x86_64 => true, + "utsname" + | "statx" + | "dirent" + | "dirent64" + | "utmpx" + | "user" + | "user_fpxregs_struct" => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); test_linux_like_apis(target); From 3fd4dd7ea3b303179434cabec168cdb6f9e94232 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 17:34:04 +0200 Subject: [PATCH 052/296] Silence roundtrip errors --- libc-test/build.rs | 50 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 3ec1c07f973c6..555aee30c886a 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1432,6 +1432,13 @@ fn test_android(target: &str) { field == "ssi_arch")) }); + let bit64 = target.contains("64"); + cfg.skip_roundtrip(move |s| match s { + "utsname" | "dirent" | "dirent64" => true, + "utmp" if bit64 => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); test_linux_like_apis(target); @@ -1838,6 +1845,15 @@ fn test_emscripten(target: &str) { field == "ssi_arch")) }); + cfg.skip_roundtrip(move |s| match s { + "pthread_mutexattr_t" + | "utsname" + | "dirent" + | "dirent64" + | "sysinfo" => true, + _ => false, + }); + // FIXME: test linux like cfg.generate("../src/lib.rs", "main.rs"); } @@ -1865,8 +1881,11 @@ fn test_linux(target: &str) { let x86_32 = target.contains("i686"); let x32 = target.contains("x32"); let mips = target.contains("mips"); - let mips32_musl = mips && !target.contains("64") && musl; + let mips32 = mips && !target.contains("64"); + let mips64 = mips && target.contains("64"); + let mips32_musl = mips32 && musl; let sparc64 = target.contains("sparc64"); + let s390x = target.contains("s390x"); let mut cfg = ctest::TestGenerator::new(); cfg.define("_GNU_SOURCE", None); @@ -2269,6 +2288,35 @@ fn test_linux(target: &str) { | "utmpx" | "user" | "user_fpxregs_struct" => true, + "sysinfo" if musl => true, + "sockaddr_un" | "sembuf" | "ff_constant_effect" + if mips32 && (gnu || musl) => + { + true + } + "ipv6_mreq" + | "sockaddr_in6" + | "sockaddr_ll" + | "in_pktinfo" + | "arpreq" + | "arpreq_old" + | "sockaddr_un" + | "ff_constant_effect" + | "ff_ramp_effect" + | "ff_condition_effect" + | "Elf32_Ehdr" + | "Elf32_Chdr" + | "ucred" + | "in6_pktinfo" + | "sockaddr_nl" + | "termios" + | "nlmsgerr" + if (mips64 || sparc64) && gnu => + { + true + } + "mcontext_t" if s390x => true, + _ => false, }); From ab6e4a3f18ed080b9d24a45f4204cc43ce00ab32 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 17:34:11 +0200 Subject: [PATCH 053/296] Allow wasi to fail --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index ea5e0ac593187..3c9e0494dcf86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -235,6 +235,7 @@ matrix: allow_failures: - name: "Semver Linux" - name: "Semver MacOSX" + - env: TARGET=wasm32-wasi install: travis_retry rustup target add $TARGET From 7fa6534858ccc512b2d6b9acc88db1aa2d26e587 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:08:56 +0200 Subject: [PATCH 054/296] Fix FreeBSD and Appveyor --- appveyor.yml | 1 + libc-test/build.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index b14230a0555f3..0efc9af32cb4e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,6 +17,7 @@ install: - rustup-init.exe -y --default-host %TARGET% - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - if defined MSYS2_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS2_BITS%\bin + - if defined MSYS2_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - rustc -V - cargo -V diff --git a/libc-test/build.rs b/libc-test/build.rs index 555aee30c886a..7006c03b00556 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -473,6 +473,11 @@ fn test_windows(target: &str) { } }); + cfg.skip_roundtrip(move |s| match s { + "dirent" | "statfs" | "utsname" | "utmpx" => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); } @@ -1641,6 +1646,11 @@ fn test_freebsd(target: &str) { (struct_ == "sigaction" && field == "sa_sigaction") }); + cfg.skip_roundtrip(move |s| match s { + "dirent" | "statfs" | "utsname" | "utmpx" => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); } From 9d58c0c14f35dc1ee1360d0889649bdf90053e7d Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:10:00 +0200 Subject: [PATCH 055/296] Allow PPC to fail - segfault --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3c9e0494dcf86..55ed1c51985c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -231,11 +231,11 @@ matrix: - mv ci/switch.json switch.json - cargo xbuild --target switch.json - allow_failures: - name: "Semver Linux" - name: "Semver MacOSX" - env: TARGET=wasm32-wasi + - env: TARGET=powerpc-unknown-linux-gnu install: travis_retry rustup target add $TARGET From c3ddd564c959ad9e1ec6a58cad8fd833505c444d Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:11:30 +0200 Subject: [PATCH 056/296] Allow s390x to fail - segfault --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 55ed1c51985c4..6a7ddb386bae0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -236,6 +236,7 @@ matrix: - name: "Semver MacOSX" - env: TARGET=wasm32-wasi - env: TARGET=powerpc-unknown-linux-gnu + - env: TARGET=s390x-unknown-linux-gnu install: travis_retry rustup target add $TARGET From b2dcd5c76a105bd7dad108bdeb73e02756ecdaa1 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:24:16 +0200 Subject: [PATCH 057/296] Fix x86_64 musl --- libc-test/build.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 7006c03b00556..6c263efbd52a6 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2299,6 +2299,7 @@ fn test_linux(target: &str) { | "user" | "user_fpxregs_struct" => true, "sysinfo" if musl => true, + "ucontext_t" if x86_64 && musl => true, "sockaddr_un" | "sembuf" | "ff_constant_effect" if mips32 && (gnu || musl) => { From fd7a1e9f837fd3e423ebacc185d8cab77492cf0c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:44:30 +0200 Subject: [PATCH 058/296] Fix appveyor try 2 --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 0efc9af32cb4e..b047175c32d10 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,7 +17,7 @@ install: - rustup-init.exe -y --default-host %TARGET% - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - if defined MSYS2_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS2_BITS%\bin - - if defined MSYS2_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" + - if defined MSYS2_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS2_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - rustc -V - cargo -V From 9f9286331fcdd0524856e04993ebeb60dc1c150d Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 5 Jul 2019 18:55:42 +0200 Subject: [PATCH 059/296] Fix appveyor try 3 --- appveyor.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index b047175c32d10..c3a333a64289f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,23 +1,19 @@ environment: - # When this was added there were revocation check failures when using the - # libcurl backend as libcurl checks by default, but rustup doesn't provide the - # switch to turn this off. Switch to Reqwest which looks to not check for - # revocation by default like libcurl does. - RUSTUP_USE_REQWEST: 1 - CARGO_HTTP_CHECK_REVOKE: false matrix: - TARGET: x86_64-pc-windows-gnu - MSYS2_BITS: 64 + MSYS_BITS: 64 + ARCH: x86_64 - TARGET: i686-pc-windows-gnu - MSYS2_BITS: 32 + MSYS_BITS: 32 + ARCH: i686 - TARGET: x86_64-pc-windows-msvc - TARGET: i686-pc-windows-msvc install: - - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe - - rustup-init.exe -y --default-host %TARGET% - - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - - if defined MSYS2_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS2_BITS%\bin - - if defined MSYS2_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS2_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" + - if defined MSYS_BITS set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH%; + - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-nightly-${env:TARGET}.exe" + - rust-nightly-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust" + - set PATH=%PATH%;C:\Program Files (x86)\Rust\bin + - if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - rustc -V - cargo -V From 3f8cff745e6ff199bc128ae4a812dbb1d2e2bdd5 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 6 Jul 2019 15:21:16 +0200 Subject: [PATCH 060/296] Reduce appveyor churn --- appveyor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.yml b/appveyor.yml index c3a333a64289f..2885bb1e60025 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,6 +9,7 @@ environment: - TARGET: x86_64-pc-windows-msvc - TARGET: i686-pc-windows-msvc install: + - if NOT defined APPVEYOR_PULL_REQUEST_NUMBER if "%APPVEYOR_REPO_BRANCH%" == "master" appveyor exit - if defined MSYS_BITS set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH%; - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-nightly-${env:TARGET}.exe" - rust-nightly-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust" From 84c984ddb01c6532a84e17cd4f15fe1391557d76 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 8 Jul 2019 09:27:45 +0200 Subject: [PATCH 061/296] Bump patch version --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a881faef45390..120fbe19c662d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.58" +version = "0.2.59" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 0c2e7831ce4172bc8f8f6681acc7701f972d1f68 Mon Sep 17 00:00:00 2001 From: Douman Date: Fri, 5 Jul 2019 00:02:54 +0300 Subject: [PATCH 062/296] Expose signal value of siginfo_t Exposes value for most unix like platforms --- src/unix/bsd/apple/mod.rs | 24 ++++++++++++++++++++++ src/unix/bsd/freebsdlike/mod.rs | 14 ++++++++++++- src/unix/bsd/netbsdlike/netbsd/mod.rs | 16 +++++++++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 15 ++++++++++++++ src/unix/linux_like/android/mod.rs | 15 ++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 13 ++++++++++++ src/unix/linux_like/linux/musl/mod.rs | 28 ++++++++++++++++++++++++++ 7 files changed, 124 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 85cbd2e1d941d..2bc18fb2160f3 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -144,6 +144,8 @@ s! { pub si_uid: ::uid_t, pub si_status: ::c_int, pub si_addr: *mut ::c_void, + //Requires it to be union for tests + //pub si_value: ::sigval, _pad: [usize; 9], } @@ -614,6 +616,28 @@ s_no_extra_traits!{ } } +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_pid: ::pid_t, + _si_uid: ::uid_t, + _si_status: ::c_int, + _si_addr: *mut ::c_void, + si_value: ::sigval, + } + + (*(self as *const siginfo_t as *const siginfo_timer)).si_value + } +} + cfg_if! { if #[cfg(libc_union)] { s_no_extra_traits! { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 48c790f983565..ce5452062ce3d 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -21,6 +21,16 @@ impl ::Clone for timezone { fn clone(&self) -> timezone { *self } } +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + self.si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + self.si_value + } +} + s! { pub struct in_addr { pub s_addr: ::in_addr_t, @@ -68,7 +78,9 @@ s! { pub si_uid: ::uid_t, pub si_status: ::c_int, pub si_addr: *mut ::c_void, - _pad: [::c_int; 12], + pub si_value: ::sigval, + _pad1: ::c_long, + _pad2: [::c_int; 7], } pub struct sigaction { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index f936eb5196b77..893b15752ad61 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -9,6 +9,22 @@ pub type mqd_t = ::c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; pub type vm_size_t = ::uintptr_t; +impl siginfo_t { + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + __pad1: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).value + } +} + s! { pub struct aiocb { pub aio_offset: ::off_t, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index fbb2252910f76..710a4fc40c598 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -308,6 +308,21 @@ s! { } } +impl siginfo_t { + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _pid: ::pid_t, + _uid: ::uid_t, + value: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).value + } +} + s_no_extra_traits! { pub struct dirent { pub d_fileno: ::ino_t, diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 7cc32b082b96c..ab6e2650fef56 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2192,3 +2192,18 @@ cfg_if! { // Unknown target_pointer_width } } + +impl siginfo_t { + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_tid: ::c_int, + _si_overrun: ::c_int, + si_sigval: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval + } +} diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 0814abf5e8e45..ca9e8f536b375 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -193,6 +193,19 @@ impl siginfo_t { } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_timer { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_tid: ::c_int, + _si_overrun: ::c_int, + si_sigval: ::sigval, + } + (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval + } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 5dea49b92b905..46a50e4953523 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -13,6 +13,34 @@ pub type fsblkcnt_t = ::c_ulonglong; pub type fsfilcnt_t = ::c_ulonglong; pub type rlim_t = ::c_ulonglong; +impl siginfo_t { + pub unsafe fn si_addr(&self) -> *mut ::c_void { + #[repr(C)] + struct siginfo_sigfault { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + si_addr: *mut ::c_void + } + + (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr + } + + pub unsafe fn si_value(&self) -> ::sigval { + #[repr(C)] + struct siginfo_si_value { + _si_signo: ::c_int, + _si_errno: ::c_int, + _si_code: ::c_int, + _si_timerid: ::c_int, + _si_overrun: ::c_int, + si_value: ::sigval, + } + + (*(self as *const siginfo_t as *const siginfo_si_value)).si_value + } +} + s! { pub struct aiocb { pub aio_fildes: ::c_int, From 5b959a181ccee7031d9738b18d86c8be6ecc47e5 Mon Sep 17 00:00:00 2001 From: Diana Popa Date: Tue, 9 Jul 2019 19:57:29 +0300 Subject: [PATCH 063/296] Add missing syscalls for aarch64-unknown-linux-musl Signed-off-by: Diana Popa --- src/unix/linux_like/linux/musl/b64/aarch64.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index 9b2a7c3e67a3f..14405a5ad0097 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -96,6 +96,7 @@ pub const SYS_epoll_ctl: ::c_long = 21; pub const SYS_epoll_pwait: ::c_long = 22; pub const SYS_dup: ::c_long = 23; pub const SYS_dup3: ::c_long = 24; +pub const SYS_fcntl: ::c_long = 25; pub const SYS_inotify_init1: ::c_long = 26; pub const SYS_inotify_add_watch: ::c_long = 27; pub const SYS_inotify_rm_watch: ::c_long = 28; @@ -128,6 +129,7 @@ pub const SYS_vhangup: ::c_long = 58; pub const SYS_pipe2: ::c_long = 59; pub const SYS_quotactl: ::c_long = 60; pub const SYS_getdents64: ::c_long = 61; +pub const SYS_lseek: ::c_long = 62; pub const SYS_read: ::c_long = 63; pub const SYS_write: ::c_long = 64; pub const SYS_readv: ::c_long = 65; @@ -143,6 +145,8 @@ pub const SYS_vmsplice: ::c_long = 75; pub const SYS_splice: ::c_long = 76; pub const SYS_tee: ::c_long = 77; pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_fstat: ::c_long = 80; pub const SYS_sync: ::c_long = 81; pub const SYS_fsync: ::c_long = 82; pub const SYS_fdatasync: ::c_long = 83; @@ -284,6 +288,7 @@ pub const SYS_request_key: ::c_long = 218; pub const SYS_keyctl: ::c_long = 219; pub const SYS_clone: ::c_long = 220; pub const SYS_execve: ::c_long = 221; +pub const SYS_mmap: ::c_long = 222; pub const SYS_swapon: ::c_long = 224; pub const SYS_swapoff: ::c_long = 225; pub const SYS_mprotect: ::c_long = 226; From 2686cc5bd88b5c3261210bc3cb58d531b83a80d5 Mon Sep 17 00:00:00 2001 From: condy Date: Wed, 10 Jul 2019 14:16:20 +0800 Subject: [PATCH 064/296] Support pthread_{set,get}name_np for linux with glibc --- src/unix/linux_like/linux/gnu/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index ca9e8f536b375..417fed6f2780b 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1024,6 +1024,11 @@ extern { buf: *mut ::c_char, buflen: ::size_t, result: *mut *mut ::group) -> ::c_int; + pub fn pthread_getname_np(thread: ::pthread_t, + name: *mut ::c_char, + len: ::size_t) -> ::c_int; + pub fn pthread_setname_np(thread: ::pthread_t, + name: *const ::c_char) -> ::c_int; } cfg_if! { From aa3578fa8551a1b38985b166aee93bb03003b58b Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Tue, 9 Jul 2019 00:19:23 -0700 Subject: [PATCH 065/296] Add __errno_location on Redox, DragonFlyBSD, Haiku --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 -- src/unix/bsd/freebsdlike/mod.rs | 2 ++ src/unix/haiku/mod.rs | 1 + src/unix/redox/mod.rs | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9f11c202bb4ea..2fe755d9d13d4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1132,8 +1132,6 @@ f! { } extern { - pub fn __error() -> *mut ::c_int; - pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index ce5452062ce3d..38dd8d05feef4 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1098,6 +1098,8 @@ f! { } extern { + pub fn __error() -> *mut ::c_int; + pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 7bb3285a2e163..d3e83f109e532 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1267,6 +1267,7 @@ extern { pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn _errnop() -> *mut libc::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 388918eb9b5dc..a25f79540dfcb 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -539,6 +539,7 @@ extern { pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; + pub fn __errno_location() -> *mut libc::c_int; // malloc.h pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; From b7a27b5c7c9a0962d114b3330f68d06eb2fc7fec Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Tue, 9 Jul 2019 02:48:53 -0700 Subject: [PATCH 066/296] libc::c_int -> ::c_int --- src/unix/haiku/mod.rs | 2 +- src/unix/redox/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index d3e83f109e532..c8cf8ad25d9a6 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1267,7 +1267,7 @@ extern { pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn _errnop() -> *mut libc::c_int; + pub fn _errnop() -> *mut ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index a25f79540dfcb..121bb63a6601f 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -539,7 +539,7 @@ extern { pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn __errno_location() -> *mut libc::c_int; + pub fn __errno_location() -> *mut ::c_int; // malloc.h pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; From 956ba427538edb63338aaaffe8372379459ac431 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Wed, 10 Jul 2019 18:01:41 -0700 Subject: [PATCH 067/296] dragonfly: Add errno behind libc_thread_local --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 9 +++++++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 2 -- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 3088b2dccd6f7..d1e0a473ab670 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1036,9 +1036,18 @@ f! { (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + _CMSG_ALIGN(length as usize)) as ::c_uint } + + #[cfg(libc_thread_local)] + pub fn __error() -> *mut ::c_int { + &mut errno + } } extern { + #[cfg(libc_thread_local)] + #[thread_local] + static mut errno: ::c_int; + pub fn setgrent(); pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 2fe755d9d13d4..9f11c202bb4ea 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1132,6 +1132,8 @@ f! { } extern { + pub fn __error() -> *mut ::c_int; + pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 38dd8d05feef4..ce5452062ce3d 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1098,8 +1098,6 @@ f! { } extern { - pub fn __error() -> *mut ::c_int; - pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, From 3fa021d7ab36b59e877082d3150d626afabc8454 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Wed, 10 Jul 2019 18:03:24 -0700 Subject: [PATCH 068/296] Add libc_thread_local cfg and unstable feature --- Cargo.toml | 3 ++- README.md | 3 +++ build.rs | 15 ++++++++++----- src/lib.rs | 1 + src/unix/bsd/freebsdlike/dragonfly/errno.rs | 12 ++++++++++++ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 16 +++++++--------- 6 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 src/unix/bsd/freebsdlike/dragonfly/errno.rs diff --git a/Cargo.toml b/Cargo.toml index 120fbe19c662d..cf54d45a6e5a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,8 +26,9 @@ rustc-std-workspace-core = { version = "1.0.0", optional = true } default = ["std"] std = [] align = [] -rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] +rustc-dep-of-std = ['align', 'rustc-std-workspace-core', 'unstable'] extra_traits = [] +unstable = [] # use_std is deprecated, use `std` instead use_std = [ 'std' ] diff --git a/README.md b/README.md index dc5ff04fccff7..1af0b1c2070ad 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,9 @@ libc = "0.2" * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. +* `unstable`: enable currently unstable bindings. Right now, this just allows + bindings to `#[thread_local]` statics on certain platforms. Requires nightly. + * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. ## Rust version support diff --git a/build.rs b/build.rs index 845294007409d..c997e6acfd3e7 100644 --- a/build.rs +++ b/build.rs @@ -5,18 +5,18 @@ use std::str; fn main() { let rustc_minor_ver = rustc_minor_version().expect("Failed to get rustc version"); - let rustc_dep_of_std = - std::env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); - let align_cargo_feature = std::env::var("CARGO_FEATURE_ALIGN").is_ok(); + let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); + let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); + let unstable_cargo_feature = env::var("CARGO_FEATURE_UNSTABLE").is_ok(); - if std::env::var("CARGO_FEATURE_USE_STD").is_ok() { + if env::var("CARGO_FEATURE_USE_STD").is_ok() { println!( "cargo:warning=\"libc's use_std cargo feature is deprecated since libc 0.2.55; \ please consider using the `std` cargo feature instead\"" ); } - if std::env::var("LIBC_CI").is_ok() { + if env::var("LIBC_CI").is_ok() { if let Some(12) = which_freebsd() { println!("cargo:rustc-cfg=freebsd12"); } @@ -53,6 +53,11 @@ fn main() { if rustc_minor_ver >= 33 || rustc_dep_of_std { println!("cargo:rustc-cfg=libc_packedN"); } + + // #[thread_local] is currently unstable + if unstable_cargo_feature || rustc_dep_of_std { + println!("cargo:rustc-cfg=libc_thread_local"); + } } fn rustc_minor_version() -> Option { diff --git a/src/lib.rs b/src/lib.rs index 2dc42702fcb7d..0f800cea0ae16 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,6 +21,7 @@ feature = "rustc-dep-of-std", feature(cfg_target_vendor, link_cfg, no_core) )] +#![cfg_attr(libc_thread_local, feature(thread_local))] // Enable extra lints: #![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))] #![deny(missing_copy_implementations, safe_packed_borrows)] diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs new file mode 100644 index 0000000000000..e18036adf5c52 --- /dev/null +++ b/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -0,0 +1,12 @@ +// DragonFlyBSD's __error function is declared with "static inline", so it must +// be implemented in the libc crate, as a pointer to a static thread_local. +f! { + pub fn __error() -> *mut ::c_int { + &mut errno + } +} + +extern { + #[thread_local] + pub static mut errno: ::c_int; +} diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index d1e0a473ab670..fc94fd3c7136e 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1036,18 +1036,9 @@ f! { (_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + _CMSG_ALIGN(length as usize)) as ::c_uint } - - #[cfg(libc_thread_local)] - pub fn __error() -> *mut ::c_int { - &mut errno - } } extern { - #[cfg(libc_thread_local)] - #[thread_local] - static mut errno: ::c_int; - pub fn setgrent(); pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int; @@ -1069,3 +1060,10 @@ extern { pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_thread_local)] { + mod errno; + pub use self::errno::*; + } +} From 1b4747e77bc7e8219c7dac9119e0a309870a425b Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Fri, 12 Jul 2019 10:24:39 -0700 Subject: [PATCH 069/296] Update documentation to point to Rust issue --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1af0b1c2070ad..e39e442e7af7f 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,10 @@ libc = "0.2" * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. -* `unstable`: enable currently unstable bindings. Right now, this just allows - bindings to `#[thread_local]` statics on certain platforms. Requires nightly. +* `unstable`: This feature enables `libc` bindings that are only possible with + unstable Rust features. Right now, this just for + [`extern` `#[thread_local]` statics](https://github.com/rust-lang/rust/issues/29594) + on certain platforms. Requires nightly. * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. From df34d17bd9c3427731a000d6356e7d04d0255c8d Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Sun, 14 Jul 2019 22:10:05 -0700 Subject: [PATCH 070/296] Remove use of `unstable` feature --- Cargo.toml | 3 +-- README.md | 5 ----- build.rs | 3 +-- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index cf54d45a6e5a0..120fbe19c662d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,9 +26,8 @@ rustc-std-workspace-core = { version = "1.0.0", optional = true } default = ["std"] std = [] align = [] -rustc-dep-of-std = ['align', 'rustc-std-workspace-core', 'unstable'] +rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] -unstable = [] # use_std is deprecated, use `std` instead use_std = [ 'std' ] diff --git a/README.md b/README.md index e39e442e7af7f..dc5ff04fccff7 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,6 @@ libc = "0.2" * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. -* `unstable`: This feature enables `libc` bindings that are only possible with - unstable Rust features. Right now, this just for - [`extern` `#[thread_local]` statics](https://github.com/rust-lang/rust/issues/29594) - on certain platforms. Requires nightly. - * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. ## Rust version support diff --git a/build.rs b/build.rs index c997e6acfd3e7..76ca0961e4782 100644 --- a/build.rs +++ b/build.rs @@ -7,7 +7,6 @@ fn main() { rustc_minor_version().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); - let unstable_cargo_feature = env::var("CARGO_FEATURE_UNSTABLE").is_ok(); if env::var("CARGO_FEATURE_USE_STD").is_ok() { println!( @@ -55,7 +54,7 @@ fn main() { } // #[thread_local] is currently unstable - if unstable_cargo_feature || rustc_dep_of_std { + if rustc_dep_of_std { println!("cargo:rustc-cfg=libc_thread_local"); } } From c8aa8ec72d631bc35099bcf5d634cf0a0b841be0 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 15 Jul 2019 10:51:47 +0200 Subject: [PATCH 071/296] Bump patch version to 0.2.60 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 120fbe19c662d..bf6ff2c0f9e81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.59" +version = "0.2.60" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From fd5eb3d6e1f7172b94a4a2c629bf36270cf0bd7c Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Fri, 12 Jul 2019 15:46:49 -0400 Subject: [PATCH 072/296] Add support for redox compilation with extra traits flag + fmt --- src/unix/redox/mod.rs | 309 ++++++++++++++++++++++++++++++++---------- 1 file changed, 234 insertions(+), 75 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 121bb63a6601f..09e877aa474c2 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -36,6 +36,39 @@ pub type suseconds_t = ::c_int; pub type tcflag_t = u32; pub type time_t = ::c_long; +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum timezone {} +impl ::Copy for timezone {} +impl ::Clone for timezone { + fn clone(&self) -> timezone { *self } +} + +s_no_extra_traits! { + pub struct dirent { + pub d_ino: ::ino_t, + pub d_off: ::off_t, + pub d_reclen: ::c_ushort, + pub d_type: ::c_uchar, + pub d_name: [::c_char; 256], + } + + pub struct sockaddr_un { + pub sun_family: ::sa_family_t, + pub sun_path: [::c_char; 108] + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + __ss_padding: [ + u8; + 128 - + ::core::mem::size_of::() - + ::core::mem::size_of::() + ], + __ss_align: ::c_ulong, + } +} + s! { pub struct addrinfo { pub ai_flags: ::c_int, @@ -48,14 +81,6 @@ s! { pub ai_next: *mut ::addrinfo, } - pub struct dirent { - pub d_ino: ::ino_t, - pub d_off: ::off_t, - pub d_reclen: ::c_ushort, - pub d_type: ::c_uchar, - pub d_name: [::c_char; 256], - } - pub struct Dl_info { pub dli_fname: *const ::c_char, pub dli_fbase: *mut ::c_void, @@ -140,22 +165,6 @@ s! { pub sin6_scope_id: u32, } - pub struct sockaddr_storage { - pub ss_family: ::sa_family_t, - __ss_padding: [ - u8; - 128 - - ::core::mem::size_of::() - - ::core::mem::size_of::() - ], - __ss_align: ::c_ulong, - } - - pub struct sockaddr_un { - pub sun_family: ::sa_family_t, - pub sun_path: [::c_char; 108] - } - pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, @@ -217,7 +226,7 @@ s! { } // TODO: relibc { - pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; // } // dlfcn.h @@ -281,7 +290,7 @@ pub const F_SETFD: ::c_int = 2; pub const F_GETFL: ::c_int = 3; pub const F_SETFL: ::c_int = 4; // TODO: relibc { - pub const F_DUPFD_CLOEXEC: ::c_int = ::F_DUPFD; +pub const F_DUPFD_CLOEXEC: ::c_int = ::F_DUPFD; // } pub const FD_CLOEXEC: ::c_int = 0x0100_0000; pub const O_RDONLY: ::c_int = 0x0001_0000; @@ -310,25 +319,25 @@ pub const EAI_SYSTEM: ::c_int = -11; // netinet/in.h // TODO: relibc { - pub const IP_TTL: ::c_int = 2; - pub const IPV6_UNICAST_HOPS: ::c_int = 16; - pub const IPV6_MULTICAST_IF: ::c_int = 17; - pub const IPV6_MULTICAST_HOPS: ::c_int = 18; - pub const IPV6_MULTICAST_LOOP: ::c_int = 19; - pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; - pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; - pub const IPV6_V6ONLY: ::c_int = 26; - pub const IP_MULTICAST_IF: ::c_int = 32; - pub const IP_MULTICAST_TTL: ::c_int = 33; - pub const IP_MULTICAST_LOOP: ::c_int = 34; - pub const IP_ADD_MEMBERSHIP: ::c_int = 35; - pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IP_TTL: ::c_int = 2; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IP_MULTICAST_IF: ::c_int = 32; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_ADD_MEMBERSHIP: ::c_int = 35; +pub const IP_DROP_MEMBERSHIP: ::c_int = 36; // } // netinet/tcp.h pub const TCP_NODELAY: ::c_int = 1; // TODO: relibc { - pub const TCP_KEEPIDLE: ::c_int = 1; +pub const TCP_KEEPIDLE: ::c_int = 1; // } // poll.h @@ -345,7 +354,7 @@ pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; pub const PTHREAD_MUTEX_INITIALIZER: ::pthread_mutex_t = -1isize as *mut _; pub const PTHREAD_COND_INITIALIZER: ::pthread_cond_t = -1isize as *mut _; pub const PTHREAD_RWLOCK_INITIALIZER: ::pthread_rwlock_t = -1isize as *mut _; -pub const PTHREAD_STACK_MIN : ::size_t = 4096; +pub const PTHREAD_STACK_MIN: ::size_t = 4096; // signal.h pub const SIG_BLOCK: ::c_int = 0; @@ -434,8 +443,8 @@ pub const EXIT_FAILURE: ::c_int = 1; // sys/ioctl.h // TODO: relibc { - pub const FIONBIO: ::c_ulong = 0x5421; - pub const FIOCLEX: ::c_ulong = 0x5451; +pub const FIONBIO: ::c_ulong = 0x5421; +pub const FIOCLEX: ::c_ulong = 0x5451; // } pub const TCGETS: ::c_ulong = 0x5401; pub const TCSETS: ::c_ulong = 0x5402; @@ -489,6 +498,28 @@ pub const STDIN_FILENO: ::c_int = 0; pub const STDOUT_FILENO: ::c_int = 1; pub const STDERR_FILENO: ::c_int = 2; +pub const _PC_LINK_MAX: ::c_int = 0; +pub const _PC_MAX_CANON: ::c_int = 1; +pub const _PC_MAX_INPUT: ::c_int = 2; +pub const _PC_NAME_MAX: ::c_int = 3; +pub const _PC_PATH_MAX: ::c_int = 4; +pub const _PC_PIPE_BUF: ::c_int = 5; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; +pub const _PC_NO_TRUNC: ::c_int = 7; +pub const _PC_VDISABLE: ::c_int = 8; +pub const _PC_SYNC_IO: ::c_int = 9; +pub const _PC_ASYNC_IO: ::c_int = 10; +pub const _PC_PRIO_IO: ::c_int = 11; +pub const _PC_SOCK_MAXBUF: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_XFER_ALIGN: ::c_int = 17; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_2_SYMLINKS: ::c_int = 20; + // wait.h pub fn WIFSTOPPED(status: ::c_int) -> bool { (status & 0xff) == 0x7f @@ -533,7 +564,8 @@ cfg_if! { } } -extern { +extern "C" { + // sys/resource.h pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; @@ -545,53 +577,180 @@ extern { pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; // pthread.h - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; - pub fn pthread_create(tid: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - start: extern fn(*mut ::c_void) -> *mut ::c_void, - arg: *mut ::c_void) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn pthread_create( + tid: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + arg: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; // signal.h - pub fn pthread_sigmask(how: ::c_int, - set: *const ::sigset_t, - oldset: *mut ::sigset_t) -> ::c_int; + pub fn pthread_sigmask( + how: ::c_int, + set: *const ::sigset_t, + oldset: *mut ::sigset_t, + ) -> ::c_int; // sys/epoll.h pub fn epoll_create(size: ::c_int) -> ::c_int; pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event, + ) -> ::c_int; // sys/ioctl.h pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; // sys/socket.h - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; // sys/uio.h - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; // time.h pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; } + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl PartialEq for dirent { + fn eq(&self, other: &dirent) -> bool { + self.d_ino == other.d_ino + && self.d_off == other.d_off + && self.d_reclen == other.d_reclen + && self.d_type == other.d_type + && self + .d_name + .iter() + .zip(other.d_name.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for dirent {} + + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_off", &self.d_off) + .field("d_reclen", &self.d_reclen) + .field("d_type", &self.d_type) + // FIXME: .field("d_name", &self.d_name) + .finish() + } + } + + impl ::hash::Hash for dirent { + fn hash(&self, state: &mut H) { + self.d_ino.hash(state); + self.d_off.hash(state); + self.d_reclen.hash(state); + self.d_type.hash(state); + self.d_name.hash(state); + } + } + + impl PartialEq for sockaddr_un { + fn eq(&self, other: &sockaddr_un) -> bool { + self.sun_family == other.sun_family + && self + .sun_path + .iter() + .zip(other.sun_path.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_un {} + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_family", &self.sun_family) + // FIXME: .field("sun_path", &self.sun_path) + .finish() + } + } + + impl ::hash::Hash for sockaddr_un { + fn hash(&self, state: &mut H) { + self.sun_family.hash(state); + self.sun_path.hash(state); + } + } + + impl PartialEq for sockaddr_storage { + fn eq(&self, other: &sockaddr_storage) -> bool { + self.ss_family == other.ss_family + && self.__ss_align == self.__ss_align + && self + .__ss_padding + .iter() + .zip(other.__ss_padding.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for sockaddr_storage {} + + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_family", &self.ss_family) + .field("__ss_align", &self.__ss_align) + // FIXME: .field("__ss_padding", &self.__ss_padding) + .finish() + } + } + + impl ::hash::Hash for sockaddr_storage { + fn hash(&self, state: &mut H) { + self.ss_family.hash(state); + self.__ss_padding.hash(state); + self.__ss_align.hash(state); + } + } + } +} From e6671e302e0ba19c1bfa9c379a9de768032f8e64 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Fri, 12 Jul 2019 16:11:21 -0400 Subject: [PATCH 073/296] Add constants and types --- src/unix/redox/mod.rs | 378 +++++++++++++++++++++++++++++++++--------- 1 file changed, 304 insertions(+), 74 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 09e877aa474c2..b72bff1e9a83b 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,3 +1,9 @@ +pub const PATH_MAX: ::c_int = 4096; + +pub const F_GETLK: ::c_int = 5; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; + pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; @@ -43,7 +49,19 @@ impl ::Clone for timezone { fn clone(&self) -> timezone { *self } } +pub const UTSLENGTH: usize = 65; + s_no_extra_traits! { + #[repr(C)] + pub struct utsname { + pub sysname: [::c_char; UTSLENGTH], + pub nodename: [::c_char; UTSLENGTH], + pub release: [::c_char; UTSLENGTH], + pub version: [::c_char; UTSLENGTH], + pub machine: [::c_char; UTSLENGTH], + pub domainname: [::c_char; UTSLENGTH], + } + pub struct dirent { pub d_ino: ::ino_t, pub d_off: ::off_t, @@ -230,58 +248,143 @@ pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; // } // dlfcn.h - pub const RTLD_LAZY: ::c_int = 0x0001; pub const RTLD_NOW: ::c_int = 0x0002; pub const RTLD_GLOBAL: ::c_int = 0x0100; pub const RTLD_LOCAL: ::c_int = 0x0000; // errno.h -pub const EPERM: ::c_int = 1; -pub const ENOENT: ::c_int = 2; -pub const ESRCH: ::c_int = 3; -pub const EINTR: ::c_int = 4; -pub const EIO: ::c_int = 5; -pub const ENXIO: ::c_int = 6; -pub const E2BIG: ::c_int = 7; -pub const ENOEXEC: ::c_int = 8; -pub const EBADF: ::c_int = 9; -pub const ECHILD: ::c_int = 10; -pub const EAGAIN: ::c_int = 11; -pub const ENOMEM: ::c_int = 12; -pub const EACCES: ::c_int = 13; -pub const EFAULT: ::c_int = 14; -pub const ENOTBLK: ::c_int = 15; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const EXDEV: ::c_int = 18; -pub const ENODEV: ::c_int = 19; -pub const ENOTDIR: ::c_int = 20; -pub const EISDIR: ::c_int = 21; -pub const EINVAL: ::c_int = 22; -pub const ENFILE: ::c_int = 23; -pub const EMFILE: ::c_int = 24; -pub const ENOTTY: ::c_int = 25; -pub const ETXTBSY: ::c_int = 26; -pub const EFBIG: ::c_int = 27; -pub const ENOSPC: ::c_int = 28; -pub const ESPIPE: ::c_int = 29; -pub const EROFS: ::c_int = 30; -pub const EMLINK: ::c_int = 31; -pub const EPIPE: ::c_int = 32; -pub const EDOM: ::c_int = 33; -pub const ERANGE: ::c_int = 34; -pub const EDEADLK: ::c_int = 35; -pub const ENOSYS: ::c_int = 38; -pub const EWOULDBLOCK: ::c_int = 41; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOTCONN: ::c_int = 107; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EINPROGRESS: ::c_int = 115; +pub const EPERM: ::c_int = 1; /* Operation not permitted */ +pub const ENOENT: ::c_int = 2; /* No such file or directory */ +pub const ESRCH: ::c_int = 3; /* No such process */ +pub const EINTR: ::c_int = 4; /* Interrupted system call */ +pub const EIO: ::c_int = 5; /* I/O error */ +pub const ENXIO: ::c_int = 6; /* No such device or address */ +pub const E2BIG: ::c_int = 7; /* Argument list too long */ +pub const ENOEXEC: ::c_int = 8; /* Exec format error */ +pub const EBADF: ::c_int = 9; /* Bad file number */ +pub const ECHILD: ::c_int = 10; /* No child processes */ +pub const EAGAIN: ::c_int = 11; /* Try again */ +pub const ENOMEM: ::c_int = 12; /* Out of memory */ +pub const EACCES: ::c_int = 13; /* Permission denied */ +pub const EFAULT: ::c_int = 14; /* Bad address */ +pub const ENOTBLK: ::c_int = 15; /* Block device required */ +pub const EBUSY: ::c_int = 16; /* Device or resource busy */ +pub const EEXIST: ::c_int = 17; /* File exists */ +pub const EXDEV: ::c_int = 18; /* Cross-device link */ +pub const ENODEV: ::c_int = 19; /* No such device */ +pub const ENOTDIR: ::c_int = 20; /* Not a directory */ +pub const EISDIR: ::c_int = 21; /* Is a directory */ +pub const EINVAL: ::c_int = 22; /* Invalid argument */ +pub const ENFILE: ::c_int = 23; /* File table overflow */ +pub const EMFILE: ::c_int = 24; /* Too many open files */ +pub const ENOTTY: ::c_int = 25; /* Not a typewriter */ +pub const ETXTBSY: ::c_int = 26; /* Text file busy */ +pub const EFBIG: ::c_int = 27; /* File too large */ +pub const ENOSPC: ::c_int = 28; /* No space left on device */ +pub const ESPIPE: ::c_int = 29; /* Illegal seek */ +pub const EROFS: ::c_int = 30; /* Read-only file system */ +pub const EMLINK: ::c_int = 31; /* Too many links */ +pub const EPIPE: ::c_int = 32; /* Broken pipe */ +pub const EDOM: ::c_int = 33; /* Math argument out of domain of func */ +pub const ERANGE: ::c_int = 34; /* Math result not representable */ +pub const EDEADLK: ::c_int = 35; /* Resource deadlock would occur */ +pub const ENAMETOOLONG: ::c_int = 36; /* File name too long */ +pub const ENOLCK: ::c_int = 37; /* No record locks available */ +pub const ENOSYS: ::c_int = 38; /* Function not implemented */ +pub const ENOTEMPTY: ::c_int = 39; /* Directory not empty */ +pub const ELOOP: ::c_int = 40; /* Too many symbolic links encountered */ +pub const EWOULDBLOCK: ::c_int = 41; /* Operation would block */ +pub const ENOMSG: ::c_int = 42; /* No message of desired type */ +pub const EIDRM: ::c_int = 43; /* Identifier removed */ +pub const ECHRNG: ::c_int = 44; /* Channel number out of range */ +pub const EL2NSYNC: ::c_int = 45; /* Level 2 not synchronized */ +pub const EL3HLT: ::c_int = 46; /* Level 3 halted */ +pub const EL3RST: ::c_int = 47; /* Level 3 reset */ +pub const ELNRNG: ::c_int = 48; /* Link number out of range */ +pub const EUNATCH: ::c_int = 49; /* Protocol driver not attached */ +pub const ENOCSI: ::c_int = 50; /* No CSI structure available */ +pub const EL2HLT: ::c_int = 51; /* Level 2 halted */ +pub const EBADE: ::c_int = 52; /* Invalid exchange */ +pub const EBADR: ::c_int = 53; /* Invalid request descriptor */ +pub const EXFULL: ::c_int = 54; /* Exchange full */ +pub const ENOANO: ::c_int = 55; /* No anode */ +pub const EBADRQC: ::c_int = 56; /* Invalid request code */ +pub const EBADSLT: ::c_int = 57; /* Invalid slot */ +pub const EDEADLOCK: ::c_int = 58; /* Resource deadlock would occur */ +pub const EBFONT: ::c_int = 59; /* Bad font file format */ +pub const ENOSTR: ::c_int = 60; /* Device not a stream */ +pub const ENODATA: ::c_int = 61; /* No data available */ +pub const ETIME: ::c_int = 62; /* Timer expired */ +pub const ENOSR: ::c_int = 63; /* Out of streams resources */ +pub const ENONET: ::c_int = 64; /* Machine is not on the network */ +pub const ENOPKG: ::c_int = 65; /* Package not installed */ +pub const EREMOTE: ::c_int = 66; /* Object is remote */ +pub const ENOLINK: ::c_int = 67; /* Link has been severed */ +pub const EADV: ::c_int = 68; /* Advertise error */ +pub const ESRMNT: ::c_int = 69; /* Srmount error */ +pub const ECOMM: ::c_int = 70; /* Communication error on send */ +pub const EPROTO: ::c_int = 71; /* Protocol error */ +pub const EMULTIHOP: ::c_int = 72; /* Multihop attempted */ +pub const EDOTDOT: ::c_int = 73; /* RFS specific error */ +pub const EBADMSG: ::c_int = 74; /* Not a data message */ +pub const EOVERFLOW: ::c_int = 75; /* Value too large for defined data type */ +pub const ENOTUNIQ: ::c_int = 76; /* Name not unique on network */ +pub const EBADFD: ::c_int = 77; /* File descriptor in bad state */ +pub const EREMCHG: ::c_int = 78; /* Remote address changed */ +pub const ELIBACC: ::c_int = 79; /* Can not access a needed shared library */ +pub const ELIBBAD: ::c_int = 80; /* Accessing a corrupted shared library */ +pub const ELIBSCN: ::c_int = 81; /* .lib section in a.out corrupted */ +pub const ELIBMAX: ::c_int = 82; /* Attempting to link in too many shared libraries */ +pub const ELIBEXEC: ::c_int = 83; /* Cannot exec a shared library directly */ +pub const EILSEQ: ::c_int = 84; /* Illegal byte sequence */ +pub const ERESTART: ::c_int = 85; /* Interrupted system call should be restarted */ +pub const ESTRPIPE: ::c_int = 86; /* Streams pipe error */ +pub const EUSERS: ::c_int = 87; /* Too many users */ +pub const ENOTSOCK: ::c_int = 88; /* Socket operation on non-socket */ +pub const EDESTADDRREQ: ::c_int = 89; /* Destination address required */ +pub const EMSGSIZE: ::c_int = 90; /* Message too long */ +pub const EPROTOTYPE: ::c_int = 91; /* Protocol wrong type for socket */ +pub const ENOPROTOOPT: ::c_int = 92; /* Protocol not available */ +pub const EPROTONOSUPPORT: ::c_int = 93; /* Protocol not supported */ +pub const ESOCKTNOSUPPORT: ::c_int = 94; /* Socket type not supported */ +pub const EOPNOTSUPP: ::c_int = 95; /* Operation not supported on transport endpoint */ +pub const EPFNOSUPPORT: ::c_int = 96; /* Protocol family not supported */ +pub const EAFNOSUPPORT: ::c_int = 97; /* Address family not supported by protocol */ +pub const EADDRINUSE: ::c_int = 98; /* Address already in use */ +pub const EADDRNOTAVAIL: ::c_int = 99; /* Cannot assign requested address */ +pub const ENETDOWN: ::c_int = 100; /* Network is down */ +pub const ENETUNREACH: ::c_int = 101; /* Network is unreachable */ +pub const ENETRESET: ::c_int = 102; /* Network dropped connection because of reset */ +pub const ECONNABORTED: ::c_int = 103; /* Software caused connection abort */ +pub const ECONNRESET: ::c_int = 104; /* Connection reset by peer */ +pub const ENOBUFS: ::c_int = 105; /* No buffer space available */ +pub const EISCONN: ::c_int = 106; /* Transport endpoint is already connected */ +pub const ENOTCONN: ::c_int = 107; /* Transport endpoint is not connected */ +pub const ESHUTDOWN: ::c_int = 108; /* Cannot send after transport endpoint shutdown */ +pub const ETOOMANYREFS: ::c_int = 109; /* Too many references: cannot splice */ +pub const ETIMEDOUT: ::c_int = 110; /* Connection timed out */ +pub const ECONNREFUSED: ::c_int = 111; /* Connection refused */ +pub const EHOSTDOWN: ::c_int = 112; /* Host is down */ +pub const EHOSTUNREACH: ::c_int = 113; /* No route to host */ +pub const EALREADY: ::c_int = 114; /* Operation already in progress */ +pub const EINPROGRESS: ::c_int = 115; /* Operation now in progress */ +pub const ESTALE: ::c_int = 116; /* Stale NFS file handle */ +pub const EUCLEAN: ::c_int = 117; /* Structure needs cleaning */ +pub const ENOTNAM: ::c_int = 118; /* Not a XENIX named type file */ +pub const ENAVAIL: ::c_int = 119; /* No XENIX semaphores available */ +pub const EISNAM: ::c_int = 120; /* Is a named type file */ +pub const EREMOTEIO: ::c_int = 121; /* Remote I/O error */ +pub const EDQUOT: ::c_int = 122; /* Quota exceeded */ +pub const ENOMEDIUM: ::c_int = 123; /* No medium found */ +pub const EMEDIUMTYPE: ::c_int = 124; /* Wrong medium type */ +pub const ECANCELED: ::c_int = 125; /* Operation Canceled */ +pub const ENOKEY: ::c_int = 126; /* Required key not available */ +pub const EKEYEXPIRED: ::c_int = 127; /* Key has expired */ +pub const EKEYREVOKED: ::c_int = 128; /* Key has been revoked */ +pub const EKEYREJECTED: ::c_int = 129; /* Key was rejected by service */ +pub const EOWNERDEAD: ::c_int = 130; /* Owner died */ +pub const ENOTRECOVERABLE: ::c_int = 131; /* State not recoverable */ // fcntl.h pub const F_DUPFD: ::c_int = 0; @@ -393,6 +496,15 @@ pub const SIGPWR: ::c_int = 30; pub const SIGSYS: ::c_int = 31; pub const NSIG: ::c_int = 32; +pub const SA_NOCLDSTOP: ::c_ulong = 0x00000001; +pub const SA_NOCLDWAIT: ::c_ulong = 0x00000002; +pub const SA_SIGINFO: ::c_ulong = 0x00000004; +pub const SA_RESTORER: ::c_ulong = 0x04000000; +pub const SA_ONSTACK: ::c_ulong = 0x08000000; +pub const SA_RESTART: ::c_ulong = 0x10000000; +pub const SA_NODEFER: ::c_ulong = 0x40000000; +pub const SA_RESETHAND: ::c_ulong = 0x80000000; + // sys/epoll.h pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; pub const EPOLL_CTL_ADD: ::c_int = 1; @@ -481,6 +593,17 @@ pub const SOL_SOCKET: ::c_int = 1; // sys/wait.h pub const WNOHANG: ::c_int = 1; +pub const WUNTRACED: ::c_int = 2; + +pub const WSTOPPED: ::c_int = 2; +pub const WEXITED: ::c_int = 4; +pub const WCONTINUED: ::c_int = 8; +pub const WNOWAIT: ::c_int = 0x0100_0000; + +pub const __WNOTHREAD: ::c_int = 0x2000_0000; +pub const __WALL: ::c_int = 0x4000_0000; +#[allow(overflowing_literals)] +pub const __WCLONE: ::c_int = 0x8000_0000; // termios.h pub const NCCS: usize = 32; @@ -490,7 +613,34 @@ pub const CLOCK_REALTIME: ::c_int = 1; pub const CLOCK_MONOTONIC: ::c_int = 4; // unistd.h +// POSIX.1 { +pub const _SC_ARG_MAX: ::c_int = 0; +pub const _SC_CHILD_MAX: ::c_int = 1; +pub const _SC_CLK_TCK: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 3; +pub const _SC_OPEN_MAX: ::c_int = 4; +pub const _SC_STREAM_MAX: ::c_int = 5; +pub const _SC_TZNAME_MAX: ::c_int = 6; +// ... +pub const _SC_VERSION: ::c_int = 29; pub const _SC_PAGESIZE: ::c_int = 30; +pub const _SC_PAGE_SIZE: ::c_int = 30; +// ... +pub const _SC_RE_DUP_MAX: ::c_int = 44; +// ... +pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; +pub const _SC_TTY_NAME_MAX: ::c_int = 72; +// ... +pub const _SC_SYMLOOP_MAX: ::c_int = 173; +// ... +pub const _SC_HOST_NAME_MAX: ::c_int = 180; +// } POSIX.1 + +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; + pub const SEEK_SET: ::c_int = 0; pub const SEEK_CUR: ::c_int = 1; pub const SEEK_END: ::c_int = 2; @@ -521,36 +671,38 @@ pub const _PC_SYMLINK_MAX: ::c_int = 19; pub const _PC_2_SYMLINKS: ::c_int = 20; // wait.h -pub fn WIFSTOPPED(status: ::c_int) -> bool { - (status & 0xff) == 0x7f -} +f! { + pub fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xff) == 0x7f + } -pub fn WSTOPSIG(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff -} + pub fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } -pub fn WIFCONTINUED(status: ::c_int) -> bool { - status == 0xffff -} + pub fn WIFCONTINUED(status: ::c_int) -> bool { + status == 0xffff + } -pub fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 -} + pub fn WIFSIGNALED(status: ::c_int) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 + } -pub fn WTERMSIG(status: ::c_int) -> ::c_int { - status & 0x7f -} + pub fn WTERMSIG(status: ::c_int) -> ::c_int { + status & 0x7f + } -pub fn WIFEXITED(status: ::c_int) -> bool { - (status & 0x7f) == 0 -} + pub fn WIFEXITED(status: ::c_int) -> bool { + (status & 0x7f) == 0 + } -pub fn WEXITSTATUS(status: ::c_int) -> ::c_int { - (status >> 8) & 0xff -} + pub fn WEXITSTATUS(status: ::c_int) -> ::c_int { + (status >> 8) & 0xff + } -pub fn WCOREDUMP(status: ::c_int) -> bool { - (status & 0x80) != 0 + pub fn WCOREDUMP(status: ::c_int) -> bool { + (status & 0x80) != 0 + } } // intentionally not public, only used for fd_set @@ -565,13 +717,13 @@ cfg_if! { } extern "C" { - // sys/resource.h - pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - + // errno.h + pub fn __errno_location() -> *mut ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; - pub fn __errno_location() -> *mut ::c_int; + + // unistd.h + pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; // malloc.h pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; @@ -593,12 +745,20 @@ extern "C" { clock_id: ::clockid_t, ) -> ::c_int; + // pwd.h + pub fn getpwuid_r(uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd) -> ::c_int; + // signal.h pub fn pthread_sigmask( how: ::c_int, set: *const ::sigset_t, oldset: *mut ::sigset_t, ) -> ::c_int; + pub fn sigwait(set: *const ::sigset_t, sig: *mut ::c_int) -> ::c_int; // sys/epoll.h pub fn epoll_create(size: ::c_int) -> ::c_int; @@ -619,6 +779,10 @@ extern "C" { // sys/ioctl.h pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; + // sys/resource.h + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + // sys/socket.h pub fn bind( socket: ::c_int, @@ -634,6 +798,9 @@ extern "C" { addrlen: *mut ::socklen_t, ) -> ::ssize_t; + // sys/stat.h + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; + // sys/uio.h pub fn readv( fd: ::c_int, @@ -646,6 +813,9 @@ extern "C" { iovcnt: ::c_int, ) -> ::ssize_t; + // sys/utsname.h + pub fn uname(utsname: *mut utsname) -> ::c_int; + // time.h pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; @@ -752,5 +922,65 @@ cfg_if! { self.__ss_align.hash(state); } } + + impl PartialEq for utsname { + fn eq(&self, other: &utsname) -> bool { + self.sysname + .iter() + .zip(other.sysname.iter()) + .all(|(a, b)| a == b) + && self + .nodename + .iter() + .zip(other.nodename.iter()) + .all(|(a, b)| a == b) + && self + .release + .iter() + .zip(other.release.iter()) + .all(|(a, b)| a == b) + && self + .version + .iter() + .zip(other.version.iter()) + .all(|(a, b)| a == b) + && self + .machine + .iter() + .zip(other.machine.iter()) + .all(|(a, b)| a == b) + && self + .domainname + .iter() + .zip(other.domainname.iter()) + .all(|(a, b)| a == b) + } + } + + impl Eq for utsname {} + + impl ::fmt::Debug for utsname { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utsname") + // FIXME: .field("sysname", &self.sysname) + // FIXME: .field("nodename", &self.nodename) + // FIXME: .field("release", &self.release) + // FIXME: .field("version", &self.version) + // FIXME: .field("machine", &self.machine) + // FIXME: .field("domainname", &self.domainname) + .finish() + } + } + + impl ::hash::Hash for utsname { + fn hash(&self, state: &mut H) { + self.sysname.hash(state); + self.nodename.hash(state); + self.release.hash(state); + self.version.hash(state); + self.machine.hash(state); + self.domainname.hash(state); + } + } } } From 0af8f1865501f85ede380a1e23a985c95cb86de3 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Fri, 12 Jul 2019 16:46:51 -0400 Subject: [PATCH 074/296] Style --- src/unix/redox/mod.rs | 68 ++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index b72bff1e9a83b..384b24147f2b1 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -1,9 +1,3 @@ -pub const PATH_MAX: ::c_int = 4096; - -pub const F_GETLK: ::c_int = 5; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; - pub type c_char = i8; pub type c_long = i64; pub type c_ulong = u64; @@ -49,8 +43,6 @@ impl ::Clone for timezone { fn clone(&self) -> timezone { *self } } -pub const UTSLENGTH: usize = 65; - s_no_extra_traits! { #[repr(C)] pub struct utsname { @@ -243,6 +235,27 @@ s! { } } +pub const UTSLENGTH: usize = 65; + +// intentionally not public, only used for fd_set +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + const ULONG_SIZE: usize = 32; + } else if #[cfg(target_pointer_width = "64")] { + const ULONG_SIZE: usize = 64; + } else { + // Unknown target_pointer_width + } +} + +// limits.h +pub const PATH_MAX: ::c_int = 4096; + +// fcntl.h +pub const F_GETLK: ::c_int = 5; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; + // TODO: relibc { pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; // } @@ -335,10 +348,12 @@ pub const EREMCHG: ::c_int = 78; /* Remote address changed */ pub const ELIBACC: ::c_int = 79; /* Can not access a needed shared library */ pub const ELIBBAD: ::c_int = 80; /* Accessing a corrupted shared library */ pub const ELIBSCN: ::c_int = 81; /* .lib section in a.out corrupted */ -pub const ELIBMAX: ::c_int = 82; /* Attempting to link in too many shared libraries */ +/* Attempting to link in too many shared libraries */ +pub const ELIBMAX: ::c_int = 82; pub const ELIBEXEC: ::c_int = 83; /* Cannot exec a shared library directly */ pub const EILSEQ: ::c_int = 84; /* Illegal byte sequence */ -pub const ERESTART: ::c_int = 85; /* Interrupted system call should be restarted */ +/* Interrupted system call should be restarted */ +pub const ERESTART: ::c_int = 85; pub const ESTRPIPE: ::c_int = 86; /* Streams pipe error */ pub const EUSERS: ::c_int = 87; /* Too many users */ pub const ENOTSOCK: ::c_int = 88; /* Socket operation on non-socket */ @@ -348,20 +363,24 @@ pub const EPROTOTYPE: ::c_int = 91; /* Protocol wrong type for socket */ pub const ENOPROTOOPT: ::c_int = 92; /* Protocol not available */ pub const EPROTONOSUPPORT: ::c_int = 93; /* Protocol not supported */ pub const ESOCKTNOSUPPORT: ::c_int = 94; /* Socket type not supported */ -pub const EOPNOTSUPP: ::c_int = 95; /* Operation not supported on transport endpoint */ +/* Operation not supported on transport endpoint */ +pub const EOPNOTSUPP: ::c_int = 95; pub const EPFNOSUPPORT: ::c_int = 96; /* Protocol family not supported */ -pub const EAFNOSUPPORT: ::c_int = 97; /* Address family not supported by protocol */ +/* Address family not supported by protocol */ +pub const EAFNOSUPPORT: ::c_int = 97; pub const EADDRINUSE: ::c_int = 98; /* Address already in use */ pub const EADDRNOTAVAIL: ::c_int = 99; /* Cannot assign requested address */ pub const ENETDOWN: ::c_int = 100; /* Network is down */ pub const ENETUNREACH: ::c_int = 101; /* Network is unreachable */ -pub const ENETRESET: ::c_int = 102; /* Network dropped connection because of reset */ +/* Network dropped connection because of reset */ +pub const ENETRESET: ::c_int = 102; pub const ECONNABORTED: ::c_int = 103; /* Software caused connection abort */ pub const ECONNRESET: ::c_int = 104; /* Connection reset by peer */ pub const ENOBUFS: ::c_int = 105; /* No buffer space available */ pub const EISCONN: ::c_int = 106; /* Transport endpoint is already connected */ pub const ENOTCONN: ::c_int = 107; /* Transport endpoint is not connected */ -pub const ESHUTDOWN: ::c_int = 108; /* Cannot send after transport endpoint shutdown */ +/* Cannot send after transport endpoint shutdown */ +pub const ESHUTDOWN: ::c_int = 108; pub const ETOOMANYREFS: ::c_int = 109; /* Too many references: cannot splice */ pub const ETIMEDOUT: ::c_int = 110; /* Connection timed out */ pub const ECONNREFUSED: ::c_int = 111; /* Connection refused */ @@ -705,18 +724,7 @@ f! { } } -// intentionally not public, only used for fd_set -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - const ULONG_SIZE: usize = 32; - } else if #[cfg(target_pointer_width = "64")] { - const ULONG_SIZE: usize = 64; - } else { - // Unknown target_pointer_width - } -} - -extern "C" { +extern { // errno.h pub fn __errno_location() -> *mut ::c_int; pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, @@ -730,14 +738,14 @@ extern "C" { // pthread.h pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; pub fn pthread_create( tid: *mut ::pthread_t, attr: *const ::pthread_attr_t, - start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + start: extern fn(*mut ::c_void) -> *mut ::c_void, arg: *mut ::c_void, ) -> ::c_int; pub fn pthread_condattr_setclock( From 0da26d4f3a52d1d76ae23c50f3fd09c3f94dbad1 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Mon, 15 Jul 2019 10:31:24 -0400 Subject: [PATCH 075/296] Remove some unsupported methods --- src/unix/mod.rs | 8 ++++++++ src/unix/redox/mod.rs | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 8295dfc020c9c..a488dd733ad07 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -609,6 +609,7 @@ extern { link_name = "fdopendir$INODE64")] #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "fdopendir$INODE64$UNIX2003")] + #[cfg(not(target_os = "redox"))] pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] @@ -630,6 +631,7 @@ extern { /// https://illumos.org/man/3lib/libc /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ + #[cfg(not(target_os = "redox"))] pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, result: *mut *mut ::dirent) -> ::c_int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), @@ -641,6 +643,7 @@ extern { link_name = "rewinddir$INODE64$UNIX2003")] pub fn rewinddir(dirp: *mut ::DIR); + #[cfg(not(target_os = "redox"))] pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int, ...) -> ::c_int; pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, @@ -661,8 +664,10 @@ extern { pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, newdirfd: ::c_int, newpath: *const ::c_char, flags: ::c_int) -> ::c_int; + #[cfg(not(target_os = "redox"))] pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; + #[cfg(not(target_os = "redox"))] pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, @@ -727,6 +732,7 @@ extern { pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pause$UNIX2003")] + #[cfg(not(target_os = "redox"))] pub fn pause() -> ::c_int; pub fn pipe(fds: *mut ::c_int) -> ::c_int; pub fn posix_memalign(memptr: *mut *mut ::c_void, @@ -836,6 +842,7 @@ extern { pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; + #[cfg(not(target_os = "redox"))] pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; @@ -1071,6 +1078,7 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] pub fn timegm(tm: *mut ::tm) -> time_t; + #[cfg(not(target_os = "redox"))] pub fn getsid(pid: pid_t) -> pid_t; pub fn sysconf(name: ::c_int) -> ::c_long; diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 384b24147f2b1..2591a7938acbb 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -766,7 +766,6 @@ extern { set: *const ::sigset_t, oldset: *mut ::sigset_t, ) -> ::c_int; - pub fn sigwait(set: *const ::sigset_t, sig: *mut ::c_int) -> ::c_int; // sys/epoll.h pub fn epoll_create(size: ::c_int) -> ::c_int; From f6c0ead0279077dd9bda305e6c9d3ba3267390b2 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Mon, 15 Jul 2019 14:16:35 -0400 Subject: [PATCH 076/296] Style --- src/unix/mod.rs | 78 +++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index a488dd733ad07..bb3856e9cce42 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -605,13 +605,6 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] pub fn opendir(dirname: *const c_char) -> *mut ::DIR; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "fdopendir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fdopendir$INODE64$UNIX2003")] - #[cfg(not(target_os = "redox"))] - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] #[cfg_attr( @@ -619,21 +612,6 @@ extern { link_name = "readdir@FBSD_1.0" )] pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] - #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] - #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), - link_name = "readdir_r@FBSD_1.0" - )] - /// The 64-bit libc on Solaris and illumos only has readdir_r. If a - /// 32-bit Solaris or illumos target is ever created, it should use - /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: - /// https://illumos.org/man/3lib/libc - /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html - /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ - #[cfg(not(target_os = "redox"))] - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, - result: *mut *mut ::dirent) -> ::c_int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "closedir$UNIX2003")] pub fn closedir(dirp: *mut ::DIR) -> ::c_int; @@ -643,9 +621,6 @@ extern { link_name = "rewinddir$INODE64$UNIX2003")] pub fn rewinddir(dirp: *mut ::DIR); - #[cfg(not(target_os = "redox"))] - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int, ...) -> ::c_int; pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t, flags: ::c_int) -> ::c_int; pub fn fchown(fd: ::c_int, @@ -664,12 +639,6 @@ extern { pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, newdirfd: ::c_int, newpath: *const ::c_char, flags: ::c_int) -> ::c_int; - #[cfg(not(target_os = "redox"))] - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - #[cfg(not(target_os = "redox"))] - pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, - buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, newdirfd: ::c_int, newpath: *const ::c_char) -> ::c_int; @@ -732,8 +701,6 @@ extern { pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pause$UNIX2003")] - #[cfg(not(target_os = "redox"))] - pub fn pause() -> ::c_int; pub fn pipe(fds: *mut ::c_int) -> ::c_int; pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, @@ -842,8 +809,6 @@ extern { pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; - #[cfg(not(target_os = "redox"))] - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; @@ -1078,9 +1043,6 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] pub fn timegm(tm: *mut ::tm) -> time_t; - #[cfg(not(target_os = "redox"))] - pub fn getsid(pid: pid_t) -> pid_t; - pub fn sysconf(name: ::c_int) -> ::c_long; pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; @@ -1139,6 +1101,46 @@ extern { stream: *mut FILE) -> ssize_t; } +cfg_if! { + if #[cfg(not(target_os = "redox"))] { + extern { + pub fn getsid(pid: pid_t) -> pid_t; + pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + pub fn pause() -> ::c_int; + + pub fn readlinkat(dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t) -> ::ssize_t; + pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, + mode: ::mode_t) -> ::c_int; + pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, + flags: ::c_int, ...) -> ::c_int; + + #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), + link_name = "fdopendir$INODE64")] + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "fdopendir$INODE64$UNIX2003")] + pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + + #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] + #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] + #[cfg_attr( + all(target_os = "freebsd", not(freebsd12)), + link_name = "readdir_r@FBSD_1.0" + )] + /// The 64-bit libc on Solaris and illumos only has readdir_r. If a + /// 32-bit Solaris or illumos target is ever created, it should use + /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: + /// https://illumos.org/man/3lib/libc + /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html + /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ + pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, + result: *mut *mut ::dirent) -> ::c_int; + } + } +} + cfg_if! { if #[cfg(not(any(target_os = "solaris", target_os = "illumos")))] { extern { From 96ea9c99521180bc4fd4eb07d5d7b699a784fb96 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 17:49:08 +0200 Subject: [PATCH 077/296] Add support for FreeBSD CURRENT (aka freebsd13) Currently, libc supports and detects freebsd11 and freebsd13 Unknown versions, like freebsd13, is treated as freebsd11. This patch solve the issues, detecting freebsd13 and treating it like freebsd12. Inverting the logic not(freebsd12) -> freebsd11 where possible --- build.rs | 4 ++++ libc-test/build.rs | 8 +++++++- src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 5 +++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 +++- src/unix/bsd/freebsdlike/mod.rs | 4 ++-- src/unix/bsd/mod.rs | 4 ++-- src/unix/mod.rs | 14 +++++++------- 8 files changed, 32 insertions(+), 13 deletions(-) diff --git a/build.rs b/build.rs index 76ca0961e4782..c43cca36d2586 100644 --- a/build.rs +++ b/build.rs @@ -19,6 +19,9 @@ fn main() { if let Some(12) = which_freebsd() { println!("cargo:rustc-cfg=freebsd12"); } + if let Some(13) = which_freebsd() { + println!("cargo:rustc-cfg=freebsd13"); + } } // Rust >= 1.15 supports private module use: @@ -100,6 +103,7 @@ fn which_freebsd() -> Option { match &stdout { s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), + s if s.starts_with("13") => Some(13), _ => None, } } diff --git a/libc-test/build.rs b/libc-test/build.rs index 6edbd0f2ff506..8dffc6819b03d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1455,6 +1455,11 @@ fn test_freebsd(target: &str) { cfg.cfg("freebsd12", None); } + if let Some(13) = freebsd_ver { + // If the host is FreeBSD 12, run FreeBSD 12 tests + cfg.cfg("freebsd13", None); + } + // Required for `getline`: cfg.define("_WITH_GETLINE", None); // Required for making freebsd11_stat available in the headers @@ -1581,7 +1586,7 @@ fn test_freebsd(target: &str) { | "IP_RECVORIGDSTADDR" | "IPV6_ORIGDSTADDR" | "IPV6_RECVORIGDSTADDR" - if Some(12) != freebsd_ver => + if Some(11) == freebsd_ver => { true } @@ -2468,6 +2473,7 @@ fn which_freebsd() -> Option { match &stdout { s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), + s if s.starts_with("13") => Some(13), _ => None, } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 7d7dc2c1d4902..b71b284e42554 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -189,6 +189,8 @@ cfg_if! { } } +pub const ELAST: ::c_int = 96; + extern { // Return type ::c_int was removed in FreeBSD 12 pub fn setgrent() -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index ab1b8d98357b3..c01916955fd97 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -190,6 +190,11 @@ cfg_if! { } } +#[cfg(not(freebsd13))] +pub const ELAST: ::c_int = 96; +#[cfg(freebsd13)] +pub const ELAST: ::c_int = 97; + extern { pub fn setgrent(); pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9f11c202bb4ea..c178b91b9408e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -333,7 +333,6 @@ pub const ENOTCAPABLE: ::c_int = 93; pub const ECAPMODE: ::c_int = 94; pub const ENOTRECOVERABLE: ::c_int = 95; pub const EOWNERDEAD: ::c_int = 96; -pub const ELAST: ::c_int = 96; pub const RLIMIT_NPTS: ::c_int = 11; pub const RLIMIT_SWAP: ::c_int = 12; pub const RLIMIT_KQUEUES: ::c_int = 13; @@ -1332,6 +1331,9 @@ cfg_if! { if #[cfg(freebsd12)] { mod freebsd12; pub use self::freebsd12::*; + } else if #[cfg(freebsd13)] { + mod freebsd12; + pub use self::freebsd12::*; } else { mod freebsd11; pub use self::freebsd11::*; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index ce5452062ce3d..f937d772a9a44 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1152,7 +1152,7 @@ extern { pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "kevent@FBSD_1.0" )] pub fn kevent(kq: ::c_int, @@ -1171,7 +1171,7 @@ extern { pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "mknodat@FBSD_1.1" )] pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 77f82b182bb57..ee644114a4867 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -536,7 +536,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "glob@FBSD_1.0" )] pub fn glob(pattern: *const ::c_char, @@ -546,7 +546,7 @@ extern { pglob: *mut ::glob_t) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "globfree@FBSD_1.0" )] pub fn globfree(pglob: *mut ::glob_t); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 8295dfc020c9c..ab803cbcd41ca 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -567,7 +567,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "fstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "fstat@FBSD_1.0" )] pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -577,7 +577,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "stat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "stat@FBSD_1.0" )] pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -614,14 +614,14 @@ extern { #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "readdir@FBSD_1.0" )] pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "readdir_r@FBSD_1.0" )] /// The 64-bit libc on Solaris and illumos only has readdir_r. If a @@ -653,7 +653,7 @@ extern { flags: ::c_int) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "fstatat@FBSD_1.1" )] pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, @@ -815,7 +815,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "lstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "lstat@FBSD_1.0" )] pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -992,7 +992,7 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "mknod@FBSD_1.0" )] pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, From c2c62cc8a4c275c59eb972da9bbe8270849e0b24 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 17:55:11 +0200 Subject: [PATCH 078/296] Add EINTEGRITY errno and fix style --- src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index c01916955fd97..464744d140da4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -190,10 +190,14 @@ cfg_if! { } } -#[cfg(not(freebsd13))] -pub const ELAST: ::c_int = 96; -#[cfg(freebsd13)] -pub const ELAST: ::c_int = 97; +cfg_if! { + if #[cfg(not(freebsd13))] { + pub const ELAST: ::c_int = 96; + } else { + pub const EINTEGRITY: ::c_int = 97; + pub const ELAST: ::c_int = 97; + } +} extern { pub fn setgrent(); From 72aa2262ca3e8e7889e8872b7508b81d56d70e6a Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 18:10:40 +0200 Subject: [PATCH 079/296] Properly define freebsd11 attribute --- build.rs | 3 +++ libc-test/build.rs | 15 ++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.rs b/build.rs index c43cca36d2586..f355447a672c6 100644 --- a/build.rs +++ b/build.rs @@ -16,6 +16,9 @@ fn main() { } if env::var("LIBC_CI").is_ok() { + if let Some(11) = which_freebsd() { + println!("cargo:rustc-cfg=freebsd11"); + } if let Some(12) = which_freebsd() { println!("cargo:rustc-cfg=freebsd12"); } diff --git a/libc-test/build.rs b/libc-test/build.rs index 8dffc6819b03d..02e769ea80181 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1450,15 +1450,12 @@ fn test_freebsd(target: &str) { let freebsd_ver = which_freebsd(); - if let Some(12) = freebsd_ver { - // If the host is FreeBSD 12, run FreeBSD 12 tests - cfg.cfg("freebsd12", None); - } - - if let Some(13) = freebsd_ver { - // If the host is FreeBSD 12, run FreeBSD 12 tests - cfg.cfg("freebsd13", None); - } + match freebsd_ver { + Some(11) => cfg.cfg("freebsd11", None), + Some(12) => cfg.cfg("freebsd12", None), + Some(13) => cfg.cfg("freebsd13", None), + _ => &mut cfg + }; // Required for `getline`: cfg.define("_WITH_GETLINE", None); From e21be8cdcdaad9de6002c2df6b3d9648b1e3195f Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 11 Jul 2019 11:55:38 -0700 Subject: [PATCH 080/296] Update wasmtime to the latest master. --- ci/docker/wasm32-wasi/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/docker/wasm32-wasi/Dockerfile b/ci/docker/wasm32-wasi/Dockerfile index d963a442c86bb..eb3b5ff8b7739 100644 --- a/ci/docker/wasm32-wasi/Dockerfile +++ b/ci/docker/wasm32-wasi/Dockerfile @@ -60,7 +60,7 @@ ENV PATH=/root/.cargo/bin:$PATH RUN apt-get install -y --no-install-recommends python RUN git clone --recursive https://github.com/CraneStation/wasmtime wasmtime && \ cd wasmtime && \ - git reset --hard 67edb00f29b62864b00179fe4bfa99bc29973285 + git reset --hard a2647878977726935c3d04c05cabad9607ec7606 RUN cargo build --release --manifest-path wasmtime/Cargo.toml # And finally in the last image we're going to assemble everything together. From 98dc609a793bfe3c5b8a46b38cd51907e143011f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 26 Jul 2019 15:01:00 +0200 Subject: [PATCH 081/296] Disable testing that thumbv6m-none-eabi builds properly --- ci/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 707dd4ac9af60..00fbe35e98406 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -172,6 +172,8 @@ done # FIXME: https://github.com/rust-lang/rust/issues/58564 # sparc-unknown-linux-gnu +# FIXME: https://github.com/rust-lang/rust/issues/62932 +# thumbv6m-none-eabi RUST_LINUX_NO_CORE_TARGETS="\ aarch64-pc-windows-msvc \ aarch64-unknown-cloudabi \ @@ -199,7 +201,7 @@ powerpc64-unknown-freebsd \ riscv32imac-unknown-none-elf \ riscv32imc-unknown-none-elf \ sparc64-unknown-netbsd \ -thumbv6m-none-eabi \ + thumbv7em-none-eabi \ thumbv7em-none-eabihf \ thumbv7m-none-eabi \ From 4d4a42319d87190772a9822bb2447b803a697f66 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Fri, 26 Jul 2019 13:32:27 -0400 Subject: [PATCH 082/296] Don't forget the cfg_attr --- src/unix/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index bb3856e9cce42..65cf7ecf5c05d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -699,8 +699,6 @@ extern { pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pause$UNIX2003")] pub fn pipe(fds: *mut ::c_int) -> ::c_int; pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, @@ -1106,6 +1104,8 @@ cfg_if! { extern { pub fn getsid(pid: pid_t) -> pid_t; pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "pause$UNIX2003")] pub fn pause() -> ::c_int; pub fn readlinkat(dirfd: ::c_int, From 214d32d2656831c06ad8d3943402670166e34cab Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Sat, 20 Jul 2019 21:43:16 -0500 Subject: [PATCH 083/296] Add support for hexagon-unknown-linux-musl --- ci/build.sh | 1 + src/unix/linux_like/linux/align.rs | 4 + src/unix/linux_like/linux/musl/b32/hexagon.rs | 795 ++++++++++++++++++ src/unix/linux_like/linux/musl/b32/mod.rs | 3 + src/unix/linux_like/linux/musl/mod.rs | 5 +- 5 files changed, 806 insertions(+), 2 deletions(-) create mode 100644 src/unix/linux_like/linux/musl/b32/hexagon.rs diff --git a/ci/build.sh b/ci/build.sh index 00fbe35e98406..b4ad364aea8ba 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -186,6 +186,7 @@ armebv7r-none-eabihf \ armv7-unknown-cloudabi-eabihf \ armv7r-none-eabi \ armv7r-none-eabihf \ +hexagon-unknown-linux-musl \ i586-pc-windows-msvc \ i686-pc-windows-msvc \ i686-unknown-cloudabi \ diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs index 0ff4649b8cfcb..be8ac0697633a 100644 --- a/src/unix/linux_like/linux/align.rs +++ b/src/unix/linux_like/linux/align.rs @@ -60,6 +60,7 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", target_arch = "arm", + target_arch = "hexagon", target_arch = "powerpc", target_arch = "x86_64", target_arch = "x86")), @@ -67,6 +68,7 @@ macro_rules! expand_align { #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", target_arch = "arm", + target_arch = "hexagon", target_arch = "powerpc", target_arch = "x86_64", target_arch = "x86"))), @@ -79,6 +81,7 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", target_arch = "arm", + target_arch = "hexagon", target_arch = "powerpc", target_arch = "x86_64", target_arch = "x86")), @@ -86,6 +89,7 @@ macro_rules! expand_align { #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", target_arch = "arm", + target_arch = "hexagon", target_arch = "powerpc", target_arch = "x86_64", target_arch = "x86"))), diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs new file mode 100644 index 0000000000000..c8666925315ff --- /dev/null +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -0,0 +1,795 @@ +pub type c_char = u8; +pub type wchar_t = u32; +pub type stat64 = ::stat; + +s! { + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::c_ulonglong, + pub st_mode: ::c_uint, + pub st_nlink: ::c_uint, + pub st_uid: ::c_uint, + pub st_gid: ::c_uint, + pub st_rdev: ::c_ulonglong, + __st_rdev_padding: ::c_ulong, + pub st_size: ::c_longlong, + pub st_blksize: ::blksize_t, + __st_blksize_padding: ::c_int, + pub st_blocks: ::blkcnt_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + + __unused: [::c_int;2], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_ushort, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: ::time_t, + __unused1: ::c_int, + pub shm_dtime: ::time_t, + __unused2: ::c_int, + pub shm_ctime: ::time_t, + __unused3: ::c_int, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::c_ulong, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + pub msg_stime: ::time_t, + __unused1: ::c_int, + pub msg_rtime: ::time_t, + __unused2: ::c_int, + pub msg_ctime: ::time_t, + __unused3: ::c_int, + __msg_cbytes: ::c_ulong, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __pad1: ::c_ulong, + __pad2: ::c_ulong, + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + pub _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + __f_unused: ::c_int, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } +} + +pub const AF_FILE: ::c_int = 1; +pub const AF_KCM: ::c_int = 41; +pub const AF_MAX: ::c_int = 43; +pub const AF_QIPCRTR: ::c_int = 42; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EALREADY: ::c_int = 114; +pub const EBADE: ::c_int = 52; +pub const EBADMSG: ::c_int = 74; +pub const EBADR: ::c_int = 53; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const ECANCELED: ::c_int = 125; +pub const ECHRNG: ::c_int = 44; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNREFUSED: ::c_int = 111; +pub const ECONNRESET: ::c_int = 104; +pub const EDEADLK: ::c_int = 35; +pub const EDEADLOCK: ::c_int = 35; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EDQUOT: ::c_int = 122; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EHWPOISON: ::c_int = 133; +pub const EIDRM: ::c_int = 43; +pub const EILSEQ: ::c_int = 84; +pub const EINPROGRESS: ::c_int = 115; +pub const EISCONN: ::c_int = 106; +pub const EISNAM: ::c_int = 120; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREJECTED: ::c_int = 129; +pub const EKEYREVOKED: ::c_int = 128; +pub const EL2HLT: ::c_int = 51; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBEXEC: ::c_int = 83; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBSCN: ::c_int = 81; +pub const ELNRNG: ::c_int = 48; +pub const ELOOP: ::c_int = 40; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const EMSGSIZE: ::c_int = 90; +pub const EMULTIHOP: ::c_int = 72; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENAVAIL: ::c_int = 119; +pub const ENETDOWN: ::c_int = 100; +pub const ENETRESET: ::c_int = 102; +pub const ENETUNREACH: ::c_int = 101; +pub const ENOANO: ::c_int = 55; +pub const ENOBUFS: ::c_int = 105; +pub const ENOCSI: ::c_int = 50; +pub const ENOKEY: ::c_int = 126; +pub const ENOLCK: ::c_int = 37; +pub const ENOMEDIUM: ::c_int = 123; +pub const ENOMSG: ::c_int = 42; +pub const ENOPROTOOPT: ::c_int = 92; +pub const ENOSYS: ::c_int = 38; +pub const ENOTCONN: ::c_int = 107; +pub const ENOTEMPTY: ::c_int = 39; +pub const ENOTNAM: ::c_int = 118; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ENOTSOCK: ::c_int = 88; +pub const ENOTSUP: ::c_int = 95; +pub const ENOTUNIQ: ::c_int = 76; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EOVERFLOW: ::c_int = 75; +pub const EOWNERDEAD: ::c_int = 130; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EREMCHG: ::c_int = 78; +pub const ERESTART: ::c_int = 85; +pub const ERFKILL: ::c_int = 132; +pub const ESHUTDOWN: ::c_int = 108; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const ESTALE: ::c_int = 116; +pub const ESTRPIPE: ::c_int = 86; +pub const ETOOMANYREFS: ::c_int = 109; +pub const EUCLEAN: ::c_int = 117; +pub const EUNATCH: ::c_int = 49; +pub const EUSERS: ::c_int = 87; +pub const EXFULL: ::c_int = 54; +pub const EXTPROC: ::c_int = 65536; +pub const F_EXLCK: ::c_int = 4; +pub const F_GETLK: ::c_int = 12; +pub const F_GETOWN: ::c_int = 9; +pub const F_GETOWNER_UIDS: ::c_int = 17; +pub const F_GETOWN_EX: ::c_int = 16; +pub const F_GETSIG: ::c_int = 11; +pub const FIOASYNC: ::c_int = 21586; +pub const FIOCLEX: ::c_int = 21585; +pub const FIONBIO: ::c_int = 21537; +pub const FIONCLEX: ::c_int = 21584; +pub const FIONREAD: ::c_int = 21531; +pub const FIOQSIZE: ::c_int = 21600; +pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024; +pub const FLUSHO: ::c_int = 4096; +pub const F_OFD_GETLK: ::c_int = 36; +pub const F_OFD_SETLK: ::c_int = 37; +pub const F_OFD_SETLKW: ::c_int = 38; +pub const F_OWNER_PGRP: ::c_int = 2; +pub const F_OWNER_PID: ::c_int = 1; +pub const F_OWNER_TID: ::c_int = 0; +pub const F_SETLK: ::c_int = 13; +pub const F_SETLKW: ::c_int = 14; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETOWN_EX: ::c_int = 15; +pub const F_SETSIG: ::c_int = 10; +pub const F_SHLCK: ::c_int = 8; +pub const IEXTEN: ::c_int = 32768; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const MAP_HUGE_MASK: ::c_int = 63; +pub const MAP_HUGE_SHIFT: ::c_int = 26; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_STACK: ::c_int = 131072; +pub const MAP_UNINITIALIZED: ::c_int = 0; +pub const O_APPEND: ::c_int = 1024; +pub const O_ASYNC: ::c_int = 8192; +pub const O_CREAT: ::c_int = 64; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_DSYNC: ::c_int = 4096; +pub const O_EXCL: ::c_int = 128; +pub const O_LARGEFILE: ::c_int = 32768; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const PF_FILE: ::c_int = 1; +pub const PF_KCM: ::c_int = 41; +pub const PF_MAX: ::c_int = 43; +pub const PF_QIPCRTR: ::c_int = 42; +pub const RLIMIT_AS: ::c_int = 9; +pub const RLIMIT_MEMLOCK: ::c_int = 8; +pub const RLIMIT_NOFILE: ::c_int = 7; +pub const RLIMIT_NPROC: ::c_int = 6; +pub const RLIMIT_RSS: ::c_int = 5; +pub const RLIM_NLIMITS: ::c_int = 16; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SIGBUS: ::c_int = 7; +pub const SIGCHLD: ::c_int = 17; +pub const SIGCONT: ::c_int = 18; +pub const SIGIO: ::c_int = 29; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPROF: ::c_int = 27; +pub const SIGPWR: ::c_int = 30; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGSTOP: ::c_int = 19; +pub const SIGSYS: ::c_int = 31; +pub const SIGTSTP: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGURG: ::c_int = 23; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGWINCH: ::c_int = 28; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIG_SETMASK: ::c_int = 2; // FIXME check these +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_NONBLOCK: ::c_int = 2048; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_STREAM: ::c_int = 1; +pub const SO_CNX_ADVICE: ::c_int = 53; +pub const SO_DETACH_BPF: ::c_int = 27; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_DOMAIN: ::c_int = 39; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_ERROR: ::c_int = 4; +pub const SO_GET_FILTER: ::c_int = 26; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SOL_CAIF: ::c_int = 278; +pub const SO_LINGER: ::c_int = 13; +pub const SOL_IUCV: ::c_int = 277; +pub const SOL_KCM: ::c_int = 281; +pub const SOL_NFC: ::c_int = 280; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SOL_PNPIPE: ::c_int = 275; +pub const SOL_PPPOL2TP: ::c_int = 273; +pub const SOL_RDS: ::c_int = 276; +pub const SOL_RXRPC: ::c_int = 272; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_TYPE: ::c_int = 3; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SYS3264_fadvise64: ::c_int = 223; +pub const SYS3264_fcntl: ::c_int = 25; +pub const SYS3264_fstatat: ::c_int = 79; +pub const SYS3264_fstat: ::c_int = 80; +pub const SYS3264_fstatfs: ::c_int = 44; +pub const SYS3264_ftruncate: ::c_int = 46; +pub const SYS3264_lseek: ::c_int = 62; +pub const SYS3264_lstat: ::c_int = 1039; +pub const SYS3264_mmap: ::c_int = 222; +pub const SYS3264_sendfile: ::c_int = 71; +pub const SYS3264_stat: ::c_int = 1038; +pub const SYS3264_statfs: ::c_int = 43; +pub const SYS3264_truncate: ::c_int = 45; +pub const SYS_accept4: ::c_int = 242; +pub const SYS_accept: ::c_int = 202; +pub const SYS_access: ::c_int = 1033; +pub const SYS_acct: ::c_int = 89; +pub const SYS_add_key: ::c_int = 217; +pub const SYS_adjtimex: ::c_int = 171; +pub const SYS_alarm: ::c_int = 1059; +pub const SYS_arch_specific_syscall: ::c_int = 244; +pub const SYS_bdflush: ::c_int = 1075; +pub const SYS_bind: ::c_int = 200; +pub const SYS_bpf: ::c_int = 280; +pub const SYS_brk: ::c_int = 214; +pub const SYS_capget: ::c_int = 90; +pub const SYS_capset: ::c_int = 91; +pub const SYS_chdir: ::c_int = 49; +pub const SYS_chmod: ::c_int = 1028; +pub const SYS_chown: ::c_int = 1029; +pub const SYS_chroot: ::c_int = 51; +pub const SYS_clock_adjtime: ::c_int = 266; +pub const SYS_clock_getres: ::c_int = 114; +pub const SYS_clock_gettime: ::c_int = 113; +pub const SYS_clock_nanosleep: ::c_int = 115; +pub const SYS_clock_settime: ::c_int = 112; +pub const SYS_clone: ::c_int = 220; +pub const SYS_close: ::c_int = 57; +pub const SYS_connect: ::c_int = 203; +pub const SYS_copy_file_range: ::c_int = -1; // FIXME +pub const SYS_creat: ::c_int = 1064; +pub const SYS_delete_module: ::c_int = 106; +pub const SYS_dup2: ::c_int = 1041; +pub const SYS_dup3: ::c_int = 24; +pub const SYS_dup: ::c_int = 23; +pub const SYS_epoll_create1: ::c_int = 20; +pub const SYS_epoll_create: ::c_int = 1042; +pub const SYS_epoll_ctl: ::c_int = 21; +pub const SYS_epoll_pwait: ::c_int = 22; +pub const SYS_epoll_wait: ::c_int = 1069; +pub const SYS_eventfd2: ::c_int = 19; +pub const SYS_eventfd: ::c_int = 1044; +pub const SYS_execveat: ::c_int = 281; +pub const SYS_execve: ::c_int = 221; +pub const SYS_exit: ::c_int = 93; +pub const SYS_exit_group: ::c_int = 94; +pub const SYS_faccessat: ::c_int = 48; +pub const SYS_fadvise64_64: ::c_int = 223; +pub const SYS_fallocate: ::c_int = 47; +pub const SYS_fanotify_init: ::c_int = 262; +pub const SYS_fanotify_mark: ::c_int = 263; +pub const SYS_fchdir: ::c_int = 50; +pub const SYS_fchmodat: ::c_int = 53; +pub const SYS_fchmod: ::c_int = 52; +pub const SYS_fchownat: ::c_int = 54; +pub const SYS_fchown: ::c_int = 55; +pub const SYS_fcntl64: ::c_int = 25; +pub const SYS_fcntl: ::c_int = 25; +pub const SYS_fdatasync: ::c_int = 83; +pub const SYS_fgetxattr: ::c_int = 10; +pub const SYS_finit_module: ::c_int = 273; +pub const SYS_flistxattr: ::c_int = 13; +pub const SYS_flock: ::c_int = 32; +pub const SYS_fork: ::c_int = 1079; +pub const SYS_fremovexattr: ::c_int = 16; +pub const SYS_fsetxattr: ::c_int = 7; +pub const SYS_fstat64: ::c_int = 80; +pub const SYS_fstatat64: ::c_int = 79; +pub const SYS_fstatfs64: ::c_int = 44; +pub const SYS_fstatfs: ::c_int = 44; +pub const SYS_fsync: ::c_int = 82; +pub const SYS_ftruncate64: ::c_int = 46; +pub const SYS_ftruncate: ::c_int = 46; +pub const SYS_futex: ::c_int = 98; +pub const SYS_futimesat: ::c_int = 1066; +pub const SYS_getcpu: ::c_int = 168; +pub const SYS_getcwd: ::c_int = 17; +pub const SYS_getdents64: ::c_int = 61; +pub const SYS_getdents: ::c_int = 1065; +pub const SYS_getegid: ::c_int = 177; +pub const SYS_geteuid: ::c_int = 175; +pub const SYS_getgid: ::c_int = 176; +pub const SYS_getgroups: ::c_int = 158; +pub const SYS_getitimer: ::c_int = 102; +pub const SYS_get_mempolicy: ::c_int = 236; +pub const SYS_getpeername: ::c_int = 205; +pub const SYS_getpgid: ::c_int = 155; +pub const SYS_getpgrp: ::c_int = 1060; +pub const SYS_getpid: ::c_int = 172; +pub const SYS_getppid: ::c_int = 173; +pub const SYS_getpriority: ::c_int = 141; +pub const SYS_getrandom: ::c_int = 278; +pub const SYS_getresgid: ::c_int = 150; +pub const SYS_getresuid: ::c_int = 148; +pub const SYS_getrlimit: ::c_int = 163; +pub const SYS_get_robust_list: ::c_int = 100; +pub const SYS_getrusage: ::c_int = 165; +pub const SYS_getsid: ::c_int = 156; +pub const SYS_getsockname: ::c_int = 204; +pub const SYS_getsockopt: ::c_int = 209; +pub const SYS_gettid: ::c_int = 178; +pub const SYS_gettimeofday: ::c_int = 169; +pub const SYS_getuid: ::c_int = 174; +pub const SYS_getxattr: ::c_int = 8; +pub const SYS_init_module: ::c_int = 105; +pub const SYS_inotify_add_watch: ::c_int = 27; +pub const SYS_inotify_init1: ::c_int = 26; +pub const SYS_inotify_init: ::c_int = 1043; +pub const SYS_inotify_rm_watch: ::c_int = 28; +pub const SYS_io_cancel: ::c_int = 3; +pub const SYS_ioctl: ::c_int = 29; +pub const SYS_io_destroy: ::c_int = 1; +pub const SYS_io_getevents: ::c_int = 4; +pub const SYS_ioprio_get: ::c_int = 31; +pub const SYS_ioprio_set: ::c_int = 30; +pub const SYS_io_setup: ::c_int = 0; +pub const SYS_io_submit: ::c_int = 2; +pub const SYS_kcmp: ::c_int = 272; +pub const SYS_kexec_load: ::c_int = 104; +pub const SYS_keyctl: ::c_int = 219; +pub const SYS_kill: ::c_int = 129; +pub const SYS_lchown: ::c_int = 1032; +pub const SYS_lgetxattr: ::c_int = 9; +pub const SYS_linkat: ::c_int = 37; +pub const SYS_link: ::c_int = 1025; +pub const SYS_listen: ::c_int = 201; +pub const SYS_listxattr: ::c_int = 11; +pub const SYS_llistxattr: ::c_int = 12; +pub const SYS__llseek: ::c_int = 62; +pub const SYS_lookup_dcookie: ::c_int = 18; +pub const SYS_lremovexattr: ::c_int = 15; +pub const SYS_lseek: ::c_int = 62; +pub const SYS_lsetxattr: ::c_int = 6; +pub const SYS_lstat64: ::c_int = 1039; +pub const SYS_lstat: ::c_int = 1039; +pub const SYS_madvise: ::c_int = 233; +pub const SYS_mbind: ::c_int = 235; +pub const SYS_memfd_create: ::c_int = 279; +pub const SYS_migrate_pages: ::c_int = 238; +pub const SYS_mincore: ::c_int = 232; +pub const SYS_mkdirat: ::c_int = 34; +pub const SYS_mkdir: ::c_int = 1030; +pub const SYS_mknodat: ::c_int = 33; +pub const SYS_mknod: ::c_int = 1027; +pub const SYS_mlockall: ::c_int = 230; +pub const SYS_mlock: ::c_int = 228; +pub const SYS_mmap2: ::c_int = 222; +pub const SYS_mount: ::c_int = 40; +pub const SYS_move_pages: ::c_int = 239; +pub const SYS_mprotect: ::c_int = 226; +pub const SYS_mq_getsetattr: ::c_int = 185; +pub const SYS_mq_notify: ::c_int = 184; +pub const SYS_mq_open: ::c_int = 180; +pub const SYS_mq_timedreceive: ::c_int = 183; +pub const SYS_mq_timedsend: ::c_int = 182; +pub const SYS_mq_unlink: ::c_int = 181; +pub const SYS_mremap: ::c_int = 216; +pub const SYS_msgctl: ::c_int = 187; +pub const SYS_msgget: ::c_int = 186; +pub const SYS_msgrcv: ::c_int = 188; +pub const SYS_msgsnd: ::c_int = 189; +pub const SYS_msync: ::c_int = 227; +pub const SYS_munlockall: ::c_int = 231; +pub const SYS_munlock: ::c_int = 229; +pub const SYS_munmap: ::c_int = 215; +pub const SYS_name_to_handle_at: ::c_int = 264; +pub const SYS_nanosleep: ::c_int = 101; +pub const SYS_newfstatat: ::c_int = 79; +pub const SYS_nfsservctl: ::c_int = 42; +pub const SYS_oldwait4: ::c_int = 1072; +pub const SYS_openat: ::c_int = 56; +pub const SYS_open_by_handle_at: ::c_int = 265; +pub const SYS_open: ::c_int = 1024; +pub const SYS_pause: ::c_int = 1061; +pub const SYS_perf_event_open: ::c_int = 241; +pub const SYS_personality: ::c_int = 92; +pub const SYS_pipe2: ::c_int = 59; +pub const SYS_pipe: ::c_int = 1040; +pub const SYS_pivot_root: ::c_int = 41; +pub const SYS_poll: ::c_int = 1068; +pub const SYS_ppoll: ::c_int = 73; +pub const SYS_prctl: ::c_int = 167; +pub const SYS_pread64: ::c_int = 67; +pub const SYS_preadv: ::c_int = 69; +pub const SYS_prlimit64: ::c_int = 261; +pub const SYS_process_vm_readv: ::c_int = 270; +pub const SYS_process_vm_writev: ::c_int = 271; +pub const SYS_pselect6: ::c_int = 72; +pub const SYS_ptrace: ::c_int = 117; +pub const SYS_pwrite64: ::c_int = 68; +pub const SYS_pwritev: ::c_int = 70; +pub const SYS_quotactl: ::c_int = 60; +pub const SYS_readahead: ::c_int = 213; +pub const SYS_read: ::c_int = 63; +pub const SYS_readlinkat: ::c_int = 78; +pub const SYS_readlink: ::c_int = 1035; +pub const SYS_readv: ::c_int = 65; +pub const SYS_reboot: ::c_int = 142; +pub const SYS_recv: ::c_int = 1073; +pub const SYS_recvfrom: ::c_int = 207; +pub const SYS_recvmmsg: ::c_int = 243; +pub const SYS_recvmsg: ::c_int = 212; +pub const SYS_remap_file_pages: ::c_int = 234; +pub const SYS_removexattr: ::c_int = 14; +pub const SYS_renameat2: ::c_int = 276; +pub const SYS_renameat: ::c_int = 38; +pub const SYS_rename: ::c_int = 1034; +pub const SYS_request_key: ::c_int = 218; +pub const SYS_restart_syscall: ::c_int = 128; +pub const SYS_rmdir: ::c_int = 1031; +pub const SYS_rt_sigaction: ::c_int = 134; +pub const SYS_rt_sigpending: ::c_int = 136; +pub const SYS_rt_sigprocmask: ::c_int = 135; +pub const SYS_rt_sigqueueinfo: ::c_int = 138; +pub const SYS_rt_sigreturn: ::c_int = 139; +pub const SYS_rt_sigsuspend: ::c_int = 133; +pub const SYS_rt_sigtimedwait: ::c_int = 137; +pub const SYS_rt_tgsigqueueinfo: ::c_int = 240; +pub const SYS_sched_getaffinity: ::c_int = 123; +pub const SYS_sched_getattr: ::c_int = 275; +pub const SYS_sched_getparam: ::c_int = 121; +pub const SYS_sched_get_priority_max: ::c_int = 125; +pub const SYS_sched_get_priority_min: ::c_int = 126; +pub const SYS_sched_getscheduler: ::c_int = 120; +pub const SYS_sched_rr_get_interval: ::c_int = 127; +pub const SYS_sched_setaffinity: ::c_int = 122; +pub const SYS_sched_setattr: ::c_int = 274; +pub const SYS_sched_setparam: ::c_int = 118; +pub const SYS_sched_setscheduler: ::c_int = 119; +pub const SYS_sched_yield: ::c_int = 124; +pub const SYS_seccomp: ::c_int = 277; +pub const SYS_select: ::c_int = 1067; +pub const SYS_semctl: ::c_int = 191; +pub const SYS_semget: ::c_int = 190; +pub const SYS_semop: ::c_int = 193; +pub const SYS_semtimedop: ::c_int = 192; +pub const SYS_send: ::c_int = 1074; +pub const SYS_sendfile64: ::c_int = 71; +pub const SYS_sendfile: ::c_int = 71; +pub const SYS_sendmmsg: ::c_int = 269; +pub const SYS_sendmsg: ::c_int = 211; +pub const SYS_sendto: ::c_int = 206; +pub const SYS_setdomainname: ::c_int = 162; +pub const SYS_setfsgid: ::c_int = 152; +pub const SYS_setfsuid: ::c_int = 151; +pub const SYS_setgid: ::c_int = 144; +pub const SYS_setgroups: ::c_int = 159; +pub const SYS_sethostname: ::c_int = 161; +pub const SYS_setitimer: ::c_int = 103; +pub const SYS_set_mempolicy: ::c_int = 237; +pub const SYS_setns: ::c_int = 268; +pub const SYS_setpgid: ::c_int = 154; +pub const SYS_setpriority: ::c_int = 140; +pub const SYS_setregid: ::c_int = 143; +pub const SYS_setresgid: ::c_int = 149; +pub const SYS_setresuid: ::c_int = 147; +pub const SYS_setreuid: ::c_int = 145; +pub const SYS_setrlimit: ::c_int = 164; +pub const SYS_set_robust_list: ::c_int = 99; +pub const SYS_setsid: ::c_int = 157; +pub const SYS_setsockopt: ::c_int = 208; +pub const SYS_set_tid_address: ::c_int = 96; +pub const SYS_settimeofday: ::c_int = 170; +pub const SYS_setuid: ::c_int = 146; +pub const SYS_setxattr: ::c_int = 5; +pub const SYS_shmat: ::c_int = 196; +pub const SYS_shmctl: ::c_int = 195; +pub const SYS_shmdt: ::c_int = 197; +pub const SYS_shmget: ::c_int = 194; +pub const SYS_shutdown: ::c_int = 210; +pub const SYS_sigaltstack: ::c_int = 132; +pub const SYS_signalfd4: ::c_int = 74; +pub const SYS_signalfd: ::c_int = 1045; +pub const SYS_socket: ::c_int = 198; +pub const SYS_socketpair: ::c_int = 199; +pub const SYS_splice: ::c_int = 76; +pub const SYS_stat64: ::c_int = 1038; +pub const SYS_stat: ::c_int = 1038; +pub const SYS_statfs64: ::c_int = 43; +pub const SYS_swapoff: ::c_int = 225; +pub const SYS_swapon: ::c_int = 224; +pub const SYS_symlinkat: ::c_int = 36; +pub const SYS_symlink: ::c_int = 1036; +pub const SYS_sync: ::c_int = 81; +pub const SYS_sync_file_range2: ::c_int = 84; +pub const SYS_sync_file_range: ::c_int = 84; +pub const SYS_syncfs: ::c_int = 267; +pub const SYS_syscalls: ::c_int = 1080; +pub const SYS__sysctl: ::c_int = 1078; +pub const SYS_sysinfo: ::c_int = 179; +pub const SYS_syslog: ::c_int = 116; +pub const SYS_tee: ::c_int = 77; +pub const SYS_tgkill: ::c_int = 131; +pub const SYS_time: ::c_int = 1062; +pub const SYS_timer_create: ::c_int = 107; +pub const SYS_timer_delete: ::c_int = 111; +pub const SYS_timerfd_create: ::c_int = 85; +pub const SYS_timerfd_gettime: ::c_int = 87; +pub const SYS_timerfd_settime: ::c_int = 86; +pub const SYS_timer_getoverrun: ::c_int = 109; +pub const SYS_timer_gettime: ::c_int = 108; +pub const SYS_timer_settime: ::c_int = 110; +pub const SYS_times: ::c_int = 153; +pub const SYS_tkill: ::c_int = 130; +pub const SYS_truncate64: ::c_int = 45; +pub const SYS_truncate: ::c_int = 45; +pub const SYS_umask: ::c_int = 166; +pub const SYS_umount2: ::c_int = 39; +pub const SYS_umount: ::c_int = 1076; +pub const SYS_uname: ::c_int = 160; +pub const SYS_unlinkat: ::c_int = 35; +pub const SYS_unlink: ::c_int = 1026; +pub const SYS_unshare: ::c_int = 97; +pub const SYS_uselib: ::c_int = 1077; +pub const SYS_ustat: ::c_int = 1070; +pub const SYS_utime: ::c_int = 1063; +pub const SYS_utimensat: ::c_int = 88; +pub const SYS_utimes: ::c_int = 1037; +pub const SYS_vfork: ::c_int = 1071; +pub const SYS_vhangup: ::c_int = 58; +pub const SYS_vmsplice: ::c_int = 75; +pub const SYS_wait4: ::c_int = 260; +pub const SYS_waitid: ::c_int = 95; +pub const SYS_write: ::c_int = 64; +pub const SYS_writev: ::c_int = 66; +pub const TCFLSH: ::c_int = 21515; +pub const TCGETA: ::c_int = 21509; +pub const TCGETS: ::c_int = 21505; +pub const TCGETX: ::c_int = 21554; +pub const TCSBRK: ::c_int = 21513; +pub const TCSBRKP: ::c_int = 21541; +pub const TCSETA: ::c_int = 21510; +pub const TCSETAF: ::c_int = 21512; +pub const TCSETAW: ::c_int = 21511; +pub const TCSETS: ::c_int = 21506; +pub const TCSETSF: ::c_int = 21508; +pub const TCSETSW: ::c_int = 21507; +pub const TCSETX: ::c_int = 21555; +pub const TCSETXF: ::c_int = 21556; +pub const TCSETXW: ::c_int = 21557; +pub const TCXONC: ::c_int = 21514; +pub const TIOCCBRK: ::c_int = 21544; +pub const TIOCCONS: ::c_int = 21533; +pub const TIOCEXCL: ::c_int = 21516; +pub const TIOCGETD: ::c_int = 21540; +pub const TIOCGICOUNT: ::c_int = 21597; +pub const TIOCGLCKTRMIOS: ::c_int = 21590; +pub const TIOCGPGRP: ::c_int = 21519; +pub const TIOCGRS485: ::c_int = 21550; +pub const TIOCGSERIAL: ::c_int = 21534; +pub const TIOCGSID: ::c_int = 21545; +pub const TIOCGSOFTCAR: ::c_int = 21529; +pub const TIOCGWINSZ: ::c_int = 21523; +pub const TIOCLINUX: ::c_int = 21532; +pub const TIOCMBIC: ::c_int = 21527; +pub const TIOCMBIS: ::c_int = 21526; +pub const TIOCM_CAR: ::c_int = 64; +pub const TIOCM_CD: ::c_int = 64; +pub const TIOCM_CTS: ::c_int = 32; +pub const TIOCM_DSR: ::c_int = 256; +pub const TIOCM_DTR: ::c_int = 2; +pub const TIOCMGET: ::c_int = 21525; +pub const TIOCMIWAIT: ::c_int = 21596; +pub const TIOCM_LE: ::c_int = 1; +pub const TIOCM_LOOP: ::c_int = 32768; +pub const TIOCM_OUT1: ::c_int = 8192; +pub const TIOCM_OUT2: ::c_int = 16384; +pub const TIOCM_RI: ::c_int = 128; +pub const TIOCM_RNG: ::c_int = 128; +pub const TIOCM_RTS: ::c_int = 4; +pub const TIOCMSET: ::c_int = 21528; +pub const TIOCM_SR: ::c_int = 16; +pub const TIOCM_ST: ::c_int = 8; +pub const TIOCNOTTY: ::c_int = 21538; +pub const TIOCNXCL: ::c_int = 21517; +pub const TIOCOUTQ: ::c_int = 21521; +pub const TIOCPKT: ::c_int = 21536; +pub const TIOCPKT_DATA: ::c_int = 0; +pub const TIOCPKT_DOSTOP: ::c_int = 32; +pub const TIOCPKT_FLUSHREAD: ::c_int = 1; +pub const TIOCPKT_FLUSHWRITE: ::c_int = 2; +pub const TIOCPKT_IOCTL: ::c_int = 64; +pub const TIOCPKT_NOSTOP: ::c_int = 16; +pub const TIOCPKT_START: ::c_int = 8; +pub const TIOCPKT_STOP: ::c_int = 4; +pub const TIOCSBRK: ::c_int = 21543; +pub const TIOCSCTTY: ::c_int = 21518; +pub const TIOCSERCONFIG: ::c_int = 21587; +pub const TIOCSERGETLSR: ::c_int = 21593; +pub const TIOCSERGETMULTI: ::c_int = 21594; +pub const TIOCSERGSTRUCT: ::c_int = 21592; +pub const TIOCSERGWILD: ::c_int = 21588; +pub const TIOCSERSETMULTI: ::c_int = 21595; +pub const TIOCSERSWILD: ::c_int = 21589; +pub const TIOCSER_TEMT: ::c_int = 1; +pub const TIOCSETD: ::c_int = 21539; +pub const TIOCSLCKTRMIOS: ::c_int = 21591; +pub const TIOCSPGRP: ::c_int = 21520; +pub const TIOCSRS485: ::c_int = 21551; +pub const TIOCSSERIAL: ::c_int = 21535; +pub const TIOCSSOFTCAR: ::c_int = 21530; +pub const TIOCSTI: ::c_int = 21522; +pub const TIOCSWINSZ: ::c_int = 21524; +pub const TIOCVHANGUP: ::c_int = 21559; +pub const TOSTOP: ::c_int = 256; +pub const VEOF: ::c_int = 4; +pub const VEOL2: ::c_int = 16; +pub const VEOL: ::c_int = 11; +pub const VMIN: ::c_int = 6; diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 4128a8e4da6d0..0de23257a7b8f 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -56,6 +56,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "powerpc"))] { mod powerpc; pub use self::powerpc::*; + } else if #[cfg(any(target_arch = "hexagon"))] { + mod hexagon; + pub use self::hexagon::*; } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 46a50e4953523..e47af4f280670 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -414,8 +414,9 @@ cfg_if! { pub use self::b64::*; } else if #[cfg(any(target_arch = "x86", target_arch = "mips", - target_arch = "arm", - target_arch = "powerpc"))] { + target_arch = "powerpc", + target_arch = "hexagon", + target_arch = "arm"))] { mod b32; pub use self::b32::*; } else { } From 6ca5bfaea17f5c48843abb46dc22771fbe5fda2d Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 28 May 2019 19:10:23 +0200 Subject: [PATCH 084/296] Setup Azure Pipelines --- .travis.yml | 256 -------------------------------------- README.md | 2 +- azure-pipelines.yml | 173 ++++++++++++++++++++++++++ ci/azure-install-rust.yml | 49 ++++++++ ci/build.sh | 42 +++++-- ci/dox.sh | 8 ++ ci/run-docker.sh | 15 ++- ci/semver.sh | 9 +- ci/style.sh | 19 +++ libc-test/build.rs | 3 +- src/unix/bsd/apple/b32.rs | 4 + src/unix/bsd/apple/b64.rs | 4 + src/unix/bsd/apple/mod.rs | 3 - 13 files changed, 309 insertions(+), 278 deletions(-) delete mode 100644 .travis.yml create mode 100644 azure-pipelines.yml create mode 100644 ci/azure-install-rust.yml create mode 100644 ci/style.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6a7ddb386bae0..0000000000000 --- a/.travis.yml +++ /dev/null @@ -1,256 +0,0 @@ -language: rust -rust: nightly -sudo: required -dist: xenial -services: docker - -stages: - - tools-and-build-and-tier1 - - tier2 - -matrix: - include: - # TOOLS - - name: "Documentation" - env: TARGET=x86_64-unknown-linux-gnu - script: sh ci/dox.sh - install: - - travis_retry rustup component add rust-src - - travis_retry cargo install xargo - stage: tools-and-build-and-tier1 - - name: "Shellcheck" - install: true - script: - - shellcheck --version - # FIXME: https://github.com/koalaman/shellcheck/issues/1591 - - shellcheck -e SC2103 ci/*.sh - stage: tools-and-build-and-tier1 - - name: "Style" - install: true - script: - - rustc ci/style.rs && ./style src - # Disabled due to rust-lang/rustfmt#3341 - #- | - # if rustup component add rustfmt-preview ; then - # cargo fmt --all -- --check - # fi - stage: tools-and-build-and-tier1 - - name: "Semver Linux" - install: travis_retry cargo +nightly install semverver - script: sh ci/semver.sh - stage: tools-and-build-and-tier1 - - name: "Semver MacOSX" - install: travis_retry cargo +nightly install semverver - script: sh ci/semver.sh - os: osx - osx_image: xcode10 - stage: tools-and-build-and-tier1 - - # BUILD stable, beta, nightly - - name: "Build Stable Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: stable - install: true - - name: "Build Beta Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: beta - install: true - - name: "Build Nightly Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: nightly - install: - - travis_retry rustup component add rust-src - - travis_retry cargo install xargo - - name: "Build Stable Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: stable - os: osx - osx_image: xcode10 - install: true - - name: "Build Beta Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: beta - os: osx - osx_image: xcode10 - install: true - - name: "Build Nightly Rust" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: nightly - os: osx - osx_image: xcode10 - install: true - - name: "Build Stable Rust 1.13.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.13.0 - install: true - - name: "Build Stable Rust 1.19.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.19.0 - install: true - - name: "Build Stable Rust 1.24.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.24.0 - install: true - - name: "Build Stable Rust 1.25.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.25.0 - install: true - - name: "Build Stable Rust 1.30.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.30.0 - install: true - - name: "Build Stable Rust 1.13.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.13.0 - os: osx - osx_image: xcode10 - install: true - - name: "Build Stable Rust 1.19.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.19.0 - os: osx - osx_image: xcode10 - install: true - - name: "Build Stable Rust 1.24.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.24.0 - os: osx - osx_image: xcode10 - install: true - - name: "Build Stable Rust 1.25.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.25.0 - os: osx - osx_image: xcode10 - install: true - - name: "Build Stable Rust 1.30.0" - script: sh ci/build.sh - stage: tools-and-build-and-tier1 - rust: 1.30.0 - os: osx - osx_image: xcode10 - install: true - - env: TARGET=i686-apple-darwin - os: osx - osx_image: xcode10 - stage: tools-and-build-and-tier1 - - env: TARGET=i686-unknown-linux-gnu - stage: tools-and-build-and-tier1 - - env: TARGET=x86_64-apple-darwin - os: osx - osx_image: xcode10 - install: true - stage: tools-and-build-and-tier1 - - env: TARGET=x86_64-unknown-linux-gnu - stage: tools-and-build-and-tier1 - install: true - - # Tier 2 targets - - env: TARGET=aarch64-linux-android - stage: tier2 - - env: TARGET=aarch64-unknown-linux-gnu - stage: tier2 - - env: TARGET=aarch64-unknown-linux-musl - stage: tier2 - - env: TARGET=arm-linux-androideabi - stage: tier2 - - env: TARGET=arm-unknown-linux-gnueabihf - stage: tier2 - - env: TARGET=arm-unknown-linux-musleabihf - stage: tier2 - - env: TARGET=asmjs-unknown-emscripten - stage: tier2 - - env: TARGET=i686-linux-android - stage: tier2 - - env: TARGET=i686-unknown-linux-musl - stage: tier2 - - env: TARGET=mips-unknown-linux-gnu - stage: tier2 - - env: TARGET=mips-unknown-linux-musl - stage: tier2 - - env: TARGET=mips64-unknown-linux-gnuabi64 - stage: tier2 - - env: TARGET=mips64el-unknown-linux-gnuabi64 - stage: tier2 - - env: TARGET=mipsel-unknown-linux-musl - stage: tier2 - - env: TARGET=powerpc-unknown-linux-gnu - stage: tier2 - - env: TARGET=powerpc64-unknown-linux-gnu - stage: tier2 - - env: TARGET=powerpc64le-unknown-linux-gnu - stage: tier2 - - env: TARGET=s390x-unknown-linux-gnu - stage: tier2 - - env: TARGET=sparc64-unknown-linux-gnu - stage: tier2 - - env: TARGET=wasm32-unknown-emscripten - stage: tier2 - - env: TARGET=x86_64-linux-android - stage: tier2 - - env: TARGET=x86_64-unknown-linux-gnux32 OPT="--release" - stage: tier2 - - env: TARGET=x86_64-unknown-linux-musl - stage: tier2 - - env: TARGET=wasm32-wasi - rust: nightly - stage: tier2 - - name: "Nintendo Switch - build libcore only" - rust: nightly - stage: tier2 - install: - - rustup component add rust-src - - (test -x $HOME/.cargo/bin/cargo-xbuild || cargo install cargo-xbuild) - script: - - mkdir -p target - - cd target - - wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb - - sudo dpkg -i devkitpro-pacman.deb - - sudo dkp-pacman -Sy - - sudo dkp-pacman -Syu - - sudo dkp-pacman -S -v --noconfirm switch-dev devkitA64 - - export PATH="$PATH:/opt/devkitpro/devkitA64/bin" - - export PATH="$PATH:/opt/devkitpro/tools/bin" - - cd .. - # Pull the target spec up into the current directory and then build - - mv ci/switch.json switch.json - - cargo xbuild --target switch.json - - allow_failures: - - name: "Semver Linux" - - name: "Semver MacOSX" - - env: TARGET=wasm32-wasi - - env: TARGET=powerpc-unknown-linux-gnu - - env: TARGET=s390x-unknown-linux-gnu - -install: travis_retry rustup target add $TARGET - -script: - - cargo generate-lockfile --manifest-path libc-test/Cargo.toml - - if [[ $TRAVIS_OS_NAME = "linux" ]] && [[ $BUILD_ONLY != "1" ]]; then - sh ci/run-docker.sh $TARGET; - else - sh ci/run.sh $TARGET; - fi -env: - global: - secure: "e2/3QjgRN9atOuSHp22TrYG7QVKcYUWY48Hi9b60w+r1+BhPkTseIJLte7WefRhdXtqpjjUJTooKDhnurFOeHaCT+nmBgiv+FPU893sBl4bhesY4m0vgUJVbNZcs6lTImYekWVb+aqjGdgV/XAgCw7c3kPmrZV0MzGDWL64Xaps=" - -notifications: - email: - on_success: never diff --git a/README.md b/README.md index dc5ff04fccff7..4ca2e9447b937 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Travis-CI Status]][Travis-CI] [![Appveyor Status]][Appveyor] [![Cirrus-CI Status]][Cirrus-CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] +[![Build Status](https://dev.azure.com/rust-lang/libc/_apis/build/status/rust-lang.libc?branchName=master)](https://dev.azure.com/rust-lang/libc/_build/latest?definitionId=11&branchName=master) [![Appveyor Status]][Appveyor] [![Cirrus-CI Status]][Cirrus-CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] libc - Raw FFI bindings to platforms' system libraries ==== diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000000000..00878c7519ed7 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,173 @@ +trigger: + - master + +jobs: + - job: DockerLinux + pool: + vmImage: ubuntu-16.04 + steps: + - template: ci/azure-install-rust.yml + - bash: sh ./ci/run-docker.sh $TARGET + displayName: Execute run-docker.sh + strategy: + matrix: + aarch64-unknown-linux-android: + TARGET: aarch64-linux-android + aarch64-unknown-linux-gnu: + TARGET: aarch64-unknown-linux-gnu + aarch64-unknown-linux-musl: + TARGET: aarch64-unknown-linux-musl + arm-linux-androideabi: + TARGET: arm-linux-androideabi + arm-unknown-linux-gnueabihf: + TARGET: arm-unknown-linux-gnueabihf + arm-unknown-linux-musleabihf: + TARGET: arm-unknown-linux-musleabihf + asmjs-unknown-emscripten: + TARGET: asmjs-unknown-emscripten + i686-linux-android: + TARGET: i686-linux-android + i686-unknown-linux-gnu: + TARGET: i686-unknown-linux-gnu + i686-unknown-linux-musl: + TARGET: i686-unknown-linux-musl + mips-unknown-linux-gnu: + TARGET: mips-unknown-linux-gnu + mips-unknown-linux-musl: + TARGET: mips-unknown-linux-musl + mips64-unknown-linux-gnuabi64: + TARGET: mips64-unknown-linux-gnuabi64 + mips64el-unknown-linux-gnuabi64: + TARGET: mips64el-unknown-linux-gnuabi64 + mipsel-unknown-linux-musl: + TARGET: mipsel-unknown-linux-musl + #powerpc-unknown-linux-gnu: + # TARGET: powerpc-unknown-linux-gnu + powerpc64-unknown-linux-gnu: + TARGET: powerpc64-unknown-linux-gnu + powerpc64le-unknown-linux-gnu: + TARGET: powerpc64le-unknown-linux-gnu + #s390x-unknown-linux-gnu: + # TARGET: s390x-unknown-linux-gnu + #wasm32-wasi + # TARGET: wasm32-wasi + sparc64-unknown-linux-gnu: + TARGET: sparc64-unknown-linux-gnu + wasm32-unknown-emscripten: + TARGET: wasm32-unknown-emscripten + x86_64-linux-android: + TARGET: x86_64-linux-android + x86_64-unknown-linux-gnu: + TARGET: x86_64-unknown-linux-gnu + x86_64-unknown-linux-gnux32: + TARGET: x86_64-unknown-linux-gnux32 + x86_64-unknown-linux-musl: + TARGET: x86_64-unknown-linux-musl + + - job: DockerOSX64 + pool: + vmImage: macos-10.14 + steps: + - template: ci/azure-install-rust.yml + - bash: sh ./ci/run.sh $TARGET + displayName: Execute run.sh + strategy: + matrix: + x86_64-apple-darwin: + TARGET: x86_64-apple-darwin + + - job: DockerOSX32 + pool: + vmImage: macos-10.13 + steps: + - template: ci/azure-install-rust.yml + - bash: sh ./ci/run.sh $TARGET + displayName: Execute run.sh + strategy: + matrix: + i686-apple-darwin: + TARGET: i686-apple-darwin + + - job: StyleAndDocs + pool: + vmImage: ubuntu-16.04 + steps: + - template: ci/azure-install-rust.yml + - script: sh ci/style.sh + displayName: Check style + - script: sh ci/dox.sh + displayName: Generate and upload documentation + + - job: SemverLinux + continueOnError: true + pool: + vmImage: ubuntu-16.04 + steps: + - template: ci/azure-install-rust.yml + - script: sh ci/semver.sh linux + displayName: Check breaking changes + + - job: SemverOSX + continueOnError: true + pool: + vmImage: macos-10.14 + steps: + - template: ci/azure-install-rust.yml + - script: sh ci/semver.sh osx + displayName: Check breaking changes + + - job: BuildChannelsLinux + pool: + vmImage: ubuntu-16.04 + steps: + - template: ci/azure-install-rust.yml + - script: sh ./ci/build.sh + displayName: Execute build.sh + strategy: + matrix: + stable: + TOOLCHAIN: stable + beta: + TOOLCHAIN: beta + nightly: + TOOLCHAIN: nightly + 1.13.0: + TOOLCHAIN: 1.13.0 + 1.19.0: + TOOLCHAIN: 1.19.0 + 1.24.0: + TOOLCHAIN: 1.24.0 + 1.25.0: + TOOLCHAIN: 1.25.0 + 1.30.0: + TOOLCHAIN: 1.30.0 + variables: + OS: linux + + - job: BuildChannelsOSX + pool: + vmImage: macos-10.13 + steps: + - template: ci/azure-install-rust.yml + - script: sh ./ci/build.sh + displayName: Execute build.sh + strategy: + matrix: + stable: + TOOLCHAIN: stable + beta: + TOOLCHAIN: beta + nightly: + TOOLCHAIN: nightly + 1.13.0: + TOOLCHAIN: 1.13.0 + 1.19.0: + TOOLCHAIN: 1.19.0 + 1.24.0: + TOOLCHAIN: 1.24.0 + 1.25.0: + TOOLCHAIN: 1.25.0 + 1.30.0: + TOOLCHAIN: 1.30.0 + variables: + OS: osx diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml new file mode 100644 index 0000000000000..1f4071309c700 --- /dev/null +++ b/ci/azure-install-rust.yml @@ -0,0 +1,49 @@ +steps: + - bash: | + set -ex + toolchain=$TOOLCHAIN + if [ "$toolchain" = "" ]; then + toolchain=nightly + fi + if command -v rustup; then + rustup update $toolchain + rustup default $toolchain + else + curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain + echo "##vso[task.prependpath]$HOME/.cargo/bin" + fi + displayName: Install rust (unix) + condition: ne( variables['Agent.OS'], 'Windows_NT' ) + - script: | + if not defined TOOLCHAIN set TOOLCHAIN=nightly + curl -sSf -o rustup-init.exe https://win.rustup.rs + rustup-init.exe -y --default-toolchain %TOOLCHAIN%-%TARGET% + echo ##vso[task.prependpath]%USERPROFILE%\.cargo\bin + displayName: Install rust (windows) + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + - script: | + set -ex + if [ -n "${TARGET}" ]; then + rustup target add $TARGET + fi + condition: ne( variables['Agent.OS'], 'Windows_NT' ) + displayName: Install target (unix) + - script: if defined TARGET rustup target add %TARGET% + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Install target (windows) + - script: | + set -ex + rustc -Vv + cargo -V + rustup -Vv + rustup show + which rustc + which cargo + which rustup + displayName: Query rust and cargo versions + - script: | + set -ex + cargo generate-lockfile + cargo generate-lockfile --manifest-path libc-test/Cargo.toml + displayName: Generate lockfiles + diff --git a/ci/build.sh b/ci/build.sh index 00fbe35e98406..abec755d6f68c 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -5,13 +5,20 @@ set -ex -RUST=${TRAVIS_RUST_VERSION} -OS=${TRAVIS_OS_NAME} +: "${TOOLCHAIN?The TOOLCHAIN environment variable must be set.}" +: "${OS?The OS environment variable must be set.}" + +RUST=${TOOLCHAIN} echo "Testing Rust ${RUST} on ${OS}" +if [ "${TOOLCHAIN}" = "nightly" ] ; then + cargo +nightly install cargo-xbuild -Z install-upgrade + rustup component add rust-src +fi + test_target() { - CARGO="${1}" + BUILD_CMD="${1}" TARGET="${2}" NO_STD="${3}" @@ -46,21 +53,21 @@ test_target() { fi # Test that libc builds without any default features (no libstd) - "$CARGO" "+${RUST}" build -vv $opt --no-default-features --target "${TARGET}" + cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --no-default-features --target "${TARGET}" # Test that libc builds with default features (e.g. libstd) # if the target supports libstd if [ "$NO_STD" != "1" ]; then - "$CARGO" "+${RUST}" build -vv $opt --target "${TARGET}" + cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --target "${TARGET}" fi # Test that libc builds with the `extra_traits` feature - "$CARGO" "+${RUST}" build -vv $opt --no-default-features --target "${TARGET}" \ + cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --no-default-features --target "${TARGET}" \ --features extra_traits # Also test that it builds with `extra_traits` and default features: if [ "$NO_STD" != "1" ]; then - "$CARGO" "+${RUST}" build -vv $opt --target "${TARGET}" \ + cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --target "${TARGET}" \ --features extra_traits fi } @@ -167,7 +174,7 @@ case "${OS}" in esac for TARGET in $TARGETS; do - test_target cargo "$TARGET" + test_target build "$TARGET" done # FIXME: https://github.com/rust-lang/rust/issues/58564 @@ -218,6 +225,23 @@ x86_64-unknown-openbsd \ if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then for TARGET in $RUST_LINUX_NO_CORE_TARGETS; do - test_target xargo "$TARGET" 1 + test_target xbuild "$TARGET" 1 done + + # Nintendo switch + cargo clean + mkdir -p target + ( + cd target + wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb + sudo dpkg -i devkitpro-pacman.deb + sudo dkp-pacman -Sy + sudo dkp-pacman -Syu + sudo dkp-pacman -S -v --noconfirm switch-dev devkitA64 + ) + cp ci/switch.json switch.json + PATH="$PATH:/opt/devkitpro/devkitA64/bin" + PATH="$PATH:/opt/devkitpro/tools/bin" + cargo xbuild --target switch.json fi + diff --git a/ci/dox.sh b/ci/dox.sh index ce5508147647c..40b7dae4440bd 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -13,6 +13,14 @@ PLATFORM_SUPPORT=platform-support.md rm -rf $TARGET_DOC_DIR mkdir -p $TARGET_DOC_DIR +if ! rustc --version | grep -E "nightly" ; then + echo "Building the documentation requires a nightly Rust toolchain" + exit 1 +fi + +rustup component add rust-src +cargo +nightly install xargo -Z install-upgrade + # List all targets that do currently build successfully: # shellcheck disable=SC1003 grep '[\d|\w|-]* \\' ci/build.sh > targets diff --git a/ci/run-docker.sh b/ci/run-docker.sh index c656f5904d684..5fd00614462dc 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -5,6 +5,9 @@ set -ex +echo "${HOME}" +pwd + run() { echo "Building docker container for target ${1}" @@ -18,19 +21,19 @@ run() { fi docker run \ - --user "$(id -u)":"$(id -g)" \ --rm \ - --init \ - --volume "${HOME}/.cargo":/cargo \ - $kvm \ + --user "$(id -u)":"$(id -g)" \ --env CARGO_HOME=/cargo \ + --env CARGO_TARGET_DIR=/checkout/target \ + --volume "$(dirname "$(dirname "$(command -v cargo)")")":/cargo \ --volume "$(rustc --print sysroot)":/rust:ro \ --volume "$(pwd)":/checkout:ro \ --volume "$(pwd)"/target:/checkout/target \ - --env CARGO_TARGET_DIR=/checkout/target \ + $kvm \ + --init \ --workdir /checkout \ libc \ - ci/run.sh "${1}" + sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh ${1}" } if [ -z "${1}" ]; then diff --git a/ci/semver.sh b/ci/semver.sh index ac6be36f3f18e..3412501a7215b 100644 --- a/ci/semver.sh +++ b/ci/semver.sh @@ -4,10 +4,17 @@ set -ex -OS=${TRAVIS_OS_NAME} +OS=${1} echo "Testing Semver on ${OS}" +if ! rustc --version | grep -E "nightly" ; then + echo "Building semverver requires a nightly Rust toolchain" + exit 1 +fi + +cargo +nightly install semverver -Z install-upgrade + TARGETS= case "${OS}" in *linux*) diff --git a/ci/style.sh b/ci/style.sh new file mode 100644 index 0000000000000..a6a00171019e4 --- /dev/null +++ b/ci/style.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env sh + +set -ex + +rustc ci/style.rs && ./style src + +if rustup component add rustfmt-preview ; then + which rustfmt + rustfmt -V + cargo fmt --all -- --check +fi + +if shellcheck --version ; then + shellcheck -e SC2103 ci/*.sh +else + echo "shellcheck not found" + exit 1 +fi + diff --git a/libc-test/build.rs b/libc-test/build.rs index 6edbd0f2ff506..d4ad4a9a4e099 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1595,8 +1595,7 @@ fn test_freebsd(target: &str) { // These constants were removed in FreeBSD 11 (svn r262489), // and they've never had any legitimate use outside of the // base system anyway. - "CTL_MAXID" | "KERN_MAXID" | "HW_MAXID" - | "USER_MAXID" => true, + "CTL_MAXID" | "KERN_MAXID" | "HW_MAXID" | "USER_MAXID" => true, _ => false, } diff --git a/src/unix/bsd/apple/b32.rs b/src/unix/bsd/apple/b32.rs index 859809dc863a1..c05de30327d19 100644 --- a/src/unix/bsd/apple/b32.rs +++ b/src/unix/bsd/apple/b32.rs @@ -81,6 +81,10 @@ cfg_if! { } } +#[doc(hidden)] +#[deprecated(since = "0.2.55")] +pub const NET_RT_MAXID: ::c_int = 10; + pub const __PTHREAD_MUTEX_SIZE__: usize = 40; pub const __PTHREAD_COND_SIZE__: usize = 24; pub const __PTHREAD_CONDATTR_SIZE__: usize = 4; diff --git a/src/unix/bsd/apple/b64.rs b/src/unix/bsd/apple/b64.rs index 7b89fc6ab534b..2749260b04ec2 100644 --- a/src/unix/bsd/apple/b64.rs +++ b/src/unix/bsd/apple/b64.rs @@ -86,6 +86,10 @@ cfg_if! { } } +#[doc(hidden)] +#[deprecated(since = "0.2.55")] +pub const NET_RT_MAXID: ::c_int = 11; + pub const __PTHREAD_MUTEX_SIZE__: usize = 56; pub const __PTHREAD_COND_SIZE__: usize = 40; pub const __PTHREAD_CONDATTR_SIZE__: usize = 8; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 2bc18fb2160f3..24ad12bee5207 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2178,9 +2178,6 @@ pub const PF_PPP: ::c_int = AF_PPP; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; pub const NET_RT_IFLIST: ::c_int = 3; -#[doc(hidden)] -#[deprecated(since = "0.2.55")] -pub const NET_RT_MAXID: ::c_int = 10; pub const SOMAXCONN: ::c_int = 128; From 189ea88d04ecfc2e30c5483f42d85f5d97c62621 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sun, 7 Jul 2019 15:25:02 +0200 Subject: [PATCH 085/296] Temporarily skip the Semver jobs --- azure-pipelines.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 00878c7519ed7..a603aae8d88f8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -98,23 +98,23 @@ jobs: - script: sh ci/dox.sh displayName: Generate and upload documentation - - job: SemverLinux - continueOnError: true - pool: - vmImage: ubuntu-16.04 - steps: - - template: ci/azure-install-rust.yml - - script: sh ci/semver.sh linux - displayName: Check breaking changes + #- job: SemverLinux + # continueOnError: true + # pool: + # vmImage: ubuntu-16.04 + # steps: + # - template: ci/azure-install-rust.yml + # - script: sh ci/semver.sh linux + # displayName: Check breaking changes - - job: SemverOSX - continueOnError: true - pool: - vmImage: macos-10.14 - steps: - - template: ci/azure-install-rust.yml - - script: sh ci/semver.sh osx - displayName: Check breaking changes + #- job: SemverOSX + # continueOnError: true + # pool: + # vmImage: macos-10.14 + # steps: + # - template: ci/azure-install-rust.yml + # - script: sh ci/semver.sh osx + # displayName: Check breaking changes - job: BuildChannelsLinux pool: From d03a1ff2dc55044f4ac919c2673608d65791efbe Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 9 Jul 2019 11:16:47 +0200 Subject: [PATCH 086/296] Use cargo-xbuild for building the documentation --- ci/dox.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/dox.sh b/ci/dox.sh index 40b7dae4440bd..823c811352f77 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -19,7 +19,7 @@ if ! rustc --version | grep -E "nightly" ; then fi rustup component add rust-src -cargo +nightly install xargo -Z install-upgrade +cargo +nightly install cargo-xbuild -Z install-upgrade # List all targets that do currently build successfully: # shellcheck disable=SC1003 @@ -50,7 +50,7 @@ while read -r target; do # If cargo doc fails, then try xargo: if ! cargo doc --target "${target}" \ --no-default-features --features extra_traits ; then - xargo doc --target "${target}" \ + cargo xdoc --target "${target}" \ --no-default-features --features extra_traits fi From 1e121314f6ef11081beda89c3638e275f2738e73 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 9 Jul 2019 11:46:26 +0200 Subject: [PATCH 087/296] Remove Appveyor --- README.md | 8 +++----- appveyor.yml | 26 -------------------------- 2 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 appveyor.yml diff --git a/README.md b/README.md index 4ca2e9447b937..86d2fe2abe453 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://dev.azure.com/rust-lang/libc/_apis/build/status/rust-lang.libc?branchName=master)](https://dev.azure.com/rust-lang/libc/_build/latest?definitionId=11&branchName=master) [![Appveyor Status]][Appveyor] [![Cirrus-CI Status]][Cirrus-CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] +[![Azure Status]][Azure] [![Cirrus-CI Status]][Cirrus-CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] libc - Raw FFI bindings to platforms' system libraries ==== @@ -91,10 +91,8 @@ Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in `libc` by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. -[Travis-CI]: https://travis-ci.com/rust-lang/libc -[Travis-CI Status]: https://travis-ci.com/rust-lang/libc.svg?branch=master -[Appveyor]: https://ci.appveyor.com/project/rust-lang-libs/libc -[Appveyor Status]: https://ci.appveyor.com/api/projects/status/github/rust-lang/libc?svg=true +[Azure Status]: https://dev.azure.com/rust-lang/libc/_apis/build/status/rust-lang.libc?branchName=master +[Azure]: https://dev.azure.com/rust-lang/libc/_build/latest?definitionId=11&branchName=master [Cirrus-CI]: https://cirrus-ci.com/github/rust-lang/libc [Cirrus-CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg [crates.io]: https://crates.io/crates/libc diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 2885bb1e60025..0000000000000 --- a/appveyor.yml +++ /dev/null @@ -1,26 +0,0 @@ -environment: - matrix: - - TARGET: x86_64-pc-windows-gnu - MSYS_BITS: 64 - ARCH: x86_64 - - TARGET: i686-pc-windows-gnu - MSYS_BITS: 32 - ARCH: i686 - - TARGET: x86_64-pc-windows-msvc - - TARGET: i686-pc-windows-msvc -install: - - if NOT defined APPVEYOR_PULL_REQUEST_NUMBER if "%APPVEYOR_REPO_BRANCH%" == "master" appveyor exit - - if defined MSYS_BITS set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH%; - - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-nightly-${env:TARGET}.exe" - - rust-nightly-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust" - - set PATH=%PATH%;C:\Program Files (x86)\Rust\bin - - if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - - rustc -V - - cargo -V - -build: false - -test_script: - - cargo -vv test --target %TARGET% - - cargo -vv test --no-default-features --target %TARGET% - - cargo -vv test --manifest-path libc-test/Cargo.toml --target %TARGET% From 7507f5d1e08881514b6eadf5549e93713992a8e8 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 9 Jul 2019 11:24:28 +0200 Subject: [PATCH 088/296] Add windows targets --- azure-pipelines.yml | 22 ++++++++++++++++++++++ ci/azure-install-rust.yml | 3 +++ 2 files changed, 25 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a603aae8d88f8..023652169dce2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -88,6 +88,28 @@ jobs: i686-apple-darwin: TARGET: i686-apple-darwin + - job: Windows + pool: + vmImage: vs2017-win2016 + steps: + - template: ci/azure-install-rust.yml + - bash: sh ./ci/run.sh $TARGET + displayName: Execute run.sh + strategy: + matrix: + x86_64-pc-windows-gnu: + TARGET: x86_64-pc-windows-gnu + MSYS_BITS: 64 + ARCH: x86_64 + x86_64-pc-windows-msvc: + TARGET: x86_64-pc-windows-msvc + i686-pc-windows-gnu: + TARGET: i686-pc-windows-gnu + MSYS_BITS: 32 + ARCH: i686 + i686-pc-windows-msvc: + TARGET: i686-pc-windows-msvc + - job: StyleAndDocs pool: vmImage: ubuntu-16.04 diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index 1f4071309c700..5edd0b33314cb 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -31,6 +31,9 @@ steps: - script: if defined TARGET rustup target add %TARGET% condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (windows) + - script: if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Fix MinGW (windows) - script: | set -ex rustc -Vv From d4bb00a544f4b81b67b4ccfd6d069f189a47ab11 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 9 Jul 2019 12:04:06 +0200 Subject: [PATCH 089/296] Use installed rustup --- ci/azure-install-rust.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index 5edd0b33314cb..509bd6d6aec1d 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -16,9 +16,8 @@ steps: condition: ne( variables['Agent.OS'], 'Windows_NT' ) - script: | if not defined TOOLCHAIN set TOOLCHAIN=nightly - curl -sSf -o rustup-init.exe https://win.rustup.rs - rustup-init.exe -y --default-toolchain %TOOLCHAIN%-%TARGET% - echo ##vso[task.prependpath]%USERPROFILE%\.cargo\bin + rustup update %TOOLCHAIN% + rustup default %TOOLCHAIN% displayName: Install rust (windows) condition: eq( variables['Agent.OS'], 'Windows_NT' ) - script: | @@ -31,9 +30,9 @@ steps: - script: if defined TARGET rustup target add %TARGET% condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (windows) - - script: if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - condition: eq( variables['Agent.OS'], 'Windows_NT' ) - displayName: Fix MinGW (windows) + #- script: if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" + # condition: eq( variables['Agent.OS'], 'Windows_NT' ) + # displayName: Fix MinGW (windows) - script: | set -ex rustc -Vv From 9f153e971a57834c5f0ea4d9c6772d1041483169 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 9 Jul 2019 12:19:53 +0200 Subject: [PATCH 090/296] Patch mingw libraries for windows gnu targets --- Cargo.toml | 2 +- azure-pipelines.yml | 21 ++++++++++++++++----- ci/README.md | 13 +++---------- ci/azure-install-rust.yml | 36 ++++++++++++++++++++++++++++++------ ci/dox.sh | 7 ------- 5 files changed, 50 insertions(+), 29 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bf6ff2c0f9e81..0b054a8442f8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "http://doc.rust-lang.org/libc" keywords = ["libc", "ffi", "bindings", "operating", "system" ] categories = ["external-ffi-bindings", "no-std", "os"] build = "build.rs" -exclude = ["/ci/*", "/.travis.yml", "/appveyor.yml"] +exclude = ["/ci/*", "/azure-pipelines.yml"] description = """ Raw FFI bindings to platform libraries like libc. """ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 023652169dce2..0e7803d9e5fc0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,13 @@ -trigger: - - master +variables: + - group: secrets +resources: + repositories: + - repository: rustinfra + type: github + name: rust-lang/simpleinfra + endpoint: rust-lang +trigger: ["master"] +pr: ["master"] jobs: - job: DockerLinux @@ -99,13 +107,13 @@ jobs: matrix: x86_64-pc-windows-gnu: TARGET: x86_64-pc-windows-gnu - MSYS_BITS: 64 + ARCH_BITS: 64 ARCH: x86_64 x86_64-pc-windows-msvc: TARGET: x86_64-pc-windows-msvc i686-pc-windows-gnu: TARGET: i686-pc-windows-gnu - MSYS_BITS: 32 + ARCH_BITS: 32 ARCH: i686 i686-pc-windows-msvc: TARGET: i686-pc-windows-msvc @@ -118,7 +126,10 @@ jobs: - script: sh ci/style.sh displayName: Check style - script: sh ci/dox.sh - displayName: Generate and upload documentation + displayName: Generate documentation + - template: azure-configs/static-websites.yml@rustinfra + parameters: + deploy_dir: target/doc #- job: SemverLinux # continueOnError: true diff --git a/ci/README.md b/ci/README.md index 28152e5d00b99..31235538071f8 100644 --- a/ci/README.md +++ b/ci/README.md @@ -8,19 +8,12 @@ this project. First up, let's talk about the files in this directory: -* `run-travis.sh` - a shell script run by all Travis builders, this is - responsible for setting up the rest of the environment such as installing new - packages, downloading Rust target libraries, etc. +* `run-docker.sh` - a shell script run by most builders, it will execute + `run.sh` inside a Docker container configured for the target. * `run.sh` - the actual script which runs tests for a particular architecture. - Called from the `run-travis.sh` script this will run all tests for the target - specified. -* `cargo-config` - Cargo configuration of linkers to use copied into place by - the `run-travis.sh` script before builds are run. - -* `dox.sh` - script called from `run-travis.sh` on only the linux 64-bit nightly - Travis bots to build documentation for this crate. +* `dox.sh` - build the documentation of the crate and publish it to gh-pages. * `landing-page-*.html` - used by `dox.sh` to generate a landing page for all architectures' documentation. diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index 509bd6d6aec1d..c94f3dcd02868 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -15,9 +15,10 @@ steps: displayName: Install rust (unix) condition: ne( variables['Agent.OS'], 'Windows_NT' ) - script: | + @echo on if not defined TOOLCHAIN set TOOLCHAIN=nightly - rustup update %TOOLCHAIN% - rustup default %TOOLCHAIN% + rustup update %TOOLCHAIN%-%TARGET% + rustup default %TOOLCHAIN%-%TARGET% displayName: Install rust (windows) condition: eq( variables['Agent.OS'], 'Windows_NT' ) - script: | @@ -27,13 +28,31 @@ steps: fi condition: ne( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (unix) - - script: if defined TARGET rustup target add %TARGET% + - script: | + @echo on + if defined TARGET rustup target add %TARGET% condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Install target (windows) - #- script: if defined MSYS_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\msys64\mingw%MSYS_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files (x86)\Rust\lib\rustlib\%TARGET%\lib" - # condition: eq( variables['Agent.OS'], 'Windows_NT' ) - # displayName: Fix MinGW (windows) - script: | + @echo on + if "%ARCH%" == "i686" choco install mingw --x86 --force + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Install MinGW32 (windows) + - bash: | + set -ex + gcc -print-search-dirs + find "C:\ProgramData\Chocolatey" -name "crt2*" + find "C:\ProgramData\Chocolatey" -name "dllcrt2*" + find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Find GCC libraries (windows) + - script: | + @echo on + if not defined TOOLCHAIN set TOOLCHAIN=nightly + if defined ARCH_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\ProgramData\Chocolatey\lib\mingw\tools\install\mingw%ARCH_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files\Rust\.rustup\toolchains\%TOOLCHAIN%-%TARGET%\lib\rustlib\%TARGET%\lib\%%I" + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Fix MinGW (windows) + - bash: | set -ex rustc -Vv cargo -V @@ -44,6 +63,11 @@ steps: which rustup displayName: Query rust and cargo versions - script: | + @echo on + where gcc + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + displayName: Query gcc path + - bash: | set -ex cargo generate-lockfile cargo generate-lockfile --manifest-path libc-test/Cargo.toml diff --git a/ci/dox.sh b/ci/dox.sh index 823c811352f77..49abd546001c8 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -69,10 +69,3 @@ set -x # Copy the licenses cp LICENSE-* $TARGET_DOC_DIR/ - -# If we're on travis, not a PR, and on the right branch, publish! -if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_BRANCH" = "master" ]; then - pip install ghp_import --install-option="--prefix=$HOME/.local" - "${HOME}/.local/bin/ghp-import" $TARGET_DOC_DIR - git push -qf "https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git" gh-pages -fi From 2f25959d05e50fb4a8a0c55305d7024aa473b52c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 10 Jul 2019 15:23:39 +0200 Subject: [PATCH 091/296] Use Azure Pipelines dependsOn to stage the jobs --- azure-pipelines.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0e7803d9e5fc0..39fd377be0d7a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,22 @@ trigger: ["master"] pr: ["master"] jobs: - - job: DockerLinux + - job: DockerLinuxTier1 + pool: + vmImage: ubuntu-16.04 + steps: + - template: ci/azure-install-rust.yml + - bash: sh ./ci/run-docker.sh $TARGET + displayName: Execute run-docker.sh + strategy: + matrix: + i686-unknown-linux-gnu: + TARGET: i686-unknown-linux-gnu + x86_64-unknown-linux-gnu: + TARGET: x86_64-unknown-linux-gnu + + - job: DockerLinuxTier2 + dependsOn: DockerLinuxTier1 pool: vmImage: ubuntu-16.04 steps: @@ -35,8 +50,6 @@ jobs: TARGET: asmjs-unknown-emscripten i686-linux-android: TARGET: i686-linux-android - i686-unknown-linux-gnu: - TARGET: i686-unknown-linux-gnu i686-unknown-linux-musl: TARGET: i686-unknown-linux-musl mips-unknown-linux-gnu: @@ -65,8 +78,6 @@ jobs: TARGET: wasm32-unknown-emscripten x86_64-linux-android: TARGET: x86_64-linux-android - x86_64-unknown-linux-gnu: - TARGET: x86_64-unknown-linux-gnu x86_64-unknown-linux-gnux32: TARGET: x86_64-unknown-linux-gnux32 x86_64-unknown-linux-musl: @@ -132,6 +143,7 @@ jobs: deploy_dir: target/doc #- job: SemverLinux + # dependsOn: BuildChannelsLinux # continueOnError: true # pool: # vmImage: ubuntu-16.04 @@ -141,6 +153,7 @@ jobs: # displayName: Check breaking changes #- job: SemverOSX + # dependsOn: BuildChannelsOSX # continueOnError: true # pool: # vmImage: macos-10.14 @@ -150,6 +163,7 @@ jobs: # displayName: Check breaking changes - job: BuildChannelsLinux + dependsOn: StyleAndDocs pool: vmImage: ubuntu-16.04 steps: @@ -178,6 +192,7 @@ jobs: OS: linux - job: BuildChannelsOSX + dependsOn: StyleAndDocs pool: vmImage: macos-10.13 steps: From 23b80729e225c5fe8339dea87ff766ae36c4efbf Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 12 Jul 2019 12:35:36 +0200 Subject: [PATCH 092/296] Use matis bash script instead of batch for fixing mingw on windows --- ci/azure-install-rust.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index c94f3dcd02868..077a05efb4e0e 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -46,10 +46,13 @@ steps: find "C:\ProgramData\Chocolatey" -name "libmsvcrt*" condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Find GCC libraries (windows) - - script: | - @echo on - if not defined TOOLCHAIN set TOOLCHAIN=nightly - if defined ARCH_BITS for %%I in (crt2.o dllcrt2.o libmsvcrt.a) do xcopy /Y "C:\ProgramData\Chocolatey\lib\mingw\tools\install\mingw%ARCH_BITS%\%ARCH%-w64-mingw32\lib\%%I" "C:\Program Files\Rust\.rustup\toolchains\%TOOLCHAIN%-%TARGET%\lib\rustlib\%TARGET%\lib\%%I" + - bash: | + set -ex + if [[ -n ${ARCH_BITS} ]]; then + for i in crt2.o dllcrt2.o libmsvcrt.a ; do + cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib" + done + fi condition: eq( variables['Agent.OS'], 'Windows_NT' ) displayName: Fix MinGW (windows) - bash: | From 3ffff3b5cabe869bfdb747562014009dbefce5a4 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 27 Jul 2019 13:27:19 +0200 Subject: [PATCH 093/296] Update end-point for rustinfra script --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 39fd377be0d7a..7a4b3d1321c18 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,7 +5,7 @@ resources: - repository: rustinfra type: github name: rust-lang/simpleinfra - endpoint: rust-lang + endpoint: gnzlbg trigger: ["master"] pr: ["master"] From e966c5e1cb2dc011cc3ee2f1961b3c872416d5fa Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 27 Jul 2019 14:21:57 +0200 Subject: [PATCH 094/296] Document disabling semverver jobs --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7a4b3d1321c18..d89cd5c3a7ef7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -142,6 +142,7 @@ jobs: parameters: deploy_dir: target/doc + # FIXME: re-enable these after the next release #- job: SemverLinux # dependsOn: BuildChannelsLinux # continueOnError: true From 1937b4511856f9c6cc328656ec65ecacd2ea90dc Mon Sep 17 00:00:00 2001 From: Temirkhan Myrzamadi Date: Sun, 28 Jul 2019 15:29:35 +0600 Subject: [PATCH 095/296] Add IP_RECVERR (unix/linux_like/mod.rs) --- src/unix/linux_like/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index ad20dbeee86f4..a6d1d5a33c14f 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -805,6 +805,7 @@ pub const IP_TTL: ::c_int = 2; pub const IP_HDRINCL: ::c_int = 3; pub const IP_PKTINFO: ::c_int = 8; pub const IP_RECVTOS: ::c_int = 13; +pub const IP_RECVERR: ::c_int = 11; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; pub const IP_TRANSPARENT: ::c_int = 19; From 59234646b7b64517c758c408f5a2d644ab5b28fe Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sun, 28 Jul 2019 18:22:22 +0200 Subject: [PATCH 096/296] Update trigger to auto and try --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d89cd5c3a7ef7..7c7bf94ff0626 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -6,7 +6,7 @@ resources: type: github name: rust-lang/simpleinfra endpoint: gnzlbg -trigger: ["master"] +trigger: ["auto","try"] pr: ["master"] jobs: From ed757a82a3868bdb75aa1981ed5368e4b0eb7f6d Mon Sep 17 00:00:00 2001 From: Alex Touchet Date: Sun, 28 Jul 2019 10:03:18 -0700 Subject: [PATCH 097/296] Update links --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e5d0c68b8a80..181b604b533bd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,9 +38,9 @@ With that in mind, the steps for adding a new API are: ### Test before you commit -We have two automated tests running on [Travis](https://travis-ci.org/rust-lang/libc): +We have two automated tests running on [Travis](https://travis-ci.com/rust-lang/libc): -1. [`libc-test`](https://github.com/alexcrichton/ctest) +1. [`libc-test`](https://github.com/gnzlbg/ctest) - `cd libc-test && cargo test` - Use the `skip_*()` functions in `build.rs` if you really need a workaround. 2. Style checker From 4a74f1e0df84257aac462b725f14b080da703037 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 17:49:08 +0200 Subject: [PATCH 098/296] Add support for FreeBSD CURRENT (aka freebsd13) Currently, libc supports and detects freebsd11 and freebsd13 Unknown versions, like freebsd13, is treated as freebsd11. This patch solve the issues, detecting freebsd13 and treating it like freebsd12. Inverting the logic not(freebsd12) -> freebsd11 where possible --- build.rs | 4 ++++ libc-test/build.rs | 8 +++++++- src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 2 ++ src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 5 +++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 +++- src/unix/bsd/freebsdlike/mod.rs | 4 ++-- src/unix/bsd/mod.rs | 4 ++-- src/unix/mod.rs | 14 +++++++------- 8 files changed, 32 insertions(+), 13 deletions(-) diff --git a/build.rs b/build.rs index 76ca0961e4782..c43cca36d2586 100644 --- a/build.rs +++ b/build.rs @@ -19,6 +19,9 @@ fn main() { if let Some(12) = which_freebsd() { println!("cargo:rustc-cfg=freebsd12"); } + if let Some(13) = which_freebsd() { + println!("cargo:rustc-cfg=freebsd13"); + } } // Rust >= 1.15 supports private module use: @@ -100,6 +103,7 @@ fn which_freebsd() -> Option { match &stdout { s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), + s if s.starts_with("13") => Some(13), _ => None, } } diff --git a/libc-test/build.rs b/libc-test/build.rs index 6edbd0f2ff506..8dffc6819b03d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1455,6 +1455,11 @@ fn test_freebsd(target: &str) { cfg.cfg("freebsd12", None); } + if let Some(13) = freebsd_ver { + // If the host is FreeBSD 12, run FreeBSD 12 tests + cfg.cfg("freebsd13", None); + } + // Required for `getline`: cfg.define("_WITH_GETLINE", None); // Required for making freebsd11_stat available in the headers @@ -1581,7 +1586,7 @@ fn test_freebsd(target: &str) { | "IP_RECVORIGDSTADDR" | "IPV6_ORIGDSTADDR" | "IPV6_RECVORIGDSTADDR" - if Some(12) != freebsd_ver => + if Some(11) == freebsd_ver => { true } @@ -2468,6 +2473,7 @@ fn which_freebsd() -> Option { match &stdout { s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), + s if s.starts_with("13") => Some(13), _ => None, } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index 7d7dc2c1d4902..b71b284e42554 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -189,6 +189,8 @@ cfg_if! { } } +pub const ELAST: ::c_int = 96; + extern { // Return type ::c_int was removed in FreeBSD 12 pub fn setgrent() -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index ab1b8d98357b3..c01916955fd97 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -190,6 +190,11 @@ cfg_if! { } } +#[cfg(not(freebsd13))] +pub const ELAST: ::c_int = 96; +#[cfg(freebsd13)] +pub const ELAST: ::c_int = 97; + extern { pub fn setgrent(); pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9f11c202bb4ea..c178b91b9408e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -333,7 +333,6 @@ pub const ENOTCAPABLE: ::c_int = 93; pub const ECAPMODE: ::c_int = 94; pub const ENOTRECOVERABLE: ::c_int = 95; pub const EOWNERDEAD: ::c_int = 96; -pub const ELAST: ::c_int = 96; pub const RLIMIT_NPTS: ::c_int = 11; pub const RLIMIT_SWAP: ::c_int = 12; pub const RLIMIT_KQUEUES: ::c_int = 13; @@ -1332,6 +1331,9 @@ cfg_if! { if #[cfg(freebsd12)] { mod freebsd12; pub use self::freebsd12::*; + } else if #[cfg(freebsd13)] { + mod freebsd12; + pub use self::freebsd12::*; } else { mod freebsd11; pub use self::freebsd11::*; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index ce5452062ce3d..f937d772a9a44 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1152,7 +1152,7 @@ extern { pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "kevent@FBSD_1.0" )] pub fn kevent(kq: ::c_int, @@ -1171,7 +1171,7 @@ extern { pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "mknodat@FBSD_1.1" )] pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 77f82b182bb57..ee644114a4867 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -536,7 +536,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "glob@FBSD_1.0" )] pub fn glob(pattern: *const ::c_char, @@ -546,7 +546,7 @@ extern { pglob: *mut ::glob_t) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "globfree@FBSD_1.0" )] pub fn globfree(pglob: *mut ::glob_t); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 65cf7ecf5c05d..721d241164a1d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -567,7 +567,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "fstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "fstat@FBSD_1.0" )] pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -577,7 +577,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "stat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "stat@FBSD_1.0" )] pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -608,7 +608,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "readdir@FBSD_1.0" )] pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; @@ -631,7 +631,7 @@ extern { flags: ::c_int) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "fstatat@FBSD_1.1" )] pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, @@ -786,7 +786,7 @@ extern { #[cfg_attr(target_os = "macos", link_name = "lstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "lstat@FBSD_1.0" )] pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -962,7 +962,7 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "mknod@FBSD_1.0" )] pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, @@ -1126,7 +1126,7 @@ cfg_if! { #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] #[cfg_attr( - all(target_os = "freebsd", not(freebsd12)), + all(target_os = "freebsd", freebsd11), link_name = "readdir_r@FBSD_1.0" )] /// The 64-bit libc on Solaris and illumos only has readdir_r. If a From bde8b842a48aee64b7a2f1746aebce1013474cf5 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 17:55:11 +0200 Subject: [PATCH 099/296] Add EINTEGRITY errno and fix style --- src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index c01916955fd97..464744d140da4 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -190,10 +190,14 @@ cfg_if! { } } -#[cfg(not(freebsd13))] -pub const ELAST: ::c_int = 96; -#[cfg(freebsd13)] -pub const ELAST: ::c_int = 97; +cfg_if! { + if #[cfg(not(freebsd13))] { + pub const ELAST: ::c_int = 96; + } else { + pub const EINTEGRITY: ::c_int = 97; + pub const ELAST: ::c_int = 97; + } +} extern { pub fn setgrent(); From 64bc745405116ff5eaa0358fb46bc2233e0756a7 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Sun, 21 Jul 2019 18:10:40 +0200 Subject: [PATCH 100/296] Properly define freebsd11 attribute --- build.rs | 3 +++ libc-test/build.rs | 15 ++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.rs b/build.rs index c43cca36d2586..f355447a672c6 100644 --- a/build.rs +++ b/build.rs @@ -16,6 +16,9 @@ fn main() { } if env::var("LIBC_CI").is_ok() { + if let Some(11) = which_freebsd() { + println!("cargo:rustc-cfg=freebsd11"); + } if let Some(12) = which_freebsd() { println!("cargo:rustc-cfg=freebsd12"); } diff --git a/libc-test/build.rs b/libc-test/build.rs index 8dffc6819b03d..02e769ea80181 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1450,15 +1450,12 @@ fn test_freebsd(target: &str) { let freebsd_ver = which_freebsd(); - if let Some(12) = freebsd_ver { - // If the host is FreeBSD 12, run FreeBSD 12 tests - cfg.cfg("freebsd12", None); - } - - if let Some(13) = freebsd_ver { - // If the host is FreeBSD 12, run FreeBSD 12 tests - cfg.cfg("freebsd13", None); - } + match freebsd_ver { + Some(11) => cfg.cfg("freebsd11", None), + Some(12) => cfg.cfg("freebsd12", None), + Some(13) => cfg.cfg("freebsd13", None), + _ => &mut cfg + }; // Required for `getline`: cfg.define("_WITH_GETLINE", None); From 1a2de0ea601575630eaa518451524924199f4e3a Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 31 Jul 2019 12:31:58 +0200 Subject: [PATCH 101/296] Bors uses auto-libc; move config to ci/azure.yml --- azure-pipelines.yml => ci/azure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename azure-pipelines.yml => ci/azure.yml (99%) diff --git a/azure-pipelines.yml b/ci/azure.yml similarity index 99% rename from azure-pipelines.yml rename to ci/azure.yml index 7c7bf94ff0626..5ca3189ade1d1 100644 --- a/azure-pipelines.yml +++ b/ci/azure.yml @@ -6,7 +6,7 @@ resources: type: github name: rust-lang/simpleinfra endpoint: gnzlbg -trigger: ["auto","try"] +trigger: ["auto-libc","try"] pr: ["master"] jobs: From bc5a93e8d880773f94a55a66995a87f539a7b5f9 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 31 Jul 2019 12:41:42 +0200 Subject: [PATCH 102/296] Update azure.yml to ci/ path --- ci/azure.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ci/azure.yml b/ci/azure.yml index 5ca3189ade1d1..04d12dae8f316 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -14,7 +14,7 @@ jobs: pool: vmImage: ubuntu-16.04 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - bash: sh ./ci/run-docker.sh $TARGET displayName: Execute run-docker.sh strategy: @@ -29,7 +29,7 @@ jobs: pool: vmImage: ubuntu-16.04 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - bash: sh ./ci/run-docker.sh $TARGET displayName: Execute run-docker.sh strategy: @@ -87,7 +87,7 @@ jobs: pool: vmImage: macos-10.14 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - bash: sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: @@ -99,7 +99,7 @@ jobs: pool: vmImage: macos-10.13 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - bash: sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: @@ -111,7 +111,7 @@ jobs: pool: vmImage: vs2017-win2016 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - bash: sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: @@ -133,7 +133,7 @@ jobs: pool: vmImage: ubuntu-16.04 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - script: sh ci/style.sh displayName: Check style - script: sh ci/dox.sh @@ -149,7 +149,7 @@ jobs: # pool: # vmImage: ubuntu-16.04 # steps: - # - template: ci/azure-install-rust.yml + # - template: azure-install-rust.yml # - script: sh ci/semver.sh linux # displayName: Check breaking changes @@ -159,7 +159,7 @@ jobs: # pool: # vmImage: macos-10.14 # steps: - # - template: ci/azure-install-rust.yml + # - template: azure-install-rust.yml # - script: sh ci/semver.sh osx # displayName: Check breaking changes @@ -168,7 +168,7 @@ jobs: pool: vmImage: ubuntu-16.04 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - script: sh ./ci/build.sh displayName: Execute build.sh strategy: @@ -197,7 +197,7 @@ jobs: pool: vmImage: macos-10.13 steps: - - template: ci/azure-install-rust.yml + - template: azure-install-rust.yml - script: sh ./ci/build.sh displayName: Execute build.sh strategy: From f3d0118751bc434ada3dc20895e1ae586444172d Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 2 Aug 2019 13:44:33 +0200 Subject: [PATCH 103/296] MinGW: also copy libmingwex.a from C toolchain - by mati865 --- ci/azure-install-rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index 077a05efb4e0e..eba066923f266 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -49,7 +49,7 @@ steps: - bash: | set -ex if [[ -n ${ARCH_BITS} ]]; then - for i in crt2.o dllcrt2.o libmsvcrt.a ; do + for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib" done fi From 7ddda6fd3bcba4d8eb8f011c609b9d10684aa2c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Mon, 5 Aug 2019 08:26:56 +0200 Subject: [PATCH 104/296] define KERN_TIMEOUT_STATS and incr KERN_MAXID on OpenBSD --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 710a4fc40c598..a397d58c93109 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1183,7 +1183,8 @@ pub const KERN_CONSBUF: ::c_int = 83; pub const KERN_AUDIO: ::c_int = 84; pub const KERN_CPUSTATS: ::c_int = 85; pub const KERN_PFSTATUS: ::c_int = 86; -pub const KERN_MAXID: ::c_int = 87; +pub const KERN_TIMEOUT_STATS: ::c_int = 87; +pub const KERN_MAXID: ::c_int = 88; pub const KERN_PROC_ALL: ::c_int = 0; pub const KERN_PROC_PID: ::c_int = 1; From 04c7f1166c07fa8bd83f367288b20793d3d985e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Mon, 5 Aug 2019 09:14:42 +0200 Subject: [PATCH 105/296] skip roundtrip on few struct on OpenBSD --- libc-test/build.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 6edbd0f2ff506..16be6ac32f6be 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -369,6 +369,11 @@ fn test_openbsd(target: &str) { (struct_ == "siginfo_t" && field == "si_addr") }); + cfg.skip_roundtrip(move |s| match s { + "dirent" | "utsname" | "utmp" => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); } From e63e7d4180f835b7113d9550d9a485aa1858f7eb Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 5 Aug 2019 10:24:36 +0200 Subject: [PATCH 106/296] Formatting --- libc-test/test/cmsg.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/libc-test/test/cmsg.rs b/libc-test/test/cmsg.rs index 8304163338608..38a8ce1508901 100644 --- a/libc-test/test/cmsg.rs +++ b/libc-test/test/cmsg.rs @@ -97,5 +97,4 @@ mod t { } } } - } From bce9075570889b0fc20aad628594db9555fa194a Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 5 Aug 2019 12:47:35 +0200 Subject: [PATCH 107/296] Temporarily disable redox target --- ci/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index abec755d6f68c..176c85feb6d42 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -122,6 +122,9 @@ i586-unknown-linux-musl \ x86_64-unknown-cloudabi \ " +# FIXME: temporarirly disable the redox target +# https://github.com/rust-lang/libc/issues/1457 +# x86_64-unknown-redox RUST_NIGHTLY_LINUX_TARGETS="\ aarch64-fuchsia \ armv5te-unknown-linux-gnueabi \ @@ -132,7 +135,6 @@ x86_64-fortanix-unknown-sgx \ x86_64-fuchsia \ x86_64-pc-windows-gnu \ x86_64-unknown-linux-gnux32 \ -x86_64-unknown-redox \ " RUST_OSX_TARGETS="\ From 063d7ac340298f6befb5541b529653e23f84e706 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 6 Aug 2019 16:41:01 -0600 Subject: [PATCH 108/296] Bump version to 0.2.61 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index bf6ff2c0f9e81..3cda439941669 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.60" +version = "0.2.61" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 91e44b1e610ebd5b0ee14b4cd1e295844978c8ba Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Wed, 7 Aug 2019 10:56:13 -0600 Subject: [PATCH 109/296] Upgrade FreeBSD's CI image to release 11.3 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 47807ab0a7c61..d2fb21a60b3cf 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,7 +1,7 @@ task: name: stable x86_64-unknown-freebsd-11 freebsd_instance: - image: freebsd-11-2-release-amd64 + image: freebsd-11-3-release-amd64 setup_script: - pkg install -y curl - curl https://sh.rustup.rs -sSf --output rustup.sh From 000ac11554ff107a22de590c811c1b9c9ee6b64b Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Wed, 7 Aug 2019 15:53:55 -0600 Subject: [PATCH 110/296] Switch FreeBSD's CI image to stable/11 The 11.3-release GCE image isn't working due to a bug in the included py36-google-compute-engine package, but that bug is fixed in the latest stable/11 images. --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index d2fb21a60b3cf..178f5b24690c5 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,7 +1,7 @@ task: name: stable x86_64-unknown-freebsd-11 freebsd_instance: - image: freebsd-11-3-release-amd64 + image: freebsd-11-3-stable-amd64-v20190801 setup_script: - pkg install -y curl - curl https://sh.rustup.rs -sSf --output rustup.sh From 154e58dd122cc0d49d299ce0c1d9dfe50eb6f483 Mon Sep 17 00:00:00 2001 From: Luca Pizzamiglio Date: Fri, 9 Aug 2019 13:54:21 +0200 Subject: [PATCH 111/296] Fix format --- libc-test/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 02e769ea80181..af7e3b2c0ae7d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1454,7 +1454,7 @@ fn test_freebsd(target: &str) { Some(11) => cfg.cfg("freebsd11", None), Some(12) => cfg.cfg("freebsd12", None), Some(13) => cfg.cfg("freebsd13", None), - _ => &mut cfg + _ => &mut cfg, }; // Required for `getline`: From 636d86a951e62a0b97796df7d405ae19a8376fa5 Mon Sep 17 00:00:00 2001 From: Taehyun Lee Date: Wed, 19 Dec 2018 10:17:39 -0500 Subject: [PATCH 112/296] Added vxworks libc references - worked on by danielmccormick and taehyun-lee --- src/lib.rs | 3 + src/vxworks/aarch64.rs | 38 + src/vxworks/armv7.rs | 35 + src/vxworks/armv7le.rs | 0 src/vxworks/mod.rs | 2066 ++++++++++++++++++++++++++++++++++++++++ src/vxworks/x86.rs | 35 + src/vxworks/x86_64.rs | 38 + 7 files changed, 2215 insertions(+) create mode 100644 src/vxworks/aarch64.rs create mode 100644 src/vxworks/armv7.rs create mode 100644 src/vxworks/armv7le.rs create mode 100755 src/vxworks/mod.rs create mode 100644 src/vxworks/x86.rs create mode 100644 src/vxworks/x86_64.rs diff --git a/src/lib.rs b/src/lib.rs index 0f800cea0ae16..42b2b1591caf3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -114,6 +114,9 @@ cfg_if! { mod switch; pub use switch::*; + } else if #[cfg(target_os = "vxworks")] { + mod vxworks; + pub use vxworks::*; } else if #[cfg(unix)] { mod fixed_width_ints; pub use fixed_width_ints::*; diff --git a/src/vxworks/aarch64.rs b/src/vxworks/aarch64.rs new file mode 100644 index 0000000000000..884ae927c909a --- /dev/null +++ b/src/vxworks/aarch64.rs @@ -0,0 +1,38 @@ +pub type c_long = i64; +pub type c_ulong = u64; + +#[cfg(feature = "_WRS_KERNEL")] +pub type _Vx_TASK_ID = *mut ::windTcb; + +#[cfg(feature = "_WRS_KERNEL")] +s! { + pub struct OBJ_CORE { + pub handle : ::HANDLE, + pub ownerList : ::DL_LIST, + pub ownerNode : ::DL_NODE, + pub classNode : ::DL_NODE, + pub ownerId : *mut ::OBJ_CORE, + pub ownerRtpId : ::RTP_ID, + pub name : *mut ::c_char, + pub pObjClass : *mut ::wind_class, + pub objHandleList : ::DL_LIST, + pub refCnt : u16, + pub accessCnt : u16, + pub padding : u32, // There is a chance that Rust automatically pads, but + // no point in risking it + } + + // semLibP.h + pub struct semaphore { + #[repr(align(16))] + pub magic : ::OBJ_CORE, + pub semType : u8, + pub options : u8, + pub recurse : u16, + pub priInheritFlag : ::BOOL, + pub qHead : ::Q_HEAD, + pub state : ::size_t, //state is union of UINT and struct pointer + pub events : ::EVENTS_RSRC, + } + +} diff --git a/src/vxworks/armv7.rs b/src/vxworks/armv7.rs new file mode 100644 index 0000000000000..96747ad0f8154 --- /dev/null +++ b/src/vxworks/armv7.rs @@ -0,0 +1,35 @@ +pub type c_long = i32; +pub type c_ulong = u32; + +#[cfg(feature = "_WRS_KERNEL")] +pub type _Vx_TASK_ID = ::c_int; + +#[cfg(feature = "_WRS_KERNEL")] +s! { + pub struct OBJ_CORE { + pub handle : ::HANDLE, + pub ownerList : ::DL_LIST, + pub ownerNode : ::DL_NODE, + pub classNode : ::DL_NODE, + pub ownerId : *mut ::OBJ_CORE, + pub ownerRtpId : ::RTP_ID, + pub name : *mut ::c_char, + pub pObjClass : *mut ::wind_class, + pub objHandleList : ::DL_LIST, + pub refCnt : u16, + pub accessCnt : u16, + } + + // semLibP.h + pub struct semaphore { + #[repr(align(8))] + pub magic : ::OBJ_CORE, + pub semType : u8, + pub options : u8, + pub recurse : u16, + pub priInheritFlag : ::BOOL, + pub qHead : ::Q_HEAD, + pub state : ::size_t, //state is union of UINT and struct pointer + pub events : ::EVENTS_RSRC, + } +} diff --git a/src/vxworks/armv7le.rs b/src/vxworks/armv7le.rs new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs new file mode 100755 index 0000000000000..2b96dc399c1a1 --- /dev/null +++ b/src/vxworks/mod.rs @@ -0,0 +1,2066 @@ +//! Hacking together the definitions for VxWorks Bindings +use dox::mem; /*TODO: Figure out what this even does */ +use core::ptr::null; +use core::ptr::null_mut; +use core::mem::size_of; + +// Notes: +// We might need to define c_int and c_uint, let's figure that out on the fly +// We should really make sense of the scope resolution, because we currently are looking pretty dumb ... +// Glob_T is not needed (?) +// This is still massively incomplete, probably not enough to compile std +// +// Currently, we assume _WRS_KERNEL is not defined in the C-libraries. +// (they are only defined for kernel-side builds only, and we are building for rtps currently) +// In case someone tries to compile for kernel, I've added kernel specific structures and functions +// using cfg. To enable them, compile with the feature _WRS_KERNEL on. +// (This will also make sure that user-side definitions don't compile as well, at least for +// most of them anyway) +// +// The type defs can be different between different compilers and architecture. +// An easy way to check the exact types of a faulting type / structure is to +// use gdb on the compiled executable, and use ptype {faulting type} for a +// faulting type and ptype struct {struct name} for a faulting structure. +// If it shows "No symbol {type / struct name}", that just means that it +// doesn't get called anywhere in the executable, hence it hasn't been +// included during the linking process. +// +// !IMPORTANT: +// Another tip in finding the type definitions is to use the search +// functionality in workspace (flashlight icon in the toolbar). +// You can search for all USER definitions by setting the 'Look in:' +// parameter to your VSB's usr folder, and the 'File types:' parameter +// to *.h. +// +// There are some types that were omitted to be defined, but rather +// it was replaced with the type it is defined as in C. +// For example, STATUS is all set to c_int, pid_t is all set to c_int. +// (I'm not too sure why this was done, but it seems to have been the way +// it was done by the previous co-op, so kept it for now.) + + +pub enum DIR{} + +/* + * vxWorks doesn't define types for these POSIX types: + * + * fsblkcnt_t + * fsfilcnt_t + * id_t + * pthread_barrier_t + * pthread_barrierattr_t + * pthread_rwlock_t + * pthread_rwlockattr_t + * pthread_spinlock_t + * trace_attr_t + * trace_event_id_t + * trace_event_set_t + * trace_id_t + */ + + +// Primitive types. If you are unsure, create an RTP and just run +// sizeof on them. +pub type c_char = i8; + +pub type blkcnt_t = ::c_long; // will probably have to update all of this for each target past version one .. why are we still hacking this? +pub type blksize_t = ::c_long; // *both blkcnt_t and blksize_t were set to i32 before +pub type ino_t = ::c_ulong; // vxworks default ino_t is 64 bits, which is weird because it supports POSIX +pub type ino32_t = u32; +// ssize_t is i32 for LP32 and i64 for LP64, which is accounted for already +// same goes for size_t + +// #[cfg(feature = "__RTP__")] +pub type off_t = ::c_longlong; +//#[cfg(not(feature = "__RTP__"))] +//pub type off_t = ::c_long; + +pub type rlim_t = ::c_ulonglong; //might not be right +pub type suseconds_t = ::c_long; +pub type time_t = ::c_long; +pub type wchar_t = ::c_int; +pub type errno_t = ::c_int; +pub type sighandler_t = ::size_t; +pub type in_port_t = u16; + +pub type useconds_t = ::c_ulong; + +#[cfg(feature = "SOCKLEN_T_UNSIGNED")] +pub type socklen_t = ::c_uint; +#[cfg(not(feature = "SOCKLEN_T_UNSIGNED"))] +pub type socklen_t = ::c_int; + +pub type pthread_t = ::c_ulong; + +#[cfg(feature = "_WRS_KERNEL")] +pub type clockid_t = ::size_t; //set to u64 with LP64 and u32 with LP32 + +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type clockid_t = ::c_int; + + +pub const STDIN_FILENO : ::c_int = 0; +pub const STDOUT_FILENO : ::c_int = 1; +pub const STDERR_FILENO : ::c_int = 2; + +pub const EXIT_SUCCESS : ::c_int = 0; +pub const EXIT_FAILURE : ::c_int = 1; + +// EAI - does this even exist in VxWorks? +pub const EAI_SERVICE : ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM : ::c_int = 11; + +//Clock Lib Stuff +pub const CLOCK_REALTIME : ::c_int = 0x0; +pub const CLOCK_MONOTONIC : ::c_int = 0x1; +pub const CLOCK_PROCESS_CPUTIME_ID : ::c_int = 0x2; +pub const CLOCK_THREAD_CPUTIME_ID : ::c_int = 0x3; +pub const TIMER_ABSTIME : ::c_int = 0x1; +pub const TIME_RELTIME : ::c_int = 0xFFFFFFFE; + +// PTHREAD STUFF +pub const PTHREAD_INITIALIZED_OBJ : ::c_int = 0xF70990EF; // This is an overflow, is that a bad thing? +pub const PTHREAD_DESTROYED_OBJ : ::c_int = -1; +pub const PTHREAD_VALID_OBJ : ::c_int = 0xEC542A37; // This is an overflow, is that a bad thing? +pub const PTHREAD_INVALID_OBJ : ::c_int = -1; +pub const PTHREAD_UNUSED_YET_OBJ : ::c_int = -1; + +pub const PTHREAD_PRIO_NONE : ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT : ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT : ::c_int = 2; + +pub const PTHREAD_MUTEX_NORMAL : ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK : ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE : ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT : ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_STACK_MIN : usize = 4096; + +pub const EFAULT : ::c_int = 14; +pub const EBUSY : ::c_int = 16; +pub const EEXIST : ::c_int = 17; +pub const ENODEV : ::c_int = 19; +pub const EINVAL : ::c_int = 22; +pub const EPIPE : ::c_int = 32; +pub const ERANGE : ::c_int = 34; + +// ERRNO STUFF +pub const EPERM : ::c_int = 1; /* Not owner */ +pub const ENOENT : ::c_int = 2; /* No such file or directory */ +pub const ESRCH : ::c_int = 3; /* No such process */ +pub const EINTR : ::c_int = 4; /* Interrupted system call */ +pub const EIOA : ::c_int = 5; /* I/O error */ +pub const ENXIO : ::c_int = 6; /* No such device or address */ +pub const E2BIG : ::c_int = 7; /* Arg list too long */ +pub const ENOEXEC : ::c_int = 8; /* Exec format error */ +pub const EBADF : ::c_int = 9; /* Bad file number */ +pub const CHILD : ::c_int = 10; /* No children */ +pub const EAGAIN : ::c_int = 11; /* No more processes */ +pub const ENOMEM : ::c_int = 12; /* Not enough core */ +pub const EACCES : ::c_int = 13; /* Permission denied */ +pub const EDEADLK : ::c_int = 33; +pub const EINPROGRESS : ::c_int = 68; +pub const EALREADY : ::c_int = 69; +pub const EWOULDBLOCK : ::c_int = 70; +pub const ENOSYS : ::c_int = 71; +pub const EDESTADDRREQ : ::c_int = 40; +pub const EPROTOTYPE : ::c_int = 41; +pub const ENOPROTOOPT : ::c_int = 42; +pub const EPROTONOSUPPORT : ::c_int = 43; +pub const ESOCKTNOSUPPORT : ::c_int = 44; +pub const EOPNOTSUPP : ::c_int = 45; +pub const EPFNOSUPPORT : ::c_int = 46; +pub const EAFNOSUPPORT : ::c_int = 47; +pub const EADDRINUSE : ::c_int = 48; +pub const EADDRNOTAVAIL : ::c_int = 49; +pub const ENOTSOCK : ::c_int = 50; +pub const ENETUNREACH : ::c_int = 51; +pub const ENETRESET : ::c_int = 52; +pub const ECONNABORTED : ::c_int = 53; +pub const ECONNRESET : ::c_int = 54; +pub const ENOBUFS : ::c_int = 55; +pub const EISCONN : ::c_int = 56; +pub const ENOTCONN : ::c_int = 57; +pub const ESHUTDOWN : ::c_int = 58; +pub const ETOOMANYREFS : ::c_int = 59; +pub const ETIMEDOUT : ::c_int = 60; +pub const ECONNREFUSED : ::c_int = 61; + +// NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h + + +const M_nfsStat : ::c_int = 48 << 16; // This should technically be c_uint, but there is + // no difference between c_int and c_uint when you are + // doing the << operation, (as far as I know) so + // doesn't look that important. +enum nfsstat { + NFS_OK = 0, + NFSERR_PERM = 1, + NFSERR_NOENT = 2, + NFSERR_IO = 5, + NFSERR_NXIO = 6, + NFSERR_ACCESS = 13, + NFSERR_EXIST = 17, + NFSERR_XDEV = 18, + NFSERR_NODEV = 19, + NFSERR_NOTDIR = 20, + NFSERR_ISDIR = 21, + NFSERR_INVAL = 22, + NFSERR_FBIG = 27, + NFSERR_NOSPC = 28, + NFSERR_ROFS = 30, + NFSERR_MLINK = 31, + NFSERR_NAMETOOLONG = 63, + NFSERR_NOTEMPTY = 66, + NFSERR_DQUOT = 69, + NFSERR_STALE = 70, + NFSERR_REMOTE = 71, + NFSERR_WFLUSH = 99, + NFSERR_BADHANDLE = 10001, + NFSERR_NOT_SYNC = 10002, + NFSERR_BAD_COOKIE = 10003, + NFSERR_NOTSUPP = 10004, + NFSERR_TOOSMALL = 10005, + NFSERR_SERVERFAULT = 10006, + NFSERR_BADTYPE = 10007, + NFSERR_JUKEBOX = 10008, +} + +pub const S_nfsLib_NFS_OK : ::c_int = M_nfsStat | nfsstat::NFS_OK as ::c_int; +pub const S_nfsLib_NFSERR_PERM : ::c_int = M_nfsStat | nfsstat::NFSERR_PERM as ::c_int; +pub const S_nfsLib_NFSERR_NOENT : ::c_int = M_nfsStat | nfsstat::NFSERR_NOENT as ::c_int; +pub const S_nfsLib_NFSERR_IO : ::c_int = M_nfsStat | nfsstat::NFSERR_IO as ::c_int; +pub const S_nfsLib_NFSERR_NXIO : ::c_int = M_nfsStat | nfsstat::NFSERR_NXIO as ::c_int; +pub const S_nfsLib_NFSERR_ACCESS : ::c_int = M_nfsStat | nfsstat::NFSERR_ACCESS as ::c_int; +pub const S_nfsLib_NFSERR_EXIST : ::c_int = M_nfsStat | nfsstat::NFSERR_EXIST as ::c_int; +pub const S_nfsLib_NFSERR_NODEV : ::c_int = M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; +pub const S_nfsLib_NFSERR_NOTDIR : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTDIR as ::c_int; +pub const S_nfsLib_NFSERR_ISDIR : ::c_int = M_nfsStat | nfsstat::NFSERR_ISDIR as ::c_int; +pub const S_nfsLib_NFSERR_INVAL : ::c_int = M_nfsStat | nfsstat::NFSERR_INVAL as ::c_int; +pub const S_nfsLib_NFSERR_FBIG : ::c_int = M_nfsStat | nfsstat::NFSERR_FBIG as ::c_int; +pub const S_nfsLib_NFSERR_NOSPC : ::c_int = M_nfsStat | nfsstat::NFSERR_NOSPC as ::c_int; +pub const S_nfsLib_NFSERR_ROFS : ::c_int = M_nfsStat | nfsstat::NFSERR_ROFS as ::c_int; +pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = M_nfsStat | nfsstat::NFSERR_NAMETOOLONG as ::c_int; +pub const S_nfsLib_NFSERR_NOTEMPTY : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTEMPTY as ::c_int; +pub const S_nfsLib_NFSERR_DQUOT : ::c_int = M_nfsStat | nfsstat::NFSERR_DQUOT as ::c_int; +pub const S_nfsLib_NFSERR_STALE : ::c_int = M_nfsStat | nfsstat::NFSERR_STALE as ::c_int; +pub const S_nfsLib_NFSERR_WFLUSH : ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; +pub const S_nfsLib_NFSERR_REMOTE : ::c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; +pub const S_nfsLib_NFSERR_BADHANDLE : ::c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; +pub const S_nfsLib_NFSERR_NOT_SYNC : ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; +pub const S_nfsLib_NFSERR_BAD_COOKIE : ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; +pub const S_nfsLib_NFSERR_NOTSUPP : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTSUPP as ::c_int; +pub const S_nfsLib_NFSERR_TOOSMALL : ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = M_nfsStat | nfsstat::NFSERR_SERVERFAULT as ::c_int; +pub const S_nfsLib_NFSERR_BADTYPE : ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; +pub const S_nfsLib_NFSERR_JUKEBOX : ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; + + +// IP Stuff? These are allll guesswork +pub const IPPROTO_IP : ::c_int = 0; +pub const IP_TTL : ::c_int = 4; // not sure if this is right +pub const IP_ADD_MEMBERSHIP : ::c_int = 11; +pub const IP_DROP_MEMBERSHIP : ::c_int = 12; +pub const IPV6_V6ONLY : ::c_int = 26; +pub const IP_MULTICAST_TTL : ::c_int = 33; +pub const IP_MULTICAST_LOOP : ::c_int = 34; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPPROTO_IPV6 : ::c_int = 41; // or this one, for that matter +pub type in_addr_t = u32; + + +// STAT Stuff +pub const S_IFMT : ::c_int = 0xf000; /* file type field */ +pub const S_IFIFO : ::c_int = 0x1000;/* fifo */ +pub const S_IFCHR : ::c_int = 0x2000;/* character special */ +pub const S_IFDIR : ::c_int = 0x4000;/* directory */ +pub const S_IFBLK : ::c_int = 0x6000;/* block special */ +pub const S_IFREG : ::c_int = 0x8000;/* regular */ +pub const S_IFLNK : ::c_int = 0xa000;/* symbolic link */ +pub const S_IFSHM : ::c_int = 0xb000;/* shared memory object */ +pub const S_IFDEVMEM : ::c_int = 0xd000;/* device memory object */ +pub const S_IFSOCK : ::c_int = 0xc000;/* socket */ +pub const S_ISUID : ::c_int = 0x0800;/* set user id on execution */ +pub const S_ISGID : ::c_int = 0x0400;/* set group id on execution */ +pub const S_ISTXT : ::c_int = 0x0200;/* sticky bit */ +pub const S_IRUSR : ::c_int = 0x0100;/* read permission, owner */ +pub const S_IWUSR : ::c_int = 0x0080;/* write permission, owner */ +pub const S_IXUSR : ::c_int = 0x0040;/* execute/search permission, owner */ +pub const S_IRWXU : ::c_int = 0x01c0;/* read/write/execute permission, owner */ +pub const S_IRGRP : ::c_int = 0x0020;/* read permission, group */ +pub const S_IWGRP : ::c_int = 0x0010;/* write permission, group */ +pub const S_IXGRP : ::c_int = 0x0008;/* execute/search permission, group */ +pub const S_IRWXG : ::c_int = 0x0038;/* read/write/execute permission, group */ +pub const S_IROTH : ::c_int = 0x0004;/* read permission, other */ +pub const S_IWOTH : ::c_int = 0x0002;/* write permission, other */ +pub const S_IXOTH : ::c_int = 0x0001;/* execute/search permission, other */ +pub const S_IRWXO : ::c_int = 0x0007;/* read/write/execute permission, other */ + +pub const SOL_SOCKET : ::c_int = 0xffff; /* options for socket level - more socket stuff below */ +pub const SO_BROADCAST : ::c_int = 0x001e; +pub const SO_SNDTIMEO : ::c_int = 0x1005; +pub const SO_RCVTIMEO : ::c_int = 0x1006; +pub const SOCK_STREAM : ::c_int = 1; +pub const SOCK_DGRAM : ::c_int = 2; +pub const SOCK_RAW : ::c_int = 3; +pub const SOCK_RDM : ::c_int = 4; +pub const SOCK_SEQPACKET : ::c_int = 5; +pub const SOCK_PACKET : ::c_int = 10; +pub const SO_DEBUG : ::c_int = 0x0001; +pub const SO_REUSEADDR : ::c_int = 0x0004; +pub const SO_KEEPALIVE : ::c_int = 0x0008; +pub const SO_DONTROUTE : ::c_int = 0x0010; +pub const SO_RCVLOWAT : ::c_int = 0x0012; + +pub const _SS_MAXSIZE : usize = 128; +pub const _SS_ALIGNSIZE : usize = size_of::<::uint32_t>(); +pub const _SS_PAD1SIZE : usize = (_SS_ALIGNSIZE - size_of::<::c_uchar>() + - size_of::<::sa_family_t>()); +pub const _SS_PAD2SIZE : usize = (_SS_MAXSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>() + -_SS_PAD1SIZE - _SS_ALIGNSIZE); + + +pub const MSG_OOB : ::c_int = 0x0001; +pub const MSG_PEEK : ::c_int = 0x0002; +pub const MSG_DONTROUTE : ::c_int = 0x0004; +pub const MSG_EOR : ::c_int = 0x0008; +pub const MSG_TRUNC : ::c_int = 0x0010; +pub const MSG_CTRUNC : ::c_int = 0x0020; +pub const MSG_WAITALL : ::c_int = 0x0040; +pub const MSG_DONTWAIT : ::c_int = 0x0080; +pub const MSG_EOF : ::c_int = 0x0100; +pub const MSG_EXP : ::c_int = 0x0200; +pub const MSG_MBUF : ::c_int = 0x0400; +pub const MSG_NOTIFICATION : ::c_int = 0x0800; +pub const MSG_COMPAT : ::c_int = 0x8000; + +pub const AF_UNSPEC : ::c_int = 0; +pub const AF_LOCAL : ::c_int = 1; +pub const AF_UNIX : ::c_int = AF_LOCAL; +pub const AF_INET : ::c_int = 2; +pub const AF_NETLINK : ::c_int = 16; +pub const AF_ROUTE : ::c_int = 17; +pub const AF_LINK : ::c_int = 18; +pub const AF_PACKET : ::c_int = 19; +pub const pseudo_AF_KEY: ::c_int = 27; +pub const AF_KEY : ::c_int = pseudo_AF_KEY; +pub const AF_INET6 : ::c_int = 28; +pub const AF_SOCKDEV : ::c_int = 31; +pub const AF_TIPC : ::c_int = 33; +pub const AF_MIPC : ::c_int = 34; +pub const AF_MIPC_SAFE : ::c_int = 35; +pub const AF_MAX : ::c_int = 36; + + +pub const SHUT_RD : ::c_int = 0; /* shut down the reading side */ +pub const SHUT_WR : ::c_int = 1; /* shut down the writing side */ +pub const SHUT_RDWR : ::c_int = 2; /* shut down both sides */ + +pub const IPPROTO_TCP : ::c_int = 6; +pub const TCP_NODELAY : ::c_int = 1; /* don't delay send to coalesce packets */ +pub const TCP_MAXSEG : ::c_int = 2; /* set maximum segment size */ +pub const TCP_NOPUSH : ::c_int = 3; /* don't push last block of write */ +pub const TCP_KEEPIDLE : ::c_int = 4; /* Send first keepalive probe when the connections + been isdl this time (in seconds) */ +pub const TCP_KEEPINTVL: ::c_int = 5; /* Interval (in seconds) between keepalives */ +pub const TCP_KEEPCNT : ::c_int = 6; /* Maximum number of keepalives before dropping + the connection */ +pub const SO_ERROR : ::c_int = 4; /* It's either 4, 0x1007, or doesn't exist, idk which */ + +//defined for the structs +pub type dev_t = ::c_ulong; +pub type mode_t = ::c_int; +pub type nlink_t = ::c_ulong; +pub type uid_t = ::c_ushort; //from glibc ... I can't seem to find this elsewhere +pub type gid_t = ::c_ushort; +pub type sigset_t = ::c_ulonglong; +pub type key_t = ::c_long; +pub type shmatt_t = ::c_ulong; /* Might not be stable .. do we even support shared memory? */ + +#[cfg(feature = "_WRS_KERNEL")] +pub type mqd_t = ::size_t; //type is struct mq_des * in kernel definition +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type mqd_t = ::c_int; + +pub type nfds_t = ::c_uint; +pub type nl_item = ::c_int; /* Can't find in VxWorks - from https://doc.rust-lang.org/1.10.0/libc/type.nl_item.html */ +pub type stat64 = ::stat; + +pub type pthread_key_t = ::c_ulong; + +// From b_off_t.h +pub type off64_t = ::c_longlong; +pub type off_t64 = ::c_longlong; + +// From b_BOOL.h +pub type BOOL = ::c_int; // excuse me what + +//Straight from vxWind.h .. + +// definitions in krnl directory +#[cfg(feature = "_WRS_KERNEL")] +pub type OBJ_HANDLE = ::c_int; +#[cfg(feature = "_WRS_KERNEL")] +pub type CLASS_ID = *mut ::wind_class; +#[cfg(feature = "_WRS_KERNEL")] +pub type RTP_ID = *mut ::wind_rtp; +#[cfg(feature = "_WRS_KERNEL")] +pub type TASK_ID = ::_Vx_TASK_ID; +#[cfg(feature = "_WRS_KERNEL")] +pub type SEM_ID = *mut ::semaphore; +#[cfg(feature = "_WRS_KERNEL")] +pub type OBJ_ID = *mut ::c_void; + +// definitions in usr directory +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_OBJ_HANDLE = ::c_int; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_SEM_ID_KERNEL = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; + +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type TASK_ID = ::OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type MSG_Q_ID = ::OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type SEM_ID_KERNEL = ::OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type RTP_ID = ::OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type SD_ID = ::OBJ_HANDLE; +#[cfg(not(feature = "_WRS_KERNEL"))] +pub type CONDVAR_ID = ::OBJ_HANDLE; + +// From vxTypes.h +pub type _Vx_usr_arg_t = ::ssize_t; // c_int for LP32 +pub type _Vx_exit_code_t = ::ssize_t; // c_int for LP32 +pub type _Vx_ticks_t = ::c_uint; +pub type _Vx_ticks64_t = ::c_ulonglong; + +// From vxTypesBase.h +pub type va_list = *mut ::c_char; + + +// IO Lib Definitions: + +pub const FIONREAD : ::c_int = 1; +pub const FIOFLUSH : ::c_int = 2; +pub const FIOOPTIONS : ::c_int = 3; +pub const FIOBAUDRATE : ::c_int = 4; +pub const FIODISKFORMAT : ::c_int = 5; +pub const FIODISKINIT : ::c_int = 6; +pub const FIOSEEK : ::c_int = 7; +pub const FIOWHERE : ::c_int = 8; +pub const FIODIRENTRY : ::c_int = 9; +pub const FIORENAME : ::c_int = 10; +pub const FIOREADYCHANGE : ::c_int = 11; +pub const FIOWRITE : ::c_int = 12; +pub const FIODISKCHANGE : ::c_int = 13; +pub const FIOCANCEL : ::c_int = 14; +pub const FIOSQUEEZE : ::c_int = 15; +pub const FIONBIO : ::c_int = -1878786032; // it goes on ... +// ((int) ( 0x80000000 | (4 & 0xfff) << 16) | 0x10000000 | (0 << 8) | (16 & 0xff))) +// You can also try and print out the value after including ioLib.h in an rtp. +pub const _POSIX_PATH_MAX : ::c_int = 256; + + +// Some poll stuff +pub const POLLIN : ::c_short = 0x0001; +pub const POLLPRI : ::c_short = 0x0002; +pub const POLLOUT : ::c_short = 0x0004; +pub const POLLRDNORM: ::c_short = 0x0040; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0080; +pub const POLLWRBAND: ::c_short = 0x0100; +pub const POLLER : ::c_short = 0x0008; +pub const POLLHUP : ::c_short = 0x0010; +pub const POLLNVAL : ::c_short = 0x0020; + +//Some Fcntlcom Stuff (look at fcntlcom.h to find definitions) +pub const FD_CLOEXEC : ::c_int = 1; +pub const F_DUPFD : ::c_int = 0; +pub const F_GETFD : ::c_int = 1; +pub const F_SETFD : ::c_int = 2; +pub const F_GETFL : ::c_int = 3; +pub const F_SETFL : ::c_int = 4; +pub const F_GETOWN : ::c_int = 5; +pub const F_SETOWN : ::c_int = 6; +pub const F_GETLK : ::c_int = 7; +pub const F_SETLK : ::c_int = 8; +pub const F_SETLKW : ::c_int = 9; +pub const F_DUPFD_CLOEXEC : ::c_int = 14; + +//Some Dirent.h stuff +pub const DT_UNKNOWN : ::c_uchar = 0x0; +pub const DT_FIFO : ::c_uchar = 0x1; +pub const DT_CHR : ::c_uchar = 0x2; +pub const DT_DIR : ::c_uchar = 0x4; +pub const DT_BLK : ::c_uchar = 0x6; +pub const DT_REG : ::c_uchar = 0x8; +pub const DT_LNK : ::c_uchar = 0xA; +pub const DT_SOCK : ::c_uchar = 0xC; +pub const DT_WHT : ::c_uchar = 0xE; + +// Other Random Stuff +pub const VXSIM_EWOULDBLOCK : ::c_int = 70; +pub const IPV6_ADD_MEMBERSHIP : ::c_int = 20; //Might not be supported +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; //Also might not be supported + +pub type sa_family_t = ::c_uchar; //UINT16 for ipcom_sock.h, but uchar in socket.h + +// Signal stuff? +pub const SIG_ERR : ::c_int = -1; +pub const SIG_DEL : ::c_int = 0; +pub const SIG_IGN : ::c_int = 1; +pub const SIGHUP : ::c_int = 1; /* hangup */ +pub const SIGINT : ::c_int = 2; /* interrupt */ +pub const SIGQUIT : ::c_int = 3; /* quit */ +pub const SIGILL : ::c_int = 4; /* illegal instruction (not reset when caught) */ +pub const SIGTRAP : ::c_int = 5; /* trace trap (not reset when caught) */ +pub const SIGABRT : ::c_int = 6; /* used by abort, replace SIGIOT in the future */ +pub const SIGEMT : ::c_int = 7; /* EMT instruction */ +pub const SIGFPE : ::c_int = 8; /* floating point exception */ +pub const SIGKILL : ::c_int = 9; /* kill */ +pub const SIGBUS : ::c_int = 10; /* bus error */ +pub const SIGSEGV : ::c_int = 11; /* segmentation violation */ +pub const SIGFMT : ::c_int = 12; /* STACK FORMAT ERROR (not posix) */ +pub const SIGPIPE : ::c_int = 13; /* write on a pipe with no one to read it */ +pub const SIGALRM : ::c_int = 14; /* alarm clock */ +pub const SIGTERM : ::c_int = 15; /* software termination signal from kill */ +pub const SIGCNCL : ::c_int = 16; /* pthreads cancellation signal */ +pub const SIGSTOP : ::c_int = 17; /* sendable stop signal not from tty */ +pub const SIGTSTP : ::c_int = 18; /* stop signal from tty */ +pub const SIGCONT : ::c_int = 19; /* continue a stopped process */ +pub const SIGCHLD : ::c_int = 20; /* to parent on child stop or exit */ +pub const SIGTTIN : ::c_int = 21; /* to readers pgrp upon background tty read */ +pub const SIGTTOU : ::c_int = 22; /* like TTIN for output if (tp->t_local<OSTOP) */ + +pub const SIG_BLOCK : ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +pub const SI_SYNC : ::c_int = 0; /* (Not posix) gernerated by hardware */ +pub const SI_USER : ::c_int = -1; /* signal from kill() function */ +pub const SI_QUEUE : ::c_int = -2; /* signal from sigqueue() function */ +pub const SI_TIMER : ::c_int = -3; /* signal from expiration of a timer */ +pub const SI_ASYNCIO : ::c_int = -4; /* signal from completion of async I/O */ +pub const SI_MESGQ : ::c_int = -5; /* signal from arrival of a message */ +pub const SI_CHILD : ::c_int = -6; /* signal from child, stopped or terminated */ +pub const SI_KILL : ::c_int = SI_USER; /* signal from kill() function */ +pub const SIG_DFL : sighandler_t = 0 as sighandler_t; + +// vxParams.h definitions +#[cfg(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT")] +pub const _PARM_NAME_MAX : usize = 1020; +#[cfg(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT")] +pub const _PARM_PATH_MAX : usize = 1080; +#[cfg(not(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT"))] +pub const _PARM_NAME_MAX : usize = 255; +#[cfg(not(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT"))] +pub const _PARM_PATH_MAX : usize = 1024; + +// vxWindCommon.h +#[cfg(feature = "_WRS_KERNEL")] +pub enum windObjClassType + { + windInvalidClass = 0, /* invalid class type class */ + windSemClass, /* Wind native semaphore */ + windSemPxClass, /* POSIX semaphore */ + windMsgQClass, /* Wind native message queue */ + windMqPxClass, /* POSIX message queue */ + windRtpClass, /* real time process */ + windTaskClass, /* task */ + windWdClass, /* watchdog */ + windFdClass, /* file descriptor */ + windPgPoolClass, /* page pool */ + windPgMgrClass, /* page manager */ + windGrpClass, /* group */ + windVmContextClass, /* virtual memory context */ + windTrgClass, /* trigger */ + windMemPartClass, /* memory partition */ + windI2oClass, /* I2O */ + windDmsClass, /* device management system */ + windSetClass, /* Set */ + windIsrClass, /* ISR object */ + windTimerClass, /* Timer services */ + windSdClass, /* Shared data region */ + windPxTraceClass, /* POSIX trace */ + windCondVarClass, /* Condition Variables */ + windApexSamplingPortClass, /* APEX Sampling Port */ + windApexQueuingPortClass, /* APEX Queuing Port */ + windApexProcessClass, /* APEX process */ + windApexBufferClass, /* APEX buffer */ + windApexSemaphoreClass, /* APEX semaphore */ + windApexBlackboardClass, /* APEX blackboard */ + windApexEventClass, /* APEX event */ + + /* see comments in posix section on windNumObjClass */ + windNumObjClass +} + + + +// WAIT STUFF +pub const WNOHANG : ::c_int = 0x01; +pub const WUNTRACED : ::c_int = 0x02; + + +const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { + mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, + mutexAttrProtocol: PTHREAD_PRIO_NONE, + mutexAttrPrioceiling: 0, + mutexAttrType: PTHREAD_MUTEX_DEFAULT, +}; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + mutexSemId: null_mut(), + mutexValid: PTHREAD_VALID_OBJ, + mutexInitted: PTHREAD_UNUSED_YET_OBJ, + mutexCondRefCount: 0, + mutexSavPriority: 0, + mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, +}; + +const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { + condAttrStatus: 0, + _CondAttrClockId: CLOCK_REALTIME, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + condSemId: null_mut(), + condValid: PTHREAD_VALID_OBJ, + condInitted: PTHREAD_UNUSED_YET_OBJ, + condRefCount: 0, + condMutex: null_mut(), + condAttr: PTHREAD_CONDATTR_INITIALIZER, +}; + +const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = pthread_rwlockattr_t { + rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, + rwlockAttrMaxReaders: 0, +}; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + rwlockSemId: null_mut(), + rwlockReadersRefCount: 0, + rwlockValid: PTHREAD_VALID_OBJ, + rwlockInitted: PTHREAD_UNUSED_YET_OBJ, + rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, +}; + +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; + +// rtpLibCommon.h +pub const VX_RTP_NAME_LENGTH : usize = 255; + +//Some unsupported stuff +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = -1; // Via unistd.h +pub const _SC_PAGESIZE : ::c_int = 64; // getpagesize(); // Via getpagesize.c - this might actually be supported? The _sc_pagesize depends on the underlying architecture - this is hacked because I can't get it to work +pub const O_ACCMODE : ::c_int = 3; // from docs - the actual definition is a bunch of ors +pub const O_CLOEXEC : ::c_int = 0x100000; // fcntlcom +pub const O_EXCL : ::c_int = 0x0800; +pub const O_CREAT : ::c_int = 0x0200; +pub const O_TRUNC : ::c_int = 0x0400; +pub const O_APPEND : ::c_int = 0x0008; +pub const O_RDWR : ::c_int = 2; +pub const O_WRONLY : ::c_int = 1; +pub const O_RDONLY : ::c_int = 0; + + +// taskLib.h +// Exists in both krnl and usr directories, but not mentioned in +// usr functions in this liblibc. +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct windTcb; + +// classLibP.h +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct wind_class; + +// rtpLibP.h +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct wind_rtp; + +// qLibP.h +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct Q_NODE; + +// qLibP.h +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct q_class; + + +// dllLib.h +// This struct exists for both kernel and user, but it doesn't get used +// for user. +// It's only used as a pointer, so only declared. +#[cfg(feature = "_WRS_KERNEL")] +pub struct DL_NODE; + +// structs only used by kernel functions (that are ported) +#[cfg(feature = "_WRS_KERNEL")] +s! { + // eventLibP.h + pub struct EVENTS_RSRC { + pub taskId : ::TASK_ID, + pub registered : ::c_uint, + pub options : ::c_uchar, + pub pad : [::c_uchar; 3], + } + + + // qLibP.h + pub struct Q_HEAD { + pub pFirstNode : *mut ::Q_NODE, + pub qPriv1 : c_ulong, + pub qPriv2 : c_ulong, + pub pQClass : *mut ::q_class, + } + + // handleLibP.h + // This struct exists for both kernel and user, but it doesn't get used + // for user. + pub struct HANDLE { + pub magic : ::c_ulong, + pub safeCnt : u32, + pub attributes : u16, + pub _type : i8, + pub contextType : u8, + pub context : *mut ::c_void, + } + + // dllLib.h + // This struct exists for both kernel and user, but it doesn't get used. + // for user. + pub struct DL_LIST { // DL_LIST is actually _Vx_DL_LIST + pub head : *mut ::DL_NODE, + pub tail : *mut ::DL_NODE, + } + + // pthread.h + pub fn pthread_cond_init ( + cond: *mut ::pthread_cond_t, + attr: *mut ::pthread_condattr_t, + ) -> ::c_int; +} + +// structs that only exist in userspace +#[cfg(not(feature = "_WRS_KERNEL"))] +s! { + // b_struct_vx_eventsResourceCb.h + pub struct _Vx_EVENTS_RSRC { + pub registered : ::c_uint, + pub taskId : ::c_int, + pub options : ::c_uchar, + pub pad : [::c_uchar; 3], + } + + // b_struct_vx_semaphore.h + pub struct _Vx_semaphore { + pub magic : ::c_uint, + pub semType: ::c_uint, + pub options: ::c_uint, + pub recurse: ::c_uint, + pub owned_k: ::c_uint, // owned_k is volatile + pub semId_k: ::_Vx_SEM_ID_KERNEL, + pub state : ::c_uint, //state is union of _Vx_UINT and _Vx_UINT + pub events : ::_Vx_EVENTS_RSRC, + } + + // b_pthread_condattr_t.h + pub struct pthread_condattr_t { + pub condAttrStatus: ::c_int, + pub _CondAttrClockId: ::clockid_t, + } + + // b_pthread_cond_t.h + pub struct pthread_cond_t{ + pub condSemId: ::_Vx_SEM_ID, + pub condValid: ::c_int, + pub condInitted: ::c_int, + pub condRefCount: ::c_int, + pub condMutex: *mut ::pthread_mutex_t, + pub condAttr: ::pthread_condattr_t, + } + + // b_pthread_rwlockattr_t.h + pub struct pthread_rwlockattr_t { + pub rwlockAttrStatus: ::c_int, + pub rwlockAttrMaxReaders: ::c_uint, + } + + // b_pthread_rwlock_t.h + pub struct pthread_rwlock_t { + pub rwlockSemId: :: _Vx_SEM_ID, + pub rwlockReadersRefCount: ::c_int, + pub rwlockValid: ::c_int, + pub rwlockInitted: ::c_int, + pub rwlockAttr: ::pthread_rwlockattr_t, + } + + + // b_struct_timeval.h + pub struct timeval { + pub tv_sec: ::time_t, + pub tv_usec: ::suseconds_t, + } +} + +s! { + + // socket.h + pub struct sockaddr { + pub sa_len : ::c_uchar, + pub sa_family : sa_family_t, + pub sa_data : [::c_char; 14], + } + + // socket.h + pub struct sockaddr_storage { // Worth noting Sizeof is probably in bytres + pub ss_len : ::c_uchar, + pub ss_family : ::sa_family_t, + pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], //Size of UInt32_t - Size of U_char - Size of SA_Family(t), which is a Uchar? + pub __ss_align : ::int32_t, + pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], // 128 - Sizeof Char (1) - Sizeof SA_Family_t (1) - ss_pad_1 (2?) -Size of Uint32 (4?) + } + + // poll.h + pub struct pollfd { + pub fd : ::c_int, + pub events : ::c_short, + pub revents : ::c_short, + } + + // dirent.h + pub struct dirent { + // It seems like in the newer version of vxworks, there is no dirent64 + // In pkgs_v2, there is no symbol for dirent64 in vx7-SR0600 + pub d_ino : ::ino_t, + pub d_name : [::c_char; (_PARM_NAME_MAX + 1)], /* NAME_MAX = 255, length of d_name is 256 */ + } + + pub struct dirent64 { + pub d_ino : ::ino_t, + pub d_off : ::off64_t, + pub d_reclen : u16, + pub d_type : u8, + pub d_name : [::c_char; 256], + } // Doesn't seem like it exists anymore + + // resource.h + pub struct rlimit { /* Is this really needed? Questionable ... */ + pub rlim_cur : ::size_t, + pub rlim_max : ::size_t, + } + + // stat.h + pub struct stat { /* we might also need a stat 64 */ + pub st_dev : ::dev_t, /* Device ID number */ + pub st_ino : ::ino_t, /* File serial number */ + pub st_mode : ::mode_t, /* Mode of file */ + pub st_nlink : ::nlink_t, /* Number of hard links to file */ + pub st_uid : ::uid_t, /* User ID of file */ + pub st_gid : ::gid_t, /* Group ID of file */ + pub st_rdev : ::dev_t, /* Device ID if special file */ + pub st_size : ::off_t, /* File size in bytes */ + pub st_atime : ::time_t, /* Time of last access */ + pub st_mtime : ::time_t, /* Time of last modification */ + pub st_ctime : ::time_t, /* Time of last status change */ + pub st_blksize : ::blksize_t, /* File system block size */ + pub st_blocks : ::blkcnt_t, /* Number of blocks containing file */ + pub st_attrib : ::c_uchar, /* DOSFS only - file attributes */ + pub st_reserved1 : ::c_int, /* reserved for future use */ + pub st_reserved2 : ::c_int, /* reserved for future use */ + pub st_reserved3 : ::c_int, /* reserved for future use */ + pub st_reserved4 : ::c_int, /* reserved for future use */ + } + + //b_struct__Timespec.h + pub struct _Timespec { + pub tv_sec : ::time_t, + pub tv_nsec : ::c_long, + } + + // b_struct__Sched_param.h + pub struct _Sched_param { + pub sched_priority: ::c_int, /* scheduling priority */ + + #[cfg(not(feature = "_WRS_KERNEL"))] + pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ + #[cfg(not(feature = "_WRS_KERNEL"))] + pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ + #[cfg(not(feature = "_WRS_KERNEL"))] + pub sched_ss_init_budget: ::_Timespec, /* initial budget */ + #[cfg(not(feature = "_WRS_KERNEL"))] + pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ + + } + + // b_pthread_attr_t.h + pub struct pthread_attr_t { + pub threadAttrStatus : ::c_int, /* status flag */ + pub threadAttrStacksize : ::size_t, /* stack size */ + pub threadAttrStackaddr : *mut ::c_void, /* stack address */ + pub threadAttrGuardsize : ::size_t, /* guard address (RTP only) */ + pub threadAttrDetachstate : ::c_int, /* detach state */ + pub threadAttrContentionscope : ::c_int, /* contention scope */ + pub threadAttrInheritsched : ::c_int, /* inherit scheduler */ + pub threadAttrSchedpolicy : ::c_int, /* scheduling policy */ + pub threadAttrName : *mut ::c_char, /* task name - VxWorks extension */ + pub threadAttrOptions : ::c_int, /* task options - VxWorks extension */ + pub threadAttrSchedparam : ::_Sched_param, /* sched param struct */ + } + + // signal.h + pub struct sigaction { // pulled from kernel side, + pub sa_u : ::size_t, // Other libc implementation treats this as size_t as well + // This is a union of two function pointers. + // Under the assumption that function pointers are the same + // size as other pointers, we can replace the union with size_t + pub sa_mask : ::sigset_t, + pub sa_flags : ::c_int, + } + + // b_stack_t.h + pub struct stack_t { + pub ss_sp : *mut ::c_void, + pub ss_size : ::size_t, + pub ss_flags : ::c_int, + } + + // signal.h + pub struct siginfo_t { // Aliased as _SigInfo? - ask Brian from signal.h user??? + pub si_signo : ::c_int, + pub si_code : ::c_int, + // This field is a union of int and void * in vxworks + // The size has been set to the larger of the two + pub si_value : ::size_t, + } + + pub struct ipc_perm { /* See note on shmid_ds below ... we might not need this at all */ + pub __key : key_t, + pub uid : uid_t, + pub gid : gid_t, + pub cuid : uid_t, + pub cgid : gid_t, + pub mode : ::c_ushort, + pub __seq : ::c_ushort, + } + + pub struct shmid_ds { // kernel stuff? I literally can't find it in the source ... + /* + This is all copied from a POSIX documentation - https://www.tldp.org/LDP/lpg/node68.html + This probably doesn't work but we'll keep it like this for now. It seems to be a unix and not a POSIX thing/. + + */ + pub shm_perm : ipc_perm, + pub shm_segsz : ::c_int, + } + + + + // pthread.h (krnl) + // b_pthread_mutexattr_t.h (usr) + pub struct pthread_mutexattr_t { + mutexAttrStatus : ::c_int, + + #[cfg(all(feature = "_POSIX_THREAD_PROCESS_SHARED", feature = "_WRS_KERNEL"))] + mutexAttrPshared : ::c_int, + + mutexAttrProtocol : ::c_int, + mutexAttrPrioceiling : ::c_int, + mutexAttrType : ::c_int, + } + + // pthread.h (krnl) + // b_pthread_mutex_t.h (usr) + pub struct pthread_mutex_t { + + #[cfg(feature = "_WRS_KERNEL")] + pub mutexSemId: ::SEM_ID, /*_Vx_SEM_ID ..*/ + #[cfg(not(feature = "_WRS_KERNEL"))] + pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ + + pub mutexValid: ::c_int, + pub mutexInitted: ::c_int, + pub mutexCondRefCount: ::c_int, + pub mutexSavPriority: ::c_int, + pub mutexAttr: ::pthread_mutexattr_t, + } + + + + // b_struct_timespec.h + pub struct timespec { + pub tv_sec: ::time_t, + pub tv_nsec: ::c_long, + } + + + // in.h + pub struct in_addr { + pub s_addr: in_addr_t, + } + + // in.h + pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + } + + // in6.h + pub struct in6_addr { + pub s6_addr: [u8; 16], + } + + // in6.h + pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: ::c_uint, + } + + // netdb.h + pub struct addrinfo { + pub ai_flags : ::c_int, + pub ai_family : ::c_int, + pub ai_socktype : ::c_int, + pub ai_protocol : ::c_int, + pub ai_addrlen : ::size_t, + pub ai_canonname: *mut ::c_char, + pub ai_addr : *mut ::sockaddr, + pub ai_next : *mut ::addrinfo, + } + + // in.h + pub struct sockaddr_in { + pub sin_len : u8, + pub sin_family: u8, + pub sin_port : u16, + pub sin_addr : ::in_addr, + pub sin_zero : [::c_char; 8], + } + + // in6.h + // There is a different implementation in ipv6.h in + // krnl directory, but this seems to only happen + // when the VSB is built for ipv6 only. + pub struct sockaddr_in6 { + pub sin6_len : u8, + pub sin6_family : u8, + pub sin6_port : u16, + pub sin6_flowinfo: u32, + pub sin6_addr : ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct passwd { // Doesn't seem to exist, so we are copying the POSIX standard + pub pw_name: *mut ::c_char, + pub pw_uid: ::uid_t, + pub pw_gid: ::gid_t, + pub pw_dir: *mut ::c_char, + pub pw_shell: *mut ::c_char, + } + + // rtpLibCommon.h + pub struct RTP_DESC { + pub status : ::c_int, + pub options : u32, + pub entrAddr : *mut ::c_void, + pub initTaskId: ::TASK_ID, + pub parentId : ::RTP_ID, + pub pathName : [::c_char; (VX_RTP_NAME_LENGTH + 1)], + pub taskCnt : u32, + pub textStart : *mut ::c_void, + pub textEnd : *mut ::c_void, + } + +} + +extern { // this is gonna be a big one + + // stdlib.h + // This function may not be defined for armv7 + pub fn memalign ( + block_size: ::size_t, + size_arg: ::size_t, + ) -> *mut ::c_void; + + // ioLib.h + pub fn getcwd ( + buf: *mut ::c_char, + size: ::size_t, + ) -> *mut ::c_char; + + // ioLib.h + pub fn chdir ( + attr: *const ::c_char, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_init ( /* PTHREAD STUFF */ + attr: *mut pthread_mutexattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_destroy( + attr: *mut pthread_mutexattr_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutexattr_settype ( + pAttr: *mut ::pthread_mutexattr_t, + pType: ::c_int, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_init ( + mutex: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_destroy ( + mutex: *mut pthread_mutex_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_lock( + mutex: *mut pthread_mutex_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_trylock ( + mutex: *mut pthread_mutex_t + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_mutex_timedlock ( + attr: *mut pthread_mutex_t, + spec: *const timespec, + ) -> ::c_int; + + // pthread.h + pub fn pthread_mutex_unlock ( + mutex: *mut pthread_mutex_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_setname ( + pAttr: *mut ::pthread_attr_t, + name : *mut ::c_char, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_setstacksize ( + attr : *mut ::pthread_attr_t, + stacksize: ::size_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_getstacksize ( + attr: *const ::pthread_attr_t, + size: *mut ::size_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_init( + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_create ( + pThread: *mut ::pthread_t, + pAttr: *const ::pthread_attr_t, + start_routine : extern fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_destroy ( + thread: *mut ::pthread_attr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_detach ( + thread: ::pthread_t, + ) -> ::c_int; + + // stat.h + pub fn fstat( + fildes: ::c_int, + buf: *mut stat, + ) -> ::c_int; + + // stat.h + pub fn lstat( + path: *const ::c_char, + buf: *mut stat, + ) -> ::c_int; + + // unistd.h + pub fn ftruncate( + fd: ::c_int, + length: off_t + ) -> ::c_int; + + // dirent.h + pub fn readdir_r( + pDir : *mut ::DIR, /* pointer to directory descriptor */ + entry : *mut ::dirent, /* pointer to directory entry */ + result: *mut *mut ::dirent, /* pointer to directory result of read */ + ) -> ::c_int; + + // dirent.h + pub fn readdir( + pDir: *mut ::DIR + ) -> *mut ::dirent; + + // fcntl.h or + // ioLib.h + pub fn open ( // this might be hacked + path: *const ::c_char, + oflag: ::c_int, + ... + ) -> ::c_int; + + // poll.h + pub fn poll( + fds: *mut pollfd, // this is suppose to be an array, but doesn't seem to matter + // whether or not it is, so just keep this. + nfds: nfds_t, + timeout: ::c_int + ) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_init( + attr: *mut ::pthread_condattr_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_destroy( + attr: *mut ::pthread_condattr_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_getclock ( + pAttr: *const ::pthread_condattr_t, + pClockId: *mut ::clockid_t + ) -> ::c_int; + + // pthread.h + pub fn pthread_condattr_setclock ( + pAttr: *mut ::pthread_condattr_t, + clockId: ::clockid_t + ) -> ::c_int; + + + + // pthread.h + + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_cond_init ( + cond: *mut ::pthread_cond_t, + attr: *const ::pthread_condattr_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_destroy ( + cond: *mut pthread_cond_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_signal ( + cond: *mut ::pthread_cond_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_broadcast ( + cond: *mut ::pthread_cond_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_cond_wait ( + cond: *mut ::pthread_cond_t, + mutex: *mut ::pthread_mutex_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlockattr_init ( + attr: *mut ::pthread_rwlockattr_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlockattr_destroy ( + attr: *mut ::pthread_rwlockattr_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlockattr_setmaxreaders ( + attr: *mut ::pthread_rwlockattr_t, + attr2: ::c_uint, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_init ( + attr: *mut ::pthread_rwlock_t, + host: *const ::pthread_rwlockattr_t + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_destroy ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_rdlock ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_tryrdlock ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_timedrdlock ( + attr: *mut ::pthread_rwlock_t, + host: *const ::timespec, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_wrlock ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_trywrlock ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_timedwrlock ( + attr: *mut ::pthread_rwlock_t, + host: *const ::timespec, + ) -> ::c_int; + + // pthread.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn pthread_rwlock_unlock ( + attr: *mut ::pthread_rwlock_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_key_create ( + key: *mut ::pthread_key_t, + dtor: Option + ) -> ::c_int; + + // pthread.h + pub fn pthread_key_delete ( + key: ::pthread_key_t, + ) -> ::c_int; + + // pthread.h + pub fn pthread_setspecific ( + key: ::pthread_key_t, + value: *const ::c_void, + ) -> ::c_int; + + // pthread.h + pub fn pthread_getspecific( + key: ::pthread_key_t, + ) -> *mut ::c_void; + + // pthread.h + pub fn pthread_cond_timedwait ( + cond: *mut ::pthread_cond_t, + mutex: *mut ::pthread_mutex_t, + abstime: *const ::timespec + ) -> ::c_int; + + // pthread.h + pub fn pthread_attr_getname( + attr: *mut ::pthread_attr_t, + name: *mut *mut ::c_char, + ) -> ::c_int; + + // pthread.h + pub fn pthread_join( + thread: ::pthread_t, + status: *mut *mut ::c_void, + ) -> ::c_int; + + // pthread.h + pub fn pthread_self( + ) -> ::pthread_t; + + // clockLib.h + pub fn clock_gettime ( + clock_id: ::clockid_t, + tp: *mut ::timespec, + ) -> ::c_int; + + // clockLib.h + pub fn clock_settime ( + clock_id: ::clockid_t, + tp: *const ::timespec + ) -> ::c_int; + + // clockLib.h + #[cfg(feature = "_WRS_KERNEL")] + pub fn clock_adjtime ( + clock_id: ::clockid_t, + delta: *const ::timespec, + olddelta: *mut ::timespec + ) -> ::c_int; + + // clockLib.h + pub fn clock_getres ( + clock_id: ::clockid_t, + res: *mut ::timespec, + ) -> ::c_int; + + // clockLib.h + pub fn clock_nanosleep ( + clock_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec + ) -> ::c_int; + + // timerLib.h + pub fn nanosleep ( + rqtp: *const ::timespec, + rmtp: *mut ::timespec + ) -> ::c_int; + + // socket.h + pub fn accept ( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::c_int; + + // socket.h + pub fn bind( + fd: ::c_int, + addr: *const sockaddr, + len: socklen_t + ) -> ::c_int; + + // socket.h + pub fn connect ( + s: ::c_int, + name: *const ::sockaddr, + namelen: ::socklen_t, + ) -> ::c_int; + + // socket.h + pub fn getpeername ( + s: ::c_int, + name: *mut ::sockaddr, + namelen: *mut ::socklen_t, + ) -> ::c_int; + + // socket.h + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + + // socket.h + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; + + // socket.h + pub fn listen( + socket: ::c_int, + backlog: ::c_int, + ) -> ::c_int; + + // socket.h + pub fn recv ( + s: ::c_int, + buf: *mut ::c_void, + bufLen: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + + // socket.h + pub fn recvfrom ( + s: ::c_int, + buf: *mut ::c_void, + bufLen: ::size_t, + flags: ::c_int, + from: *mut ::sockaddr, + pFromLen: *mut ::socklen_t, + ) -> ::ssize_t; + + // socket.h + pub fn send( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + + // socket.h + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t + ) -> ::ssize_t; + + // socket.h + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t + ) -> ::c_int; + + // socket.h + pub fn shutdown ( + s: ::c_int, + how: ::c_int, + ) -> ::c_int; + + // socket.h + pub fn socket ( + domain: ::c_int, + _type: ::c_int, + protocol: ::c_int + ) -> ::c_int; + + pub fn socketpair( // Doesn't exist + domain: ::c_int, + type_: ::c_int, + protocol: ::c_int, + socket_vector: *mut ::c_int, + ) -> ::c_int; + + // icotl.h + pub fn ioctl( + fd: ::c_int, + request: ::c_int, + ... + ) -> ::c_int; + + // fcntl.h + pub fn fcntl( + fd: ::c_int, + cmd: ::c_int, ... + ) -> ::c_int; + + // ntp_rfc2553.h for kernel + // netdb.h for user + pub fn gai_strerror( + errcode: ::c_int + ) -> *mut ::c_char; + + // ioLib.h or + // unistd.h + pub fn close( + fd: ::c_int + ) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn read( // Since this is from FD< big errors might happen + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t + ) -> ::ssize_t; + + // ioLib.h or + // unistd.h + pub fn write( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t + ) -> ::ssize_t; + + // ioLib.h or + // unistd.h + pub fn isatty( + fd : ::c_int + ) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn dup( + src: ::c_int, + ) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn dup2( + src: ::c_int, + dst: ::c_int, + ) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn pipe ( + fds: *mut ::c_int // this is suppose to be an array, but doesn't seem to matter + // whether or not it is, so just keep this. + ) -> ::c_int; + + // ioLib.h or + // unistd.h + pub fn unlink ( + pathname: *const ::c_char, + ) -> ::c_int; + + // unistd.h and + // ioLib.h + pub fn lseek( + fd: ::c_int, + offset: off_t, + whence: ::c_int, + ) -> off_t; + + // netdb.h + pub fn getaddrinfo( + node: *const ::c_char, + service: *const ::c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; + + // netdb.h + pub fn freeaddrinfo( + res: *mut addrinfo + ); + + // signal.h + pub fn signal( // Probably wrong ... + signum: ::c_int, + handler: sighandler_t + ) -> sighandler_t; + + // unistd.h + #[cfg(feature = "_WRS_KERNEL")] + pub fn getpid( + ) -> ::RTP_ID; + + // unistd.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn getpid( + ) -> ::c_int; //should be pid_t, but is being dodged + + // unistd.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn getppid ( + ) -> ::c_int; // defined in b_pid_t.h - am dodging the pid_t thing + //should be pid_t, but is being dodged + + // wait.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn waitpid( + pid: ::c_int, //should be pid_t, but is being dodged + status: *mut ::c_int, + optons: ::c_int, + ) -> ::c_int; //should be pid_t, but is being dodged + + // unistd.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn sysconf ( + attr: ::c_int + ) -> ::c_long; + + // unistd.h + // For user space, return value is static inline int + // For kernel space, exactly how it should be + pub fn getpagesize ( + ) -> ::c_int; + + // stdlib.h + pub fn setenv ( // setenv.c + envVarName: *const ::c_char, /* environment variable name */ + envVarValue: *const ::c_char, /* environment variable value */ + overwrite: ::c_int /* if non-zero, change value when var exists */ + ) -> ::c_int; + + // stdlib.h + pub fn unsetenv ( // setenv.c + envVarName: *const ::c_char, /* name of environment variable to remove */ + ) -> ::c_int; + + // unistd.h + pub fn link( + src: *const ::c_char, + dst: *const ::c_char, + ) -> ::c_int; + + // unistd.h + pub fn readlink ( + path: *const ::c_char, + buf: *mut ::c_char, + bufsize: ::size_t, + ) -> ::ssize_t; + + // unistd.h + pub fn symlink ( + path1: *const ::c_char, + path2: *const ::c_char, + ) -> ::c_int; + + // dirent.h + pub fn opendir ( + name: *const ::c_char, + ) -> *mut ::DIR; + + // unistd.h + pub fn rmdir ( + path: *const ::c_char, + ) -> ::c_int; + + // stat.h + #[cfg(feature = "_WRS_KERNEL")] + pub fn mkdir ( + dirName: *const ::c_char, + ) -> ::c_int; + + // stat.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn mkdir ( + dirName: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; + + // stat.h + pub fn chmod( + path: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; + + // stat.h + pub fn fchmod ( + attr1: ::c_int, + attr2: ::mode_t, + ) -> ::c_int; + + // unistd.h + pub fn fsync ( + fd: ::c_int, + ) -> ::c_int; + + // dirent.h + pub fn closedir ( + ptr: *mut ::DIR, + ) -> ::c_int; + + pub fn pwrite64( //pwrite and pread are dummy functions in the 64 bit form, I haven't verified that they work or exist as of the time of this being written + fd: ::c_int, // if you want to use fd, you gotta fix these + buf: *const ::c_void, + count: ::size_t, + offset: off64_t + ) -> ::ssize_t; + + pub fn pread64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t + ) -> ::ssize_t; + + // mdep.h + #[cfg(feature = "_WRS_KERNEL")] + pub fn pwrite( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: ::off_t + ) -> ::ssize_t; + + // mdep.h + #[cfg(feature = "_WRS_KERNEL")] + pub fn pread( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: ::off_t + ) -> ::ssize_t; + + // sched.h + pub fn sched_yield ( + ) -> ::c_int; + + // errnoLib.h + pub fn errnoSet ( + err: ::c_int, + ) -> ::c_int; + + // errnoLib.h + pub fn errnoGet ( + ) -> ::c_int; + + pub fn fork( // Does not exist at all + ) -> ::c_int; + + // unistd.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn _exit( + status : ::c_int + ) -> !; + + // unistd.h + pub fn setgid( + gid: ::gid_t + ) -> ::c_int; + + // unistd.h + pub fn getgid( + + ) -> ::gid_t; + + // unistd.h + pub fn setuid( + uid: ::uid_t + ) -> ::c_int; + + + // unistd.h + pub fn getuid( + + ) -> ::uid_t; + + pub fn setgroups( // Does not exist at all + ngroups: ::c_int, + grouplist: *const ::gid_t + ) -> ::c_int; + + // signal.h + pub fn sigemptyset( + __set: *mut sigset_t + ) -> ::c_int; + + // pthread.h for kernel + // signal.h for user + pub fn pthread_sigmask( + __how: ::c_int, + __set: *const sigset_t, + __oset: *mut sigset_t, + ) -> ::c_int; + + pub fn execvp( // Does not exist at all + c: *const ::c_char, + argv: *const *const ::c_char + ) -> ::c_int; + + // signal.h for user + #[cfg(feature = "_WRS_KERNEL")] + pub fn kill( + __tid : ::_Vx_TASK_ID, + __signo: ::c_int, + ) -> ::c_int; + + // signal.h for user + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn kill( + __pid : ::c_int, //should be pid_t, but is being dodged + __signo: ::c_int, + ) -> ::c_int; + + // signal.h for user + #[cfg(feature = "_WRS_KERNEL")] + pub fn sigqueue( + __tid : ::_Vx_TASK_ID, + __signo: ::c_int, + __value: ::size_t, // Actual type is const union sigval value, + // which is a union of int and void * + ) -> ::c_int; + + // signal.h for user + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn sigqueue( + __pid : ::c_int, //should be pid_t, but is being dodged + __signo: ::c_int, + __value: ::size_t, // Actual type is const union sigval value, + // which is a union of int and void * + ) -> ::c_int; + + // signal.h for user + pub fn _sigqueue( + rtpId : ::RTP_ID, + signo : ::c_int, + pValue : *mut ::size_t, // Actual type is const union * sigval value, + // which is a union of int and void * + sigCode: ::c_int, + ) -> ::c_int; + + // signal.h + // It seems like for kernel space, this function doesn't actually exist, + // it just macros to kill + pub fn taskKill( + taskId: ::TASK_ID, + signo : ::c_int + ) -> ::c_int; + + // signal.h + pub fn raise ( + __signo: ::c_int, + ) -> ::c_int; + + // taskLibCommon.h + pub fn taskIdSelf( + + ) -> ::TASK_ID; + + // rtpLibCommon.h + pub fn rtpInfoGet( + rtpId : ::RTP_ID, + rtpStruct : *mut ::RTP_DESC, + ) -> ::c_int; + + // ioLib.h + #[cfg(not(feature = "_WRS_KERNEL"))] + pub fn _realpath + ( + fileName: *const ::c_char, + resolvedName: *mut ::c_char, + ) -> *mut ::c_char; + + // pathLib.h + //#[cfg(feature = "__RTP__")] + pub fn _pathIsAbsolute ( + filepath: *const ::c_char, + pNameTail: *const *const ::c_char, + ) -> bool; + +} + +//Dummy functions, these don't really exist in VxWorks. + +// wait.h macros +pub fn WIFEXITED(status: ::c_int) -> bool { + (status & 0xFF00) == 0 +} +pub fn WIFSIGNALED(status: ::c_int) -> bool{ + (status & 0xFF00) != 0 +} +pub fn WIFSTOPPED(status: ::c_int) -> bool{ + (status & 0xFF0000) != 0 +} +pub fn WEXITSTATUS(status: ::c_int) -> ::c_int{ + status & 0xFF +} +pub fn WTERMSIG(status: ::c_int) -> ::c_int{ + (status >> 8) & 0xFF +} +pub fn WSTOPSIG(status: ::c_int) -> ::c_int{ + (status >> 16) & 0xFF +} + +#[cfg(not(feature = "_WRS_KERNEL"))] +pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t { + 1 +} + +#[cfg(not(feature = "_WRS_KERNEL"))] +pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t { + 1 +} +pub fn posix_memalign (mut memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int { + // check to see if align is a power of 2 and if align is a multiple + // of sizeof(void *) + if (align & align - 1 != 0) || (align % size_of::<::size_t>() != 0) { + return ::EINVAL; + } + + unsafe { + // posix_memalign should not set errno + let e = ::errnoGet(); + + let temp = memalign(align, size); + ::errnoSet(e as ::c_int); + + if temp.is_null() { + ::ENOMEM + } + else { + *memptr = temp; + 0 + } + } +} + +// From sysconf.c -> doesn't seem to be supported? +pub fn getpwuid_r(uid: ::uid_t, pwd: *mut passwd, buf: *mut ::c_char, buflen: ::size_t, result: *mut *mut passwd) -> ::c_int { + 0 +} + +// VxWorks requires that resolvedName be allocated in userspace +pub fn realpath (fileName: *const ::c_char, resolvedName: *mut ::c_char,) -> *mut ::c_char { + unsafe{ + if(resolvedName == null_mut::<::c_char>()){ + let emptyResolvedName = super::malloc(::_POSIX_PATH_MAX as _) as *mut ::c_char; + let r = _realpath (fileName, emptyResolvedName); + + if (r == null_mut::<::c_char>()) { + super::free(emptyResolvedName as *mut _); + } + r + } else { + _realpath (fileName, resolvedName) + } + } +} + +cfg_if! { + if #[cfg(target_arch = "aarch64")] { + mod aarch64; + pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "armv7"))] { + mod armv7; + pub use self::armv7::*; + } else if #[cfg(any(target_arch = "x86"))] { + mod x86; + pub use self::x86::*; + } else if #[cfg(any(target_arch = "x86_64"))] { + mod x86_64; + pub use self::x86_64::*; + } else { + // Unknown target_arch + } +} diff --git a/src/vxworks/x86.rs b/src/vxworks/x86.rs new file mode 100644 index 0000000000000..96747ad0f8154 --- /dev/null +++ b/src/vxworks/x86.rs @@ -0,0 +1,35 @@ +pub type c_long = i32; +pub type c_ulong = u32; + +#[cfg(feature = "_WRS_KERNEL")] +pub type _Vx_TASK_ID = ::c_int; + +#[cfg(feature = "_WRS_KERNEL")] +s! { + pub struct OBJ_CORE { + pub handle : ::HANDLE, + pub ownerList : ::DL_LIST, + pub ownerNode : ::DL_NODE, + pub classNode : ::DL_NODE, + pub ownerId : *mut ::OBJ_CORE, + pub ownerRtpId : ::RTP_ID, + pub name : *mut ::c_char, + pub pObjClass : *mut ::wind_class, + pub objHandleList : ::DL_LIST, + pub refCnt : u16, + pub accessCnt : u16, + } + + // semLibP.h + pub struct semaphore { + #[repr(align(8))] + pub magic : ::OBJ_CORE, + pub semType : u8, + pub options : u8, + pub recurse : u16, + pub priInheritFlag : ::BOOL, + pub qHead : ::Q_HEAD, + pub state : ::size_t, //state is union of UINT and struct pointer + pub events : ::EVENTS_RSRC, + } +} diff --git a/src/vxworks/x86_64.rs b/src/vxworks/x86_64.rs new file mode 100644 index 0000000000000..884ae927c909a --- /dev/null +++ b/src/vxworks/x86_64.rs @@ -0,0 +1,38 @@ +pub type c_long = i64; +pub type c_ulong = u64; + +#[cfg(feature = "_WRS_KERNEL")] +pub type _Vx_TASK_ID = *mut ::windTcb; + +#[cfg(feature = "_WRS_KERNEL")] +s! { + pub struct OBJ_CORE { + pub handle : ::HANDLE, + pub ownerList : ::DL_LIST, + pub ownerNode : ::DL_NODE, + pub classNode : ::DL_NODE, + pub ownerId : *mut ::OBJ_CORE, + pub ownerRtpId : ::RTP_ID, + pub name : *mut ::c_char, + pub pObjClass : *mut ::wind_class, + pub objHandleList : ::DL_LIST, + pub refCnt : u16, + pub accessCnt : u16, + pub padding : u32, // There is a chance that Rust automatically pads, but + // no point in risking it + } + + // semLibP.h + pub struct semaphore { + #[repr(align(16))] + pub magic : ::OBJ_CORE, + pub semType : u8, + pub options : u8, + pub recurse : u16, + pub priInheritFlag : ::BOOL, + pub qHead : ::Q_HEAD, + pub state : ::size_t, //state is union of UINT and struct pointer + pub events : ::EVENTS_RSRC, + } + +} From 8bc9bd338eb149e5b28a2ec6ab85eb9926f606ba Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 9 Aug 2019 19:21:27 +0000 Subject: [PATCH 113/296] remove WASI Core API --- src/wasi.rs | 277 ---------------------------------------------------- 1 file changed, 277 deletions(-) diff --git a/src/wasi.rs b/src/wasi.rs index e1ffeded9f6d6..d27b4d2e14606 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -1050,280 +1050,3 @@ extern { pub fn arc4random_buf(a: *mut c_void, b: size_t); pub fn arc4random_uniform(a: u32) -> u32; } - -#[link(wasm_import_module = "wasi_unstable")] -extern { - #[link_name = "clock_res_get"] - pub fn __wasi_clock_res_get( - clock_id: __wasi_clockid_t, - resolution: *mut __wasi_timestamp_t, - ) -> __wasi_errno_t; - #[link_name = "clock_time_get"] - pub fn __wasi_clock_time_get( - clock_id: __wasi_clockid_t, - precision: __wasi_timestamp_t, - time: *mut __wasi_timestamp_t, - ) -> __wasi_errno_t; - #[link_name = "fd_close"] - pub fn __wasi_fd_close(fd: __wasi_fd_t) -> __wasi_errno_t; - #[link_name = "fd_datasync"] - pub fn __wasi_fd_datasync(fd: __wasi_fd_t) -> __wasi_errno_t; - #[link_name = "fd_pread"] - pub fn __wasi_fd_pread( - fd: __wasi_fd_t, - iovs: *const __wasi_iovec_t, - iovs_len: size_t, - offset: __wasi_filesize_t, - nread: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_pwrite"] - pub fn __wasi_fd_pwrite( - fd: __wasi_fd_t, - iovs: *const __wasi_ciovec_t, - iovs_len: size_t, - offset: __wasi_filesize_t, - nwritten: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_read"] - pub fn __wasi_fd_read( - fd: __wasi_fd_t, - iovs: *const __wasi_iovec_t, - iovs_len: size_t, - nread: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_renumber"] - pub fn __wasi_fd_renumber( - from: __wasi_fd_t, - to: __wasi_fd_t, - ) -> __wasi_errno_t; - #[link_name = "fd_seek"] - pub fn __wasi_fd_seek( - fd: __wasi_fd_t, - offset: __wasi_filedelta_t, - whence: __wasi_whence_t, - newoffset: *mut __wasi_filesize_t, - ) -> __wasi_errno_t; - #[link_name = "fd_tell"] - pub fn __wasi_fd_tell( - fd: __wasi_fd_t, - newoffset: *mut __wasi_filesize_t, - ) -> __wasi_errno_t; - #[link_name = "fd_fdstat_get"] - pub fn __wasi_fd_fdstat_get( - fd: __wasi_fd_t, - buf: *mut __wasi_fdstat_t, - ) -> __wasi_errno_t; - #[link_name = "fd_fdstat_set_flags"] - pub fn __wasi_fd_fdstat_set_flags( - fd: __wasi_fd_t, - flags: __wasi_fdflags_t, - ) -> __wasi_errno_t; - #[link_name = "fd_fdstat_set_rights"] - pub fn __wasi_fd_fdstat_set_rights( - fd: __wasi_fd_t, - fs_rights_base: __wasi_rights_t, - fs_rights_inheriting: __wasi_rights_t, - ) -> __wasi_errno_t; - #[link_name = "fd_sync"] - pub fn __wasi_fd_sync(fd: __wasi_fd_t) -> __wasi_errno_t; - #[link_name = "fd_write"] - pub fn __wasi_fd_write( - fd: __wasi_fd_t, - iovs: *const __wasi_ciovec_t, - iovs_len: size_t, - nwritten: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_advise"] - pub fn __wasi_fd_advise( - fd: __wasi_fd_t, - offset: __wasi_filesize_t, - len: __wasi_filesize_t, - advice: __wasi_advice_t, - ) -> __wasi_errno_t; - #[link_name = "fd_allocate"] - pub fn __wasi_fd_allocate( - fd: __wasi_fd_t, - offset: __wasi_filesize_t, - len: __wasi_filesize_t, - ) -> __wasi_errno_t; - #[link_name = "path_create_directory"] - pub fn __wasi_path_create_directory( - fd: __wasi_fd_t, - path: *const ::c_char, - path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "path_link"] - pub fn __wasi_path_link( - old_fd: __wasi_fd_t, - old_flags: __wasi_lookupflags_t, - old_path: *const ::c_char, - old_path_len: size_t, - new_fd: __wasi_fd_t, - new_path: *const ::c_char, - new_path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "path_open"] - pub fn __wasi_path_open( - dirfd: __wasi_fd_t, - dirflags: __wasi_lookupflags_t, - path: *const ::c_char, - path_len: size_t, - oflags: __wasi_oflags_t, - fs_rights_base: __wasi_rights_t, - fs_rights_inheriting: __wasi_rights_t, - fs_flags: __wasi_fdflags_t, - fd: *mut __wasi_fd_t, - ) -> __wasi_errno_t; - #[link_name = "fd_readdir"] - pub fn __wasi_fd_readdir( - fd: __wasi_fd_t, - buf: *mut ::c_void, - buf_len: size_t, - cookie: __wasi_dircookie_t, - bufused: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "path_readlink"] - pub fn __wasi_path_readlink( - fd: __wasi_fd_t, - path: *const ::c_char, - path_len: size_t, - buf: *mut ::c_char, - buf_len: size_t, - bufused: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "path_rename"] - pub fn __wasi_path_rename( - old_fd: __wasi_fd_t, - old_path: *const ::c_char, - old_path_len: size_t, - new_fd: __wasi_fd_t, - new_path: *const ::c_char, - new_path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_filestat_get"] - pub fn __wasi_fd_filestat_get( - fd: __wasi_fd_t, - buf: *mut __wasi_filestat_t, - ) -> __wasi_errno_t; - #[link_name = "fd_filestat_set_times"] - pub fn __wasi_fd_filestat_set_times( - fd: __wasi_fd_t, - st_atim: __wasi_timestamp_t, - st_mtim: __wasi_timestamp_t, - fstflags: __wasi_fstflags_t, - ) -> __wasi_errno_t; - #[link_name = "fd_filestat_set_size"] - pub fn __wasi_fd_filestat_set_size( - fd: __wasi_fd_t, - st_size: __wasi_filesize_t, - ) -> __wasi_errno_t; - #[link_name = "path_filestat_get"] - pub fn __wasi_path_filestat_get( - fd: __wasi_fd_t, - flags: __wasi_lookupflags_t, - path: *const ::c_char, - path_len: size_t, - buf: *mut __wasi_filestat_t, - ) -> __wasi_errno_t; - #[link_name = "path_filestat_set_times"] - pub fn __wasi_path_filestat_set_times( - fd: __wasi_fd_t, - flags: __wasi_lookupflags_t, - path: *const ::c_char, - path_len: size_t, - st_atim: __wasi_timestamp_t, - st_mtim: __wasi_timestamp_t, - fstflags: __wasi_fstflags_t, - ) -> __wasi_errno_t; - #[link_name = "path_symlink"] - pub fn __wasi_path_symlink( - old_path: *const ::c_char, - old_path_len: size_t, - fd: __wasi_fd_t, - new_path: *const ::c_char, - new_path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "path_unlink_file"] - pub fn __wasi_path_unlink_file( - fd: __wasi_fd_t, - path: *const ::c_char, - path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "path_remove_directory"] - pub fn __wasi_path_remove_directory( - fd: __wasi_fd_t, - path: *const ::c_char, - path_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "poll_oneoff"] - pub fn __wasi_poll_oneoff( - in_: *const __wasi_subscription_t, - out: *mut __wasi_event_t, - nsubscriptions: size_t, - nevents: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "proc_exit"] - pub fn __wasi_proc_exit(rval: __wasi_exitcode_t); - #[link_name = "proc_raise"] - pub fn __wasi_proc_raise(sig: __wasi_signal_t) -> __wasi_errno_t; - #[link_name = "random_get"] - pub fn __wasi_random_get( - buf: *mut ::c_void, - buf_len: size_t, - ) -> __wasi_errno_t; - #[link_name = "sock_recv"] - pub fn __wasi_sock_recv( - sock: __wasi_fd_t, - ri_data: *const __wasi_iovec_t, - ri_data_len: size_t, - ri_flags: __wasi_riflags_t, - ro_datalen: *mut size_t, - ro_flags: *mut __wasi_roflags_t, - ) -> __wasi_errno_t; - #[link_name = "sock_send"] - pub fn __wasi_sock_send( - sock: __wasi_fd_t, - si_data: *const __wasi_ciovec_t, - si_data_len: size_t, - si_flags: __wasi_siflags_t, - so_datalen: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "sock_shutdown"] - pub fn __wasi_sock_shutdown( - sock: __wasi_fd_t, - how: __wasi_sdflags_t, - ) -> __wasi_errno_t; - #[link_name = "sched_yield"] - pub fn __wasi_sched_yield() -> __wasi_errno_t; - #[link_name = "args_get"] - pub fn __wasi_args_get( - argv: *mut *mut c_char, - argv_buf: *mut c_char, - ) -> __wasi_errno_t; - #[link_name = "args_sizes_get"] - pub fn __wasi_args_sizes_get( - argc: *mut size_t, - argv_buf_size: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "environ_get"] - pub fn __wasi_environ_get( - environ: *mut *mut c_char, - environ_buf: *mut c_char, - ) -> __wasi_errno_t; - #[link_name = "environ_sizes_get"] - pub fn __wasi_environ_sizes_get( - environ_count: *mut size_t, - environ_buf_size: *mut size_t, - ) -> __wasi_errno_t; - #[link_name = "fd_prestat_get"] - pub fn __wasi_fd_prestat_get( - fd: __wasi_fd_t, - buf: *mut __wasi_prestat_t, - ) -> __wasi_errno_t; - #[link_name = "fd_prestat_dir_name"] - pub fn __wasi_fd_prestat_dir_name( - fd: __wasi_fd_t, - path: *mut c_char, - path_len: size_t, - ) -> __wasi_errno_t; -} From d18003a277016c37ac26561f537777f1ba1b33c1 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Tue, 2 Apr 2019 14:04:06 -0700 Subject: [PATCH 114/296] Define the C interface to vxWorks for x86, x86_64, ARM, ARM 64-bit, PowerPC, PowerPC SPE and PowerPC 64-bit. --- ci/build.sh | 7 + src/lib.rs | 7 +- src/vxworks/aarch64.rs | 37 +- src/vxworks/arm.rs | 3 + src/vxworks/armv7.rs | 33 - src/vxworks/armv7le.rs | 0 src/vxworks/mod.rs | 2821 +++++++++++++++++++++----------------- src/vxworks/powerpc.rs | 3 + src/vxworks/powerpc64.rs | 3 + src/vxworks/x86.rs | 34 +- src/vxworks/x86_64.rs | 37 +- 11 files changed, 1561 insertions(+), 1424 deletions(-) create mode 100644 src/vxworks/arm.rs delete mode 100644 src/vxworks/armv7le.rs create mode 100644 src/vxworks/powerpc.rs create mode 100644 src/vxworks/powerpc64.rs diff --git a/ci/build.sh b/ci/build.sh index bb056033e8cf2..e63b4f7e2cf64 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -224,6 +224,13 @@ x86_64-unknown-haiku \ x86_64-unknown-hermit \ x86_64-unknown-l4re-uclibc \ x86_64-unknown-openbsd \ +armv7-wrs-vxworks \ +aarch64-wrs-vxworks \ +i686-wrs-vxworks \ +x86_64-wrs-vxworks \ +powerpc-wrs-vxworks \ +powerpc-wrs-vxworks-spe \ +powerpc64-wrs-vxworks \ " if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then diff --git a/src/lib.rs b/src/lib.rs index 42b2b1591caf3..6c2e6c8b5ba36 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -115,8 +115,11 @@ cfg_if! { mod switch; pub use switch::*; } else if #[cfg(target_os = "vxworks")] { - mod vxworks; - pub use vxworks::*; + mod fixed_width_ints; + pub use fixed_width_ints::*; + + mod vxworks; + pub use vxworks::*; } else if #[cfg(unix)] { mod fixed_width_ints; pub use fixed_width_ints::*; diff --git a/src/vxworks/aarch64.rs b/src/vxworks/aarch64.rs index 884ae927c909a..577c8bef16b72 100644 --- a/src/vxworks/aarch64.rs +++ b/src/vxworks/aarch64.rs @@ -1,38 +1,3 @@ +pub type c_char = u8; pub type c_long = i64; pub type c_ulong = u64; - -#[cfg(feature = "_WRS_KERNEL")] -pub type _Vx_TASK_ID = *mut ::windTcb; - -#[cfg(feature = "_WRS_KERNEL")] -s! { - pub struct OBJ_CORE { - pub handle : ::HANDLE, - pub ownerList : ::DL_LIST, - pub ownerNode : ::DL_NODE, - pub classNode : ::DL_NODE, - pub ownerId : *mut ::OBJ_CORE, - pub ownerRtpId : ::RTP_ID, - pub name : *mut ::c_char, - pub pObjClass : *mut ::wind_class, - pub objHandleList : ::DL_LIST, - pub refCnt : u16, - pub accessCnt : u16, - pub padding : u32, // There is a chance that Rust automatically pads, but - // no point in risking it - } - - // semLibP.h - pub struct semaphore { - #[repr(align(16))] - pub magic : ::OBJ_CORE, - pub semType : u8, - pub options : u8, - pub recurse : u16, - pub priInheritFlag : ::BOOL, - pub qHead : ::Q_HEAD, - pub state : ::size_t, //state is union of UINT and struct pointer - pub events : ::EVENTS_RSRC, - } - -} diff --git a/src/vxworks/arm.rs b/src/vxworks/arm.rs new file mode 100644 index 0000000000000..cfdce825a0b86 --- /dev/null +++ b/src/vxworks/arm.rs @@ -0,0 +1,3 @@ +pub type c_char = u8; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/vxworks/armv7.rs b/src/vxworks/armv7.rs index 96747ad0f8154..9b0b338b91e5b 100644 --- a/src/vxworks/armv7.rs +++ b/src/vxworks/armv7.rs @@ -1,35 +1,2 @@ pub type c_long = i32; pub type c_ulong = u32; - -#[cfg(feature = "_WRS_KERNEL")] -pub type _Vx_TASK_ID = ::c_int; - -#[cfg(feature = "_WRS_KERNEL")] -s! { - pub struct OBJ_CORE { - pub handle : ::HANDLE, - pub ownerList : ::DL_LIST, - pub ownerNode : ::DL_NODE, - pub classNode : ::DL_NODE, - pub ownerId : *mut ::OBJ_CORE, - pub ownerRtpId : ::RTP_ID, - pub name : *mut ::c_char, - pub pObjClass : *mut ::wind_class, - pub objHandleList : ::DL_LIST, - pub refCnt : u16, - pub accessCnt : u16, - } - - // semLibP.h - pub struct semaphore { - #[repr(align(8))] - pub magic : ::OBJ_CORE, - pub semType : u8, - pub options : u8, - pub recurse : u16, - pub priInheritFlag : ::BOOL, - pub qHead : ::Q_HEAD, - pub state : ::size_t, //state is union of UINT and struct pointer - pub events : ::EVENTS_RSRC, - } -} diff --git a/src/vxworks/armv7le.rs b/src/vxworks/armv7le.rs deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 2b96dc399c1a1..19aa2b69d0815 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,390 +1,76 @@ //! Hacking together the definitions for VxWorks Bindings -use dox::mem; /*TODO: Figure out what this even does */ -use core::ptr::null; -use core::ptr::null_mut; use core::mem::size_of; +use core::ptr::null_mut; -// Notes: -// We might need to define c_int and c_uint, let's figure that out on the fly -// We should really make sense of the scope resolution, because we currently are looking pretty dumb ... -// Glob_T is not needed (?) -// This is still massively incomplete, probably not enough to compile std -// -// Currently, we assume _WRS_KERNEL is not defined in the C-libraries. -// (they are only defined for kernel-side builds only, and we are building for rtps currently) -// In case someone tries to compile for kernel, I've added kernel specific structures and functions -// using cfg. To enable them, compile with the feature _WRS_KERNEL on. -// (This will also make sure that user-side definitions don't compile as well, at least for -// most of them anyway) -// -// The type defs can be different between different compilers and architecture. -// An easy way to check the exact types of a faulting type / structure is to -// use gdb on the compiled executable, and use ptype {faulting type} for a -// faulting type and ptype struct {struct name} for a faulting structure. -// If it shows "No symbol {type / struct name}", that just means that it -// doesn't get called anywhere in the executable, hence it hasn't been -// included during the linking process. -// -// !IMPORTANT: -// Another tip in finding the type definitions is to use the search -// functionality in workspace (flashlight icon in the toolbar). -// You can search for all USER definitions by setting the 'Look in:' -// parameter to your VSB's usr folder, and the 'File types:' parameter -// to *.h. -// -// There are some types that were omitted to be defined, but rather -// it was replaced with the type it is defined as in C. -// For example, STATUS is all set to c_int, pid_t is all set to c_int. -// (I'm not too sure why this was done, but it seems to have been the way -// it was done by the previous co-op, so kept it for now.) - - -pub enum DIR{} - -/* - * vxWorks doesn't define types for these POSIX types: - * - * fsblkcnt_t - * fsfilcnt_t - * id_t - * pthread_barrier_t - * pthread_barrierattr_t - * pthread_rwlock_t - * pthread_rwlockattr_t - * pthread_spinlock_t - * trace_attr_t - * trace_event_id_t - * trace_event_set_t - * trace_id_t - */ - - -// Primitive types. If you are unsure, create an RTP and just run -// sizeof on them. -pub type c_char = i8; - -pub type blkcnt_t = ::c_long; // will probably have to update all of this for each target past version one .. why are we still hacking this? -pub type blksize_t = ::c_long; // *both blkcnt_t and blksize_t were set to i32 before -pub type ino_t = ::c_ulong; // vxworks default ino_t is 64 bits, which is weird because it supports POSIX -pub type ino32_t = u32; -// ssize_t is i32 for LP32 and i64 for LP64, which is accounted for already -// same goes for size_t - -// #[cfg(feature = "__RTP__")] -pub type off_t = ::c_longlong; -//#[cfg(not(feature = "__RTP__"))] -//pub type off_t = ::c_long; - -pub type rlim_t = ::c_ulonglong; //might not be right -pub type suseconds_t = ::c_long; -pub type time_t = ::c_long; -pub type wchar_t = ::c_int; -pub type errno_t = ::c_int; +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum DIR {} +impl ::Copy for DIR {} +impl ::Clone for DIR { + fn clone(&self) -> DIR { + *self + } +} + +pub type c_schar = i8; +pub type c_uchar = u8; +pub type c_short = i16; +pub type c_ushort = u16; +pub type c_int = i32; +pub type c_uint = u32; +pub type c_float = f32; +pub type c_double = f64; +pub type c_longlong = i64; +pub type c_ulonglong = u64; +pub type intmax_t = i64; +pub type uintmax_t = u64; + +pub type size_t = usize; +pub type ptrdiff_t = isize; +pub type intptr_t = isize; +pub type uintptr_t = usize; +pub type ssize_t = isize; + +pub type pid_t = i32; +pub type in_addr_t = u32; +pub type in_port_t = u16; pub type sighandler_t = ::size_t; -pub type in_port_t = u16; +pub type cc_t = ::c_uchar; + +pub type blkcnt_t = ::c_long; +pub type blksize_t = ::c_long; +pub type ino_t = ::c_ulong; +pub type ino32_t = u32; +pub type off_t = ::c_longlong; + +pub type rlim_t = ::c_ulonglong; +pub type suseconds_t = ::c_long; +pub type time_t = ::c_long; +pub type wchar_t = ::c_int; +pub type errno_t = ::c_int; pub type useconds_t = ::c_ulong; -#[cfg(feature = "SOCKLEN_T_UNSIGNED")] -pub type socklen_t = ::c_uint; -#[cfg(not(feature = "SOCKLEN_T_UNSIGNED"))] pub type socklen_t = ::c_int; pub type pthread_t = ::c_ulong; -#[cfg(feature = "_WRS_KERNEL")] -pub type clockid_t = ::size_t; //set to u64 with LP64 and u32 with LP32 - -#[cfg(not(feature = "_WRS_KERNEL"))] pub type clockid_t = ::c_int; - -pub const STDIN_FILENO : ::c_int = 0; -pub const STDOUT_FILENO : ::c_int = 1; -pub const STDERR_FILENO : ::c_int = 2; - -pub const EXIT_SUCCESS : ::c_int = 0; -pub const EXIT_FAILURE : ::c_int = 1; - -// EAI - does this even exist in VxWorks? -pub const EAI_SERVICE : ::c_int = 9; -pub const EAI_SOCKTYPE: ::c_int = 10; -pub const EAI_SYSTEM : ::c_int = 11; - -//Clock Lib Stuff -pub const CLOCK_REALTIME : ::c_int = 0x0; -pub const CLOCK_MONOTONIC : ::c_int = 0x1; -pub const CLOCK_PROCESS_CPUTIME_ID : ::c_int = 0x2; -pub const CLOCK_THREAD_CPUTIME_ID : ::c_int = 0x3; -pub const TIMER_ABSTIME : ::c_int = 0x1; -pub const TIME_RELTIME : ::c_int = 0xFFFFFFFE; - -// PTHREAD STUFF -pub const PTHREAD_INITIALIZED_OBJ : ::c_int = 0xF70990EF; // This is an overflow, is that a bad thing? -pub const PTHREAD_DESTROYED_OBJ : ::c_int = -1; -pub const PTHREAD_VALID_OBJ : ::c_int = 0xEC542A37; // This is an overflow, is that a bad thing? -pub const PTHREAD_INVALID_OBJ : ::c_int = -1; -pub const PTHREAD_UNUSED_YET_OBJ : ::c_int = -1; - -pub const PTHREAD_PRIO_NONE : ::c_int = 0; -pub const PTHREAD_PRIO_INHERIT : ::c_int = 1; -pub const PTHREAD_PRIO_PROTECT : ::c_int = 2; - -pub const PTHREAD_MUTEX_NORMAL : ::c_int = 0; -pub const PTHREAD_MUTEX_ERRORCHECK : ::c_int = 1; -pub const PTHREAD_MUTEX_RECURSIVE : ::c_int = 2; -pub const PTHREAD_MUTEX_DEFAULT : ::c_int = PTHREAD_MUTEX_NORMAL; -pub const PTHREAD_STACK_MIN : usize = 4096; - -pub const EFAULT : ::c_int = 14; -pub const EBUSY : ::c_int = 16; -pub const EEXIST : ::c_int = 17; -pub const ENODEV : ::c_int = 19; -pub const EINVAL : ::c_int = 22; -pub const EPIPE : ::c_int = 32; -pub const ERANGE : ::c_int = 34; - -// ERRNO STUFF -pub const EPERM : ::c_int = 1; /* Not owner */ -pub const ENOENT : ::c_int = 2; /* No such file or directory */ -pub const ESRCH : ::c_int = 3; /* No such process */ -pub const EINTR : ::c_int = 4; /* Interrupted system call */ -pub const EIOA : ::c_int = 5; /* I/O error */ -pub const ENXIO : ::c_int = 6; /* No such device or address */ -pub const E2BIG : ::c_int = 7; /* Arg list too long */ -pub const ENOEXEC : ::c_int = 8; /* Exec format error */ -pub const EBADF : ::c_int = 9; /* Bad file number */ -pub const CHILD : ::c_int = 10; /* No children */ -pub const EAGAIN : ::c_int = 11; /* No more processes */ -pub const ENOMEM : ::c_int = 12; /* Not enough core */ -pub const EACCES : ::c_int = 13; /* Permission denied */ -pub const EDEADLK : ::c_int = 33; -pub const EINPROGRESS : ::c_int = 68; -pub const EALREADY : ::c_int = 69; -pub const EWOULDBLOCK : ::c_int = 70; -pub const ENOSYS : ::c_int = 71; -pub const EDESTADDRREQ : ::c_int = 40; -pub const EPROTOTYPE : ::c_int = 41; -pub const ENOPROTOOPT : ::c_int = 42; -pub const EPROTONOSUPPORT : ::c_int = 43; -pub const ESOCKTNOSUPPORT : ::c_int = 44; -pub const EOPNOTSUPP : ::c_int = 45; -pub const EPFNOSUPPORT : ::c_int = 46; -pub const EAFNOSUPPORT : ::c_int = 47; -pub const EADDRINUSE : ::c_int = 48; -pub const EADDRNOTAVAIL : ::c_int = 49; -pub const ENOTSOCK : ::c_int = 50; -pub const ENETUNREACH : ::c_int = 51; -pub const ENETRESET : ::c_int = 52; -pub const ECONNABORTED : ::c_int = 53; -pub const ECONNRESET : ::c_int = 54; -pub const ENOBUFS : ::c_int = 55; -pub const EISCONN : ::c_int = 56; -pub const ENOTCONN : ::c_int = 57; -pub const ESHUTDOWN : ::c_int = 58; -pub const ETOOMANYREFS : ::c_int = 59; -pub const ETIMEDOUT : ::c_int = 60; -pub const ECONNREFUSED : ::c_int = 61; - -// NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h - - -const M_nfsStat : ::c_int = 48 << 16; // This should technically be c_uint, but there is - // no difference between c_int and c_uint when you are - // doing the << operation, (as far as I know) so - // doesn't look that important. -enum nfsstat { - NFS_OK = 0, - NFSERR_PERM = 1, - NFSERR_NOENT = 2, - NFSERR_IO = 5, - NFSERR_NXIO = 6, - NFSERR_ACCESS = 13, - NFSERR_EXIST = 17, - NFSERR_XDEV = 18, - NFSERR_NODEV = 19, - NFSERR_NOTDIR = 20, - NFSERR_ISDIR = 21, - NFSERR_INVAL = 22, - NFSERR_FBIG = 27, - NFSERR_NOSPC = 28, - NFSERR_ROFS = 30, - NFSERR_MLINK = 31, - NFSERR_NAMETOOLONG = 63, - NFSERR_NOTEMPTY = 66, - NFSERR_DQUOT = 69, - NFSERR_STALE = 70, - NFSERR_REMOTE = 71, - NFSERR_WFLUSH = 99, - NFSERR_BADHANDLE = 10001, - NFSERR_NOT_SYNC = 10002, - NFSERR_BAD_COOKIE = 10003, - NFSERR_NOTSUPP = 10004, - NFSERR_TOOSMALL = 10005, - NFSERR_SERVERFAULT = 10006, - NFSERR_BADTYPE = 10007, - NFSERR_JUKEBOX = 10008, -} - -pub const S_nfsLib_NFS_OK : ::c_int = M_nfsStat | nfsstat::NFS_OK as ::c_int; -pub const S_nfsLib_NFSERR_PERM : ::c_int = M_nfsStat | nfsstat::NFSERR_PERM as ::c_int; -pub const S_nfsLib_NFSERR_NOENT : ::c_int = M_nfsStat | nfsstat::NFSERR_NOENT as ::c_int; -pub const S_nfsLib_NFSERR_IO : ::c_int = M_nfsStat | nfsstat::NFSERR_IO as ::c_int; -pub const S_nfsLib_NFSERR_NXIO : ::c_int = M_nfsStat | nfsstat::NFSERR_NXIO as ::c_int; -pub const S_nfsLib_NFSERR_ACCESS : ::c_int = M_nfsStat | nfsstat::NFSERR_ACCESS as ::c_int; -pub const S_nfsLib_NFSERR_EXIST : ::c_int = M_nfsStat | nfsstat::NFSERR_EXIST as ::c_int; -pub const S_nfsLib_NFSERR_NODEV : ::c_int = M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; -pub const S_nfsLib_NFSERR_NOTDIR : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTDIR as ::c_int; -pub const S_nfsLib_NFSERR_ISDIR : ::c_int = M_nfsStat | nfsstat::NFSERR_ISDIR as ::c_int; -pub const S_nfsLib_NFSERR_INVAL : ::c_int = M_nfsStat | nfsstat::NFSERR_INVAL as ::c_int; -pub const S_nfsLib_NFSERR_FBIG : ::c_int = M_nfsStat | nfsstat::NFSERR_FBIG as ::c_int; -pub const S_nfsLib_NFSERR_NOSPC : ::c_int = M_nfsStat | nfsstat::NFSERR_NOSPC as ::c_int; -pub const S_nfsLib_NFSERR_ROFS : ::c_int = M_nfsStat | nfsstat::NFSERR_ROFS as ::c_int; -pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = M_nfsStat | nfsstat::NFSERR_NAMETOOLONG as ::c_int; -pub const S_nfsLib_NFSERR_NOTEMPTY : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTEMPTY as ::c_int; -pub const S_nfsLib_NFSERR_DQUOT : ::c_int = M_nfsStat | nfsstat::NFSERR_DQUOT as ::c_int; -pub const S_nfsLib_NFSERR_STALE : ::c_int = M_nfsStat | nfsstat::NFSERR_STALE as ::c_int; -pub const S_nfsLib_NFSERR_WFLUSH : ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; -pub const S_nfsLib_NFSERR_REMOTE : ::c_int = M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; -pub const S_nfsLib_NFSERR_BADHANDLE : ::c_int = M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; -pub const S_nfsLib_NFSERR_NOT_SYNC : ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; -pub const S_nfsLib_NFSERR_BAD_COOKIE : ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; -pub const S_nfsLib_NFSERR_NOTSUPP : ::c_int = M_nfsStat | nfsstat::NFSERR_NOTSUPP as ::c_int; -pub const S_nfsLib_NFSERR_TOOSMALL : ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; -pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = M_nfsStat | nfsstat::NFSERR_SERVERFAULT as ::c_int; -pub const S_nfsLib_NFSERR_BADTYPE : ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; -pub const S_nfsLib_NFSERR_JUKEBOX : ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; - - -// IP Stuff? These are allll guesswork -pub const IPPROTO_IP : ::c_int = 0; -pub const IP_TTL : ::c_int = 4; // not sure if this is right -pub const IP_ADD_MEMBERSHIP : ::c_int = 11; -pub const IP_DROP_MEMBERSHIP : ::c_int = 12; -pub const IPV6_V6ONLY : ::c_int = 26; -pub const IP_MULTICAST_TTL : ::c_int = 33; -pub const IP_MULTICAST_LOOP : ::c_int = 34; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPPROTO_IPV6 : ::c_int = 41; // or this one, for that matter -pub type in_addr_t = u32; - - -// STAT Stuff -pub const S_IFMT : ::c_int = 0xf000; /* file type field */ -pub const S_IFIFO : ::c_int = 0x1000;/* fifo */ -pub const S_IFCHR : ::c_int = 0x2000;/* character special */ -pub const S_IFDIR : ::c_int = 0x4000;/* directory */ -pub const S_IFBLK : ::c_int = 0x6000;/* block special */ -pub const S_IFREG : ::c_int = 0x8000;/* regular */ -pub const S_IFLNK : ::c_int = 0xa000;/* symbolic link */ -pub const S_IFSHM : ::c_int = 0xb000;/* shared memory object */ -pub const S_IFDEVMEM : ::c_int = 0xd000;/* device memory object */ -pub const S_IFSOCK : ::c_int = 0xc000;/* socket */ -pub const S_ISUID : ::c_int = 0x0800;/* set user id on execution */ -pub const S_ISGID : ::c_int = 0x0400;/* set group id on execution */ -pub const S_ISTXT : ::c_int = 0x0200;/* sticky bit */ -pub const S_IRUSR : ::c_int = 0x0100;/* read permission, owner */ -pub const S_IWUSR : ::c_int = 0x0080;/* write permission, owner */ -pub const S_IXUSR : ::c_int = 0x0040;/* execute/search permission, owner */ -pub const S_IRWXU : ::c_int = 0x01c0;/* read/write/execute permission, owner */ -pub const S_IRGRP : ::c_int = 0x0020;/* read permission, group */ -pub const S_IWGRP : ::c_int = 0x0010;/* write permission, group */ -pub const S_IXGRP : ::c_int = 0x0008;/* execute/search permission, group */ -pub const S_IRWXG : ::c_int = 0x0038;/* read/write/execute permission, group */ -pub const S_IROTH : ::c_int = 0x0004;/* read permission, other */ -pub const S_IWOTH : ::c_int = 0x0002;/* write permission, other */ -pub const S_IXOTH : ::c_int = 0x0001;/* execute/search permission, other */ -pub const S_IRWXO : ::c_int = 0x0007;/* read/write/execute permission, other */ - -pub const SOL_SOCKET : ::c_int = 0xffff; /* options for socket level - more socket stuff below */ -pub const SO_BROADCAST : ::c_int = 0x001e; -pub const SO_SNDTIMEO : ::c_int = 0x1005; -pub const SO_RCVTIMEO : ::c_int = 0x1006; -pub const SOCK_STREAM : ::c_int = 1; -pub const SOCK_DGRAM : ::c_int = 2; -pub const SOCK_RAW : ::c_int = 3; -pub const SOCK_RDM : ::c_int = 4; -pub const SOCK_SEQPACKET : ::c_int = 5; -pub const SOCK_PACKET : ::c_int = 10; -pub const SO_DEBUG : ::c_int = 0x0001; -pub const SO_REUSEADDR : ::c_int = 0x0004; -pub const SO_KEEPALIVE : ::c_int = 0x0008; -pub const SO_DONTROUTE : ::c_int = 0x0010; -pub const SO_RCVLOWAT : ::c_int = 0x0012; - -pub const _SS_MAXSIZE : usize = 128; -pub const _SS_ALIGNSIZE : usize = size_of::<::uint32_t>(); -pub const _SS_PAD1SIZE : usize = (_SS_ALIGNSIZE - size_of::<::c_uchar>() - - size_of::<::sa_family_t>()); -pub const _SS_PAD2SIZE : usize = (_SS_MAXSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>() - -_SS_PAD1SIZE - _SS_ALIGNSIZE); - - -pub const MSG_OOB : ::c_int = 0x0001; -pub const MSG_PEEK : ::c_int = 0x0002; -pub const MSG_DONTROUTE : ::c_int = 0x0004; -pub const MSG_EOR : ::c_int = 0x0008; -pub const MSG_TRUNC : ::c_int = 0x0010; -pub const MSG_CTRUNC : ::c_int = 0x0020; -pub const MSG_WAITALL : ::c_int = 0x0040; -pub const MSG_DONTWAIT : ::c_int = 0x0080; -pub const MSG_EOF : ::c_int = 0x0100; -pub const MSG_EXP : ::c_int = 0x0200; -pub const MSG_MBUF : ::c_int = 0x0400; -pub const MSG_NOTIFICATION : ::c_int = 0x0800; -pub const MSG_COMPAT : ::c_int = 0x8000; - -pub const AF_UNSPEC : ::c_int = 0; -pub const AF_LOCAL : ::c_int = 1; -pub const AF_UNIX : ::c_int = AF_LOCAL; -pub const AF_INET : ::c_int = 2; -pub const AF_NETLINK : ::c_int = 16; -pub const AF_ROUTE : ::c_int = 17; -pub const AF_LINK : ::c_int = 18; -pub const AF_PACKET : ::c_int = 19; -pub const pseudo_AF_KEY: ::c_int = 27; -pub const AF_KEY : ::c_int = pseudo_AF_KEY; -pub const AF_INET6 : ::c_int = 28; -pub const AF_SOCKDEV : ::c_int = 31; -pub const AF_TIPC : ::c_int = 33; -pub const AF_MIPC : ::c_int = 34; -pub const AF_MIPC_SAFE : ::c_int = 35; -pub const AF_MAX : ::c_int = 36; - - -pub const SHUT_RD : ::c_int = 0; /* shut down the reading side */ -pub const SHUT_WR : ::c_int = 1; /* shut down the writing side */ -pub const SHUT_RDWR : ::c_int = 2; /* shut down both sides */ - -pub const IPPROTO_TCP : ::c_int = 6; -pub const TCP_NODELAY : ::c_int = 1; /* don't delay send to coalesce packets */ -pub const TCP_MAXSEG : ::c_int = 2; /* set maximum segment size */ -pub const TCP_NOPUSH : ::c_int = 3; /* don't push last block of write */ -pub const TCP_KEEPIDLE : ::c_int = 4; /* Send first keepalive probe when the connections - been isdl this time (in seconds) */ -pub const TCP_KEEPINTVL: ::c_int = 5; /* Interval (in seconds) between keepalives */ -pub const TCP_KEEPCNT : ::c_int = 6; /* Maximum number of keepalives before dropping - the connection */ -pub const SO_ERROR : ::c_int = 4; /* It's either 4, 0x1007, or doesn't exist, idk which */ - //defined for the structs -pub type dev_t = ::c_ulong; -pub type mode_t = ::c_int; -pub type nlink_t = ::c_ulong; -pub type uid_t = ::c_ushort; //from glibc ... I can't seem to find this elsewhere -pub type gid_t = ::c_ushort; +pub type dev_t = ::c_ulong; +pub type mode_t = ::c_int; +pub type nlink_t = ::c_ulong; +pub type uid_t = ::c_ushort; +pub type gid_t = ::c_ushort; pub type sigset_t = ::c_ulonglong; -pub type key_t = ::c_long; -pub type shmatt_t = ::c_ulong; /* Might not be stable .. do we even support shared memory? */ +pub type key_t = ::c_long; +pub type shmatt_t = ::c_ulong; -#[cfg(feature = "_WRS_KERNEL")] -pub type mqd_t = ::size_t; //type is struct mq_des * in kernel definition -#[cfg(not(feature = "_WRS_KERNEL"))] pub type mqd_t = ::c_int; -pub type nfds_t = ::c_uint; -pub type nl_item = ::c_int; /* Can't find in VxWorks - from https://doc.rust-lang.org/1.10.0/libc/type.nl_item.html */ -pub type stat64 = ::stat; +pub type nfds_t = ::c_uint; +pub type nl_item = ::c_int; +pub type stat64 = ::stat; pub type pthread_key_t = ::c_ulong; @@ -393,376 +79,37 @@ pub type off64_t = ::c_longlong; pub type off_t64 = ::c_longlong; // From b_BOOL.h -pub type BOOL = ::c_int; // excuse me what +pub type BOOL = ::c_int; // excuse me what //Straight from vxWind.h .. - -// definitions in krnl directory -#[cfg(feature = "_WRS_KERNEL")] -pub type OBJ_HANDLE = ::c_int; -#[cfg(feature = "_WRS_KERNEL")] -pub type CLASS_ID = *mut ::wind_class; -#[cfg(feature = "_WRS_KERNEL")] -pub type RTP_ID = *mut ::wind_rtp; -#[cfg(feature = "_WRS_KERNEL")] -pub type TASK_ID = ::_Vx_TASK_ID; -#[cfg(feature = "_WRS_KERNEL")] -pub type SEM_ID = *mut ::semaphore; -#[cfg(feature = "_WRS_KERNEL")] -pub type OBJ_ID = *mut ::c_void; - -// definitions in usr directory -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_OBJ_HANDLE = ::c_int; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] +pub type _Vx_OBJ_HANDLE = ::c_int; +pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; pub type _Vx_SEM_ID_KERNEL = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; - -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type TASK_ID = ::OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type MSG_Q_ID = ::OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type SEM_ID_KERNEL = ::OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type RTP_ID = ::OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type SD_ID = ::OBJ_HANDLE; -#[cfg(not(feature = "_WRS_KERNEL"))] -pub type CONDVAR_ID = ::OBJ_HANDLE; +pub type _Vx_RTP_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_SD_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_CONDVAR_ID = ::_Vx_OBJ_HANDLE; +pub type _Vx_SEM_ID = *mut ::_Vx_semaphore; +pub type OBJ_HANDLE = ::_Vx_OBJ_HANDLE; +pub type TASK_ID = ::OBJ_HANDLE; +pub type MSG_Q_ID = ::OBJ_HANDLE; +pub type SEM_ID_KERNEL = ::OBJ_HANDLE; +pub type RTP_ID = ::OBJ_HANDLE; +pub type SD_ID = ::OBJ_HANDLE; +pub type CONDVAR_ID = ::OBJ_HANDLE; // From vxTypes.h -pub type _Vx_usr_arg_t = ::ssize_t; // c_int for LP32 -pub type _Vx_exit_code_t = ::ssize_t; // c_int for LP32 -pub type _Vx_ticks_t = ::c_uint; -pub type _Vx_ticks64_t = ::c_ulonglong; +pub type _Vx_usr_arg_t = ::ssize_t; // c_int for LP32 +pub type _Vx_exit_code_t = ::ssize_t; // c_int for LP32 +pub type _Vx_ticks_t = ::c_uint; +pub type _Vx_ticks64_t = ::c_ulonglong; // From vxTypesBase.h pub type va_list = *mut ::c_char; - -// IO Lib Definitions: - -pub const FIONREAD : ::c_int = 1; -pub const FIOFLUSH : ::c_int = 2; -pub const FIOOPTIONS : ::c_int = 3; -pub const FIOBAUDRATE : ::c_int = 4; -pub const FIODISKFORMAT : ::c_int = 5; -pub const FIODISKINIT : ::c_int = 6; -pub const FIOSEEK : ::c_int = 7; -pub const FIOWHERE : ::c_int = 8; -pub const FIODIRENTRY : ::c_int = 9; -pub const FIORENAME : ::c_int = 10; -pub const FIOREADYCHANGE : ::c_int = 11; -pub const FIOWRITE : ::c_int = 12; -pub const FIODISKCHANGE : ::c_int = 13; -pub const FIOCANCEL : ::c_int = 14; -pub const FIOSQUEEZE : ::c_int = 15; -pub const FIONBIO : ::c_int = -1878786032; // it goes on ... -// ((int) ( 0x80000000 | (4 & 0xfff) << 16) | 0x10000000 | (0 << 8) | (16 & 0xff))) -// You can also try and print out the value after including ioLib.h in an rtp. -pub const _POSIX_PATH_MAX : ::c_int = 256; - - -// Some poll stuff -pub const POLLIN : ::c_short = 0x0001; -pub const POLLPRI : ::c_short = 0x0002; -pub const POLLOUT : ::c_short = 0x0004; -pub const POLLRDNORM: ::c_short = 0x0040; -pub const POLLWRNORM: ::c_short = POLLOUT; -pub const POLLRDBAND: ::c_short = 0x0080; -pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLER : ::c_short = 0x0008; -pub const POLLHUP : ::c_short = 0x0010; -pub const POLLNVAL : ::c_short = 0x0020; - -//Some Fcntlcom Stuff (look at fcntlcom.h to find definitions) -pub const FD_CLOEXEC : ::c_int = 1; -pub const F_DUPFD : ::c_int = 0; -pub const F_GETFD : ::c_int = 1; -pub const F_SETFD : ::c_int = 2; -pub const F_GETFL : ::c_int = 3; -pub const F_SETFL : ::c_int = 4; -pub const F_GETOWN : ::c_int = 5; -pub const F_SETOWN : ::c_int = 6; -pub const F_GETLK : ::c_int = 7; -pub const F_SETLK : ::c_int = 8; -pub const F_SETLKW : ::c_int = 9; -pub const F_DUPFD_CLOEXEC : ::c_int = 14; - -//Some Dirent.h stuff -pub const DT_UNKNOWN : ::c_uchar = 0x0; -pub const DT_FIFO : ::c_uchar = 0x1; -pub const DT_CHR : ::c_uchar = 0x2; -pub const DT_DIR : ::c_uchar = 0x4; -pub const DT_BLK : ::c_uchar = 0x6; -pub const DT_REG : ::c_uchar = 0x8; -pub const DT_LNK : ::c_uchar = 0xA; -pub const DT_SOCK : ::c_uchar = 0xC; -pub const DT_WHT : ::c_uchar = 0xE; - -// Other Random Stuff -pub const VXSIM_EWOULDBLOCK : ::c_int = 70; -pub const IPV6_ADD_MEMBERSHIP : ::c_int = 20; //Might not be supported -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; //Also might not be supported - -pub type sa_family_t = ::c_uchar; //UINT16 for ipcom_sock.h, but uchar in socket.h - -// Signal stuff? -pub const SIG_ERR : ::c_int = -1; -pub const SIG_DEL : ::c_int = 0; -pub const SIG_IGN : ::c_int = 1; -pub const SIGHUP : ::c_int = 1; /* hangup */ -pub const SIGINT : ::c_int = 2; /* interrupt */ -pub const SIGQUIT : ::c_int = 3; /* quit */ -pub const SIGILL : ::c_int = 4; /* illegal instruction (not reset when caught) */ -pub const SIGTRAP : ::c_int = 5; /* trace trap (not reset when caught) */ -pub const SIGABRT : ::c_int = 6; /* used by abort, replace SIGIOT in the future */ -pub const SIGEMT : ::c_int = 7; /* EMT instruction */ -pub const SIGFPE : ::c_int = 8; /* floating point exception */ -pub const SIGKILL : ::c_int = 9; /* kill */ -pub const SIGBUS : ::c_int = 10; /* bus error */ -pub const SIGSEGV : ::c_int = 11; /* segmentation violation */ -pub const SIGFMT : ::c_int = 12; /* STACK FORMAT ERROR (not posix) */ -pub const SIGPIPE : ::c_int = 13; /* write on a pipe with no one to read it */ -pub const SIGALRM : ::c_int = 14; /* alarm clock */ -pub const SIGTERM : ::c_int = 15; /* software termination signal from kill */ -pub const SIGCNCL : ::c_int = 16; /* pthreads cancellation signal */ -pub const SIGSTOP : ::c_int = 17; /* sendable stop signal not from tty */ -pub const SIGTSTP : ::c_int = 18; /* stop signal from tty */ -pub const SIGCONT : ::c_int = 19; /* continue a stopped process */ -pub const SIGCHLD : ::c_int = 20; /* to parent on child stop or exit */ -pub const SIGTTIN : ::c_int = 21; /* to readers pgrp upon background tty read */ -pub const SIGTTOU : ::c_int = 22; /* like TTIN for output if (tp->t_local<OSTOP) */ - -pub const SIG_BLOCK : ::c_int = 1; -pub const SIG_UNBLOCK: ::c_int = 2; -pub const SIG_SETMASK: ::c_int = 3; - -pub const SI_SYNC : ::c_int = 0; /* (Not posix) gernerated by hardware */ -pub const SI_USER : ::c_int = -1; /* signal from kill() function */ -pub const SI_QUEUE : ::c_int = -2; /* signal from sigqueue() function */ -pub const SI_TIMER : ::c_int = -3; /* signal from expiration of a timer */ -pub const SI_ASYNCIO : ::c_int = -4; /* signal from completion of async I/O */ -pub const SI_MESGQ : ::c_int = -5; /* signal from arrival of a message */ -pub const SI_CHILD : ::c_int = -6; /* signal from child, stopped or terminated */ -pub const SI_KILL : ::c_int = SI_USER; /* signal from kill() function */ -pub const SIG_DFL : sighandler_t = 0 as sighandler_t; - -// vxParams.h definitions -#[cfg(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT")] -pub const _PARM_NAME_MAX : usize = 1020; -#[cfg(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT")] -pub const _PARM_PATH_MAX : usize = 1080; -#[cfg(not(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT"))] -pub const _PARM_NAME_MAX : usize = 255; -#[cfg(not(feature = "_WRS_CONFIG_DOSFS_NAME_LENGTH_COMPAT"))] -pub const _PARM_PATH_MAX : usize = 1024; - -// vxWindCommon.h -#[cfg(feature = "_WRS_KERNEL")] -pub enum windObjClassType - { - windInvalidClass = 0, /* invalid class type class */ - windSemClass, /* Wind native semaphore */ - windSemPxClass, /* POSIX semaphore */ - windMsgQClass, /* Wind native message queue */ - windMqPxClass, /* POSIX message queue */ - windRtpClass, /* real time process */ - windTaskClass, /* task */ - windWdClass, /* watchdog */ - windFdClass, /* file descriptor */ - windPgPoolClass, /* page pool */ - windPgMgrClass, /* page manager */ - windGrpClass, /* group */ - windVmContextClass, /* virtual memory context */ - windTrgClass, /* trigger */ - windMemPartClass, /* memory partition */ - windI2oClass, /* I2O */ - windDmsClass, /* device management system */ - windSetClass, /* Set */ - windIsrClass, /* ISR object */ - windTimerClass, /* Timer services */ - windSdClass, /* Shared data region */ - windPxTraceClass, /* POSIX trace */ - windCondVarClass, /* Condition Variables */ - windApexSamplingPortClass, /* APEX Sampling Port */ - windApexQueuingPortClass, /* APEX Queuing Port */ - windApexProcessClass, /* APEX process */ - windApexBufferClass, /* APEX buffer */ - windApexSemaphoreClass, /* APEX semaphore */ - windApexBlackboardClass, /* APEX blackboard */ - windApexEventClass, /* APEX event */ - - /* see comments in posix section on windNumObjClass */ - windNumObjClass -} - - - -// WAIT STUFF -pub const WNOHANG : ::c_int = 0x01; -pub const WUNTRACED : ::c_int = 0x02; - - -const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = pthread_mutexattr_t { - mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, - mutexAttrProtocol: PTHREAD_PRIO_NONE, - mutexAttrPrioceiling: 0, - mutexAttrType: PTHREAD_MUTEX_DEFAULT, -}; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - mutexSemId: null_mut(), - mutexValid: PTHREAD_VALID_OBJ, - mutexInitted: PTHREAD_UNUSED_YET_OBJ, - mutexCondRefCount: 0, - mutexSavPriority: 0, - mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, -}; - -const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { - condAttrStatus: 0, - _CondAttrClockId: CLOCK_REALTIME, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - condSemId: null_mut(), - condValid: PTHREAD_VALID_OBJ, - condInitted: PTHREAD_UNUSED_YET_OBJ, - condRefCount: 0, - condMutex: null_mut(), - condAttr: PTHREAD_CONDATTR_INITIALIZER, -}; - -const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = pthread_rwlockattr_t { - rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, - rwlockAttrMaxReaders: 0, -}; -pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { - rwlockSemId: null_mut(), - rwlockReadersRefCount: 0, - rwlockValid: PTHREAD_VALID_OBJ, - rwlockInitted: PTHREAD_UNUSED_YET_OBJ, - rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, -}; - -pub const SEEK_SET: ::c_int = 0; -pub const SEEK_CUR: ::c_int = 1; -pub const SEEK_END: ::c_int = 2; - -// rtpLibCommon.h -pub const VX_RTP_NAME_LENGTH : usize = 255; - -//Some unsupported stuff -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = -1; // Via unistd.h -pub const _SC_PAGESIZE : ::c_int = 64; // getpagesize(); // Via getpagesize.c - this might actually be supported? The _sc_pagesize depends on the underlying architecture - this is hacked because I can't get it to work -pub const O_ACCMODE : ::c_int = 3; // from docs - the actual definition is a bunch of ors -pub const O_CLOEXEC : ::c_int = 0x100000; // fcntlcom -pub const O_EXCL : ::c_int = 0x0800; -pub const O_CREAT : ::c_int = 0x0200; -pub const O_TRUNC : ::c_int = 0x0400; -pub const O_APPEND : ::c_int = 0x0008; -pub const O_RDWR : ::c_int = 2; -pub const O_WRONLY : ::c_int = 1; -pub const O_RDONLY : ::c_int = 0; - - -// taskLib.h -// Exists in both krnl and usr directories, but not mentioned in -// usr functions in this liblibc. -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct windTcb; - -// classLibP.h -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct wind_class; - -// rtpLibP.h -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct wind_rtp; - -// qLibP.h -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct Q_NODE; - -// qLibP.h -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct q_class; - - -// dllLib.h -// This struct exists for both kernel and user, but it doesn't get used -// for user. -// It's only used as a pointer, so only declared. -#[cfg(feature = "_WRS_KERNEL")] -pub struct DL_NODE; - -// structs only used by kernel functions (that are ported) -#[cfg(feature = "_WRS_KERNEL")] -s! { - // eventLibP.h - pub struct EVENTS_RSRC { - pub taskId : ::TASK_ID, - pub registered : ::c_uint, - pub options : ::c_uchar, - pub pad : [::c_uchar; 3], - } - - - // qLibP.h - pub struct Q_HEAD { - pub pFirstNode : *mut ::Q_NODE, - pub qPriv1 : c_ulong, - pub qPriv2 : c_ulong, - pub pQClass : *mut ::q_class, - } - - // handleLibP.h - // This struct exists for both kernel and user, but it doesn't get used - // for user. - pub struct HANDLE { - pub magic : ::c_ulong, - pub safeCnt : u32, - pub attributes : u16, - pub _type : i8, - pub contextType : u8, - pub context : *mut ::c_void, - } - - // dllLib.h - // This struct exists for both kernel and user, but it doesn't get used. - // for user. - pub struct DL_LIST { // DL_LIST is actually _Vx_DL_LIST - pub head : *mut ::DL_NODE, - pub tail : *mut ::DL_NODE, - } - - // pthread.h - pub fn pthread_cond_init ( - cond: *mut ::pthread_cond_t, - attr: *mut ::pthread_condattr_t, - ) -> ::c_int; -} +pub type sa_family_t = ::c_uchar; // structs that only exist in userspace -#[cfg(not(feature = "_WRS_KERNEL"))] s! { // b_struct_vx_eventsResourceCb.h pub struct _Vx_EVENTS_RSRC { @@ -787,6 +134,7 @@ s! { // b_pthread_condattr_t.h pub struct pthread_condattr_t { pub condAttrStatus: ::c_int, + pub condAttrPshared: ::c_int, pub _CondAttrClockId: ::clockid_t, } @@ -798,6 +146,7 @@ s! { pub condRefCount: ::c_int, pub condMutex: *mut ::pthread_mutex_t, pub condAttr: ::pthread_condattr_t, + pub condSemName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX] } // b_pthread_rwlockattr_t.h @@ -813,18 +162,15 @@ s! { pub rwlockValid: ::c_int, pub rwlockInitted: ::c_int, pub rwlockAttr: ::pthread_rwlockattr_t, + pub rwlockName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX] } - // b_struct_timeval.h pub struct timeval { pub tv_sec: ::time_t, pub tv_usec: ::suseconds_t, } -} -s! { - // socket.h pub struct sockaddr { pub sa_len : ::c_uchar, @@ -833,12 +179,20 @@ s! { } // socket.h - pub struct sockaddr_storage { // Worth noting Sizeof is probably in bytres + pub struct sockaddr_storage { pub ss_len : ::c_uchar, pub ss_family : ::sa_family_t, - pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], //Size of UInt32_t - Size of U_char - Size of SA_Family(t), which is a Uchar? - pub __ss_align : ::int32_t, - pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], // 128 - Sizeof Char (1) - Sizeof SA_Family_t (1) - ss_pad_1 (2?) -Size of Uint32 (4?) + pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], + pub __ss_align : i32, + // pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], + pub __ss_pad2 : [::c_char; 32], + pub __ss_pad3 : [::c_char; 32], + pub __ss_pad4 : [::c_char; 32], + pub __ss_pad5 : [::c_char; 32], + } + pub struct iovec { + pub iov_base: *mut ::c_void, + pub iov_len: ::size_t, } // poll.h @@ -850,10 +204,16 @@ s! { // dirent.h pub struct dirent { - // It seems like in the newer version of vxworks, there is no dirent64 - // In pkgs_v2, there is no symbol for dirent64 in vx7-SR0600 pub d_ino : ::ino_t, - pub d_name : [::c_char; (_PARM_NAME_MAX + 1)], /* NAME_MAX = 255, length of d_name is 256 */ + // pub d_name : [::c_char; (_PARM_NAME_MAX + 1)], + pub d_name : [::c_char; 32], + pub d_name1 : [::c_char; 32], + pub d_name2 : [::c_char; 32], + pub d_name3 : [::c_char; 32], + pub d_name4 : [::c_char; 32], + pub d_name5 : [::c_char; 32], + pub d_name6 : [::c_char; 32], + pub d_name7 : [::c_char; 32], } pub struct dirent64 { @@ -861,35 +221,43 @@ s! { pub d_off : ::off64_t, pub d_reclen : u16, pub d_type : u8, - pub d_name : [::c_char; 256], + // pub d_name : [::c_char; 256], + pub d_name : [::c_char; 32], + pub d_name1 : [::c_char; 32], + pub d_name2 : [::c_char; 32], + pub d_name3 : [::c_char; 32], + pub d_name4 : [::c_char; 32], + pub d_name5 : [::c_char; 32], + pub d_name6 : [::c_char; 32], + pub d_name7 : [::c_char; 32], } // Doesn't seem like it exists anymore - + // resource.h pub struct rlimit { /* Is this really needed? Questionable ... */ - pub rlim_cur : ::size_t, - pub rlim_max : ::size_t, + pub rlim_cur : ::size_t, + pub rlim_max : ::size_t, } - + // stat.h - pub struct stat { /* we might also need a stat 64 */ - pub st_dev : ::dev_t, /* Device ID number */ - pub st_ino : ::ino_t, /* File serial number */ - pub st_mode : ::mode_t, /* Mode of file */ - pub st_nlink : ::nlink_t, /* Number of hard links to file */ - pub st_uid : ::uid_t, /* User ID of file */ - pub st_gid : ::gid_t, /* Group ID of file */ - pub st_rdev : ::dev_t, /* Device ID if special file */ - pub st_size : ::off_t, /* File size in bytes */ - pub st_atime : ::time_t, /* Time of last access */ - pub st_mtime : ::time_t, /* Time of last modification */ - pub st_ctime : ::time_t, /* Time of last status change */ - pub st_blksize : ::blksize_t, /* File system block size */ - pub st_blocks : ::blkcnt_t, /* Number of blocks containing file */ - pub st_attrib : ::c_uchar, /* DOSFS only - file attributes */ - pub st_reserved1 : ::c_int, /* reserved for future use */ - pub st_reserved2 : ::c_int, /* reserved for future use */ - pub st_reserved3 : ::c_int, /* reserved for future use */ - pub st_reserved4 : ::c_int, /* reserved for future use */ + pub struct stat { + pub st_dev : ::dev_t, + pub st_ino : ::ino_t, + pub st_mode : ::mode_t, + pub st_nlink : ::nlink_t, + pub st_uid : ::uid_t, + pub st_gid : ::gid_t, + pub st_rdev : ::dev_t, + pub st_size : ::off64_t, + pub st_atime : ::time_t, + pub st_mtime : ::time_t, + pub st_ctime : ::time_t, + pub st_blksize : ::blksize_t, + pub st_blocks : ::blkcnt_t, + pub st_attrib : ::c_uchar, + pub st_reserved1 : ::c_int, + pub st_reserved2 : ::c_int, + pub st_reserved3 : ::c_int, + pub st_reserved4 : ::c_int, } //b_struct__Timespec.h @@ -897,43 +265,38 @@ s! { pub tv_sec : ::time_t, pub tv_nsec : ::c_long, } - + // b_struct__Sched_param.h pub struct _Sched_param { pub sched_priority: ::c_int, /* scheduling priority */ - - #[cfg(not(feature = "_WRS_KERNEL"))] pub sched_ss_low_priority: ::c_int, /* low scheduling priority */ - #[cfg(not(feature = "_WRS_KERNEL"))] pub sched_ss_repl_period: ::_Timespec, /* replenishment period */ - #[cfg(not(feature = "_WRS_KERNEL"))] pub sched_ss_init_budget: ::_Timespec, /* initial budget */ - #[cfg(not(feature = "_WRS_KERNEL"))] pub sched_ss_max_repl: ::c_int, /* max pending replenishment */ } - + // b_pthread_attr_t.h pub struct pthread_attr_t { - pub threadAttrStatus : ::c_int, /* status flag */ - pub threadAttrStacksize : ::size_t, /* stack size */ - pub threadAttrStackaddr : *mut ::c_void, /* stack address */ - pub threadAttrGuardsize : ::size_t, /* guard address (RTP only) */ - pub threadAttrDetachstate : ::c_int, /* detach state */ - pub threadAttrContentionscope : ::c_int, /* contention scope */ - pub threadAttrInheritsched : ::c_int, /* inherit scheduler */ - pub threadAttrSchedpolicy : ::c_int, /* scheduling policy */ - pub threadAttrName : *mut ::c_char, /* task name - VxWorks extension */ - pub threadAttrOptions : ::c_int, /* task options - VxWorks extension */ - pub threadAttrSchedparam : ::_Sched_param, /* sched param struct */ + pub threadAttrStatus : ::c_int, + pub threadAttrStacksize : ::size_t, + pub threadAttrStackaddr : *mut ::c_void, + pub threadAttrGuardsize : ::size_t, + pub threadAttrDetachstate : ::c_int, + pub threadAttrContentionscope : ::c_int, + pub threadAttrInheritsched : ::c_int, + pub threadAttrSchedpolicy : ::c_int, + pub threadAttrName : *mut ::c_char, + pub threadAttrOptions : ::c_int, + pub threadAttrSchedparam : ::_Sched_param, } // signal.h - pub struct sigaction { // pulled from kernel side, - pub sa_u : ::size_t, // Other libc implementation treats this as size_t as well - // This is a union of two function pointers. - // Under the assumption that function pointers are the same - // size as other pointers, we can replace the union with size_t + pub struct sigaction { // pulled from kernel side, + pub sa_u : ::size_t, + // This is a union of two function pointers. + // Under the assumption that function pointers are the same + // size as other pointers, we can replace the union with size_t pub sa_mask : ::sigset_t, pub sa_flags : ::c_int, } @@ -944,46 +307,36 @@ s! { pub ss_size : ::size_t, pub ss_flags : ::c_int, } - + // signal.h - pub struct siginfo_t { // Aliased as _SigInfo? - ask Brian from signal.h user??? + pub struct siginfo_t { pub si_signo : ::c_int, pub si_code : ::c_int, // This field is a union of int and void * in vxworks // The size has been set to the larger of the two pub si_value : ::size_t, } - - pub struct ipc_perm { /* See note on shmid_ds below ... we might not need this at all */ - pub __key : key_t, - pub uid : uid_t, - pub gid : gid_t, - pub cuid : uid_t, - pub cgid : gid_t, - pub mode : ::c_ushort, - pub __seq : ::c_ushort, + + pub struct ipc_perm { + pub __key : key_t, + pub uid : uid_t, + pub gid : gid_t, + pub cuid : uid_t, + pub cgid : gid_t, + pub mode : ::c_ushort, + pub __seq : ::c_ushort, } - - pub struct shmid_ds { // kernel stuff? I literally can't find it in the source ... - /* - This is all copied from a POSIX documentation - https://www.tldp.org/LDP/lpg/node68.html - This probably doesn't work but we'll keep it like this for now. It seems to be a unix and not a POSIX thing/. - - */ + + pub struct shmid_ds { pub shm_perm : ipc_perm, pub shm_segsz : ::c_int, } - - // pthread.h (krnl) // b_pthread_mutexattr_t.h (usr) pub struct pthread_mutexattr_t { mutexAttrStatus : ::c_int, - - #[cfg(all(feature = "_POSIX_THREAD_PROCESS_SHARED", feature = "_WRS_KERNEL"))] mutexAttrPshared : ::c_int, - mutexAttrProtocol : ::c_int, mutexAttrPrioceiling : ::c_int, mutexAttrType : ::c_int, @@ -992,28 +345,21 @@ s! { // pthread.h (krnl) // b_pthread_mutex_t.h (usr) pub struct pthread_mutex_t { - - #[cfg(feature = "_WRS_KERNEL")] - pub mutexSemId: ::SEM_ID, /*_Vx_SEM_ID ..*/ - #[cfg(not(feature = "_WRS_KERNEL"))] - pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ - + pub mutexSemId: ::_Vx_SEM_ID, /*_Vx_SEM_ID ..*/ pub mutexValid: ::c_int, pub mutexInitted: ::c_int, pub mutexCondRefCount: ::c_int, pub mutexSavPriority: ::c_int, pub mutexAttr: ::pthread_mutexattr_t, + pub mutexSemName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX], } - - // b_struct_timespec.h pub struct timespec { pub tv_sec: ::time_t, - pub tv_nsec: ::c_long, + pub tv_nsec: ::c_long, } - // in.h pub struct in_addr { pub s_addr: in_addr_t, @@ -1070,7 +416,16 @@ s! { pub sin6_scope_id: u32, } - pub struct passwd { // Doesn't seem to exist, so we are copying the POSIX standard + pub struct sockaddr_un { + pub sun_family: sa_family_t, + //pub sun_path: [::c_char; 108] + pub sun_path: [::c_char; 32], + pub sun_path1: [::c_char; 32], + pub sun_path2: [::c_char; 32], + pub sun_path3: [::c_char; 12], + } + + pub struct passwd { pub pw_name: *mut ::c_char, pub pw_uid: ::uid_t, pub pw_gid: ::gid_t, @@ -1083,328 +438,1315 @@ s! { pub status : ::c_int, pub options : u32, pub entrAddr : *mut ::c_void, - pub initTaskId: ::TASK_ID, - pub parentId : ::RTP_ID, - pub pathName : [::c_char; (VX_RTP_NAME_LENGTH + 1)], + pub initTaskId: ::TASK_ID, + pub parentId : ::RTP_ID, + //pub pathName : [::c_char; (VX_RTP_NAME_LENGTH + 1)], + pub pathName : [::c_char; 32], + pub pathName1 : [::c_char; 32], + pub pathName2 : [::c_char; 32], + pub pathName3 : [::c_char; 32], + pub pathName4 : [::c_char; 32], + pub pathName5 : [::c_char; 32], + pub pathName6 : [::c_char; 32], + pub pathName7 : [::c_char; 32], pub taskCnt : u32, pub textStart : *mut ::c_void, pub textEnd : *mut ::c_void, } - + + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } } -extern { // this is gonna be a big one +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; + +pub const EXIT_SUCCESS: ::c_int = 0; +pub const EXIT_FAILURE: ::c_int = 1; + +pub const EAI_SERVICE: ::c_int = 9; +pub const EAI_SOCKTYPE: ::c_int = 10; +pub const EAI_SYSTEM: ::c_int = 11; + +pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; + +//Clock Lib Stuff +pub const CLOCK_REALTIME: ::c_int = 0x0; +pub const CLOCK_MONOTONIC: ::c_int = 0x1; +pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; +pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = 0x3; +pub const TIMER_ABSTIME: ::c_int = 0x1; +pub const TIME_RELTIME: ::c_int = 0xFFFFFFFE; + +// PTHREAD STUFF +pub const PTHREAD_INITIALIZED_OBJ: ::c_int = 0xF70990EF; +pub const PTHREAD_DESTROYED_OBJ: ::c_int = -1; +pub const PTHREAD_VALID_OBJ: ::c_int = 0xEC542A37; +pub const PTHREAD_INVALID_OBJ: ::c_int = -1; +pub const PTHREAD_UNUSED_YET_OBJ: ::c_int = -1; + +pub const PTHREAD_PRIO_NONE: ::c_int = 0; +pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; +pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; + +pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; +pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; +pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; +pub const PTHREAD_STACK_MIN: usize = 4096; +pub const PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; + +pub const EFAULT: ::c_int = 14; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const ENODEV: ::c_int = 19; +pub const EINVAL: ::c_int = 22; +pub const EPIPE: ::c_int = 32; +pub const ERANGE: ::c_int = 34; + +// ERRNO STUFF +pub const EPERM: ::c_int = 1; /* Not owner */ +pub const ENOENT: ::c_int = 2; /* No such file or directory */ +pub const ESRCH: ::c_int = 3; /* No such process */ +pub const EINTR: ::c_int = 4; /* Interrupted system call */ +pub const EIOA: ::c_int = 5; /* I/O error */ +pub const ENXIO: ::c_int = 6; /* No such device or address */ +pub const E2BIG: ::c_int = 7; /* Arg list too long */ +pub const ENOEXEC: ::c_int = 8; /* Exec format error */ +pub const EBADF: ::c_int = 9; /* Bad file number */ +pub const CHILD: ::c_int = 10; /* No children */ +pub const EAGAIN: ::c_int = 11; /* No more processes */ +pub const ENOMEM: ::c_int = 12; /* Not enough core */ +pub const EACCES: ::c_int = 13; /* Permission denied */ +pub const EDEADLK: ::c_int = 33; +pub const EINPROGRESS: ::c_int = 68; +pub const EALREADY: ::c_int = 69; +pub const EWOULDBLOCK: ::c_int = 70; +pub const ENOSYS: ::c_int = 71; +pub const EDESTADDRREQ: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENOTSOCK: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; + +// NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h +const M_nfsStat: ::c_int = 48 << 16; +enum nfsstat { + NFS_OK = 0, + NFSERR_PERM = 1, + NFSERR_NOENT = 2, + NFSERR_IO = 5, + NFSERR_NXIO = 6, + NFSERR_ACCESS = 13, + NFSERR_EXIST = 17, + NFSERR_XDEV = 18, + NFSERR_NODEV = 19, + NFSERR_NOTDIR = 20, + NFSERR_ISDIR = 21, + NFSERR_INVAL = 22, + NFSERR_FBIG = 27, + NFSERR_NOSPC = 28, + NFSERR_ROFS = 30, + NFSERR_MLINK = 31, + NFSERR_NAMETOOLONG = 63, + NFSERR_NOTEMPTY = 66, + NFSERR_DQUOT = 69, + NFSERR_STALE = 70, + NFSERR_REMOTE = 71, + NFSERR_WFLUSH = 99, + NFSERR_BADHANDLE = 10001, + NFSERR_NOT_SYNC = 10002, + NFSERR_BAD_COOKIE = 10003, + NFSERR_NOTSUPP = 10004, + NFSERR_TOOSMALL = 10005, + NFSERR_SERVERFAULT = 10006, + NFSERR_BADTYPE = 10007, + NFSERR_JUKEBOX = 10008, +} + +pub const S_nfsLib_NFS_OK: ::c_int = M_nfsStat | nfsstat::NFS_OK as ::c_int; +pub const S_nfsLib_NFSERR_PERM: ::c_int = + M_nfsStat | nfsstat::NFSERR_PERM as ::c_int; +pub const S_nfsLib_NFSERR_NOENT: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOENT as ::c_int; +pub const S_nfsLib_NFSERR_IO: ::c_int = + M_nfsStat | nfsstat::NFSERR_IO as ::c_int; +pub const S_nfsLib_NFSERR_NXIO: ::c_int = + M_nfsStat | nfsstat::NFSERR_NXIO as ::c_int; +pub const S_nfsLib_NFSERR_ACCESS: ::c_int = + M_nfsStat | nfsstat::NFSERR_ACCESS as ::c_int; +pub const S_nfsLib_NFSERR_EXIST: ::c_int = + M_nfsStat | nfsstat::NFSERR_EXIST as ::c_int; +pub const S_nfsLib_NFSERR_XDEV: ::c_int = + M_nfsStat | nfsstat::NFSERR_XDEV as ::c_int; +pub const S_nfsLib_NFSERR_NODEV: ::c_int = + M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; +pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOTDIR as ::c_int; +pub const S_nfsLib_NFSERR_ISDIR: ::c_int = + M_nfsStat | nfsstat::NFSERR_ISDIR as ::c_int; +pub const S_nfsLib_NFSERR_INVAL: ::c_int = + M_nfsStat | nfsstat::NFSERR_INVAL as ::c_int; +pub const S_nfsLib_NFSERR_FBIG: ::c_int = + M_nfsStat | nfsstat::NFSERR_FBIG as ::c_int; +pub const S_nfsLib_NFSERR_NOSPC: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOSPC as ::c_int; +pub const S_nfsLib_NFSERR_ROFS: ::c_int = + M_nfsStat | nfsstat::NFSERR_ROFS as ::c_int; +pub const S_nfsLib_NFSERR_MLINK: ::c_int = + M_nfsStat | nfsstat::NFSERR_MLINK as ::c_int; +pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = + M_nfsStat | nfsstat::NFSERR_NAMETOOLONG as ::c_int; +pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOTEMPTY as ::c_int; +pub const S_nfsLib_NFSERR_DQUOT: ::c_int = + M_nfsStat | nfsstat::NFSERR_DQUOT as ::c_int; +pub const S_nfsLib_NFSERR_STALE: ::c_int = + M_nfsStat | nfsstat::NFSERR_STALE as ::c_int; +pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = + M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; +pub const S_nfsLib_NFSERR_REMOTE: ::c_int = + M_nfsStat | nfsstat::NFSERR_REMOTE as ::c_int; +pub const S_nfsLib_NFSERR_BADHANDLE: ::c_int = + M_nfsStat | nfsstat::NFSERR_BADHANDLE as ::c_int; +pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; +pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = + M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; +pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = + M_nfsStat | nfsstat::NFSERR_NOTSUPP as ::c_int; +pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = + M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = + M_nfsStat | nfsstat::NFSERR_SERVERFAULT as ::c_int; +pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = + M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; +pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = + M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; + +// IP Stuff? These are allll guesswork +pub const IPPROTO_IP: ::c_int = 0; +pub const IP_TTL: ::c_int = 4; // not sure if this is right +pub const IP_ADD_MEMBERSHIP: ::c_int = 11; +pub const IP_DROP_MEMBERSHIP: ::c_int = 12; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IP_MULTICAST_TTL: ::c_int = 33; +pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPPROTO_IPV6: ::c_int = 41; // or this one, for that matter + +// STAT Stuff +pub const S_IFMT: ::c_int = 0xf000; +pub const S_IFIFO: ::c_int = 0x1000; +pub const S_IFCHR: ::c_int = 0x2000; +pub const S_IFDIR: ::c_int = 0x4000; +pub const S_IFBLK: ::c_int = 0x6000; +pub const S_IFREG: ::c_int = 0x8000; +pub const S_IFLNK: ::c_int = 0xa000; +pub const S_IFSHM: ::c_int = 0xb000; +pub const S_IFDEVMEM: ::c_int = 0xd000; +pub const S_IFSOCK: ::c_int = 0xc000; +pub const S_ISUID: ::c_int = 0x0800; +pub const S_ISGID: ::c_int = 0x0400; +pub const S_ISTXT: ::c_int = 0x0200; +pub const S_IRUSR: ::c_int = 0x0100; +pub const S_IWUSR: ::c_int = 0x0080; +pub const S_IXUSR: ::c_int = 0x0040; +pub const S_IRWXU: ::c_int = 0x01c0; +pub const S_IRGRP: ::c_int = 0x0020; +pub const S_IWGRP: ::c_int = 0x0010; +pub const S_IXGRP: ::c_int = 0x0008; +pub const S_IRWXG: ::c_int = 0x0038; +pub const S_IROTH: ::c_int = 0x0004; +pub const S_IWOTH: ::c_int = 0x0002; +pub const S_IXOTH: ::c_int = 0x0001; +pub const S_IRWXO: ::c_int = 0x0007; + +pub const SOL_SOCKET: ::c_int = 0xffff; +pub const SO_BROADCAST: ::c_int = 0x001e; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOCK_RAW: ::c_int = 3; +pub const SOCK_RDM: ::c_int = 4; +pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOCK_PACKET: ::c_int = 10; +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_RCVLOWAT: ::c_int = 0x0012; + +pub const _SS_MAXSIZE: usize = 128; +pub const _SS_ALIGNSIZE: usize = size_of::(); +pub const _SS_PAD1SIZE: usize = + (_SS_ALIGNSIZE - size_of::<::c_uchar>() - size_of::<::sa_family_t>()); +pub const _SS_PAD2SIZE: usize = (_SS_MAXSIZE + - size_of::<::c_uchar>() + - size_of::<::sa_family_t>() + - _SS_PAD1SIZE + - _SS_ALIGNSIZE); + +pub const MSG_OOB: ::c_int = 0x0001; +pub const MSG_PEEK: ::c_int = 0x0002; +pub const MSG_DONTROUTE: ::c_int = 0x0004; +pub const MSG_EOR: ::c_int = 0x0008; +pub const MSG_TRUNC: ::c_int = 0x0010; +pub const MSG_CTRUNC: ::c_int = 0x0020; +pub const MSG_WAITALL: ::c_int = 0x0040; +pub const MSG_DONTWAIT: ::c_int = 0x0080; +pub const MSG_EOF: ::c_int = 0x0100; +pub const MSG_EXP: ::c_int = 0x0200; +pub const MSG_MBUF: ::c_int = 0x0400; +pub const MSG_NOTIFICATION: ::c_int = 0x0800; +pub const MSG_COMPAT: ::c_int = 0x8000; + +pub const AF_UNSPEC: ::c_int = 0; +pub const AF_LOCAL: ::c_int = 1; +pub const AF_UNIX: ::c_int = AF_LOCAL; +pub const AF_INET: ::c_int = 2; +pub const AF_NETLINK: ::c_int = 16; +pub const AF_ROUTE: ::c_int = 17; +pub const AF_LINK: ::c_int = 18; +pub const AF_PACKET: ::c_int = 19; +pub const pseudo_AF_KEY: ::c_int = 27; +pub const AF_KEY: ::c_int = pseudo_AF_KEY; +pub const AF_INET6: ::c_int = 28; +pub const AF_SOCKDEV: ::c_int = 31; +pub const AF_TIPC: ::c_int = 33; +pub const AF_MIPC: ::c_int = 34; +pub const AF_MIPC_SAFE: ::c_int = 35; +pub const AF_MAX: ::c_int = 36; + +pub const SHUT_RD: ::c_int = 0; +pub const SHUT_WR: ::c_int = 1; +pub const SHUT_RDWR: ::c_int = 2; + +pub const IPPROTO_TCP: ::c_int = 6; +pub const TCP_NODELAY: ::c_int = 1; +pub const TCP_MAXSEG: ::c_int = 2; +pub const TCP_NOPUSH: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 4; +pub const TCP_KEEPINTVL: ::c_int = 5; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const SO_ERROR: ::c_int = 4; + +// IO Lib Definitions: + +pub const FIONREAD: ::c_int = 1; +pub const FIOFLUSH: ::c_int = 2; +pub const FIOOPTIONS: ::c_int = 3; +pub const FIOBAUDRATE: ::c_int = 4; +pub const FIODISKFORMAT: ::c_int = 5; +pub const FIODISKINIT: ::c_int = 6; +pub const FIOSEEK: ::c_int = 7; +pub const FIOWHERE: ::c_int = 8; +pub const FIODIRENTRY: ::c_int = 9; +pub const FIORENAME: ::c_int = 10; +pub const FIOREADYCHANGE: ::c_int = 11; +pub const FIOWRITE: ::c_int = 12; +pub const FIODISKCHANGE: ::c_int = 13; +pub const FIOCANCEL: ::c_int = 14; +pub const FIOSQUEEZE: ::c_int = 15; +pub const FIONBIO: ::c_int = -1878786032; // it goes on ... +pub const _POSIX_PATH_MAX: ::c_int = 256; + +// Some poll stuff +pub const POLLIN: ::c_short = 0x0001; +pub const POLLPRI: ::c_short = 0x0002; +pub const POLLOUT: ::c_short = 0x0004; +pub const POLLRDNORM: ::c_short = 0x0040; +pub const POLLWRNORM: ::c_short = POLLOUT; +pub const POLLRDBAND: ::c_short = 0x0080; +pub const POLLWRBAND: ::c_short = 0x0100; +pub const POLLER: ::c_short = 0x0008; +pub const POLLHUP: ::c_short = 0x0010; +pub const POLLNVAL: ::c_short = 0x0020; + +//Some Fcntlcom Stuff (look at fcntlcom.h to find definitions) +pub const FD_CLOEXEC: ::c_int = 1; +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_GETLK: ::c_int = 7; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; +pub const F_DUPFD_CLOEXEC: ::c_int = 14; + +//Some Dirent.h stuff +pub const DT_UNKNOWN: ::c_uchar = 0x0; +pub const DT_FIFO: ::c_uchar = 0x1; +pub const DT_CHR: ::c_uchar = 0x2; +pub const DT_DIR: ::c_uchar = 0x4; +pub const DT_BLK: ::c_uchar = 0x6; +pub const DT_REG: ::c_uchar = 0x8; +pub const DT_LNK: ::c_uchar = 0xA; +pub const DT_SOCK: ::c_uchar = 0xC; +pub const DT_WHT: ::c_uchar = 0xE; + +// Other Random Stuff +pub const VXSIM_EWOULDBLOCK: ::c_int = 70; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; + +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = !0 as sighandler_t; + +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGTRAP: ::c_int = 5; +pub const SIGABRT: ::c_int = 6; +pub const SIGEMT: ::c_int = 7; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGBUS: ::c_int = 10; +pub const SIGSEGV: ::c_int = 11; +pub const SIGFMT: ::c_int = 12; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; +pub const SIGCNCL: ::c_int = 16; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGCONT: ::c_int = 19; +pub const SIGCHLD: ::c_int = 20; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; + +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; +pub const SIG_SETMASK: ::c_int = 3; + +pub const SI_SYNC: ::c_int = 0; +pub const SI_USER: ::c_int = -1; +pub const SI_QUEUE: ::c_int = -2; +pub const SI_TIMER: ::c_int = -3; +pub const SI_ASYNCIO: ::c_int = -4; +pub const SI_MESGQ: ::c_int = -5; +pub const SI_CHILD: ::c_int = -6; +pub const SI_KILL: ::c_int = SI_USER; + +// vxParams.h definitions +pub const _PARM_NAME_MAX: usize = 255; +pub const _PARM_PATH_MAX: usize = 1024; + +// WAIT STUFF +pub const WNOHANG: ::c_int = 0x01; +pub const WUNTRACED: ::c_int = 0x02; + +const PTHREAD_MUTEXATTR_INITIALIZER: pthread_mutexattr_t = + pthread_mutexattr_t { + mutexAttrStatus: PTHREAD_INITIALIZED_OBJ, + mutexAttrProtocol: PTHREAD_PRIO_NONE, + mutexAttrPrioceiling: 0, + mutexAttrType: PTHREAD_MUTEX_DEFAULT, + mutexAttrPshared: 1, + }; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + mutexSemId: null_mut(), + mutexValid: PTHREAD_VALID_OBJ, + mutexInitted: PTHREAD_UNUSED_YET_OBJ, + mutexCondRefCount: 0, + mutexSavPriority: 0, + mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, + mutexSemName: [0; PTHREAD_SHARED_SEM_NAME_MAX], +}; + +const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { + condAttrStatus: 0, + condAttrPshared: 0, + _CondAttrClockId: CLOCK_REALTIME, +}; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { + condSemId: null_mut(), + condValid: PTHREAD_VALID_OBJ, + condInitted: PTHREAD_UNUSED_YET_OBJ, + condRefCount: 0, + condMutex: null_mut(), + condAttr: PTHREAD_CONDATTR_INITIALIZER, + condSemName: [0; PTHREAD_SHARED_SEM_NAME_MAX], +}; + +const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = + pthread_rwlockattr_t { + rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, + rwlockAttrMaxReaders: 0, + }; +pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { + rwlockSemId: null_mut(), + rwlockReadersRefCount: 0, + rwlockValid: PTHREAD_VALID_OBJ, + rwlockInitted: PTHREAD_UNUSED_YET_OBJ, + rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, + rwlockName: [0; PTHREAD_SHARED_SEM_NAME_MAX], +}; + +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; + +// rtpLibCommon.h +pub const VX_RTP_NAME_LENGTH: usize = 255; + +//Some unsupported stuff +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = -1; // Via unistd.h +pub const _SC_PAGESIZE: ::c_int = 64; +pub const O_ACCMODE: ::c_int = 3; +pub const O_CLOEXEC: ::c_int = 0x100000; // fcntlcom +pub const O_EXCL: ::c_int = 0x0800; +pub const O_CREAT: ::c_int = 0x0200; +pub const O_TRUNC: ::c_int = 0x0400; +pub const O_APPEND: ::c_int = 0x0008; +pub const O_RDWR: ::c_int = 2; +pub const O_WRONLY: ::c_int = 1; +pub const O_RDONLY: ::c_int = 0; +pub const O_NONBLOCK: ::c_int = 0x4; + +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum FILE {} +impl ::Copy for FILE {} +impl ::Clone for FILE { + fn clone(&self) -> FILE { + *self + } +} +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum fpos_t {} // TODO: fill this out with a struct +impl ::Copy for fpos_t {} +impl ::Clone for fpos_t { + fn clone(&self) -> fpos_t { + *self + } +} + +extern { + pub fn isalnum(c: c_int) -> c_int; + pub fn isalpha(c: c_int) -> c_int; + pub fn iscntrl(c: c_int) -> c_int; + pub fn isdigit(c: c_int) -> c_int; + pub fn isgraph(c: c_int) -> c_int; + pub fn islower(c: c_int) -> c_int; + pub fn isprint(c: c_int) -> c_int; + pub fn ispunct(c: c_int) -> c_int; + pub fn isspace(c: c_int) -> c_int; + pub fn isupper(c: c_int) -> c_int; + pub fn isxdigit(c: c_int) -> c_int; + pub fn tolower(c: c_int) -> c_int; + pub fn toupper(c: c_int) -> c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fopen$UNIX2003" + )] + pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "freopen$UNIX2003" + )] + pub fn freopen( + filename: *const c_char, + mode: *const c_char, + file: *mut FILE, + ) -> *mut FILE; + pub fn fflush(file: *mut FILE) -> c_int; + pub fn fclose(file: *mut FILE) -> c_int; + pub fn remove(filename: *const c_char) -> c_int; + pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; + pub fn tmpfile() -> *mut FILE; + pub fn setvbuf( + stream: *mut FILE, + buffer: *mut c_char, + mode: c_int, + size: size_t, + ) -> c_int; + pub fn setbuf(stream: *mut FILE, buf: *mut c_char); + pub fn getchar() -> c_int; + pub fn putchar(c: c_int) -> c_int; + pub fn fgetc(stream: *mut FILE) -> c_int; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) + -> *mut c_char; + pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fputs$UNIX2003" + )] + pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; + pub fn puts(s: *const c_char) -> c_int; + pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; + pub fn fread( + ptr: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fwrite$UNIX2003" + )] + pub fn fwrite( + ptr: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; + pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; + pub fn ftell(stream: *mut FILE) -> c_long; + pub fn rewind(stream: *mut FILE); + #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] + pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] + pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; + pub fn feof(stream: *mut FILE) -> c_int; + pub fn ferror(stream: *mut FILE) -> c_int; + pub fn perror(s: *const c_char); + pub fn atoi(s: *const c_char) -> c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "strtod$UNIX2003" + )] + pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; + pub fn strtol( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_long; + pub fn strtoul( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_ulong; + pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; + pub fn malloc(size: size_t) -> *mut c_void; + pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; + pub fn free(p: *mut c_void); + pub fn abort() -> !; + pub fn exit(status: c_int) -> !; + // pub fn _exit(status: c_int) -> !; + pub fn atexit(cb: extern fn()) -> c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "system$UNIX2003" + )] + pub fn system(s: *const c_char) -> c_int; + pub fn getenv(s: *const c_char) -> *mut c_char; + + pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn strncpy( + dst: *mut c_char, + src: *const c_char, + n: size_t, + ) -> *mut c_char; + pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; + pub fn strncat( + s: *mut c_char, + ct: *const c_char, + n: size_t, + ) -> *mut c_char; + pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; + pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; + pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; + pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; + pub fn strdup(cs: *const c_char) -> *mut c_char; + pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn strncasecmp( + s1: *const c_char, + s2: *const c_char, + n: size_t, + ) -> c_int; + pub fn strlen(cs: *const c_char) -> size_t; + pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "strerror$UNIX2003" + )] + pub fn strerror(n: c_int) -> *mut c_char; + pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; + pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; + pub fn wcslen(buf: *const wchar_t) -> size_t; + pub fn wcstombs( + dest: *mut c_char, + src: *const wchar_t, + n: size_t, + ) -> ::size_t; + + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; + pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; + pub fn memcpy( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memmove( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; +} + +extern { + #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] + pub fn getpwnam(name: *const ::c_char) -> *mut passwd; + #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] + pub fn getpwuid(uid: ::uid_t) -> *mut passwd; + + pub fn fprintf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; + pub fn printf(format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf( + s: *mut ::c_char, + n: ::size_t, + format: *const ::c_char, + ... + ) -> ::c_int; + pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; + pub fn scanf(format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) + -> ::c_int; + pub fn getchar_unlocked() -> ::c_int; + pub fn putchar_unlocked(c: ::c_int) -> ::c_int; + + pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; + + pub fn pclose(stream: *mut ::FILE) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fdopen$UNIX2003" + )] + pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; + pub fn fileno(stream: *mut ::FILE) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "open$UNIX2003" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "creat$UNIX2003" + )] + pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; + + pub fn rewinddir(dirp: *mut ::DIR); + + pub fn openat( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + ... + ) -> ::c_int; + pub fn fchmodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn fchownat( + dirfd: ::c_int, + pathname: *const ::c_char, + owner: ::uid_t, + group: ::gid_t, + flags: ::c_int, + ) -> ::c_int; + #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] + #[cfg_attr(target_os = "freebsd", link_name = "fstatat@FBSD_1.1")] + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn mkdirat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; + pub fn readlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t, + ) -> ::ssize_t; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + + pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; + pub fn alarm(seconds: ::c_uint) -> ::c_uint; + pub fn fchdir(dirfd: ::c_int) -> ::c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "lchown$UNIX2003" + )] + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; + pub fn execle( + path: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execlp( + file: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + /* + pub fn execvp(c: *const c_char, + argv: *const *const c_char) -> ::c_int; + */ + // pub fn fork() -> pid_t; + pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; + pub fn getegid() -> gid_t; + pub fn geteuid() -> uid_t; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; + pub fn getlogin() -> *mut c_char; + pub fn getopt( + argc: ::c_int, + argv: *const *mut c_char, + optstr: *const c_char, + ) -> ::c_int; + pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; + pub fn pause() -> ::c_int; + pub fn seteuid(uid: uid_t) -> ::c_int; + pub fn setegid(gid: gid_t) -> ::c_int; + pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; + pub fn setsid() -> pid_t; + pub fn sleep(secs: ::c_uint) -> ::c_uint; + pub fn tcgetpgrp(fd: ::c_int) -> pid_t; + pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; + pub fn ttyname(fd: ::c_int) -> *mut c_char; + pub fn wait(status: *mut ::c_int) -> pid_t; + /* + pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, + offset: off_t) -> ::ssize_t; + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "pwrite$UNIX2003")] + pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, + offset: off_t) -> ::ssize_t; + */ + pub fn umask(mask: mode_t) -> mode_t; + + // #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] + // pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; + + /* + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "kill$UNIX2003")] + pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; + */ + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "killpg$UNIX2003" + )] + pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; + + pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; + pub fn mlockall(flags: ::c_int) -> ::c_int; + pub fn munlockall() -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mmap$UNIX2003" + )] + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "munmap$UNIX2003" + )] + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; + + pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; + pub fn if_indextoname( + ifindex: ::c_uint, + ifname: *mut ::c_char, + ) -> *mut ::c_char; + + pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getrlimit$UNIX2003" + )] + pub fn getrlimit(resource: ::c_int, rlim: *mut rlimit) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setrlimit$UNIX2003" + )] + pub fn setrlimit(resource: ::c_int, rlim: *const rlimit) -> ::c_int; + // #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] + // pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; + + /* + #[cfg_attr(any(target_os = "macos", target_os = "ios"), + link_name = "realpath$DARWIN_EXTSN")] + pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) + -> *mut ::c_char; + */ + pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__gettimeofday50")] + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn pthread_exit(value: *mut ::c_void); + pub fn pthread_attr_setdetachstate( + attr: *mut ::pthread_attr_t, + state: ::c_int, + ) -> ::c_int; + + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; + + pub fn sigaction( + signum: ::c_int, + act: *const sigaction, + oldact: *mut sigaction, + ) -> ::c_int; + + #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] + pub fn utimes( + filename: *const ::c_char, + times: *const ::timeval, + ) -> ::c_int; + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + pub fn dlerror() -> *mut ::c_char; + pub fn dlsym( + handle: *mut ::c_void, + symbol: *const ::c_char, + ) -> *mut ::c_void; + pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + pub fn res_init() -> ::c_int; + /* + #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] + pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] + pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + #[cfg_attr(all(target_os = "macos", target_arch = "x86"), + link_name = "mktime$UNIX2003")] + #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] + pub fn mktime(tm: *mut tm) -> time_t; + #[cfg_attr(target_os = "netbsd", link_name = "__time50")] + pub fn time(time: *mut time_t) -> time_t; + #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] + pub fn gmtime(time_p: *const time_t) -> *mut tm; + #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] + pub fn localtime(time_p: *const time_t) -> *mut tm; + */ + #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] + pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; + + #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] + #[cfg_attr(target_os = "freebsd", link_name = "mknod@FBSD_1.0")] + pub fn mknod( + pathname: *const ::c_char, + mode: ::mode_t, + dev: ::dev_t, + ) -> ::c_int; + pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; + // pub fn getservbyname(name: *const ::c_char, + // proto: *const ::c_char) -> *mut servent; + // pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; + // pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; + pub fn chroot(name: *const ::c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "usleep$UNIX2003" + )] + pub fn usleep(secs: ::c_uint) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "putenv$UNIX2003" + )] + pub fn putenv(string: *mut c_char) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__select50")] + // pub fn select(nfds: ::c_int, + // readfs: *mut fd_set, + // writefds: *mut fd_set, + // errorfds: *mut fd_set, + // timeout: *mut timeval) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] + pub fn setlocale( + category: ::c_int, + locale: *const ::c_char, + ) -> *mut ::c_char; + // pub fn localeconv() -> *mut lconv; + + pub fn sigprocmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; + #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] + pub fn sigpending(set: *mut sigset_t) -> ::c_int; + + pub fn getsid(pid: pid_t) -> pid_t; + + pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; + + pub fn fseeko( + stream: *mut ::FILE, + offset: ::off_t, + whence: ::c_int, + ) -> ::c_int; + pub fn ftello(stream: *mut ::FILE) -> ::off_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "tcdrain$UNIX2003" + )] + pub fn tcdrain(fd: ::c_int) -> ::c_int; + pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; + pub fn tcgetsid(fd: ::c_int) -> ::pid_t; + pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; + pub fn mkstemp(template: *mut ::c_char) -> ::c_int; + pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; + + pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; + + pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); + pub fn closelog(); + pub fn setlogmask(maskpri: ::c_int) -> ::c_int; + #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] + pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "nice$UNIX2003" + )] + pub fn nice(incr: ::c_int) -> ::c_int; + + pub fn grantpt(fd: ::c_int) -> ::c_int; + pub fn posix_openpt(flags: ::c_int) -> ::c_int; + pub fn ptsname(fd: ::c_int) -> *mut ::c_char; + pub fn unlockpt(fd: ::c_int) -> ::c_int; + + pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; + pub fn getline( + lineptr: *mut *mut c_char, + n: *mut size_t, + stream: *mut FILE, + ) -> ssize_t; + + pub fn _rtld_dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; +} + +extern { + // this is gonna be a big one // stdlib.h // This function may not be defined for armv7 - pub fn memalign ( - block_size: ::size_t, - size_arg: ::size_t, - ) -> *mut ::c_void; + pub fn memalign(block_size: ::size_t, size_arg: ::size_t) + -> *mut ::c_void; // ioLib.h - pub fn getcwd ( - buf: *mut ::c_char, - size: ::size_t, - ) -> *mut ::c_char; + pub fn getcwd(buf: *mut ::c_char, size: ::size_t) -> *mut ::c_char; // ioLib.h - pub fn chdir ( - attr: *const ::c_char, - ) -> ::c_int; - + pub fn chdir(attr: *const ::c_char) -> ::c_int; + // pthread.h - pub fn pthread_mutexattr_init ( /* PTHREAD STUFF */ + pub fn pthread_mutexattr_init( + /* PTHREAD STUFF */ attr: *mut pthread_mutexattr_t, ) -> ::c_int; // pthread.h pub fn pthread_mutexattr_destroy( - attr: *mut pthread_mutexattr_t + attr: *mut pthread_mutexattr_t, ) -> ::c_int; // pthread.h - pub fn pthread_mutexattr_settype ( + pub fn pthread_mutexattr_settype( pAttr: *mut ::pthread_mutexattr_t, pType: ::c_int, ) -> ::c_int; // pthread.h - pub fn pthread_mutex_init ( + pub fn pthread_mutex_init( mutex: *mut pthread_mutex_t, attr: *const pthread_mutexattr_t, ) -> ::c_int; // pthread.h - pub fn pthread_mutex_destroy ( - mutex: *mut pthread_mutex_t - ) -> ::c_int; + pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> ::c_int; // pthread.h - pub fn pthread_mutex_lock( - mutex: *mut pthread_mutex_t - ) -> ::c_int; + pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> ::c_int; // pthread.h - pub fn pthread_mutex_trylock ( - mutex: *mut pthread_mutex_t - ) -> ::c_int; + pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_mutex_timedlock ( + pub fn pthread_mutex_timedlock( attr: *mut pthread_mutex_t, spec: *const timespec, ) -> ::c_int; - + // pthread.h - pub fn pthread_mutex_unlock ( - mutex: *mut pthread_mutex_t - ) -> ::c_int; - + pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> ::c_int; + // pthread.h - pub fn pthread_attr_setname ( + pub fn pthread_attr_setname( pAttr: *mut ::pthread_attr_t, - name : *mut ::c_char, + name: *mut ::c_char, ) -> ::c_int; // pthread.h - pub fn pthread_attr_setstacksize ( - attr : *mut ::pthread_attr_t, + pub fn pthread_attr_setstacksize( + attr: *mut ::pthread_attr_t, stacksize: ::size_t, ) -> ::c_int; // pthread.h - pub fn pthread_attr_getstacksize ( + pub fn pthread_attr_getstacksize( attr: *const ::pthread_attr_t, size: *mut ::size_t, ) -> ::c_int; // pthread.h - pub fn pthread_attr_init( - attr: *mut ::pthread_attr_t, - ) -> ::c_int; + pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; // pthread.h - pub fn pthread_create ( + pub fn pthread_create( pThread: *mut ::pthread_t, pAttr: *const ::pthread_attr_t, - start_routine : extern fn(*mut ::c_void) -> *mut ::c_void, + start_routine: extern fn(*mut ::c_void) -> *mut ::c_void, value: *mut ::c_void, ) -> ::c_int; // pthread.h - pub fn pthread_attr_destroy ( - thread: *mut ::pthread_attr_t, - ) -> ::c_int; - + pub fn pthread_attr_destroy(thread: *mut ::pthread_attr_t) -> ::c_int; + // pthread.h - pub fn pthread_detach ( - thread: ::pthread_t, + pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; + + // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; - // stat.h - pub fn fstat( - fildes: ::c_int, - buf: *mut stat, - ) -> ::c_int; - + pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; + // stat.h - pub fn lstat( - path: *const ::c_char, - buf: *mut stat, - ) -> ::c_int; + pub fn lstat(path: *const ::c_char, buf: *mut stat) -> ::c_int; // unistd.h - pub fn ftruncate( - fd: ::c_int, - length: off_t - ) -> ::c_int; + pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; // dirent.h - pub fn readdir_r( - pDir : *mut ::DIR, /* pointer to directory descriptor */ - entry : *mut ::dirent, /* pointer to directory entry */ - result: *mut *mut ::dirent, /* pointer to directory result of read */ + pub fn readdir_r( + pDir: *mut ::DIR, + entry: *mut ::dirent, + result: *mut *mut ::dirent, ) -> ::c_int; // dirent.h - pub fn readdir( - pDir: *mut ::DIR - ) -> *mut ::dirent; + pub fn readdir(pDir: *mut ::DIR) -> *mut ::dirent; // fcntl.h or // ioLib.h - pub fn open ( // this might be hacked + pub fn open( + // this might be hacked path: *const ::c_char, oflag: ::c_int, ... ) -> ::c_int; // poll.h - pub fn poll( - fds: *mut pollfd, // this is suppose to be an array, but doesn't seem to matter - // whether or not it is, so just keep this. - nfds: nfds_t, - timeout: ::c_int - ) -> ::c_int; + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; // pthread.h - pub fn pthread_condattr_init( - attr: *mut ::pthread_condattr_t - ) -> ::c_int; + pub fn pthread_condattr_init(attr: *mut ::pthread_condattr_t) -> ::c_int; // pthread.h pub fn pthread_condattr_destroy( - attr: *mut ::pthread_condattr_t + attr: *mut ::pthread_condattr_t, ) -> ::c_int; // pthread.h - pub fn pthread_condattr_getclock ( + pub fn pthread_condattr_getclock( pAttr: *const ::pthread_condattr_t, - pClockId: *mut ::clockid_t + pClockId: *mut ::clockid_t, ) -> ::c_int; // pthread.h - pub fn pthread_condattr_setclock ( + pub fn pthread_condattr_setclock( pAttr: *mut ::pthread_condattr_t, - clockId: ::clockid_t + clockId: ::clockid_t, ) -> ::c_int; - - // pthread.h - - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_cond_init ( + pub fn pthread_cond_init( cond: *mut ::pthread_cond_t, attr: *const ::pthread_condattr_t, ) -> ::c_int; // pthread.h - pub fn pthread_cond_destroy ( - cond: *mut pthread_cond_t, - ) -> ::c_int; - + pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; + // pthread.h - pub fn pthread_cond_signal ( - cond: *mut ::pthread_cond_t, - ) -> ::c_int; + pub fn pthread_cond_signal(cond: *mut ::pthread_cond_t) -> ::c_int; // pthread.h - pub fn pthread_cond_broadcast ( - cond: *mut ::pthread_cond_t, - ) -> ::c_int; - + pub fn pthread_cond_broadcast(cond: *mut ::pthread_cond_t) -> ::c_int; + // pthread.h - pub fn pthread_cond_wait ( + pub fn pthread_cond_wait( cond: *mut ::pthread_cond_t, mutex: *mut ::pthread_mutex_t, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlockattr_init ( + pub fn pthread_rwlockattr_init( attr: *mut ::pthread_rwlockattr_t, ) -> ::c_int; - + // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlockattr_destroy ( + pub fn pthread_rwlockattr_destroy( attr: *mut ::pthread_rwlockattr_t, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlockattr_setmaxreaders ( + pub fn pthread_rwlockattr_setmaxreaders( attr: *mut ::pthread_rwlockattr_t, attr2: ::c_uint, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_init ( + pub fn pthread_rwlock_init( attr: *mut ::pthread_rwlock_t, - host: *const ::pthread_rwlockattr_t + host: *const ::pthread_rwlockattr_t, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_destroy ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; - + pub fn pthread_rwlock_destroy(attr: *mut ::pthread_rwlock_t) -> ::c_int; + // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_rdlock ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; + pub fn pthread_rwlock_rdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_tryrdlock ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; - + pub fn pthread_rwlock_tryrdlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; + // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_timedrdlock ( + pub fn pthread_rwlock_timedrdlock( attr: *mut ::pthread_rwlock_t, host: *const ::timespec, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_wrlock ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; + pub fn pthread_rwlock_wrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_trywrlock ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; + pub fn pthread_rwlock_trywrlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_timedwrlock ( + pub fn pthread_rwlock_timedwrlock( attr: *mut ::pthread_rwlock_t, host: *const ::timespec, ) -> ::c_int; // pthread.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn pthread_rwlock_unlock ( - attr: *mut ::pthread_rwlock_t, - ) -> ::c_int; + pub fn pthread_rwlock_unlock(attr: *mut ::pthread_rwlock_t) -> ::c_int; // pthread.h - pub fn pthread_key_create ( + pub fn pthread_key_create( key: *mut ::pthread_key_t, - dtor: Option + dtor: ::Option, ) -> ::c_int; // pthread.h - pub fn pthread_key_delete ( - key: ::pthread_key_t, - ) -> ::c_int; + pub fn pthread_key_delete(key: ::pthread_key_t) -> ::c_int; // pthread.h - pub fn pthread_setspecific ( + pub fn pthread_setspecific( key: ::pthread_key_t, value: *const ::c_void, ) -> ::c_int; // pthread.h - pub fn pthread_getspecific( - key: ::pthread_key_t, - ) -> *mut ::c_void; + pub fn pthread_getspecific(key: ::pthread_key_t) -> *mut ::c_void; // pthread.h - pub fn pthread_cond_timedwait ( + pub fn pthread_cond_timedwait( cond: *mut ::pthread_cond_t, mutex: *mut ::pthread_mutex_t, - abstime: *const ::timespec + abstime: *const ::timespec, ) -> ::c_int; // pthread.h @@ -1420,72 +1762,60 @@ extern { // this is gonna be a big one ) -> ::c_int; // pthread.h - pub fn pthread_self( - ) -> ::pthread_t; + pub fn pthread_self() -> ::pthread_t; // clockLib.h - pub fn clock_gettime ( + pub fn clock_gettime( clock_id: ::clockid_t, - tp: *mut ::timespec, - ) -> ::c_int; - - // clockLib.h - pub fn clock_settime ( - clock_id: ::clockid_t, - tp: *const ::timespec + tp: *mut ::timespec, ) -> ::c_int; // clockLib.h - #[cfg(feature = "_WRS_KERNEL")] - pub fn clock_adjtime ( + pub fn clock_settime( clock_id: ::clockid_t, - delta: *const ::timespec, - olddelta: *mut ::timespec + tp: *const ::timespec, ) -> ::c_int; // clockLib.h - pub fn clock_getres ( + pub fn clock_getres( clock_id: ::clockid_t, res: *mut ::timespec, ) -> ::c_int; // clockLib.h - pub fn clock_nanosleep ( + pub fn clock_nanosleep( clock_id: ::clockid_t, flags: ::c_int, rqtp: *const ::timespec, - rmtp: *mut ::timespec - ) -> ::c_int; - + rmtp: *mut ::timespec, + ) -> ::c_int; + // timerLib.h - pub fn nanosleep ( + pub fn nanosleep( rqtp: *const ::timespec, - rmtp: *mut ::timespec + rmtp: *mut ::timespec, ) -> ::c_int; // socket.h - pub fn accept ( + pub fn accept( s: ::c_int, addr: *mut ::sockaddr, addrlen: *mut ::socklen_t, ) -> ::c_int; // socket.h - pub fn bind( - fd: ::c_int, - addr: *const sockaddr, - len: socklen_t - ) -> ::c_int; + pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) + -> ::c_int; // socket.h - pub fn connect ( + pub fn connect( s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t, ) -> ::c_int; // socket.h - pub fn getpeername ( + pub fn getpeername( s: ::c_int, name: *mut ::sockaddr, namelen: *mut ::socklen_t, @@ -1493,7 +1823,7 @@ extern { // this is gonna be a big one // socket.h pub fn getsockname( - socket: ::c_int, + socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t, ) -> ::c_int; @@ -1508,13 +1838,10 @@ extern { // this is gonna be a big one ) -> ::c_int; // socket.h - pub fn listen( - socket: ::c_int, - backlog: ::c_int, - ) -> ::c_int; + pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; // socket.h - pub fn recv ( + pub fn recv( s: ::c_int, buf: *mut ::c_void, bufLen: ::size_t, @@ -1522,7 +1849,7 @@ extern { // this is gonna be a big one ) -> ::ssize_t; // socket.h - pub fn recvfrom ( + pub fn recvfrom( s: ::c_int, buf: *mut ::c_void, bufLen: ::size_t, @@ -1533,45 +1860,43 @@ extern { // this is gonna be a big one // socket.h pub fn send( - socket: ::c_int, - buf: *const ::c_void, + socket: ::c_int, + buf: *const ::c_void, len: ::size_t, flags: ::c_int, ) -> ::ssize_t; // socket.h pub fn sendto( - socket: ::c_int, - buf: *const ::c_void, + socket: ::c_int, + buf: *const ::c_void, len: ::size_t, - flags: ::c_int, + flags: ::c_int, addr: *const sockaddr, - addrlen: socklen_t + addrlen: socklen_t, ) -> ::ssize_t; - + // socket.h pub fn setsockopt( - socket: ::c_int, - level: ::c_int, + socket: ::c_int, + level: ::c_int, name: ::c_int, value: *const ::c_void, - option_len: socklen_t + option_len: socklen_t, ) -> ::c_int; // socket.h - pub fn shutdown ( - s: ::c_int, - how: ::c_int, - ) -> ::c_int; + pub fn shutdown(s: ::c_int, how: ::c_int) -> ::c_int; // socket.h - pub fn socket ( + pub fn socket( domain: ::c_int, _type: ::c_int, - protocol: ::c_int + protocol: ::c_int, ) -> ::c_int; - - pub fn socketpair( // Doesn't exist + + pub fn socketpair( + // Doesn't exist domain: ::c_int, type_: ::c_int, protocol: ::c_int, @@ -1579,85 +1904,59 @@ extern { // this is gonna be a big one ) -> ::c_int; // icotl.h - pub fn ioctl( - fd: ::c_int, - request: ::c_int, - ... - ) -> ::c_int; + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; // fcntl.h - pub fn fcntl( - fd: ::c_int, - cmd: ::c_int, ... - ) -> ::c_int; + pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; // ntp_rfc2553.h for kernel // netdb.h for user - pub fn gai_strerror( - errcode: ::c_int - ) -> *mut ::c_char; + pub fn gai_strerror(errcode: ::c_int) -> *mut ::c_char; // ioLib.h or // unistd.h - pub fn close( - fd: ::c_int - ) -> ::c_int; + pub fn close(fd: ::c_int) -> ::c_int; // ioLib.h or // unistd.h - pub fn read( // Since this is from FD< big errors might happen - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t + pub fn read( + // Since this is from FD< big errors might happen + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, ) -> ::ssize_t; // ioLib.h or // unistd.h pub fn write( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, ) -> ::ssize_t; // ioLib.h or // unistd.h - pub fn isatty( - fd : ::c_int - ) -> ::c_int; + pub fn isatty(fd: ::c_int) -> ::c_int; // ioLib.h or // unistd.h - pub fn dup( - src: ::c_int, - ) -> ::c_int; + pub fn dup(src: ::c_int) -> ::c_int; // ioLib.h or // unistd.h - pub fn dup2( - src: ::c_int, - dst: ::c_int, - ) -> ::c_int; + pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; // ioLib.h or // unistd.h - pub fn pipe ( - fds: *mut ::c_int // this is suppose to be an array, but doesn't seem to matter - // whether or not it is, so just keep this. - ) -> ::c_int; + pub fn pipe(fds: *mut ::c_int) -> ::c_int; // ioLib.h or // unistd.h - pub fn unlink ( - pathname: *const ::c_char, - ) -> ::c_int; + pub fn unlink(pathname: *const ::c_char) -> ::c_int; // unistd.h and // ioLib.h - pub fn lseek( - fd: ::c_int, - offset: off_t, - whence: ::c_int, - ) -> off_t; + pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; // netdb.h pub fn getaddrinfo( @@ -1668,34 +1967,22 @@ extern { // this is gonna be a big one ) -> ::c_int; // netdb.h - pub fn freeaddrinfo( - res: *mut addrinfo - ); + pub fn freeaddrinfo(res: *mut addrinfo); // signal.h - pub fn signal( // Probably wrong ... - signum: ::c_int, - handler: sighandler_t + pub fn signal( + // Probably wrong ... + signum: ::c_int, + handler: sighandler_t, ) -> sighandler_t; - - // unistd.h - #[cfg(feature = "_WRS_KERNEL")] - pub fn getpid( - ) -> ::RTP_ID; // unistd.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn getpid( - ) -> ::c_int; //should be pid_t, but is being dodged + pub fn getpid() -> ::c_int; //should be pid_t, but is being dodged // unistd.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn getppid ( - ) -> ::c_int; // defined in b_pid_t.h - am dodging the pid_t thing - //should be pid_t, but is being dodged + pub fn getppid() -> ::c_int; // wait.h - #[cfg(not(feature = "_WRS_KERNEL"))] pub fn waitpid( pid: ::c_int, //should be pid_t, but is being dodged status: *mut ::c_int, @@ -1703,177 +1990,110 @@ extern { // this is gonna be a big one ) -> ::c_int; //should be pid_t, but is being dodged // unistd.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn sysconf ( - attr: ::c_int - ) -> ::c_long; + pub fn sysconf(attr: ::c_int) -> ::c_long; // unistd.h // For user space, return value is static inline int // For kernel space, exactly how it should be - pub fn getpagesize ( - ) -> ::c_int; + pub fn getpagesize() -> ::c_int; // stdlib.h - pub fn setenv ( // setenv.c - envVarName: *const ::c_char, /* environment variable name */ - envVarValue: *const ::c_char, /* environment variable value */ - overwrite: ::c_int /* if non-zero, change value when var exists */ + pub fn setenv( + // setenv.c + envVarName: *const ::c_char, + envVarValue: *const ::c_char, + overwrite: ::c_int, ) -> ::c_int; // stdlib.h - pub fn unsetenv ( // setenv.c - envVarName: *const ::c_char, /* name of environment variable to remove */ + pub fn unsetenv( + // setenv.c + envVarName: *const ::c_char, ) -> ::c_int; // unistd.h - pub fn link( - src: *const ::c_char, - dst: *const ::c_char, - ) -> ::c_int; + pub fn link(src: *const ::c_char, dst: *const ::c_char) -> ::c_int; // unistd.h - pub fn readlink ( + pub fn readlink( path: *const ::c_char, buf: *mut ::c_char, bufsize: ::size_t, ) -> ::ssize_t; // unistd.h - pub fn symlink ( - path1: *const ::c_char, - path2: *const ::c_char, - ) -> ::c_int; + pub fn symlink(path1: *const ::c_char, path2: *const ::c_char) -> ::c_int; // dirent.h - pub fn opendir ( - name: *const ::c_char, - ) -> *mut ::DIR; + pub fn opendir(name: *const ::c_char) -> *mut ::DIR; // unistd.h - pub fn rmdir ( - path: *const ::c_char, - ) -> ::c_int; + pub fn rmdir(path: *const ::c_char) -> ::c_int; // stat.h - #[cfg(feature = "_WRS_KERNEL")] - pub fn mkdir ( - dirName: *const ::c_char, - ) -> ::c_int; - - // stat.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn mkdir ( - dirName: *const ::c_char, - mode: ::mode_t, - ) -> ::c_int; + pub fn mkdir(dirName: *const ::c_char, mode: ::mode_t) -> ::c_int; // stat.h - pub fn chmod( - path: *const ::c_char, - mode: ::mode_t, - ) -> ::c_int; + pub fn chmod(path: *const ::c_char, mode: ::mode_t) -> ::c_int; // stat.h - pub fn fchmod ( - attr1: ::c_int, - attr2: ::mode_t, - ) -> ::c_int; + pub fn fchmod(attr1: ::c_int, attr2: ::mode_t) -> ::c_int; // unistd.h - pub fn fsync ( - fd: ::c_int, - ) -> ::c_int; + pub fn fsync(fd: ::c_int) -> ::c_int; // dirent.h - pub fn closedir ( - ptr: *mut ::DIR, - ) -> ::c_int; + pub fn closedir(ptr: *mut ::DIR) -> ::c_int; - pub fn pwrite64( //pwrite and pread are dummy functions in the 64 bit form, I haven't verified that they work or exist as of the time of this being written - fd: ::c_int, // if you want to use fd, you gotta fix these - buf: *const ::c_void, + pub fn pwrite64( + fd: ::c_int, // if you want to use fd, you gotta fix these + buf: *const ::c_void, count: ::size_t, - offset: off64_t + offset: off64_t, ) -> ::ssize_t; pub fn pread64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t - ) -> ::ssize_t; - - // mdep.h - #[cfg(feature = "_WRS_KERNEL")] - pub fn pwrite( fd: ::c_int, - buf: *const ::c_void, + buf: *const ::c_void, count: ::size_t, - offset: ::off_t + offset: off64_t, ) -> ::ssize_t; - // mdep.h - #[cfg(feature = "_WRS_KERNEL")] - pub fn pread( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: ::off_t - ) -> ::ssize_t; - // sched.h - pub fn sched_yield ( - ) -> ::c_int; + pub fn sched_yield() -> ::c_int; // errnoLib.h - pub fn errnoSet ( - err: ::c_int, - ) -> ::c_int; + pub fn errnoSet(err: ::c_int) -> ::c_int; // errnoLib.h - pub fn errnoGet ( - ) -> ::c_int; + pub fn errnoGet() -> ::c_int; - pub fn fork( // Does not exist at all + pub fn fork(// Does not exist at all ) -> ::c_int; // unistd.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn _exit( - status : ::c_int - ) -> !; + pub fn _exit(status: ::c_int) -> !; // unistd.h - pub fn setgid( - gid: ::gid_t - ) -> ::c_int; + pub fn setgid(gid: ::gid_t) -> ::c_int; // unistd.h - pub fn getgid( - - ) -> ::gid_t; + pub fn getgid() -> ::gid_t; // unistd.h - pub fn setuid( - uid: ::uid_t - ) -> ::c_int; - + pub fn setuid(uid: ::uid_t) -> ::c_int; // unistd.h - pub fn getuid( - - ) -> ::uid_t; + pub fn getuid() -> ::uid_t; - pub fn setgroups( // Does not exist at all - ngroups: ::c_int, - grouplist: *const ::gid_t + pub fn setgroups( + // Does not exist at all + ngroups: ::c_int, + grouplist: *const ::gid_t, ) -> ::c_int; // signal.h - pub fn sigemptyset( - __set: *mut sigset_t - ) -> ::c_int; + pub fn sigemptyset(__set: *mut sigset_t) -> ::c_int; // pthread.h for kernel // signal.h for user @@ -1883,91 +2103,74 @@ extern { // this is gonna be a big one __oset: *mut sigset_t, ) -> ::c_int; - pub fn execvp( // Does not exist at all + pub fn execvp( + // Does not exist at all c: *const ::c_char, - argv: *const *const ::c_char + argv: *const *const ::c_char, ) -> ::c_int; // signal.h for user - #[cfg(feature = "_WRS_KERNEL")] pub fn kill( - __tid : ::_Vx_TASK_ID, + __pid: ::c_int, //should be pid_t, but is being dodged __signo: ::c_int, ) -> ::c_int; // signal.h for user - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn kill( - __pid : ::c_int, //should be pid_t, but is being dodged - __signo: ::c_int, + pub fn sigqueue( + __pid: ::c_int, //should be pid_t, but is being dodged + __signo: ::c_int, + __value: ::size_t, // Actual type is const union sigval value, + // which is a union of int and void * ) -> ::c_int; // signal.h for user - #[cfg(feature = "_WRS_KERNEL")] - pub fn sigqueue( - __tid : ::_Vx_TASK_ID, - __signo: ::c_int, - __value: ::size_t, // Actual type is const union sigval value, - // which is a union of int and void * - ) -> ::c_int; - - // signal.h for user - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn sigqueue( - __pid : ::c_int, //should be pid_t, but is being dodged - __signo: ::c_int, - __value: ::size_t, // Actual type is const union sigval value, - // which is a union of int and void * - ) -> ::c_int; + pub fn _sigqueue( + rtpId: ::RTP_ID, + signo: ::c_int, + pValue: *mut ::size_t, // Actual type is const union * sigval value, + // which is a union of int and void * + sigCode: ::c_int, + ) -> ::c_int; - // signal.h for user - pub fn _sigqueue( - rtpId : ::RTP_ID, - signo : ::c_int, - pValue : *mut ::size_t, // Actual type is const union * sigval value, - // which is a union of int and void * - sigCode: ::c_int, - ) -> ::c_int; - - // signal.h + // signal.h // It seems like for kernel space, this function doesn't actually exist, // it just macros to kill - pub fn taskKill( - taskId: ::TASK_ID, - signo : ::c_int - ) -> ::c_int; - - // signal.h - pub fn raise ( - __signo: ::c_int, - ) -> ::c_int; + pub fn taskKill(taskId: ::TASK_ID, signo: ::c_int) -> ::c_int; + // signal.h + pub fn raise(__signo: ::c_int) -> ::c_int; // taskLibCommon.h - pub fn taskIdSelf( - - ) -> ::TASK_ID; + pub fn taskIdSelf() -> ::TASK_ID; // rtpLibCommon.h - pub fn rtpInfoGet( - rtpId : ::RTP_ID, - rtpStruct : *mut ::RTP_DESC, - ) -> ::c_int; + pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; // ioLib.h - #[cfg(not(feature = "_WRS_KERNEL"))] - pub fn _realpath - ( + pub fn _realpath( fileName: *const ::c_char, resolvedName: *mut ::c_char, ) -> *mut ::c_char; // pathLib.h - //#[cfg(feature = "__RTP__")] - pub fn _pathIsAbsolute ( + pub fn _pathIsAbsolute( filepath: *const ::c_char, pNameTail: *const *const ::c_char, ) -> bool; + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; +} + +pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int { + unsafe { _rtld_dladdr(addr, info) } } //Dummy functions, these don't really exist in VxWorks. @@ -1976,32 +2179,44 @@ extern { // this is gonna be a big one pub fn WIFEXITED(status: ::c_int) -> bool { (status & 0xFF00) == 0 } -pub fn WIFSIGNALED(status: ::c_int) -> bool{ - (status & 0xFF00) != 0 -} -pub fn WIFSTOPPED(status: ::c_int) -> bool{ - (status & 0xFF0000) != 0 +pub fn WIFSIGNALED(status: ::c_int) -> bool { + (status & 0xFF00) != 0 +} +pub fn WIFSTOPPED(status: ::c_int) -> bool { + (status & 0xFF0000) != 0 } -pub fn WEXITSTATUS(status: ::c_int) -> ::c_int{ - status & 0xFF +pub fn WEXITSTATUS(status: ::c_int) -> ::c_int { + status & 0xFF } -pub fn WTERMSIG(status: ::c_int) -> ::c_int{ - (status >> 8) & 0xFF +pub fn WTERMSIG(status: ::c_int) -> ::c_int { + (status >> 8) & 0xFF } -pub fn WSTOPSIG(status: ::c_int) -> ::c_int{ - (status >> 16) & 0xFF +pub fn WSTOPSIG(status: ::c_int) -> ::c_int { + (status >> 16) & 0xFF } -#[cfg(not(feature = "_WRS_KERNEL"))] -pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t { - 1 +pub fn pread( + _fd: ::c_int, + _buf: *mut ::c_void, + _count: ::size_t, + _offset: off64_t, +) -> ::ssize_t { + -1 } -#[cfg(not(feature = "_WRS_KERNEL"))] -pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t { - 1 +pub fn pwrite( + _fd: ::c_int, + _buf: *const ::c_void, + _count: ::size_t, + _offset: off64_t, +) -> ::ssize_t { + -1 } -pub fn posix_memalign (mut memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int { +pub fn posix_memalign( + memptr: *mut *mut ::c_void, + align: ::size_t, + size: ::size_t, +) -> ::c_int { // check to see if align is a power of 2 and if align is a multiple // of sizeof(void *) if (align & align - 1 != 0) || (align % size_of::<::size_t>() != 0) { @@ -2017,8 +2232,7 @@ pub fn posix_memalign (mut memptr: *mut *mut ::c_void, align: ::size_t, size: :: if temp.is_null() { ::ENOMEM - } - else { + } else { *memptr = temp; 0 } @@ -2026,23 +2240,53 @@ pub fn posix_memalign (mut memptr: *mut *mut ::c_void, align: ::size_t, size: :: } // From sysconf.c -> doesn't seem to be supported? -pub fn getpwuid_r(uid: ::uid_t, pwd: *mut passwd, buf: *mut ::c_char, buflen: ::size_t, result: *mut *mut passwd) -> ::c_int { +pub fn getpwuid_r( + _uid: ::uid_t, + _pwd: *mut passwd, + _buf: *mut ::c_char, + _buflen: ::size_t, + _result: *mut *mut passwd, +) -> ::c_int { 0 } // VxWorks requires that resolvedName be allocated in userspace -pub fn realpath (fileName: *const ::c_char, resolvedName: *mut ::c_char,) -> *mut ::c_char { - unsafe{ - if(resolvedName == null_mut::<::c_char>()){ - let emptyResolvedName = super::malloc(::_POSIX_PATH_MAX as _) as *mut ::c_char; - let r = _realpath (fileName, emptyResolvedName); +pub fn realpath( + fileName: *const ::c_char, + resolvedName: *mut ::c_char, +) -> *mut ::c_char { + unsafe { + if resolvedName == null_mut::<::c_char>() { + let emptyResolvedName = + super::malloc(::_POSIX_PATH_MAX as _) as *mut ::c_char; + let r = _realpath(fileName, emptyResolvedName); - if (r == null_mut::<::c_char>()) { + if r == null_mut::<::c_char>() { super::free(emptyResolvedName as *mut _); } r } else { - _realpath (fileName, resolvedName) + _realpath(fileName, resolvedName) + } + } +} + +cfg_if! { + if #[cfg(libc_core_cvoid)] { + pub use ::ffi::c_void; + } else { + // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help + // enable more optimization opportunities around it recognizing things + // like malloc/free. + #[repr(u8)] + #[allow(missing_copy_implementations)] + #[allow(missing_debug_implementations)] + pub enum c_void { + // Two dummy variants so the #[repr] attribute can be used. + #[doc(hidden)] + __variant1, + #[doc(hidden)] + __variant2, } } } @@ -2051,6 +2295,9 @@ cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; pub use self::aarch64::*; + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; } else if #[cfg(any(target_arch = "armv7"))] { mod armv7; pub use self::armv7::*; @@ -2060,6 +2307,12 @@ cfg_if! { } else if #[cfg(any(target_arch = "x86_64"))] { mod x86_64; pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "powerpc"))] { + mod powerpc; + pub use self::powerpc::*; + } else if #[cfg(any(target_arch = "powerpc64"))] { + mod powerpc64; + pub use self::powerpc64::*; } else { // Unknown target_arch } diff --git a/src/vxworks/powerpc.rs b/src/vxworks/powerpc.rs new file mode 100644 index 0000000000000..cfdce825a0b86 --- /dev/null +++ b/src/vxworks/powerpc.rs @@ -0,0 +1,3 @@ +pub type c_char = u8; +pub type c_long = i32; +pub type c_ulong = u32; diff --git a/src/vxworks/powerpc64.rs b/src/vxworks/powerpc64.rs new file mode 100644 index 0000000000000..577c8bef16b72 --- /dev/null +++ b/src/vxworks/powerpc64.rs @@ -0,0 +1,3 @@ +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; diff --git a/src/vxworks/x86.rs b/src/vxworks/x86.rs index 96747ad0f8154..81ba14588b146 100644 --- a/src/vxworks/x86.rs +++ b/src/vxworks/x86.rs @@ -1,35 +1,3 @@ +pub type c_char = i8; pub type c_long = i32; pub type c_ulong = u32; - -#[cfg(feature = "_WRS_KERNEL")] -pub type _Vx_TASK_ID = ::c_int; - -#[cfg(feature = "_WRS_KERNEL")] -s! { - pub struct OBJ_CORE { - pub handle : ::HANDLE, - pub ownerList : ::DL_LIST, - pub ownerNode : ::DL_NODE, - pub classNode : ::DL_NODE, - pub ownerId : *mut ::OBJ_CORE, - pub ownerRtpId : ::RTP_ID, - pub name : *mut ::c_char, - pub pObjClass : *mut ::wind_class, - pub objHandleList : ::DL_LIST, - pub refCnt : u16, - pub accessCnt : u16, - } - - // semLibP.h - pub struct semaphore { - #[repr(align(8))] - pub magic : ::OBJ_CORE, - pub semType : u8, - pub options : u8, - pub recurse : u16, - pub priInheritFlag : ::BOOL, - pub qHead : ::Q_HEAD, - pub state : ::size_t, //state is union of UINT and struct pointer - pub events : ::EVENTS_RSRC, - } -} diff --git a/src/vxworks/x86_64.rs b/src/vxworks/x86_64.rs index 884ae927c909a..27b94126688fb 100644 --- a/src/vxworks/x86_64.rs +++ b/src/vxworks/x86_64.rs @@ -1,38 +1,3 @@ pub type c_long = i64; pub type c_ulong = u64; - -#[cfg(feature = "_WRS_KERNEL")] -pub type _Vx_TASK_ID = *mut ::windTcb; - -#[cfg(feature = "_WRS_KERNEL")] -s! { - pub struct OBJ_CORE { - pub handle : ::HANDLE, - pub ownerList : ::DL_LIST, - pub ownerNode : ::DL_NODE, - pub classNode : ::DL_NODE, - pub ownerId : *mut ::OBJ_CORE, - pub ownerRtpId : ::RTP_ID, - pub name : *mut ::c_char, - pub pObjClass : *mut ::wind_class, - pub objHandleList : ::DL_LIST, - pub refCnt : u16, - pub accessCnt : u16, - pub padding : u32, // There is a chance that Rust automatically pads, but - // no point in risking it - } - - // semLibP.h - pub struct semaphore { - #[repr(align(16))] - pub magic : ::OBJ_CORE, - pub semType : u8, - pub options : u8, - pub recurse : u16, - pub priInheritFlag : ::BOOL, - pub qHead : ::Q_HEAD, - pub state : ::size_t, //state is union of UINT and struct pointer - pub events : ::EVENTS_RSRC, - } - -} +pub type c_char = i8; From 903a28b1ccf3c926c4fc8cf1c407ce984340125d Mon Sep 17 00:00:00 2001 From: John Baublitz Date: Thu, 1 Aug 2019 20:27:18 -0400 Subject: [PATCH 115/296] Move all netlink constants over from gnu/mod.rs to mod.rs on Linux - will probably fail CI --- src/unix/linux_like/linux/gnu/mod.rs | 63 ---------------------------- src/unix/linux_like/linux/mod.rs | 62 +++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 63 deletions(-) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 417fed6f2780b..735eaf24d8717 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -611,65 +611,8 @@ pub const IFA_F_NOPREFIXROUTE: u32 = 0x200; pub const IFA_F_MCAUTOJOIN: u32 = 0x400; pub const IFA_F_STABLE_PRIVACY: u32 = 0x800; -pub const NETLINK_ROUTE: ::c_int = 0; -pub const NETLINK_UNUSED: ::c_int = 1; -pub const NETLINK_USERSOCK: ::c_int = 2; -pub const NETLINK_FIREWALL: ::c_int = 3; -pub const NETLINK_SOCK_DIAG: ::c_int = 4; -pub const NETLINK_NFLOG: ::c_int = 5; -pub const NETLINK_XFRM: ::c_int = 6; -pub const NETLINK_SELINUX: ::c_int = 7; -pub const NETLINK_ISCSI: ::c_int = 8; -pub const NETLINK_AUDIT: ::c_int = 9; -pub const NETLINK_FIB_LOOKUP: ::c_int = 10; -pub const NETLINK_CONNECTOR: ::c_int = 11; -pub const NETLINK_NETFILTER: ::c_int = 12; -pub const NETLINK_IP6_FW: ::c_int = 13; -pub const NETLINK_DNRTMSG: ::c_int = 14; -pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; -pub const NETLINK_GENERIC: ::c_int = 16; -pub const NETLINK_SCSITRANSPORT: ::c_int = 18; -pub const NETLINK_ECRYPTFS: ::c_int = 19; -pub const NETLINK_RDMA: ::c_int = 20; -pub const NETLINK_CRYPTO: ::c_int = 21; -pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; - pub const MAX_LINKS: ::c_int = 32; -pub const NLM_F_REQUEST: ::c_int = 1; -pub const NLM_F_MULTI: ::c_int = 2; -pub const NLM_F_ACK: ::c_int = 4; -pub const NLM_F_ECHO: ::c_int = 8; -pub const NLM_F_DUMP_INTR: ::c_int = 16; -pub const NLM_F_DUMP_FILTERED: ::c_int = 32; - -pub const NLM_F_ROOT: ::c_int = 0x100; -pub const NLM_F_MATCH: ::c_int = 0x200; -pub const NLM_F_ATOMIC: ::c_int = 0x400; -pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; - -pub const NLM_F_REPLACE: ::c_int = 0x100; -pub const NLM_F_EXCL: ::c_int = 0x200; -pub const NLM_F_CREATE: ::c_int = 0x400; -pub const NLM_F_APPEND: ::c_int = 0x800; - -pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; -pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; -pub const NETLINK_PKTINFO: ::c_int = 3; -pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; -pub const NETLINK_NO_ENOBUFS: ::c_int = 5; -pub const NETLINK_RX_RING: ::c_int = 6; -pub const NETLINK_TX_RING: ::c_int = 7; -pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; -pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; -pub const NETLINK_CAP_ACK: ::c_int = 10; - -pub const NLA_F_NESTED: ::c_int = 1 << 15; -pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; -pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); - -pub const NLA_ALIGNTO: ::c_int = 4; - pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10; pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1; @@ -929,12 +872,6 @@ cfg_if! { } pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; -f! { - pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { - return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) - } -} - extern { pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, flags: ::c_int) -> ::c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 80053958715b9..0fc7c26f2ab74 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1897,6 +1897,64 @@ pub const NDA_PORT: ::c_ushort = 6; pub const NDA_VNI: ::c_ushort = 7; pub const NDA_IFINDEX: ::c_ushort = 8; +// linux/netlink.h +pub const NLA_ALIGNTO: ::c_int = 4; + +pub const NETLINK_ROUTE: ::c_int = 0; +pub const NETLINK_UNUSED: ::c_int = 1; +pub const NETLINK_USERSOCK: ::c_int = 2; +pub const NETLINK_FIREWALL: ::c_int = 3; +pub const NETLINK_SOCK_DIAG: ::c_int = 4; +pub const NETLINK_NFLOG: ::c_int = 5; +pub const NETLINK_XFRM: ::c_int = 6; +pub const NETLINK_SELINUX: ::c_int = 7; +pub const NETLINK_ISCSI: ::c_int = 8; +pub const NETLINK_AUDIT: ::c_int = 9; +pub const NETLINK_FIB_LOOKUP: ::c_int = 10; +pub const NETLINK_CONNECTOR: ::c_int = 11; +pub const NETLINK_NETFILTER: ::c_int = 12; +pub const NETLINK_IP6_FW: ::c_int = 13; +pub const NETLINK_DNRTMSG: ::c_int = 14; +pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15; +pub const NETLINK_GENERIC: ::c_int = 16; +pub const NETLINK_SCSITRANSPORT: ::c_int = 18; +pub const NETLINK_ECRYPTFS: ::c_int = 19; +pub const NETLINK_RDMA: ::c_int = 20; +pub const NETLINK_CRYPTO: ::c_int = 21; +pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG; + +pub const NLM_F_REQUEST: ::c_int = 1; +pub const NLM_F_MULTI: ::c_int = 2; +pub const NLM_F_ACK: ::c_int = 4; +pub const NLM_F_ECHO: ::c_int = 8; +pub const NLM_F_DUMP_INTR: ::c_int = 16; +pub const NLM_F_DUMP_FILTERED: ::c_int = 32; + +pub const NLM_F_ROOT: ::c_int = 0x100; +pub const NLM_F_MATCH: ::c_int = 0x200; +pub const NLM_F_ATOMIC: ::c_int = 0x400; +pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH; + +pub const NLM_F_REPLACE: ::c_int = 0x100; +pub const NLM_F_EXCL: ::c_int = 0x200; +pub const NLM_F_CREATE: ::c_int = 0x400; +pub const NLM_F_APPEND: ::c_int = 0x800; + +pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1; +pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2; +pub const NETLINK_PKTINFO: ::c_int = 3; +pub const NETLINK_BROADCAST_ERROR: ::c_int = 4; +pub const NETLINK_NO_ENOBUFS: ::c_int = 5; +pub const NETLINK_RX_RING: ::c_int = 6; +pub const NETLINK_TX_RING: ::c_int = 7; +pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8; +pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9; +pub const NETLINK_CAP_ACK: ::c_int = 10; + +pub const NLA_F_NESTED: ::c_int = 1 << 15; +pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14; +pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); + // linux/rtnetlink.h pub const TCA_UNSPEC: ::c_ushort = 0; pub const TCA_KIND: ::c_ushort = 1; @@ -2121,6 +2179,10 @@ pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME); f! { + pub fn NLA_ALIGN(len: ::c_int) -> ::c_int { + return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1) + } + pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr { if ((*cmsg).cmsg_len as usize) < ::mem::size_of::() { From e7865a15a33498c92469b32d58e431a9d43f1220 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Mon, 12 Aug 2019 10:15:35 +0200 Subject: [PATCH 116/296] Update README Azure badge to rust-lang2 org --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 86d2fe2abe453..4b860238bc11e 100644 --- a/README.md +++ b/README.md @@ -91,8 +91,8 @@ Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in `libc` by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. -[Azure Status]: https://dev.azure.com/rust-lang/libc/_apis/build/status/rust-lang.libc?branchName=master -[Azure]: https://dev.azure.com/rust-lang/libc/_build/latest?definitionId=11&branchName=master +[Azure Status]: https://dev.azure.com/rust-lang2/libc/_apis/build/status/rust-lang.libc?branchName=master +[Azure]: https://dev.azure.com/rust-lang2/libc/_build/latest?definitionId=1&branchName=master [Cirrus-CI]: https://cirrus-ci.com/github/rust-lang/libc [Cirrus-CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg [crates.io]: https://crates.io/crates/libc From 803cf6494fb12795959d6ac7c0f0e95343b16e3f Mon Sep 17 00:00:00 2001 From: Alex Touchet Date: Tue, 13 Aug 2019 08:21:20 -0700 Subject: [PATCH 117/296] Switch to Azure --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 181b604b533bd..7c22c08622530 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,7 +38,7 @@ With that in mind, the steps for adding a new API are: ### Test before you commit -We have two automated tests running on [Travis](https://travis-ci.com/rust-lang/libc): +We have two automated tests running on [Azure Pipelines](https://dev.azure.com/rust-lang2/libc/_build?definitionId=1&_a=summary): 1. [`libc-test`](https://github.com/gnzlbg/ctest) - `cd libc-test && cargo test` From e0752783bd6313f45a7529e7b4799d392eaa3b24 Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Tue, 13 Aug 2019 20:48:31 +0000 Subject: [PATCH 118/296] remove types and constants --- src/wasi.rs | 495 ++++++++++------------------------------------------ 1 file changed, 91 insertions(+), 404 deletions(-) diff --git a/src/wasi.rs b/src/wasi.rs index d27b4d2e14606..a810c2ad437e8 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -36,36 +36,6 @@ pub type blksize_t = c_long; pub type blkcnt_t = i64; pub type nfds_t = c_ulong; -pub type __wasi_advice_t = u8; -pub type __wasi_clockid_t = u32; -pub type __wasi_device_t = u64; -pub type __wasi_dircookie_t = u64; -pub type __wasi_errno_t = u16; -pub type __wasi_eventrwflags_t = u16; -pub type __wasi_eventtype_t = u8; -pub type __wasi_exitcode_t = u32; -pub type __wasi_fd_t = u32; -pub type __wasi_fdflags_t = u16; -pub type __wasi_filedelta_t = i64; -pub type __wasi_filesize_t = u64; -pub type __wasi_filetype_t = u8; -pub type __wasi_fstflags_t = u16; -pub type __wasi_inode_t = u64; -pub type __wasi_linkcount_t = u32; -pub type __wasi_lookupflags_t = u32; -pub type __wasi_oflags_t = u16; -pub type __wasi_riflags_t = u16; -pub type __wasi_rights_t = u64; -pub type __wasi_roflags_t = u16; -pub type __wasi_sdflags_t = u8; -pub type __wasi_siflags_t = u16; -pub type __wasi_signal_t = u8; -pub type __wasi_subclockflags_t = u16; -pub type __wasi_timestamp_t = u64; -pub type __wasi_userdata_t = u64; -pub type __wasi_whence_t = u8; -pub type __wasi_preopentype_t = u8; - #[allow(missing_copy_implementations)] #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} @@ -181,105 +151,6 @@ s! { pub st_ctim: timespec, __reserved: [c_longlong; 3], } - - pub struct __wasi_dirent_t { - pub d_next: __wasi_dircookie_t, - pub d_ino: __wasi_inode_t, - pub d_namlen: u32, - pub d_type: __wasi_filetype_t, - } - - pub struct __wasi_event_u_fd_readwrite_t { - pub nbytes: __wasi_filesize_t, - pub flags: __wasi_eventrwflags_t, - } - - pub struct __wasi_fdstat_t { - pub fs_filetype: __wasi_filetype_t, - pub fs_flags: __wasi_fdflags_t, - pub fs_rights_base: __wasi_rights_t, - pub fs_rights_inheriting: __wasi_rights_t, - } - - pub struct __wasi_filestat_t { - pub st_dev: __wasi_device_t, - pub st_ino: __wasi_inode_t, - pub st_filetype: __wasi_filetype_t, - pub st_nlink: __wasi_linkcount_t, - pub st_size: __wasi_filesize_t, - pub st_atim: __wasi_timestamp_t, - pub st_mtim: __wasi_timestamp_t, - pub st_ctim: __wasi_timestamp_t, - } - - pub struct __wasi_ciovec_t { - pub buf: *const ::c_void, - pub buf_len: size_t, - } - - pub struct __wasi_iovec_t { - pub buf: *mut ::c_void, - pub buf_len: size_t, - } - - pub struct __wasi_subscription_u_clock_t { - pub identifier: __wasi_userdata_t, - pub clock_id: __wasi_clockid_t, - pub timeout: __wasi_timestamp_t, - pub precision: __wasi_timestamp_t, - pub flags: __wasi_subclockflags_t, - } - - pub struct __wasi_subscription_u_fd_readwrite_t { - pub fd: __wasi_fd_t, - } - - pub struct __wasi_prestat_u_dir_t { - pub pr_name_len: size_t, - } -} - -s_no_extra_traits! { - #[allow(missing_debug_implementations)] - pub struct __wasi_subscription_t { - pub userdata: __wasi_userdata_t, - pub type_: __wasi_eventtype_t, - pub u: __wasi_subscription_u, - } - - #[allow(missing_debug_implementations)] - pub struct __wasi_event_t { - pub userdata: __wasi_userdata_t, - pub error: __wasi_errno_t, - pub type_: __wasi_eventtype_t, - pub u: __wasi_event_u, - } - - #[allow(missing_debug_implementations)] - pub union __wasi_event_u { - pub fd_readwrite: __wasi_event_u_fd_readwrite_t, - _bindgen_union_align: [u64; 2], - } - - #[allow(missing_debug_implementations)] - pub union __wasi_subscription_u { - pub clock: __wasi_subscription_u_clock_t, - pub fd_readwrite: - __wasi_subscription_u_fd_readwrite_t, - _bindgen_union_align: [u64; 5], - } - - #[allow(missing_debug_implementations)] - pub struct __wasi_prestat_t { - pub pr_type: __wasi_preopentype_t, - pub u: __wasi_prestat_u, - } - - #[allow(missing_debug_implementations)] - pub union __wasi_prestat_u { - pub dir: __wasi_prestat_u_dir_t, - } - } // Declare dirent outside of s! so that it doesn't implement Copy, Eq, Hash, @@ -308,15 +179,15 @@ pub const _IOFBF: c_int = 0; pub const _IONBF: c_int = 2; pub const _IOLBF: c_int = 1; pub const FD_SETSIZE: size_t = 1024; -pub const O_APPEND: c_int = __WASI_FDFLAG_APPEND as c_int; -pub const O_DSYNC: c_int = __WASI_FDFLAG_DSYNC as c_int; -pub const O_NONBLOCK: c_int = __WASI_FDFLAG_NONBLOCK as c_int; -pub const O_RSYNC: c_int = __WASI_FDFLAG_RSYNC as c_int; -pub const O_SYNC: c_int = __WASI_FDFLAG_SYNC as c_int; -pub const O_CREAT: c_int = (__WASI_O_CREAT as c_int) << 12; -pub const O_DIRECTORY: c_int = (__WASI_O_DIRECTORY as c_int) << 12; -pub const O_EXCL: c_int = (__WASI_O_EXCL as c_int) << 12; -pub const O_TRUNC: c_int = (__WASI_O_TRUNC as c_int) << 12; +pub const O_APPEND: c_int = 0x0001; +pub const O_DSYNC: c_int = 0x0002; +pub const O_NONBLOCK: c_int = 0x0004; +pub const O_RSYNC: c_int = 0x0008; +pub const O_SYNC: c_int = 0x0010; +pub const O_CREAT: c_int = 0x0001 << 12; +pub const O_DIRECTORY: c_int = 0x0002 << 12; +pub const O_EXCL: c_int = 0x0004 << 12; +pub const O_TRUNC: c_int = 0x0008 << 12; pub const O_NOFOLLOW: c_int = 0x01000000; pub const O_EXEC: c_int = 0x02000000; pub const O_RDONLY: c_int = 0x04000000; @@ -324,280 +195,96 @@ pub const O_SEARCH: c_int = 0x08000000; pub const O_WRONLY: c_int = 0x10000000; pub const O_RDWR: c_int = O_WRONLY | O_RDONLY; pub const O_ACCMODE: c_int = O_EXEC | O_RDWR | O_SEARCH; -pub const POSIX_FADV_DONTNEED: c_int = __WASI_ADVICE_DONTNEED as c_int; -pub const POSIX_FADV_NOREUSE: c_int = __WASI_ADVICE_NOREUSE as c_int; -pub const POSIX_FADV_NORMAL: c_int = __WASI_ADVICE_NORMAL as c_int; -pub const POSIX_FADV_RANDOM: c_int = __WASI_ADVICE_RANDOM as c_int; -pub const POSIX_FADV_SEQUENTIAL: c_int = __WASI_ADVICE_SEQUENTIAL as c_int; -pub const POSIX_FADV_WILLNEED: c_int = __WASI_ADVICE_WILLNEED as c_int; +pub const POSIX_FADV_DONTNEED: c_int = 4; +pub const POSIX_FADV_NOREUSE: c_int = 5; +pub const POSIX_FADV_NORMAL: c_int = 0; +pub const POSIX_FADV_RANDOM: c_int = 2; +pub const POSIX_FADV_SEQUENTIAL: c_int = 1; +pub const POSIX_FADV_WILLNEED: c_int = 3; pub const AT_EACCESS: c_int = 0x0; pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1; pub const AT_SYMLINK_FOLLOW: c_int = 0x2; pub const AT_REMOVEDIR: c_int = 0x4; -pub const E2BIG: c_int = __WASI_E2BIG as c_int; -pub const EACCES: c_int = __WASI_EACCES as c_int; -pub const EADDRINUSE: c_int = __WASI_EADDRINUSE as c_int; -pub const EADDRNOTAVAIL: c_int = __WASI_EADDRNOTAVAIL as c_int; -pub const EAFNOSUPPORT: c_int = __WASI_EAFNOSUPPORT as c_int; -pub const EAGAIN: c_int = __WASI_EAGAIN as c_int; -pub const EALREADY: c_int = __WASI_EALREADY as c_int; -pub const EBADF: c_int = __WASI_EBADF as c_int; -pub const EBADMSG: c_int = __WASI_EBADMSG as c_int; -pub const EBUSY: c_int = __WASI_EBUSY as c_int; -pub const ECANCELED: c_int = __WASI_ECANCELED as c_int; -pub const ECHILD: c_int = __WASI_ECHILD as c_int; -pub const ECONNABORTED: c_int = __WASI_ECONNABORTED as c_int; -pub const ECONNREFUSED: c_int = __WASI_ECONNREFUSED as c_int; -pub const ECONNRESET: c_int = __WASI_ECONNRESET as c_int; -pub const EDEADLK: c_int = __WASI_EDEADLK as c_int; -pub const EDESTADDRREQ: c_int = __WASI_EDESTADDRREQ as c_int; -pub const EDOM: c_int = __WASI_EDOM as c_int; -pub const EDQUOT: c_int = __WASI_EDQUOT as c_int; -pub const EEXIST: c_int = __WASI_EEXIST as c_int; -pub const EFAULT: c_int = __WASI_EFAULT as c_int; -pub const EFBIG: c_int = __WASI_EFBIG as c_int; -pub const EHOSTUNREACH: c_int = __WASI_EHOSTUNREACH as c_int; -pub const EIDRM: c_int = __WASI_EIDRM as c_int; -pub const EILSEQ: c_int = __WASI_EILSEQ as c_int; -pub const EINPROGRESS: c_int = __WASI_EINPROGRESS as c_int; -pub const EINTR: c_int = __WASI_EINTR as c_int; -pub const EINVAL: c_int = __WASI_EINVAL as c_int; -pub const EIO: c_int = __WASI_EIO as c_int; -pub const EISCONN: c_int = __WASI_EISCONN as c_int; -pub const EISDIR: c_int = __WASI_EISDIR as c_int; -pub const ELOOP: c_int = __WASI_ELOOP as c_int; -pub const EMFILE: c_int = __WASI_EMFILE as c_int; -pub const EMLINK: c_int = __WASI_EMLINK as c_int; -pub const EMSGSIZE: c_int = __WASI_EMSGSIZE as c_int; -pub const EMULTIHOP: c_int = __WASI_EMULTIHOP as c_int; -pub const ENAMETOOLONG: c_int = __WASI_ENAMETOOLONG as c_int; -pub const ENETDOWN: c_int = __WASI_ENETDOWN as c_int; -pub const ENETRESET: c_int = __WASI_ENETRESET as c_int; -pub const ENETUNREACH: c_int = __WASI_ENETUNREACH as c_int; -pub const ENFILE: c_int = __WASI_ENFILE as c_int; -pub const ENOBUFS: c_int = __WASI_ENOBUFS as c_int; -pub const ENODEV: c_int = __WASI_ENODEV as c_int; -pub const ENOENT: c_int = __WASI_ENOENT as c_int; -pub const ENOEXEC: c_int = __WASI_ENOEXEC as c_int; -pub const ENOLCK: c_int = __WASI_ENOLCK as c_int; -pub const ENOLINK: c_int = __WASI_ENOLINK as c_int; -pub const ENOMEM: c_int = __WASI_ENOMEM as c_int; -pub const ENOMSG: c_int = __WASI_ENOMSG as c_int; -pub const ENOPROTOOPT: c_int = __WASI_ENOPROTOOPT as c_int; -pub const ENOSPC: c_int = __WASI_ENOSPC as c_int; -pub const ENOSYS: c_int = __WASI_ENOSYS as c_int; -pub const ENOTCONN: c_int = __WASI_ENOTCONN as c_int; -pub const ENOTDIR: c_int = __WASI_ENOTDIR as c_int; -pub const ENOTEMPTY: c_int = __WASI_ENOTEMPTY as c_int; -pub const ENOTRECOVERABLE: c_int = __WASI_ENOTRECOVERABLE as c_int; -pub const ENOTSOCK: c_int = __WASI_ENOTSOCK as c_int; -pub const ENOTSUP: c_int = __WASI_ENOTSUP as c_int; -pub const ENOTTY: c_int = __WASI_ENOTTY as c_int; -pub const ENXIO: c_int = __WASI_ENXIO as c_int; -pub const EOVERFLOW: c_int = __WASI_EOVERFLOW as c_int; -pub const EOWNERDEAD: c_int = __WASI_EOWNERDEAD as c_int; -pub const EPERM: c_int = __WASI_EPERM as c_int; -pub const EPIPE: c_int = __WASI_EPIPE as c_int; -pub const EPROTO: c_int = __WASI_EPROTO as c_int; -pub const EPROTONOSUPPORT: c_int = __WASI_EPROTONOSUPPORT as c_int; -pub const EPROTOTYPE: c_int = __WASI_EPROTOTYPE as c_int; -pub const ERANGE: c_int = __WASI_ERANGE as c_int; -pub const EROFS: c_int = __WASI_EROFS as c_int; -pub const ESPIPE: c_int = __WASI_ESPIPE as c_int; -pub const ESRCH: c_int = __WASI_ESRCH as c_int; -pub const ESTALE: c_int = __WASI_ESTALE as c_int; -pub const ETIMEDOUT: c_int = __WASI_ETIMEDOUT as c_int; -pub const ETXTBSY: c_int = __WASI_ETXTBSY as c_int; -pub const EXDEV: c_int = __WASI_EXDEV as c_int; -pub const ENOTCAPABLE: c_int = __WASI_ENOTCAPABLE as c_int; +pub const E2BIG: c_int = 1; +pub const EACCES: c_int = 2; +pub const EADDRINUSE: c_int = 3; +pub const EADDRNOTAVAIL: c_int = 4; +pub const EAFNOSUPPORT: c_int = 5; +pub const EAGAIN: c_int = 6; +pub const EALREADY: c_int = 7; +pub const EBADF: c_int = 8; +pub const EBADMSG: c_int = 9; +pub const EBUSY: c_int = 10; +pub const ECANCELED: c_int = 11; +pub const ECHILD: c_int = 12; +pub const ECONNABORTED: c_int = 13; +pub const ECONNREFUSED: c_int = 14; +pub const ECONNRESET: c_int = 15; +pub const EDEADLK: c_int = 16; +pub const EDESTADDRREQ: c_int = 17; +pub const EDOM: c_int = 18; +pub const EDQUOT: c_int = 19; +pub const EEXIST: c_int = 20; +pub const EFAULT: c_int = 21; +pub const EFBIG: c_int = 22; +pub const EHOSTUNREACH: c_int = 23; +pub const EIDRM: c_int = 24; +pub const EILSEQ: c_int = 25; +pub const EINPROGRESS: c_int = 26; +pub const EINTR: c_int = 27; +pub const EINVAL: c_int = 28; +pub const EIO: c_int = 29; +pub const EISCONN: c_int = 30; +pub const EISDIR: c_int = 31; +pub const ELOOP: c_int = 32; +pub const EMFILE: c_int = 33; +pub const EMLINK: c_int = 34; +pub const EMSGSIZE: c_int = 35; +pub const EMULTIHOP: c_int = 36; +pub const ENAMETOOLONG: c_int = 37; +pub const ENETDOWN: c_int = 38; +pub const ENETRESET: c_int = 39; +pub const ENETUNREACH: c_int = 40; +pub const ENFILE: c_int = 41; +pub const ENOBUFS: c_int = 42; +pub const ENODEV: c_int = 43; +pub const ENOENT: c_int = 44; +pub const ENOEXEC: c_int = 45; +pub const ENOLCK: c_int = 46; +pub const ENOLINK: c_int = 47; +pub const ENOMEM: c_int = 48; +pub const ENOMSG: c_int = 49; +pub const ENOPROTOOPT: c_int = 50; +pub const ENOSPC: c_int = 51; +pub const ENOSYS: c_int = 52; +pub const ENOTCONN: c_int = 53; +pub const ENOTDIR: c_int = 54; +pub const ENOTEMPTY: c_int = 55; +pub const ENOTRECOVERABLE: c_int = 56; +pub const ENOTSOCK: c_int = 57; +pub const ENOTSUP: c_int = 58; +pub const ENOTTY: c_int = 59; +pub const ENXIO: c_int = 60; +pub const EOVERFLOW: c_int = 61; +pub const EOWNERDEAD: c_int = 62; +pub const EPERM: c_int = 63; +pub const EPIPE: c_int = 64; +pub const EPROTO: c_int = 65; +pub const EPROTONOSUPPORT: c_int = 66; +pub const EPROTOTYPE: c_int = 67; +pub const ERANGE: c_int = 68; +pub const EROFS: c_int = 69; +pub const ESPIPE: c_int = 70; +pub const ESRCH: c_int = 71; +pub const ESTALE: c_int = 72; +pub const ETIMEDOUT: c_int = 73; +pub const ETXTBSY: c_int = 74; +pub const EXDEV: c_int = 75; +pub const ENOTCAPABLE: c_int = 76; pub const EOPNOTSUPP: c_int = ENOTSUP; pub const EWOULDBLOCK: c_int = EAGAIN; -pub const __WASI_ADVICE_NORMAL: u8 = 0; -pub const __WASI_ADVICE_SEQUENTIAL: u8 = 1; -pub const __WASI_ADVICE_RANDOM: u8 = 2; -pub const __WASI_ADVICE_WILLNEED: u8 = 3; -pub const __WASI_ADVICE_DONTNEED: u8 = 4; -pub const __WASI_ADVICE_NOREUSE: u8 = 5; -pub const __WASI_CLOCK_REALTIME: u32 = 0; -pub const __WASI_CLOCK_MONOTONIC: u32 = 1; -pub const __WASI_CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const __WASI_CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const __WASI_DIRCOOKIE_START: u64 = 0; -pub const __WASI_ESUCCESS: u16 = 0; -pub const __WASI_E2BIG: u16 = 1; -pub const __WASI_EACCES: u16 = 2; -pub const __WASI_EADDRINUSE: u16 = 3; -pub const __WASI_EADDRNOTAVAIL: u16 = 4; -pub const __WASI_EAFNOSUPPORT: u16 = 5; -pub const __WASI_EAGAIN: u16 = 6; -pub const __WASI_EALREADY: u16 = 7; -pub const __WASI_EBADF: u16 = 8; -pub const __WASI_EBADMSG: u16 = 9; -pub const __WASI_EBUSY: u16 = 10; -pub const __WASI_ECANCELED: u16 = 11; -pub const __WASI_ECHILD: u16 = 12; -pub const __WASI_ECONNABORTED: u16 = 13; -pub const __WASI_ECONNREFUSED: u16 = 14; -pub const __WASI_ECONNRESET: u16 = 15; -pub const __WASI_EDEADLK: u16 = 16; -pub const __WASI_EDESTADDRREQ: u16 = 17; -pub const __WASI_EDOM: u16 = 18; -pub const __WASI_EDQUOT: u16 = 19; -pub const __WASI_EEXIST: u16 = 20; -pub const __WASI_EFAULT: u16 = 21; -pub const __WASI_EFBIG: u16 = 22; -pub const __WASI_EHOSTUNREACH: u16 = 23; -pub const __WASI_EIDRM: u16 = 24; -pub const __WASI_EILSEQ: u16 = 25; -pub const __WASI_EINPROGRESS: u16 = 26; -pub const __WASI_EINTR: u16 = 27; -pub const __WASI_EINVAL: u16 = 28; -pub const __WASI_EIO: u16 = 29; -pub const __WASI_EISCONN: u16 = 30; -pub const __WASI_EISDIR: u16 = 31; -pub const __WASI_ELOOP: u16 = 32; -pub const __WASI_EMFILE: u16 = 33; -pub const __WASI_EMLINK: u16 = 34; -pub const __WASI_EMSGSIZE: u16 = 35; -pub const __WASI_EMULTIHOP: u16 = 36; -pub const __WASI_ENAMETOOLONG: u16 = 37; -pub const __WASI_ENETDOWN: u16 = 38; -pub const __WASI_ENETRESET: u16 = 39; -pub const __WASI_ENETUNREACH: u16 = 40; -pub const __WASI_ENFILE: u16 = 41; -pub const __WASI_ENOBUFS: u16 = 42; -pub const __WASI_ENODEV: u16 = 43; -pub const __WASI_ENOENT: u16 = 44; -pub const __WASI_ENOEXEC: u16 = 45; -pub const __WASI_ENOLCK: u16 = 46; -pub const __WASI_ENOLINK: u16 = 47; -pub const __WASI_ENOMEM: u16 = 48; -pub const __WASI_ENOMSG: u16 = 49; -pub const __WASI_ENOPROTOOPT: u16 = 50; -pub const __WASI_ENOSPC: u16 = 51; -pub const __WASI_ENOSYS: u16 = 52; -pub const __WASI_ENOTCONN: u16 = 53; -pub const __WASI_ENOTDIR: u16 = 54; -pub const __WASI_ENOTEMPTY: u16 = 55; -pub const __WASI_ENOTRECOVERABLE: u16 = 56; -pub const __WASI_ENOTSOCK: u16 = 57; -pub const __WASI_ENOTSUP: u16 = 58; -pub const __WASI_ENOTTY: u16 = 59; -pub const __WASI_ENXIO: u16 = 60; -pub const __WASI_EOVERFLOW: u16 = 61; -pub const __WASI_EOWNERDEAD: u16 = 62; -pub const __WASI_EPERM: u16 = 63; -pub const __WASI_EPIPE: u16 = 64; -pub const __WASI_EPROTO: u16 = 65; -pub const __WASI_EPROTONOSUPPORT: u16 = 66; -pub const __WASI_EPROTOTYPE: u16 = 67; -pub const __WASI_ERANGE: u16 = 68; -pub const __WASI_EROFS: u16 = 69; -pub const __WASI_ESPIPE: u16 = 70; -pub const __WASI_ESRCH: u16 = 71; -pub const __WASI_ESTALE: u16 = 72; -pub const __WASI_ETIMEDOUT: u16 = 73; -pub const __WASI_ETXTBSY: u16 = 74; -pub const __WASI_EXDEV: u16 = 75; -pub const __WASI_ENOTCAPABLE: u16 = 76; -pub const __WASI_EVENT_FD_READWRITE_HANGUP: u16 = 0x0001; -pub const __WASI_EVENTTYPE_CLOCK: u8 = 0; -pub const __WASI_EVENTTYPE_FD_READ: u8 = 1; -pub const __WASI_EVENTTYPE_FD_WRITE: u8 = 2; -pub const __WASI_FDFLAG_APPEND: u16 = 0x0001; -pub const __WASI_FDFLAG_DSYNC: u16 = 0x0002; -pub const __WASI_FDFLAG_NONBLOCK: u16 = 0x0004; -pub const __WASI_FDFLAG_RSYNC: u16 = 0x0008; -pub const __WASI_FDFLAG_SYNC: u16 = 0x0010; -pub const __WASI_FILETYPE_UNKNOWN: u8 = 0; -pub const __WASI_FILETYPE_BLOCK_DEVICE: u8 = 1; -pub const __WASI_FILETYPE_CHARACTER_DEVICE: u8 = 2; -pub const __WASI_FILETYPE_DIRECTORY: u8 = 3; -pub const __WASI_FILETYPE_REGULAR_FILE: u8 = 4; -pub const __WASI_FILETYPE_SOCKET_DGRAM: u8 = 5; -pub const __WASI_FILETYPE_SOCKET_STREAM: u8 = 6; -pub const __WASI_FILETYPE_SYMBOLIC_LINK: u8 = 7; -pub const __WASI_FILESTAT_SET_ATIM: u16 = 0x0001; -pub const __WASI_FILESTAT_SET_ATIM_NOW: u16 = 0x0002; -pub const __WASI_FILESTAT_SET_MTIM: u16 = 0x0004; -pub const __WASI_FILESTAT_SET_MTIM_NOW: u16 = 0x0008; -pub const __WASI_LOOKUP_SYMLINK_FOLLOW: u32 = 0x00000001; -pub const __WASI_O_CREAT: u16 = 0x0001; -pub const __WASI_O_DIRECTORY: u16 = 0x0002; -pub const __WASI_O_EXCL: u16 = 0x0004; -pub const __WASI_O_TRUNC: u16 = 0x0008; -pub const __WASI_PREOPENTYPE_DIR: u8 = 0; -pub const __WASI_SOCK_RECV_PEEK: u16 = 0x0001; -pub const __WASI_SOCK_RECV_WAITALL: u16 = 0x0002; -pub const __WASI_RIGHT_FD_DATASYNC: u64 = 0x0000000000000001; -pub const __WASI_RIGHT_FD_READ: u64 = 0x0000000000000002; -pub const __WASI_RIGHT_FD_SEEK: u64 = 0x0000000000000004; -pub const __WASI_RIGHT_FD_FDSTAT_SET_FLAGS: u64 = 0x0000000000000008; -pub const __WASI_RIGHT_FD_SYNC: u64 = 0x0000000000000010; -pub const __WASI_RIGHT_FD_TELL: u64 = 0x0000000000000020; -pub const __WASI_RIGHT_FD_WRITE: u64 = 0x0000000000000040; -pub const __WASI_RIGHT_FD_ADVISE: u64 = 0x0000000000000080; -pub const __WASI_RIGHT_FD_ALLOCATE: u64 = 0x0000000000000100; -pub const __WASI_RIGHT_PATH_CREATE_DIRECTORY: u64 = 0x0000000000000200; -pub const __WASI_RIGHT_PATH_CREATE_FILE: u64 = 0x0000000000000400; -pub const __WASI_RIGHT_PATH_LINK_SOURCE: u64 = 0x0000000000000800; -pub const __WASI_RIGHT_PATH_LINK_TARGET: u64 = 0x0000000000001000; -pub const __WASI_RIGHT_PATH_OPEN: u64 = 0x0000000000002000; -pub const __WASI_RIGHT_FD_READDIR: u64 = 0x0000000000004000; -pub const __WASI_RIGHT_PATH_READLINK: u64 = 0x0000000000008000; -pub const __WASI_RIGHT_PATH_RENAME_SOURCE: u64 = 0x0000000000010000; -pub const __WASI_RIGHT_PATH_RENAME_TARGET: u64 = 0x0000000000020000; -pub const __WASI_RIGHT_PATH_FILESTAT_GET: u64 = 0x0000000000040000; -pub const __WASI_RIGHT_PATH_FILESTAT_SET_SIZE: u64 = 0x0000000000080000; -pub const __WASI_RIGHT_PATH_FILESTAT_SET_TIMES: u64 = 0x0000000000100000; -pub const __WASI_RIGHT_FD_FILESTAT_GET: u64 = 0x0000000000200000; -pub const __WASI_RIGHT_FD_FILESTAT_SET_SIZE: u64 = 0x0000000000400000; -pub const __WASI_RIGHT_FD_FILESTAT_SET_TIMES: u64 = 0x0000000000800000; -pub const __WASI_RIGHT_PATH_SYMLINK: u64 = 0x0000000001000000; -pub const __WASI_RIGHT_PATH_REMOVE_DIRECTORY: u64 = 0x0000000002000000; -pub const __WASI_RIGHT_PATH_UNLINK_FILE: u64 = 0x0000000004000000; -pub const __WASI_RIGHT_POLL_FD_READWRITE: u64 = 0x0000000008000000; -pub const __WASI_RIGHT_SOCK_SHUTDOWN: u64 = 0x0000000010000000; -pub const __WASI_SOCK_RECV_DATA_TRUNCATED: u16 = 0x0001; -pub const __WASI_SHUT_RD: u8 = 0x01; -pub const __WASI_SHUT_WR: u8 = 0x02; -pub const __WASI_SIGHUP: u8 = 1; -pub const __WASI_SIGINT: u8 = 2; -pub const __WASI_SIGQUIT: u8 = 3; -pub const __WASI_SIGILL: u8 = 4; -pub const __WASI_SIGTRAP: u8 = 5; -pub const __WASI_SIGABRT: u8 = 6; -pub const __WASI_SIGBUS: u8 = 7; -pub const __WASI_SIGFPE: u8 = 8; -pub const __WASI_SIGKILL: u8 = 9; -pub const __WASI_SIGUSR1: u8 = 10; -pub const __WASI_SIGSEGV: u8 = 11; -pub const __WASI_SIGUSR2: u8 = 12; -pub const __WASI_SIGPIPE: u8 = 13; -pub const __WASI_SIGALRM: u8 = 14; -pub const __WASI_SIGTERM: u8 = 15; -pub const __WASI_SIGCHLD: u8 = 16; -pub const __WASI_SIGCONT: u8 = 17; -pub const __WASI_SIGSTOP: u8 = 18; -pub const __WASI_SIGTSTP: u8 = 19; -pub const __WASI_SIGTTIN: u8 = 20; -pub const __WASI_SIGTTOU: u8 = 21; -pub const __WASI_SIGURG: u8 = 22; -pub const __WASI_SIGXCPU: u8 = 23; -pub const __WASI_SIGXFSZ: u8 = 24; -pub const __WASI_SIGVTALRM: u8 = 25; -pub const __WASI_SIGPROF: u8 = 26; -pub const __WASI_SIGWINCH: u8 = 27; -pub const __WASI_SIGPOLL: u8 = 28; -pub const __WASI_SIGPWR: u8 = 29; -pub const __WASI_SIGSYS: u8 = 30; -pub const __WASI_SUBSCRIPTION_CLOCK_ABSTIME: u16 = 0x0001; -pub const __WASI_WHENCE_CUR: u8 = 0; -pub const __WASI_WHENCE_END: u8 = 1; -pub const __WASI_WHENCE_SET: u8 = 2; - #[cfg_attr( feature = "rustc-dep-of-std", link(name = "c", kind = "static", cfg(target_feature = "crt-static")) From 4f1966f5c54220d2f83bf917e91f54129651f654 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 07:30:15 +0200 Subject: [PATCH 119/296] Fix FreeBSD build --- build.rs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/build.rs b/build.rs index f355447a672c6..339eb195569ba 100644 --- a/build.rs +++ b/build.rs @@ -7,6 +7,8 @@ fn main() { rustc_minor_version().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); + #[allow(unused)] + let libc_ci = env::var("LIBC_CI").is_ok(); if env::var("CARGO_FEATURE_USE_STD").is_ok() { println!( @@ -15,15 +17,20 @@ fn main() { ); } - if env::var("LIBC_CI").is_ok() { - if let Some(11) = which_freebsd() { - println!("cargo:rustc-cfg=freebsd11"); - } - if let Some(12) = which_freebsd() { - println!("cargo:rustc-cfg=freebsd12"); - } - if let Some(13) = which_freebsd() { - println!("cargo:rustc-cfg=freebsd13"); + // The ABI of libc is backward compatible with FreeBSD 11. + // + // On CI, we detect the actual FreeBSD version and match its ABI exactly, + // running tests to ensure that the ABI is correct. + #[cfg(target_os = "freebsd")] + match which_freebsd() { + Some(11) if libc_ci => println!("cargo:rustc-cfg=freebsd11"), + Some(12) if libc_ci => println!("cargo:rustc-cfg=freebsd12"), + Some(13) if libc_ci => println!("cargo:rustc-cfg=freebsd13"), + Some(_) => println!("cargo:rustc-cfg=freebsd11"), + None => + /* not FreeBSD - nothing to do here */ + { + () } } @@ -87,6 +94,7 @@ fn rustc_minor_version() -> Option { otry!(pieces.next()).parse().ok() } +#[cfg(target_os = "freebsd")] fn which_freebsd() -> Option { let output = std::process::Command::new("freebsd-version").output().ok(); if output.is_none() { From af88cf1f0f6cbcc02495309a8ba757af8b082bbd Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 07:36:41 +0200 Subject: [PATCH 120/296] Add a build task for FreeBSD11 without LIBC_CI --- .cirrus.yml | 19 +++++++++++++++++-- ci/azure.yml | 10 +++++----- ci/run-docker.sh | 1 + ci/run.sh | 2 -- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 178f5b24690c5..b3d8dfb26fd79 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,5 +1,5 @@ task: - name: stable x86_64-unknown-freebsd-11 + name: stable x86_64-unknown-freebsd freebsd_instance: image: freebsd-11-3-stable-amd64-v20190801 setup_script: @@ -11,6 +11,21 @@ task: test_script: - . $HOME/.cargo/env - sh ci/run.sh x86_64-unknown-freebsd + + +task: + name: stable x86_64-unknown-freebsd-11 + freebsd_instance: + image: freebsd-11-3-stable-amd64-v20190801 + setup_script: + - pkg install -y curl + - curl https://sh.rustup.rs -sSf --output rustup.sh + - sh rustup.sh -y + - . $HOME/.cargo/env + - rustup default stable + test_script: + - . $HOME/.cargo/env + - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd task: name: nightly x86_64-unknown-freebsd-12 @@ -24,4 +39,4 @@ task: - rustup default nightly test_script: - . $HOME/.cargo/env - - sh ci/run.sh x86_64-unknown-freebsd + - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd diff --git a/ci/azure.yml b/ci/azure.yml index 04d12dae8f316..4526361aefbe6 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -15,7 +15,7 @@ jobs: vmImage: ubuntu-16.04 steps: - template: azure-install-rust.yml - - bash: sh ./ci/run-docker.sh $TARGET + - bash: LIBC_CI=1 sh ./ci/run-docker.sh $TARGET displayName: Execute run-docker.sh strategy: matrix: @@ -30,7 +30,7 @@ jobs: vmImage: ubuntu-16.04 steps: - template: azure-install-rust.yml - - bash: sh ./ci/run-docker.sh $TARGET + - bash: LIBC_CI=1 sh ./ci/run-docker.sh $TARGET displayName: Execute run-docker.sh strategy: matrix: @@ -88,7 +88,7 @@ jobs: vmImage: macos-10.14 steps: - template: azure-install-rust.yml - - bash: sh ./ci/run.sh $TARGET + - bash: LIBC_CI=1 sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: matrix: @@ -100,7 +100,7 @@ jobs: vmImage: macos-10.13 steps: - template: azure-install-rust.yml - - bash: sh ./ci/run.sh $TARGET + - bash: LIBC_CI=1 sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: matrix: @@ -112,7 +112,7 @@ jobs: vmImage: vs2017-win2016 steps: - template: azure-install-rust.yml - - bash: sh ./ci/run.sh $TARGET + - bash: LIBC_CI=1 sh ./ci/run.sh $TARGET displayName: Execute run.sh strategy: matrix: diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 5fd00614462dc..3c0736a265f7b 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -23,6 +23,7 @@ run() { docker run \ --rm \ --user "$(id -u)":"$(id -g)" \ + --env LIBC_CI \ --env CARGO_HOME=/cargo \ --env CARGO_TARGET_DIR=/checkout/target \ --volume "$(dirname "$(dirname "$(command -v cargo)")")":/cargo \ diff --git a/ci/run.sh b/ci/run.sh index 8c56979ed657f..6f2ca11fe4090 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -87,8 +87,6 @@ if [ "$TARGET" = "x86_64-unknown-linux-gnux32" ]; then opt="--release" fi -export LIBC_CI=1 - cargo test -vv $opt --no-default-features --manifest-path libc-test/Cargo.toml \ --target "${TARGET}" From 077f4321b255bf811621a64b6b426a5b8f2ff19a Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 08:17:44 +0200 Subject: [PATCH 121/296] Test ABI without LIBC_CI on all supported FreeBSD versions --- .cirrus.yml | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index b3d8dfb26fd79..e3f777b52907f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,18 +1,3 @@ -task: - name: stable x86_64-unknown-freebsd - freebsd_instance: - image: freebsd-11-3-stable-amd64-v20190801 - setup_script: - - pkg install -y curl - - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh -y - - . $HOME/.cargo/env - - rustup default stable - test_script: - - . $HOME/.cargo/env - - sh ci/run.sh x86_64-unknown-freebsd - - task: name: stable x86_64-unknown-freebsd-11 freebsd_instance: @@ -26,6 +11,7 @@ task: test_script: - . $HOME/.cargo/env - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd + - sh ci/run.sh x86_64-unknown-freebsd task: name: nightly x86_64-unknown-freebsd-12 @@ -40,3 +26,4 @@ task: test_script: - . $HOME/.cargo/env - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd + - sh ci/run.sh x86_64-unknown-freebsd From 9db561f04efe839ee4a65cb1ab282c0c4e82b352 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 15:22:20 +0200 Subject: [PATCH 122/296] Remove catch all for FreeBSD11 --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c178b91b9408e..fea680d2af40c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1334,9 +1334,11 @@ cfg_if! { } else if #[cfg(freebsd13)] { mod freebsd12; pub use self::freebsd12::*; - } else { + } else if #[cfg(freebsd11)] { mod freebsd11; pub use self::freebsd11::*; + } else { + // Unknown freebsd version } } From cbc8fb973642dd9e29d2a445f0c992edb4f613c2 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 17:32:21 +0200 Subject: [PATCH 123/296] Set up RUSTDOCFLAGS for building libc --- ci/dox.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/dox.sh b/ci/dox.sh index 49abd546001c8..febe18b35b836 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -47,6 +47,9 @@ while read -r target; do rustup target add "${target}" || true + # Enable extra configuration flags: + export RUSTDOCFLAGS="--cfg freebsd11" + # If cargo doc fails, then try xargo: if ! cargo doc --target "${target}" \ --no-default-features --features extra_traits ; then From eb9f523e657789ab3fd3a3078c6327b5cd0aa443 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 14 Aug 2019 17:34:26 +0200 Subject: [PATCH 124/296] Update minor patch version to 0.2.62 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c6e1b98c21aee..a39ab2945ceb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.61" +version = "0.2.62" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From f0816947c9e7b975285b178b417b2601744af270 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 15 Aug 2019 06:55:13 +0200 Subject: [PATCH 125/296] Always pass freebsd11 - otherwise cross-compiling to FreeBSD fails --- build.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/build.rs b/build.rs index 339eb195569ba..efc95b6627493 100644 --- a/build.rs +++ b/build.rs @@ -21,17 +21,11 @@ fn main() { // // On CI, we detect the actual FreeBSD version and match its ABI exactly, // running tests to ensure that the ABI is correct. - #[cfg(target_os = "freebsd")] match which_freebsd() { Some(11) if libc_ci => println!("cargo:rustc-cfg=freebsd11"), Some(12) if libc_ci => println!("cargo:rustc-cfg=freebsd12"), Some(13) if libc_ci => println!("cargo:rustc-cfg=freebsd13"), - Some(_) => println!("cargo:rustc-cfg=freebsd11"), - None => - /* not FreeBSD - nothing to do here */ - { - () - } + Some(_) | None => println!("cargo:rustc-cfg=freebsd11"), } // Rust >= 1.15 supports private module use: @@ -94,7 +88,6 @@ fn rustc_minor_version() -> Option { otry!(pieces.next()).parse().ok() } -#[cfg(target_os = "freebsd")] fn which_freebsd() -> Option { let output = std::process::Command::new("freebsd-version").output().ok(); if output.is_none() { From 3311ba8a02d7637c4c50887fd0c63b7164fe8024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Thu, 15 Aug 2019 12:29:48 +0200 Subject: [PATCH 126/296] openbsd: introduce _MAX_PAGE_SHIFT to compute PTHREAD_STACK_MIN, MINSIGSTKSZ, and SIGSTKSZ --- src/unix/bsd/netbsdlike/openbsd/aarch64.rs | 2 ++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 5 +++-- src/unix/bsd/netbsdlike/openbsd/x86.rs | 2 ++ src/unix/bsd/netbsdlike/openbsd/x86_64.rs | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index 6a8cbb5c4f7ea..99350ec8dc3d4 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -12,3 +12,5 @@ cfg_if! { pub const _ALIGNBYTES: usize = 8 - 1; } } + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index a397d58c93109..59598062c9057 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1297,8 +1297,9 @@ pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast -pub const PTHREAD_STACK_MIN : ::size_t = 4096; -pub const SIGSTKSZ : ::size_t = 28672; +pub const PTHREAD_STACK_MIN: ::size_t = (1_usize << _MAX_PAGE_SHIFT); +pub const MINSIGSTKSZ: ::size_t = (3_usize << _MAX_PAGE_SHIFT); +pub const SIGSTKSZ: ::size_t = MINSIGSTKSZ + (1_usize << _MAX_PAGE_SHIFT) * 4; pub const PT_FIRSTMACH: ::c_int = 32; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86.rs b/src/unix/bsd/netbsdlike/openbsd/x86.rs index 05538cd0a9e81..e87d0ff1e7d5d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86.rs @@ -12,3 +12,5 @@ cfg_if! { pub const _ALIGNBYTES: usize = 4 - 1; } } + +pub const _MAX_PAGE_SHIFT: u32 = 12; diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 7daa9d83664aa..263b6e13a2d72 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -15,6 +15,8 @@ cfg_if! { } } +pub const _MAX_PAGE_SHIFT: u32 = 12; + pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; From 1a458390842538bf882ae9b5381b05c74a71ce83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Thu, 15 Aug 2019 12:43:00 +0200 Subject: [PATCH 127/296] openbsd: add sparc64 support --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 3 +++ src/unix/bsd/netbsdlike/openbsd/sparc64.rs | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 src/unix/bsd/netbsdlike/openbsd/sparc64.rs diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 59598062c9057..51b1bf14d759d 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1438,6 +1438,9 @@ cfg_if! { } else if #[cfg(target_arch = "aarch64")] { mod aarch64; pub use self::aarch64::*; + } else if #[cfg(target_arch = "sparc64")] { + mod sparc64; + pub use self::sparc64::*; } else { // Unknown target_arch } diff --git a/src/unix/bsd/netbsdlike/openbsd/sparc64.rs b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs new file mode 100644 index 0000000000000..070fc9385f6c9 --- /dev/null +++ b/src/unix/bsd/netbsdlike/openbsd/sparc64.rs @@ -0,0 +1,8 @@ +pub type c_long = i64; +pub type c_ulong = u64; +pub type c_char = i8; + +#[doc(hidden)] +pub const _ALIGNBYTES: usize = 0xf; + +pub const _MAX_PAGE_SHIFT: u32 = 13; From 5d85c3773428d68f41db2248b782bacc2b464f50 Mon Sep 17 00:00:00 2001 From: Xavier L'Heureux Date: Thu, 15 Aug 2019 08:13:50 -0400 Subject: [PATCH 128/296] Add termios support for redox --- src/unix/redox/mod.rs | 121 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 118 insertions(+), 3 deletions(-) diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 2591a7938acbb..02f5435d66f30 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -610,6 +610,124 @@ pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; pub const SOL_SOCKET: ::c_int = 1; +// sys/termios.h +pub const NCCS: usize = 32; + +pub const VINTR: usize = 0; +pub const VQUIT: usize = 1; +pub const VERASE: usize = 2; +pub const VKILL: usize = 3; +pub const VEOF: usize = 4; +pub const VTIME: usize = 5; +pub const VMIN: usize = 6; +pub const VSWTC: usize = 7; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VSUSP: usize = 10; +pub const VEOL: usize = 11; +pub const VREPRINT: usize = 12; +pub const VDISCARD: usize = 13; +pub const VWERASE: usize = 14; +pub const VLNEXT: usize = 15; +pub const VEOL2: usize = 16; + +pub const IGNBRK: ::tcflag_t = 0o000_001; +pub const BRKINT: ::tcflag_t = 0o000_002; +pub const IGNPAR: ::tcflag_t = 0o000_004; +pub const PARMRK: ::tcflag_t = 0o000_010; +pub const INPCK: ::tcflag_t = 0o000_020; +pub const ISTRIP: ::tcflag_t = 0o000_040; +pub const INLCR: ::tcflag_t = 0o000_100; +pub const IGNCR: ::tcflag_t = 0o000_200; +pub const ICRNL: ::tcflag_t = 0o000_400; +pub const IUCLC: ::tcflag_t = 0o001_000; +pub const IXON: ::tcflag_t = 0o002_000; +pub const IXANY: ::tcflag_t = 0o004_000; +pub const IXOFF: ::tcflag_t = 0o010_000; +pub const IMAXBEL: ::tcflag_t = 0o020_000; +pub const IUTF8: ::tcflag_t = 0o040_000; + +pub const OPOST: ::tcflag_t = 0o000_001; +pub const OLCUC: ::tcflag_t = 0o000_002; +pub const ONLCR: ::tcflag_t = 0o000_004; +pub const OCRNL: ::tcflag_t = 0o000_010; +pub const ONOCR: ::tcflag_t = 0o000_020; +pub const ONLRET: ::tcflag_t = 0o00_0040; +pub const OFILL: ::tcflag_t = 0o000_100; +pub const OFDEL: ::tcflag_t = 0o000_200; + +pub const VTDLY: usize = 0o040_000; +pub const VT0: usize = 0o000_000; +pub const VT1: usize = 0o040_000; + +pub const B0: speed_t = 0o000_000; +pub const B50: speed_t = 0o000_001; +pub const B75: speed_t = 0o000_002; +pub const B110: speed_t = 0o000_003; +pub const B134: speed_t = 0o000_004; +pub const B150: speed_t = 0o000_005; +pub const B200: speed_t = 0o000_006; +pub const B300: speed_t = 0o000_007; +pub const B600: speed_t = 0o000_010; +pub const B1200: speed_t = 0o000_011; +pub const B1800: speed_t = 0o000_012; +pub const B2400: speed_t = 0o000_013; +pub const B4800: speed_t = 0o000_014; +pub const B9600: speed_t = 0o000_015; +pub const B19200: speed_t = 0o000_016; +pub const B38400: speed_t = 0o000_017; + +pub const B57600: speed_t = 0o010_001; +pub const B115200: speed_t = 0o010_002; +pub const B230400: speed_t = 0o010_003; +pub const B460800: speed_t = 0o010_004; +pub const B500000: speed_t = 0o010_005; +pub const B576000: speed_t = 0o010_006; +pub const B921600: speed_t = 0o010_007; +pub const B1000000: speed_t = 0o010_010; +pub const B1152000: speed_t = 0o010_011; +pub const B1500000: speed_t = 0o010_012; +pub const B2000000: speed_t = 0o010_013; +pub const B2500000: speed_t = 0o010_014; +pub const B3000000: speed_t = 0o010_015; +pub const B3500000: speed_t = 0o010_016; +pub const B4000000: speed_t = 0o010_017; + +pub const CSIZE: ::tcflag_t = 0o000_060; +pub const CS5: ::tcflag_t = 0o000_000; +pub const CS6: ::tcflag_t = 0o000_020; +pub const CS7: ::tcflag_t = 0o000_040; +pub const CS8: ::tcflag_t = 0o000_060; +pub const CSTOPB: ::tcflag_t = 0o000_100; +pub const CREAD: ::tcflag_t = 0o000_200; +pub const PARENB: ::tcflag_t = 0o000_400; +pub const PARODD: ::tcflag_t = 0o001_000; +pub const HUPCL: ::tcflag_t = 0o002_000; +pub const CLOCAL: ::tcflag_t = 0o004_000; + +pub const ISIG: ::tcflag_t = 0o000_001; +pub const ICANON: ::tcflag_t = 0o000_002; +pub const ECHO: ::tcflag_t = 0o000_010; +pub const ECHOE: ::tcflag_t = 0o000_020; +pub const ECHOK: ::tcflag_t = 0o000_040; +pub const ECHONL: ::tcflag_t = 0o000_100; +pub const NOFLSH: ::tcflag_t = 0o000_200; +pub const TOSTOP: ::tcflag_t = 0o000_400; +pub const IEXTEN: ::tcflag_t = 0o100_000; + +pub const TCOOFF: ::c_int = 0; +pub const TCOON: ::c_int = 1; +pub const TCIOFF: ::c_int = 2; +pub const TCION: ::c_int = 3; + +pub const TCIFLUSH: ::c_int = 0; +pub const TCOFLUSH: ::c_int = 1; +pub const TCIOFLUSH: ::c_int = 2; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + // sys/wait.h pub const WNOHANG: ::c_int = 1; pub const WUNTRACED: ::c_int = 2; @@ -624,9 +742,6 @@ pub const __WALL: ::c_int = 0x4000_0000; #[allow(overflowing_literals)] pub const __WCLONE: ::c_int = 0x8000_0000; -// termios.h -pub const NCCS: usize = 32; - // time.h pub const CLOCK_REALTIME: ::c_int = 1; pub const CLOCK_MONOTONIC: ::c_int = 4; From c2829045a244a2ad09d76445096d9478cbbd79ad Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Wed, 14 Aug 2019 15:51:08 -0700 Subject: [PATCH 129/296] 1. adding randBytes(), randABytes(), randUBytes(), randSecure() and taskDelay() 2. change armv7-wrs-vxworks to armv7-wrs-vxworks-eabihf 3. code cleanup --- ci/build.sh | 2 +- src/vxworks/mod.rs | 167 ++++----------------------------------------- 2 files changed, 13 insertions(+), 156 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index e63b4f7e2cf64..76af9e5fc728d 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -224,7 +224,7 @@ x86_64-unknown-haiku \ x86_64-unknown-hermit \ x86_64-unknown-l4re-uclibc \ x86_64-unknown-openbsd \ -armv7-wrs-vxworks \ +armv7-wrs-vxworks-eabihf \ aarch64-wrs-vxworks \ i686-wrs-vxworks \ x86_64-wrs-vxworks \ diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 19aa2b69d0815..123c18baf6b4c 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,4 +1,5 @@ -//! Hacking together the definitions for VxWorks Bindings +//! Interface to VxWorks C library + use core::mem::size_of; use core::ptr::null_mut; @@ -188,7 +189,7 @@ s! { pub __ss_pad2 : [::c_char; 32], pub __ss_pad3 : [::c_char; 32], pub __ss_pad4 : [::c_char; 32], - pub __ss_pad5 : [::c_char; 32], + pub __ss_pad5 : [::c_char; _SS_PAD2SIZE - 96], } pub struct iovec { pub iov_base: *mut ::c_void, @@ -963,15 +964,7 @@ extern { pub fn isxdigit(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fopen$UNIX2003" - )] pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "freopen$UNIX2003" - )] pub fn freopen( filename: *const c_char, mode: *const c_char, @@ -995,10 +988,6 @@ extern { pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fputs$UNIX2003" - )] pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; pub fn puts(s: *const c_char) -> c_int; pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; @@ -1008,10 +997,6 @@ extern { nobj: size_t, stream: *mut FILE, ) -> size_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fwrite$UNIX2003" - )] pub fn fwrite( ptr: *const c_void, size: size_t, @@ -1021,18 +1006,12 @@ extern { pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); - #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; pub fn feof(stream: *mut FILE) -> c_int; pub fn ferror(stream: *mut FILE) -> c_int; pub fn perror(s: *const c_char); pub fn atoi(s: *const c_char) -> c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "strtod$UNIX2003" - )] pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; pub fn strtol( s: *const c_char, @@ -1052,10 +1031,6 @@ extern { pub fn exit(status: c_int) -> !; // pub fn _exit(status: c_int) -> !; pub fn atexit(cb: extern fn()) -> c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "system$UNIX2003" - )] pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; @@ -1089,10 +1064,6 @@ extern { ) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "strerror$UNIX2003" - )] pub fn strerror(n: c_int) -> *mut c_char; pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; @@ -1119,9 +1090,7 @@ extern { } extern { - #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] pub fn getpwnam(name: *const ::c_char) -> *mut passwd; - #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] pub fn getpwuid(uid: ::uid_t) -> *mut passwd; pub fn fprintf( @@ -1147,29 +1116,12 @@ extern { -> ::c_int; pub fn getchar_unlocked() -> ::c_int; pub fn putchar_unlocked(c: ::c_int) -> ::c_int; - pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn pclose(stream: *mut ::FILE) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "fdopen$UNIX2003" - )] pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; pub fn fileno(stream: *mut ::FILE) -> ::c_int; - - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "open$UNIX2003" - )] - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "creat$UNIX2003" - )] pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - pub fn rewinddir(dirp: *mut ::DIR); pub fn openat( @@ -1192,8 +1144,6 @@ extern { group: ::gid_t, flags: ::c_int, ) -> ::c_int; - #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] - #[cfg_attr(target_os = "freebsd", link_name = "fstatat@FBSD_1.1")] pub fn fstatat( dirfd: ::c_int, pathname: *const ::c_char, @@ -1234,10 +1184,6 @@ extern { pub fn alarm(seconds: ::c_uint) -> ::c_uint; pub fn fchdir(dirfd: ::c_int) -> ::c_int; pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "lchown$UNIX2003" - )] pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle( @@ -1282,39 +1228,13 @@ extern { pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; pub fn wait(status: *mut ::c_int) -> pid_t; - /* - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pwrite$UNIX2003")] - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; - */ pub fn umask(mask: mode_t) -> mode_t; - - // #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] - // pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; - - /* - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "kill$UNIX2003")] - pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; - */ - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "killpg$UNIX2003" - )] pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; - pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; pub fn mlockall(flags: ::c_int) -> ::c_int; pub fn munlockall() -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "mmap$UNIX2003" - )] pub fn mmap( addr: *mut ::c_void, len: ::size_t, @@ -1323,10 +1243,7 @@ extern { fd: ::c_int, offset: off_t, ) -> *mut ::c_void; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "munmap$UNIX2003" - )] + pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; @@ -1337,28 +1254,10 @@ extern { pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "getrlimit$UNIX2003" - )] pub fn getrlimit(resource: ::c_int, rlim: *mut rlimit) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "setrlimit$UNIX2003" - )] pub fn setrlimit(resource: ::c_int, rlim: *const rlimit) -> ::c_int; - // #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] - // pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - - /* - #[cfg_attr(any(target_os = "macos", target_os = "ios"), - link_name = "realpath$DARWIN_EXTSN")] - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) - -> *mut ::c_char; - */ pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__gettimeofday50")] pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn pthread_exit(value: *mut ::c_void); pub fn pthread_attr_setdetachstate( @@ -1378,7 +1277,6 @@ extern { oldact: *mut sigaction, ) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] pub fn utimes( filename: *const ::c_char, times: *const ::timeval, @@ -1391,67 +1289,28 @@ extern { ) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; pub fn res_init() -> ::c_int; - /* - #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] - pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] - pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "mktime$UNIX2003")] - #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] - pub fn mktime(tm: *mut tm) -> time_t; - #[cfg_attr(target_os = "netbsd", link_name = "__time50")] - pub fn time(time: *mut time_t) -> time_t; - #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] - pub fn gmtime(time_p: *const time_t) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] - pub fn localtime(time_p: *const time_t) -> *mut tm; - */ - #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] + pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; - #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] - #[cfg_attr(target_os = "freebsd", link_name = "mknod@FBSD_1.0")] pub fn mknod( pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t, ) -> ::c_int; pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - // pub fn getservbyname(name: *const ::c_char, - // proto: *const ::c_char) -> *mut servent; - // pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; - // pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; pub fn chroot(name: *const ::c_char) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "usleep$UNIX2003" - )] pub fn usleep(secs: ::c_uint) -> ::c_int; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "putenv$UNIX2003" - )] pub fn putenv(string: *mut c_char) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__select50")] - // pub fn select(nfds: ::c_int, - // readfs: *mut fd_set, - // writefds: *mut fd_set, - // errorfds: *mut fd_set, - // timeout: *mut timeval) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] pub fn setlocale( category: ::c_int, locale: *const ::c_char, ) -> *mut ::c_char; - // pub fn localeconv() -> *mut lconv; pub fn sigprocmask( how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t, ) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] pub fn sigpending(set: *mut sigset_t) -> ::c_int; pub fn getsid(pid: pid_t) -> pid_t; @@ -1464,10 +1323,6 @@ extern { whence: ::c_int, ) -> ::c_int; pub fn ftello(stream: *mut ::FILE) -> ::off_t; - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "tcdrain$UNIX2003" - )] pub fn tcdrain(fd: ::c_int) -> ::c_int; pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; @@ -1481,12 +1336,7 @@ extern { pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); pub fn closelog(); pub fn setlogmask(maskpri: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - #[cfg_attr( - all(target_os = "macos", target_arch = "x86"), - link_name = "nice$UNIX2003" - )] pub fn nice(incr: ::c_int) -> ::c_int; pub fn grantpt(fd: ::c_int) -> ::c_int; @@ -2141,6 +1991,7 @@ extern { pub fn raise(__signo: ::c_int) -> ::c_int; // taskLibCommon.h pub fn taskIdSelf() -> ::TASK_ID; + pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; // rtpLibCommon.h pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; @@ -2167,6 +2018,12 @@ extern { iov: *const ::iovec, iovcnt: ::c_int, ) -> ::ssize_t; + + // randomNumGen.h + pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randUBytes(buf: *mut c_uchar, length: c_int) -> c_int; + pub fn randSecure() -> c_int; } pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int { From 0a7bbe90504c726fb3b26b0e2d66eaaea843fd65 Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Thu, 15 Aug 2019 13:44:38 -0700 Subject: [PATCH 130/296] Remove invalid Fuchsia functions These fuctions are not present in Fuchsia's libc, so they cannot be used in a program today. If Fuchsia ever decides to add these functions to their libc, they can be added back as necessary. --- src/fuchsia/mod.rs | 190 --------------------------------------------- 1 file changed, 190 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index f2f9844298a5a..0756866f51e29 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3460,7 +3460,6 @@ extern { pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; pub fn alarm(seconds: ::c_uint) -> ::c_uint; pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn fchdir(dirfd: ::c_int) -> ::c_int; pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; pub fn lchown(path: *const c_char, uid: uid_t, @@ -3570,10 +3569,6 @@ extern { pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; - pub fn getrlimit(resource: ::c_int, rlim: *mut rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const rlimit) -> ::c_int; - pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; @@ -3683,7 +3678,6 @@ extern { proto: *const ::c_char) -> *mut servent; pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; - pub fn chroot(name: *const ::c_char) -> ::c_int; pub fn usleep(secs: ::c_uint) -> ::c_int; pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; @@ -3770,7 +3764,6 @@ extern { pub fn closelog(); pub fn setlogmask(maskpri: ::c_int) -> ::c_int; pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - pub fn nice(incr: ::c_int) -> ::c_int; pub fn grantpt(fd: ::c_int) -> ::c_int; pub fn posix_openpt(flags: ::c_int) -> ::c_int; @@ -3778,8 +3771,6 @@ extern { pub fn unlockpt(fd: ::c_int) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, - vec: *mut ::c_uchar) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; @@ -3795,11 +3786,7 @@ extern { ptr: *const ::gid_t) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; - pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; - pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; - pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void; @@ -3815,43 +3802,6 @@ extern { locale: *const ::c_char, base: ::locale_t) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatat64(dirfd: ::c_int, pathname: *const c_char, - buf: *mut stat64, flags: ::c_int) -> ::c_int; - pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; - pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; - pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; - pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn mmap64(addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off64_t) - -> *mut ::c_void; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(fd: ::c_int, - path: *const c_char, - oflag: ::c_int, ...) -> ::c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn preadv64(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t) -> ::ssize_t; - pub fn pwrite64(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn pwritev64(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t) -> ::ssize_t; - pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir64_r(dirp: *mut ::DIR, entry: *mut ::dirent64, - result: *mut *mut ::dirent64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; @@ -3861,16 +3811,8 @@ extern { clock_id: *mut clockid_t) -> ::c_int; pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, clock_id: ::clockid_t) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, - pshared: ::c_int) -> ::c_int; pub fn accept4(fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, flg: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int; @@ -3885,12 +3827,8 @@ extern { sgid: *mut ::gid_t) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int; pub fn brk(addr: *mut ::c_void) -> ::c_int; - pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; - pub fn vfork() -> ::pid_t; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn wait4(pid: ::pid_t, status: *mut ::c_int, options: ::c_int, - rusage: *mut ::rusage) -> ::pid_t; pub fn openpty(amaster: *mut ::c_int, aslave: *mut ::c_int, name: *mut ::c_char, @@ -3903,30 +3841,12 @@ extern { -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; - pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int, - timeout: *const ::timespec) -> ::c_int; - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut ::sigevent) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn setspent(); - pub fn endspent(); - pub fn getspent() -> *mut spwd; - pub fn getspnam(__name: *const ::c_char) -> *mut spwd; pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int; @@ -3957,47 +3877,12 @@ extern { -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fopen64(filename: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn freopen64(filename: *const c_char, mode: *const c_char, - file: *mut ::FILE) -> *mut ::FILE; - pub fn tmpfile64() -> *mut ::FILE; - pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; - pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int) -> ::c_int; - pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int; pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t; - pub fn getxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn lgetxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn fgetxattr(filedes: ::c_int, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn setxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn lsetxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn fsetxattr(filedes: ::c_int, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int; @@ -4020,26 +3905,6 @@ extern { special: *const ::c_char, id: ::c_int, data: *mut ::c_char) -> ::c_int; - pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_close(mqd: ::mqd_t) -> ::c_int; - pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; - pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; - pub fn epoll_pwait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t) -> ::c_int; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; pub fn mkostemps(template: *mut ::c_char, @@ -4058,27 +3923,6 @@ extern { serv: *mut ::c_char, sevlen: ::socklen_t, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, - priority: ::c_int) -> ::c_int; - pub fn prlimit(pid: ::pid_t, resource: ::c_int, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; - pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn process_vm_readv(pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong) -> isize; - pub fn process_vm_writev(pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong) -> isize; pub fn reboot(how_to: ::c_int) -> ::c_int; pub fn setfsgid(gid: ::gid_t) -> ::c_int; pub fn setfsuid(uid: ::uid_t) -> ::c_int; @@ -4093,12 +3937,6 @@ extern { pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn mremap(addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ...) -> *mut ::c_void; - pub fn glob(pattern: *const c_char, flags: ::c_int, errfunc: ::Option ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; - pub fn pthread_getschedparam(native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param) -> ::c_int; - pub fn unshare(flags: ::c_int) -> ::c_int; pub fn umount(target: *const ::c_char) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; pub fn tee(fd_in: ::c_int, @@ -4190,7 +4014,6 @@ extern { pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; - pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; pub fn swapoff(puath: *const ::c_char) -> ::c_int; pub fn vmsplice(fd: ::c_int, iov: *const ::iovec, @@ -4202,7 +4025,6 @@ extern { flags: ::c_ulong, data: *const ::c_void) -> ::c_int; pub fn personality(persona: ::c_ulong) -> ::c_int; - pub fn prctl(option: ::c_int, ...) -> ::c_int; pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; pub fn ppoll(fds: *mut ::pollfd, nfds: nfds_t, @@ -4223,21 +4045,11 @@ extern { guardsize: *mut ::size_t) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedparam(native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; pub fn sched_setscheduler(pid: ::pid_t, policy: ::c_int, param: *const ::sched_param) -> ::c_int; - pub fn sendfile(out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t) -> ::ssize_t; pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; pub fn getgrgid_r(gid: ::gid_t, grp: *mut ::group, @@ -4282,8 +4094,6 @@ extern { group: ::gid_t, groups: *mut ::gid_t, ngroups: *mut ::c_int) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, From c1fd075fbccc98b4fbe01200261a57387a2233b3 Mon Sep 17 00:00:00 2001 From: equal-l2 Date: Tue, 30 Jul 2019 15:23:04 +0900 Subject: [PATCH 131/296] Add ioctl() constants for BPF --- src/unix/bsd/apple/mod.rs | 3 +++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 ++ src/unix/bsd/freebsdlike/mod.rs | 2 ++ src/unix/bsd/mod.rs | 22 ++++++++++++++++++++++ 4 files changed, 29 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 24ad12bee5207..495ed385952e1 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1761,6 +1761,9 @@ pub const TIOCPTYGRANT: ::c_uint = 0x20007454; pub const TIOCPTYGNAME: ::c_uint = 0x40807453; pub const TIOCPTYUNLK: ::c_uint = 0x20007452; +pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; +pub const BIOCSETFNR: ::c_ulong = 0x8010427e; + pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const B0: speed_t = 0; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index fea680d2af40c..d837ec981bbbd 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -569,6 +569,8 @@ pub const TIOCSIG: ::c_uint = 0x2004745f; pub const TIOCM_DCD: ::c_int = 0x40; pub const H4DISC: ::c_int = 0x7; +pub const BIOCSETFNR: ::c_ulong = 0x80104282; + pub const FIONWRITE: ::c_ulong = 0x40046677; pub const FIONSPACE: ::c_ulong = 0x40046676; pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index f937d772a9a44..1b57433522261 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1009,6 +1009,8 @@ pub const SLIPDISC: ::c_int = 0x4; pub const PPPDISC: ::c_int = 0x5; pub const NETGRAPHDISC: ::c_int = 0x6; +pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; + pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const FIOGETLBA: ::c_ulong = 0x40046679; pub const FIODGNAME: ::c_ulong = 0x80106678; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index ee644114a4867..d47efa57e3792 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -436,6 +436,28 @@ pub const POLLWRNORM: ::c_short = 0x004; pub const POLLRDBAND: ::c_short = 0x080; pub const POLLWRBAND: ::c_short = 0x100; +pub const BIOCGBLEN: ::c_ulong = 0x40044266; +pub const BIOCSBLEN: ::c_ulong = 0xc0044266; +pub const BIOCSETF: ::c_ulong = 0x80104267; +pub const BIOCFLUSH: ::c_uint = 0x20004268; +pub const BIOCPROMISC: ::c_uint = 0x20004269; +pub const BIOCGDLT: ::c_ulong = 0x4004426a; +pub const BIOCGETIF: ::c_ulong = 0x4020426b; +pub const BIOCSETIF: ::c_ulong = 0x8020426c; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCGSTATS: ::c_ulong = 0x4008426f; +pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; +pub const BIOCVERSION: ::c_ulong = 0x40044271; +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274; +pub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const SIOCGIFADDR: ::c_ulong = 0xc0206921; + f! { pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr { if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() { From cf1a3e10fa95a33d8f987e29b8d91e0db91c9cb0 Mon Sep 17 00:00:00 2001 From: equal-l2 Date: Fri, 16 Aug 2019 15:15:52 +0900 Subject: [PATCH 132/296] Fix bitness issue --- src/unix/bsd/apple/b32.rs | 5 +++++ src/unix/bsd/apple/b64.rs | 5 +++++ src/unix/bsd/apple/mod.rs | 1 - src/unix/bsd/freebsdlike/mod.rs | 3 +++ src/unix/bsd/mod.rs | 3 --- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/unix/bsd/apple/b32.rs b/src/unix/bsd/apple/b32.rs index c05de30327d19..0afda1c238fca 100644 --- a/src/unix/bsd/apple/b32.rs +++ b/src/unix/bsd/apple/b32.rs @@ -94,6 +94,11 @@ pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12; pub const TIOCTIMESTAMP: ::c_ulong = 0x40087459; pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40087458; +pub const BIOCSETF: ::c_ulong = 0x80084267; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; +pub const BIOCSETFNR: ::c_ulong = 0x8008427e; + extern { pub fn exchangedata(path1: *const ::c_char, path2: *const ::c_char, diff --git a/src/unix/bsd/apple/b64.rs b/src/unix/bsd/apple/b64.rs index 2749260b04ec2..69bc0043bea3b 100644 --- a/src/unix/bsd/apple/b64.rs +++ b/src/unix/bsd/apple/b64.rs @@ -99,6 +99,11 @@ pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16; pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; +pub const BIOCSETF: ::c_ulong = 0x80104267; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; +pub const BIOCSETFNR: ::c_ulong = 0x8010427e; + extern { pub fn exchangedata(path1: *const ::c_char, path2: *const ::c_char, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 495ed385952e1..e59772949905d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1762,7 +1762,6 @@ pub const TIOCPTYGNAME: ::c_uint = 0x40807453; pub const TIOCPTYUNLK: ::c_uint = 0x20007452; pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; -pub const BIOCSETFNR: ::c_ulong = 0x8010427e; pub const FIODTYPE: ::c_ulong = 0x4004667a; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 1b57433522261..aed3ac660d377 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1009,7 +1009,10 @@ pub const SLIPDISC: ::c_int = 0x4; pub const PPPDISC: ::c_int = 0x5; pub const NETGRAPHDISC: ::c_int = 0x6; +pub const BIOCSETF: ::c_ulong = 0x80104267; pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; +pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; +pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const FIODTYPE: ::c_ulong = 0x4004667a; pub const FIOGETLBA: ::c_ulong = 0x40046679; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index d47efa57e3792..193cd7478e17e 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -438,14 +438,11 @@ pub const POLLWRBAND: ::c_short = 0x100; pub const BIOCGBLEN: ::c_ulong = 0x40044266; pub const BIOCSBLEN: ::c_ulong = 0xc0044266; -pub const BIOCSETF: ::c_ulong = 0x80104267; pub const BIOCFLUSH: ::c_uint = 0x20004268; pub const BIOCPROMISC: ::c_uint = 0x20004269; pub const BIOCGDLT: ::c_ulong = 0x4004426a; pub const BIOCGETIF: ::c_ulong = 0x4020426b; pub const BIOCSETIF: ::c_ulong = 0x8020426c; -pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; -pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const BIOCGSTATS: ::c_ulong = 0x4008426f; pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; pub const BIOCVERSION: ::c_ulong = 0x40044271; From 3241ec58085a2256b88be01efa505c0509f89ce0 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 16 Aug 2019 15:22:56 +0200 Subject: [PATCH 133/296] Do not deny warnings by default. libc currently denies all warnings by default. This commit denies warnings only when libc is built in CI. --- build.rs | 6 +++++- ci/azure.yml | 6 +++--- src/lib.rs | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index efc95b6627493..d9d23ca2ac9a8 100644 --- a/build.rs +++ b/build.rs @@ -7,7 +7,6 @@ fn main() { rustc_minor_version().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); - #[allow(unused)] let libc_ci = env::var("LIBC_CI").is_ok(); if env::var("CARGO_FEATURE_USE_STD").is_ok() { @@ -28,6 +27,11 @@ fn main() { Some(_) | None => println!("cargo:rustc-cfg=freebsd11"), } + // On CI: deny all warnings + if libc_ci { + println!("cargo:rustc-cfg=libc_deny_warnings"); + } + // Rust >= 1.15 supports private module use: if rustc_minor_ver >= 15 || rustc_dep_of_std { println!("cargo:rustc-cfg=libc_priv_mod_use"); diff --git a/ci/azure.yml b/ci/azure.yml index 4526361aefbe6..456ac7f74f05c 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -136,7 +136,7 @@ jobs: - template: azure-install-rust.yml - script: sh ci/style.sh displayName: Check style - - script: sh ci/dox.sh + - script: LIBC_CI=1 sh ci/dox.sh displayName: Generate documentation - template: azure-configs/static-websites.yml@rustinfra parameters: @@ -169,7 +169,7 @@ jobs: vmImage: ubuntu-16.04 steps: - template: azure-install-rust.yml - - script: sh ./ci/build.sh + - script: LIBC_CI=1 sh ./ci/build.sh displayName: Execute build.sh strategy: matrix: @@ -198,7 +198,7 @@ jobs: vmImage: macos-10.13 steps: - template: azure-install-rust.yml - - script: sh ./ci/build.sh + - script: LIBC_CI=1 sh ./ci/build.sh displayName: Execute build.sh strategy: matrix: diff --git a/src/lib.rs b/src/lib.rs index 6c2e6c8b5ba36..3c757f75b3231 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,8 +14,10 @@ //! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation #![crate_name = "libc"] #![crate_type = "rlib"] -#![cfg_attr(not(feature = "rustc-dep-of-std"), deny(warnings))] +#![cfg_attr(libc_deny_warnings, deny(warnings))] #![allow(bad_style, overflowing_literals, improper_ctypes, unknown_lints)] +// FIXME: this is due to a rustc bug +#![allow(redundant_semicolon)] // Attributes needed when building as part of the standard library #![cfg_attr( feature = "rustc-dep-of-std", From de98bf97485014f53309ab6f4905d62d0a424150 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Fri, 16 Aug 2019 14:12:37 -0700 Subject: [PATCH 134/296] remove spurious extra line --- src/vxworks/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 123c18baf6b4c..dd6e6f1cb5733 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1243,7 +1243,6 @@ extern { fd: ::c_int, offset: off_t, ) -> *mut ::c_void; - pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; @@ -1289,7 +1288,6 @@ extern { ) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; pub fn res_init() -> ::c_int; - pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; pub fn mknod( From eb287a1ad8ca3cdff322659f0934c53b52a158a8 Mon Sep 17 00:00:00 2001 From: leo60228 Date: Fri, 16 Aug 2019 20:43:33 -0400 Subject: [PATCH 135/296] Update socket types to freebsd --- src/unix/newlib/mod.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 7e7310965d913..8f1a58480c09f 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -26,18 +26,13 @@ pub type useconds_t = u32; s! { pub struct sockaddr { + pub sa_len: u8, pub sa_family: sa_family_t, pub sa_data: [::c_char; 14], } - pub struct sockaddr_in { - pub sin_family: sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [u8; 8], - } - - pub struct sockaddr_in6 { // Unverified + pub struct sockaddr_in6 { + pub sin6_len: u8, pub sin6_family: sa_family_t, pub sin6_port: ::in_port_t, pub sin6_flowinfo: u32, @@ -45,9 +40,12 @@ s! { pub sin6_scope_id: u32, } - pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [u8; 26], + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], } pub struct addrinfo { From 9df2deb33bde1330c9a2e5120ca2e86ad2b5b1fd Mon Sep 17 00:00:00 2001 From: Wang Xuerui Date: Wed, 31 Jul 2019 13:18:31 +0800 Subject: [PATCH 136/296] Reorganize constant declarations to make up space for MIPS64-specific ones --- src/unix/linux_like/linux/musl/b64/aarch64.rs | 160 ++++++++++++++ src/unix/linux_like/linux/musl/b64/mod.rs | 200 ------------------ .../linux_like/linux/musl/b64/powerpc64.rs | 160 ++++++++++++++ src/unix/linux_like/linux/musl/b64/x86_64.rs | 160 ++++++++++++++ 4 files changed, 480 insertions(+), 200 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index 14405a5ad0097..a6d68c8a821b7 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -49,6 +49,36 @@ s! { __unused: [::c_uint; 2], } + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t, @@ -62,15 +92,36 @@ s! { } } +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x10000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x20000; pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; pub const MINSIGSTKSZ: ::size_t = 6144; pub const SIGSTKSZ: ::size_t = 12288; pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; pub const SYS_io_submit: ::c_long = 2; @@ -341,6 +392,87 @@ pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + pub const RLIMIT_NLIMITS: ::c_int = 15; pub const TIOCINQ: ::c_int = ::FIONREAD; pub const MCL_CURRENT: ::c_int = 0x0001; @@ -417,6 +549,31 @@ pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 16; pub const SO_PEERCRED: ::c_int = 17; pub const SO_RCVLOWAT: ::c_int = 18; @@ -424,6 +581,7 @@ pub const SO_SNDLOWAT: ::c_int = 19; pub const SO_RCVTIMEO: ::c_int = 20; pub const SO_SNDTIMEO: ::c_int = 21; pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -476,6 +634,8 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const EHWPOISON: ::c_int = 133; + extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 12d5c849f6dc4..d79dda4dbe04c 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -2,21 +2,6 @@ pub type c_long = i64; pub type c_ulong = u64; s! { - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct statvfs64 { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -73,21 +58,6 @@ s! { __pad2: ::c_ulong, } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, @@ -132,186 +102,16 @@ s! { pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const O_ASYNC: ::c_int = 0x2000; - pub const RLIMIT_RSS: ::c_int = 5; pub const RLIMIT_NOFILE: ::c_int = 7; pub const RLIMIT_AS: ::c_int = 9; pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - pub const SOCK_NONBLOCK: ::c_int = 2048; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 1; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 04ceb79a45d91..41c88c5b00599 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -47,6 +47,36 @@ s! { __reserved: [::c_long; 3], } + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t, @@ -62,10 +92,31 @@ s! { pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x20000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; @@ -431,11 +482,117 @@ pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + pub const FIOCLEX: ::c_int = 0x20006601; pub const FIONCLEX: ::c_int = 0x20006602; pub const FIONBIO: ::c_int = 0x8004667e; pub const EDEADLK: ::c_int = 58; pub const EDEADLOCK: ::c_int = EDEADLK; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 20; pub const SO_PEERCRED: ::c_int = 21; pub const SO_RCVLOWAT: ::c_int = 16; @@ -443,6 +600,7 @@ pub const SO_SNDLOWAT: ::c_int = 17; pub const SO_RCVTIMEO: ::c_int = 18; pub const SO_SNDTIMEO: ::c_int = 19; pub const EXTPROC: ::tcflag_t = 0x10000000; +pub const VEOF: usize = 4; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; @@ -567,6 +725,8 @@ pub const B3000000: ::speed_t = 0o00034; pub const B3500000: ::speed_t = 0o00035; pub const B4000000: ::speed_t = 0o00036; +pub const EHWPOISON: ::c_int = 133; + extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index b4023f726c293..0c17cdb8e8c21 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -47,6 +47,36 @@ s! { __reserved: [::c_long; 3], } + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + pub struct mcontext_t { __private: [u64; 32], } @@ -454,6 +484,57 @@ pub const SYS_pwritev2: ::c_long = 328; // FIXME syscalls 329-331 have been added in musl 1.16 // See discussion https://github.com/rust-lang/libc/pull/699 +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; + // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; pub const R14: ::c_int = 1; @@ -483,12 +564,63 @@ pub const ES: ::c_int = 24; pub const FS: ::c_int = 25; pub const GS: ::c_int = 26; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; +pub const O_ASYNC: ::c_int = 0x2000; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_LARGEFILE: ::c_int = 0; pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; @@ -572,6 +704,31 @@ pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 16; pub const SO_PEERCRED: ::c_int = 17; pub const SO_RCVLOWAT: ::c_int = 18; @@ -579,6 +736,7 @@ pub const SO_SNDLOWAT: ::c_int = 19; pub const SO_RCVTIMEO: ::c_int = 20; pub const SO_SNDTIMEO: ::c_int = 21; pub const EXTPROC: ::tcflag_t = 0x00010000; +pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -628,6 +786,8 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; +pub const EHWPOISON: ::c_int = 133; + extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } From cd51d11fcbe4352578ae356cc3f21e8c6bf1cf26 Mon Sep 17 00:00:00 2001 From: Wang Xuerui Date: Sun, 28 Jul 2019 13:40:52 +0800 Subject: [PATCH 137/296] Add mips64 musl support --- src/unix/linux_like/linux/musl/b64/mips64.rs | 753 +++++++++++++++++++ src/unix/linux_like/linux/musl/b64/mod.rs | 3 + src/unix/linux_like/linux/musl/mod.rs | 1 + 3 files changed, 757 insertions(+) create mode 100644 src/unix/linux_like/linux/musl/b64/mips64.rs diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs new file mode 100644 index 0000000000000..43244214601da --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -0,0 +1,753 @@ +pub type c_char = i8; +pub type wchar_t = i32; +pub type __u64 = ::c_ulong; +pub type nlink_t = u64; +pub type blksize_t = i64; + +s! { + pub struct stat { + pub st_dev: ::dev_t, + __pad1: [::c_int; 3], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: [::c_uint; 2], + pub st_size: ::off_t, + __pad3: ::c_int, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __pad4: ::c_uint, + pub st_blocks: ::blkcnt_t, + __pad5: [::c_int; 14], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + __pad1: [::c_int; 3], + pub st_ino: ::ino_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: [::c_uint; 2], + pub st_size: ::off_t, + __pad3: ::c_int, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + pub st_blksize: ::blksize_t, + __pad4: ::c_uint, + pub st_blocks: ::blkcnt_t, + __pad5: [::c_int; 14], + } + + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 5], + } + + pub struct ipc_perm { + pub __ipc_perm_key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub __seq: ::c_int, + __pad1: ::c_int, + __unused1: ::c_ulong, + __unused2: ::c_ulong + } +} + +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; + +pub const SYS_read: ::c_long = 5000 + 0; +pub const SYS_write: ::c_long = 5000 + 1; +pub const SYS_open: ::c_long = 5000 + 2; +pub const SYS_close: ::c_long = 5000 + 3; +pub const SYS_stat: ::c_long = 5000 + 4; +pub const SYS_fstat: ::c_long = 5000 + 5; +pub const SYS_lstat: ::c_long = 5000 + 6; +pub const SYS_poll: ::c_long = 5000 + 7; +pub const SYS_lseek: ::c_long = 5000 + 8; +pub const SYS_mmap: ::c_long = 5000 + 9; +pub const SYS_mprotect: ::c_long = 5000 + 10; +pub const SYS_munmap: ::c_long = 5000 + 11; +pub const SYS_brk: ::c_long = 5000 + 12; +pub const SYS_rt_sigaction: ::c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; +pub const SYS_ioctl: ::c_long = 5000 + 15; +pub const SYS_pread64: ::c_long = 5000 + 16; +pub const SYS_pwrite64: ::c_long = 5000 + 17; +pub const SYS_readv: ::c_long = 5000 + 18; +pub const SYS_writev: ::c_long = 5000 + 19; +pub const SYS_access: ::c_long = 5000 + 20; +pub const SYS_pipe: ::c_long = 5000 + 21; +pub const SYS__newselect: ::c_long = 5000 + 22; +pub const SYS_sched_yield: ::c_long = 5000 + 23; +pub const SYS_mremap: ::c_long = 5000 + 24; +pub const SYS_msync: ::c_long = 5000 + 25; +pub const SYS_mincore: ::c_long = 5000 + 26; +pub const SYS_madvise: ::c_long = 5000 + 27; +pub const SYS_shmget: ::c_long = 5000 + 28; +pub const SYS_shmat: ::c_long = 5000 + 29; +pub const SYS_shmctl: ::c_long = 5000 + 30; +pub const SYS_dup: ::c_long = 5000 + 31; +pub const SYS_dup2: ::c_long = 5000 + 32; +pub const SYS_pause: ::c_long = 5000 + 33; +pub const SYS_nanosleep: ::c_long = 5000 + 34; +pub const SYS_getitimer: ::c_long = 5000 + 35; +pub const SYS_setitimer: ::c_long = 5000 + 36; +pub const SYS_alarm: ::c_long = 5000 + 37; +pub const SYS_getpid: ::c_long = 5000 + 38; +pub const SYS_sendfile: ::c_long = 5000 + 39; +pub const SYS_socket: ::c_long = 5000 + 40; +pub const SYS_connect: ::c_long = 5000 + 41; +pub const SYS_accept: ::c_long = 5000 + 42; +pub const SYS_sendto: ::c_long = 5000 + 43; +pub const SYS_recvfrom: ::c_long = 5000 + 44; +pub const SYS_sendmsg: ::c_long = 5000 + 45; +pub const SYS_recvmsg: ::c_long = 5000 + 46; +pub const SYS_shutdown: ::c_long = 5000 + 47; +pub const SYS_bind: ::c_long = 5000 + 48; +pub const SYS_listen: ::c_long = 5000 + 49; +pub const SYS_getsockname: ::c_long = 5000 + 50; +pub const SYS_getpeername: ::c_long = 5000 + 51; +pub const SYS_socketpair: ::c_long = 5000 + 52; +pub const SYS_setsockopt: ::c_long = 5000 + 53; +pub const SYS_getsockopt: ::c_long = 5000 + 54; +pub const SYS_clone: ::c_long = 5000 + 55; +pub const SYS_fork: ::c_long = 5000 + 56; +pub const SYS_execve: ::c_long = 5000 + 57; +pub const SYS_exit: ::c_long = 5000 + 58; +pub const SYS_wait4: ::c_long = 5000 + 59; +pub const SYS_kill: ::c_long = 5000 + 60; +pub const SYS_uname: ::c_long = 5000 + 61; +pub const SYS_semget: ::c_long = 5000 + 62; +pub const SYS_semop: ::c_long = 5000 + 63; +pub const SYS_semctl: ::c_long = 5000 + 64; +pub const SYS_shmdt: ::c_long = 5000 + 65; +pub const SYS_msgget: ::c_long = 5000 + 66; +pub const SYS_msgsnd: ::c_long = 5000 + 67; +pub const SYS_msgrcv: ::c_long = 5000 + 68; +pub const SYS_msgctl: ::c_long = 5000 + 69; +pub const SYS_fcntl: ::c_long = 5000 + 70; +pub const SYS_flock: ::c_long = 5000 + 71; +pub const SYS_fsync: ::c_long = 5000 + 72; +pub const SYS_fdatasync: ::c_long = 5000 + 73; +pub const SYS_truncate: ::c_long = 5000 + 74; +pub const SYS_ftruncate: ::c_long = 5000 + 75; +pub const SYS_getdents: ::c_long = 5000 + 76; +pub const SYS_getcwd: ::c_long = 5000 + 77; +pub const SYS_chdir: ::c_long = 5000 + 78; +pub const SYS_fchdir: ::c_long = 5000 + 79; +pub const SYS_rename: ::c_long = 5000 + 80; +pub const SYS_mkdir: ::c_long = 5000 + 81; +pub const SYS_rmdir: ::c_long = 5000 + 82; +pub const SYS_creat: ::c_long = 5000 + 83; +pub const SYS_link: ::c_long = 5000 + 84; +pub const SYS_unlink: ::c_long = 5000 + 85; +pub const SYS_symlink: ::c_long = 5000 + 86; +pub const SYS_readlink: ::c_long = 5000 + 87; +pub const SYS_chmod: ::c_long = 5000 + 88; +pub const SYS_fchmod: ::c_long = 5000 + 89; +pub const SYS_chown: ::c_long = 5000 + 90; +pub const SYS_fchown: ::c_long = 5000 + 91; +pub const SYS_lchown: ::c_long = 5000 + 92; +pub const SYS_umask: ::c_long = 5000 + 93; +pub const SYS_gettimeofday: ::c_long = 5000 + 94; +pub const SYS_getrlimit: ::c_long = 5000 + 95; +pub const SYS_getrusage: ::c_long = 5000 + 96; +pub const SYS_sysinfo: ::c_long = 5000 + 97; +pub const SYS_times: ::c_long = 5000 + 98; +pub const SYS_ptrace: ::c_long = 5000 + 99; +pub const SYS_getuid: ::c_long = 5000 + 100; +pub const SYS_syslog: ::c_long = 5000 + 101; +pub const SYS_getgid: ::c_long = 5000 + 102; +pub const SYS_setuid: ::c_long = 5000 + 103; +pub const SYS_setgid: ::c_long = 5000 + 104; +pub const SYS_geteuid: ::c_long = 5000 + 105; +pub const SYS_getegid: ::c_long = 5000 + 106; +pub const SYS_setpgid: ::c_long = 5000 + 107; +pub const SYS_getppid: ::c_long = 5000 + 108; +pub const SYS_getpgrp: ::c_long = 5000 + 109; +pub const SYS_setsid: ::c_long = 5000 + 110; +pub const SYS_setreuid: ::c_long = 5000 + 111; +pub const SYS_setregid: ::c_long = 5000 + 112; +pub const SYS_getgroups: ::c_long = 5000 + 113; +pub const SYS_setgroups: ::c_long = 5000 + 114; +pub const SYS_setresuid: ::c_long = 5000 + 115; +pub const SYS_getresuid: ::c_long = 5000 + 116; +pub const SYS_setresgid: ::c_long = 5000 + 117; +pub const SYS_getresgid: ::c_long = 5000 + 118; +pub const SYS_getpgid: ::c_long = 5000 + 119; +pub const SYS_setfsuid: ::c_long = 5000 + 120; +pub const SYS_setfsgid: ::c_long = 5000 + 121; +pub const SYS_getsid: ::c_long = 5000 + 122; +pub const SYS_capget: ::c_long = 5000 + 123; +pub const SYS_capset: ::c_long = 5000 + 124; +pub const SYS_rt_sigpending: ::c_long = 5000 + 125; +pub const SYS_rt_sigtimedwait: ::c_long = 5000 + 126; +pub const SYS_rt_sigqueueinfo: ::c_long = 5000 + 127; +pub const SYS_rt_sigsuspend: ::c_long = 5000 + 128; +pub const SYS_sigaltstack: ::c_long = 5000 + 129; +pub const SYS_utime: ::c_long = 5000 + 130; +pub const SYS_mknod: ::c_long = 5000 + 131; +pub const SYS_personality: ::c_long = 5000 + 132; +pub const SYS_ustat: ::c_long = 5000 + 133; +pub const SYS_statfs: ::c_long = 5000 + 134; +pub const SYS_fstatfs: ::c_long = 5000 + 135; +pub const SYS_sysfs: ::c_long = 5000 + 136; +pub const SYS_getpriority: ::c_long = 5000 + 137; +pub const SYS_setpriority: ::c_long = 5000 + 138; +pub const SYS_sched_setparam: ::c_long = 5000 + 139; +pub const SYS_sched_getparam: ::c_long = 5000 + 140; +pub const SYS_sched_setscheduler: ::c_long = 5000 + 141; +pub const SYS_sched_getscheduler: ::c_long = 5000 + 142; +pub const SYS_sched_get_priority_max: ::c_long = 5000 + 143; +pub const SYS_sched_get_priority_min: ::c_long = 5000 + 144; +pub const SYS_sched_rr_get_interval: ::c_long = 5000 + 145; +pub const SYS_mlock: ::c_long = 5000 + 146; +pub const SYS_munlock: ::c_long = 5000 + 147; +pub const SYS_mlockall: ::c_long = 5000 + 148; +pub const SYS_munlockall: ::c_long = 5000 + 149; +pub const SYS_vhangup: ::c_long = 5000 + 150; +pub const SYS_pivot_root: ::c_long = 5000 + 151; +pub const SYS__sysctl: ::c_long = 5000 + 152; +pub const SYS_prctl: ::c_long = 5000 + 153; +pub const SYS_adjtimex: ::c_long = 5000 + 154; +pub const SYS_setrlimit: ::c_long = 5000 + 155; +pub const SYS_chroot: ::c_long = 5000 + 156; +pub const SYS_sync: ::c_long = 5000 + 157; +pub const SYS_acct: ::c_long = 5000 + 158; +pub const SYS_settimeofday: ::c_long = 5000 + 159; +pub const SYS_mount: ::c_long = 5000 + 160; +pub const SYS_umount2: ::c_long = 5000 + 161; +pub const SYS_swapon: ::c_long = 5000 + 162; +pub const SYS_swapoff: ::c_long = 5000 + 163; +pub const SYS_reboot: ::c_long = 5000 + 164; +pub const SYS_sethostname: ::c_long = 5000 + 165; +pub const SYS_setdomainname: ::c_long = 5000 + 166; +pub const SYS_create_module: ::c_long = 5000 + 167; +pub const SYS_init_module: ::c_long = 5000 + 168; +pub const SYS_delete_module: ::c_long = 5000 + 169; +pub const SYS_get_kernel_syms: ::c_long = 5000 + 170; +pub const SYS_query_module: ::c_long = 5000 + 171; +pub const SYS_quotactl: ::c_long = 5000 + 172; +pub const SYS_nfsservctl: ::c_long = 5000 + 173; +pub const SYS_getpmsg: ::c_long = 5000 + 174; +pub const SYS_putpmsg: ::c_long = 5000 + 175; +pub const SYS_afs_syscall: ::c_long = 5000 + 176; +pub const SYS_gettid: ::c_long = 5000 + 178; +pub const SYS_readahead: ::c_long = 5000 + 179; +pub const SYS_setxattr: ::c_long = 5000 + 180; +pub const SYS_lsetxattr: ::c_long = 5000 + 181; +pub const SYS_fsetxattr: ::c_long = 5000 + 182; +pub const SYS_getxattr: ::c_long = 5000 + 183; +pub const SYS_lgetxattr: ::c_long = 5000 + 184; +pub const SYS_fgetxattr: ::c_long = 5000 + 185; +pub const SYS_listxattr: ::c_long = 5000 + 186; +pub const SYS_llistxattr: ::c_long = 5000 + 187; +pub const SYS_flistxattr: ::c_long = 5000 + 188; +pub const SYS_removexattr: ::c_long = 5000 + 189; +pub const SYS_lremovexattr: ::c_long = 5000 + 190; +pub const SYS_fremovexattr: ::c_long = 5000 + 191; +pub const SYS_tkill: ::c_long = 5000 + 192; +pub const SYS_futex: ::c_long = 5000 + 194; +pub const SYS_sched_setaffinity: ::c_long = 5000 + 195; +pub const SYS_sched_getaffinity: ::c_long = 5000 + 196; +pub const SYS_cacheflush: ::c_long = 5000 + 197; +pub const SYS_cachectl: ::c_long = 5000 + 198; +pub const SYS_sysmips: ::c_long = 5000 + 199; +pub const SYS_io_setup: ::c_long = 5000 + 200; +pub const SYS_io_destroy: ::c_long = 5000 + 201; +pub const SYS_io_getevents: ::c_long = 5000 + 202; +pub const SYS_io_submit: ::c_long = 5000 + 203; +pub const SYS_io_cancel: ::c_long = 5000 + 204; +pub const SYS_exit_group: ::c_long = 5000 + 205; +pub const SYS_lookup_dcookie: ::c_long = 5000 + 206; +pub const SYS_epoll_create: ::c_long = 5000 + 207; +pub const SYS_epoll_ctl: ::c_long = 5000 + 208; +pub const SYS_epoll_wait: ::c_long = 5000 + 209; +pub const SYS_remap_file_pages: ::c_long = 5000 + 210; +pub const SYS_rt_sigreturn: ::c_long = 5000 + 211; +pub const SYS_set_tid_address: ::c_long = 5000 + 212; +pub const SYS_restart_syscall: ::c_long = 5000 + 213; +pub const SYS_semtimedop: ::c_long = 5000 + 214; +pub const SYS_fadvise64: ::c_long = 5000 + 215; +pub const SYS_timer_create: ::c_long = 5000 + 216; +pub const SYS_timer_settime: ::c_long = 5000 + 217; +pub const SYS_timer_gettime: ::c_long = 5000 + 218; +pub const SYS_timer_getoverrun: ::c_long = 5000 + 219; +pub const SYS_timer_delete: ::c_long = 5000 + 220; +pub const SYS_clock_settime: ::c_long = 5000 + 221; +pub const SYS_clock_gettime: ::c_long = 5000 + 222; +pub const SYS_clock_getres: ::c_long = 5000 + 223; +pub const SYS_clock_nanosleep: ::c_long = 5000 + 224; +pub const SYS_tgkill: ::c_long = 5000 + 225; +pub const SYS_utimes: ::c_long = 5000 + 226; +pub const SYS_mbind: ::c_long = 5000 + 227; +pub const SYS_get_mempolicy: ::c_long = 5000 + 228; +pub const SYS_set_mempolicy: ::c_long = 5000 + 229; +pub const SYS_mq_open: ::c_long = 5000 + 230; +pub const SYS_mq_unlink: ::c_long = 5000 + 231; +pub const SYS_mq_timedsend: ::c_long = 5000 + 232; +pub const SYS_mq_timedreceive: ::c_long = 5000 + 233; +pub const SYS_mq_notify: ::c_long = 5000 + 234; +pub const SYS_mq_getsetattr: ::c_long = 5000 + 235; +pub const SYS_vserver: ::c_long = 5000 + 236; +pub const SYS_waitid: ::c_long = 5000 + 237; +/* pub const SYS_sys_setaltroot: ::c_long = 5000 + 238; */ +pub const SYS_add_key: ::c_long = 5000 + 239; +pub const SYS_request_key: ::c_long = 5000 + 240; +pub const SYS_keyctl: ::c_long = 5000 + 241; +pub const SYS_set_thread_area: ::c_long = 5000 + 242; +pub const SYS_inotify_init: ::c_long = 5000 + 243; +pub const SYS_inotify_add_watch: ::c_long = 5000 + 244; +pub const SYS_inotify_rm_watch: ::c_long = 5000 + 245; +pub const SYS_migrate_pages: ::c_long = 5000 + 246; +pub const SYS_openat: ::c_long = 5000 + 247; +pub const SYS_mkdirat: ::c_long = 5000 + 248; +pub const SYS_mknodat: ::c_long = 5000 + 249; +pub const SYS_fchownat: ::c_long = 5000 + 250; +pub const SYS_futimesat: ::c_long = 5000 + 251; +pub const SYS_newfstatat: ::c_long = 5000 + 252; +pub const SYS_unlinkat: ::c_long = 5000 + 253; +pub const SYS_renameat: ::c_long = 5000 + 254; +pub const SYS_linkat: ::c_long = 5000 + 255; +pub const SYS_symlinkat: ::c_long = 5000 + 256; +pub const SYS_readlinkat: ::c_long = 5000 + 257; +pub const SYS_fchmodat: ::c_long = 5000 + 258; +pub const SYS_faccessat: ::c_long = 5000 + 259; +pub const SYS_pselect6: ::c_long = 5000 + 260; +pub const SYS_ppoll: ::c_long = 5000 + 261; +pub const SYS_unshare: ::c_long = 5000 + 262; +pub const SYS_splice: ::c_long = 5000 + 263; +pub const SYS_sync_file_range: ::c_long = 5000 + 264; +pub const SYS_tee: ::c_long = 5000 + 265; +pub const SYS_vmsplice: ::c_long = 5000 + 266; +pub const SYS_move_pages: ::c_long = 5000 + 267; +pub const SYS_set_robust_list: ::c_long = 5000 + 268; +pub const SYS_get_robust_list: ::c_long = 5000 + 269; +pub const SYS_kexec_load: ::c_long = 5000 + 270; +pub const SYS_getcpu: ::c_long = 5000 + 271; +pub const SYS_epoll_pwait: ::c_long = 5000 + 272; +pub const SYS_ioprio_set: ::c_long = 5000 + 273; +pub const SYS_ioprio_get: ::c_long = 5000 + 274; +pub const SYS_utimensat: ::c_long = 5000 + 275; +pub const SYS_signalfd: ::c_long = 5000 + 276; +pub const SYS_timerfd: ::c_long = 5000 + 277; +pub const SYS_eventfd: ::c_long = 5000 + 278; +pub const SYS_fallocate: ::c_long = 5000 + 279; +pub const SYS_timerfd_create: ::c_long = 5000 + 280; +pub const SYS_timerfd_gettime: ::c_long = 5000 + 281; +pub const SYS_timerfd_settime: ::c_long = 5000 + 282; +pub const SYS_signalfd4: ::c_long = 5000 + 283; +pub const SYS_eventfd2: ::c_long = 5000 + 284; +pub const SYS_epoll_create1: ::c_long = 5000 + 285; +pub const SYS_dup3: ::c_long = 5000 + 286; +pub const SYS_pipe2: ::c_long = 5000 + 287; +pub const SYS_inotify_init1: ::c_long = 5000 + 288; +pub const SYS_preadv: ::c_long = 5000 + 289; +pub const SYS_pwritev: ::c_long = 5000 + 290; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 5000 + 291; +pub const SYS_perf_event_open: ::c_long = 5000 + 292; +pub const SYS_accept4: ::c_long = 5000 + 293; +pub const SYS_recvmmsg: ::c_long = 5000 + 294; +pub const SYS_fanotify_init: ::c_long = 5000 + 295; +pub const SYS_fanotify_mark: ::c_long = 5000 + 296; +pub const SYS_prlimit64: ::c_long = 5000 + 297; +pub const SYS_name_to_handle_at: ::c_long = 5000 + 298; +pub const SYS_open_by_handle_at: ::c_long = 5000 + 299; +pub const SYS_clock_adjtime: ::c_long = 5000 + 300; +pub const SYS_syncfs: ::c_long = 5000 + 301; +pub const SYS_sendmmsg: ::c_long = 5000 + 302; +pub const SYS_setns: ::c_long = 5000 + 303; +pub const SYS_process_vm_readv: ::c_long = 5000 + 304; +pub const SYS_process_vm_writev: ::c_long = 5000 + 305; +pub const SYS_kcmp: ::c_long = 5000 + 306; +pub const SYS_finit_module: ::c_long = 5000 + 307; +pub const SYS_getdents64: ::c_long = 5000 + 308; +pub const SYS_sched_setattr: ::c_long = 5000 + 309; +pub const SYS_sched_getattr: ::c_long = 5000 + 310; +pub const SYS_renameat2: ::c_long = 5000 + 311; +pub const SYS_seccomp: ::c_long = 5000 + 312; +pub const SYS_getrandom: ::c_long = 5000 + 313; +pub const SYS_memfd_create: ::c_long = 5000 + 314; +pub const SYS_bpf: ::c_long = 5000 + 315; +pub const SYS_execveat: ::c_long = 5000 + 316; +pub const SYS_userfaultfd: ::c_long = 5000 + 317; +pub const SYS_membarrier: ::c_long = 5000 + 318; +pub const SYS_mlock2: ::c_long = 5000 + 319; +pub const SYS_copy_file_range: ::c_long = 5000 + 320; +pub const SYS_preadv2: ::c_long = 5000 + 321; +pub const SYS_pwritev2: ::c_long = 5000 + 322; +pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; +pub const SYS_pkey_alloc: ::c_long = 5000 + 324; +pub const SYS_pkey_free: ::c_long = 5000 + 325; + +pub const O_DIRECT: ::c_int = 0x8000; +pub const O_DIRECTORY: ::c_int = 0x10000; +pub const O_NOFOLLOW: ::c_int = 0x20000; + +pub const O_APPEND: ::c_int = 8; +pub const O_CREAT: ::c_int = 256; +pub const O_EXCL: ::c_int = 1024; +pub const O_NOCTTY: ::c_int = 2048; +pub const O_NONBLOCK: ::c_int = 128; +pub const O_SYNC: ::c_int = 0x4010; +pub const O_RSYNC: ::c_int = 0x4010; +pub const O_DSYNC: ::c_int = 0x10; +pub const O_ASYNC: ::c_int = 0x1000; + +pub const EDEADLK: ::c_int = 45; +pub const ENAMETOOLONG: ::c_int = 78; +pub const ENOLCK: ::c_int = 46; +pub const ENOSYS: ::c_int = 89; +pub const ENOTEMPTY: ::c_int = 93; +pub const ELOOP: ::c_int = 90; +pub const ENOMSG: ::c_int = 35; +pub const EIDRM: ::c_int = 36; +pub const ECHRNG: ::c_int = 37; +pub const EL2NSYNC: ::c_int = 38; +pub const EL3HLT: ::c_int = 39; +pub const EL3RST: ::c_int = 40; +pub const ELNRNG: ::c_int = 41; +pub const EUNATCH: ::c_int = 42; +pub const ENOCSI: ::c_int = 43; +pub const EL2HLT: ::c_int = 44; +pub const EBADE: ::c_int = 50; +pub const EBADR: ::c_int = 51; +pub const EXFULL: ::c_int = 52; +pub const ENOANO: ::c_int = 53; +pub const EBADRQC: ::c_int = 54; +pub const EBADSLT: ::c_int = 55; +pub const EDEADLOCK: ::c_int = 56; +pub const EMULTIHOP: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 79; +pub const ENOTUNIQ: ::c_int = 80; +pub const EBADFD: ::c_int = 81; +pub const EBADMSG: ::c_int = 77; +pub const EREMCHG: ::c_int = 82; +pub const ELIBACC: ::c_int = 83; +pub const ELIBBAD: ::c_int = 84; +pub const ELIBSCN: ::c_int = 85; +pub const ELIBMAX: ::c_int = 86; +pub const ELIBEXEC: ::c_int = 87; +pub const EILSEQ: ::c_int = 88; +pub const ERESTART: ::c_int = 91; +pub const ESTRPIPE: ::c_int = 92; +pub const EUSERS: ::c_int = 94; +pub const ENOTSOCK: ::c_int = 95; +pub const EDESTADDRREQ: ::c_int = 96; +pub const EMSGSIZE: ::c_int = 97; +pub const EPROTOTYPE: ::c_int = 98; +pub const ENOPROTOOPT: ::c_int = 99; +pub const EPROTONOSUPPORT: ::c_int = 120; +pub const ESOCKTNOSUPPORT: ::c_int = 121; +pub const EOPNOTSUPP: ::c_int = 122; +pub const EPFNOSUPPORT: ::c_int = 123; +pub const EAFNOSUPPORT: ::c_int = 124; +pub const EADDRINUSE: ::c_int = 125; +pub const EADDRNOTAVAIL: ::c_int = 126; +pub const ENETDOWN: ::c_int = 127; +pub const ENETUNREACH: ::c_int = 128; +pub const ENETRESET: ::c_int = 129; +pub const ECONNABORTED: ::c_int = 130; +pub const ECONNRESET: ::c_int = 131; +pub const ENOBUFS: ::c_int = 132; +pub const EISCONN: ::c_int = 133; +pub const ENOTCONN: ::c_int = 134; +pub const ESHUTDOWN: ::c_int = 143; +pub const ETOOMANYREFS: ::c_int = 144; +pub const ETIMEDOUT: ::c_int = 145; +pub const ECONNREFUSED: ::c_int = 146; +pub const EHOSTDOWN: ::c_int = 147; +pub const EHOSTUNREACH: ::c_int = 148; +pub const EALREADY: ::c_int = 149; +pub const EINPROGRESS: ::c_int = 150; +pub const ESTALE: ::c_int = 151; +pub const EUCLEAN: ::c_int = 135; +pub const ENOTNAM: ::c_int = 137; +pub const ENAVAIL: ::c_int = 138; +pub const EISNAM: ::c_int = 139; +pub const EREMOTEIO: ::c_int = 140; +pub const EDQUOT: ::c_int = 1133; +pub const ENOMEDIUM: ::c_int = 159; +pub const EMEDIUMTYPE: ::c_int = 160; +pub const ECANCELED: ::c_int = 158; +pub const ENOKEY: ::c_int = 161; +pub const EKEYEXPIRED: ::c_int = 162; +pub const EKEYREVOKED: ::c_int = 163; +pub const EKEYREJECTED: ::c_int = 164; +pub const EOWNERDEAD: ::c_int = 165; +pub const ENOTRECOVERABLE: ::c_int = 166; +pub const ERFKILL: ::c_int = 167; + +pub const MAP_NORESERVE: ::c_int = 0x400; +pub const MAP_ANON: ::c_int = 0x800; +pub const MAP_GROWSDOWN: ::c_int = 0x1000; +pub const MAP_DENYWRITE: ::c_int = 0x2000; +pub const MAP_EXECUTABLE: ::c_int = 0x4000; +pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_POPULATE: ::c_int = 0x10000; +pub const MAP_NONBLOCK: ::c_int = 0x20000; +pub const MAP_STACK: ::c_int = 0x40000; +pub const MAP_HUGETLB: ::c_int = 0x080000; + +pub const SOCK_STREAM: ::c_int = 2; +pub const SOCK_DGRAM: ::c_int = 1; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_OOBINLINE: ::c_int = 0x0100; +pub const SO_REUSEPORT: ::c_int = 0x0200; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDLOWAT: ::c_int = 0x1003; +pub const SO_RCVLOWAT: ::c_int = 0x1004; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ACCEPTCONN: ::c_int = 0x1009; +pub const SO_PROTOCOL: ::c_int = 0x1028; +pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_PASSCRED: ::c_int = 17; +pub const SO_PEERCRED: ::c_int = 18; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_PEERSEC: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 31; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; + +pub const FIOCLEX: ::c_int = 0x6601; +pub const FIONCLEX: ::c_int = 0x6602; +pub const FIONBIO: ::c_int = 0x667e; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000008; +pub const SA_NOCLDWAIT: ::c_int = 0x00010000; + +pub const SIGCHLD: ::c_int = 18; +pub const SIGBUS: ::c_int = 10; +pub const SIGTTIN: ::c_int = 26; +pub const SIGTTOU: ::c_int = 27; +pub const SIGXCPU: ::c_int = 30; +pub const SIGXFSZ: ::c_int = 31; +pub const SIGVTALRM: ::c_int = 28; +pub const SIGPROF: ::c_int = 29; +pub const SIGWINCH: ::c_int = 20; +pub const SIGUSR1: ::c_int = 16; +pub const SIGUSR2: ::c_int = 17; +pub const SIGCONT: ::c_int = 25; +pub const SIGSTOP: ::c_int = 23; +pub const SIGTSTP: ::c_int = 24; +pub const SIGURG: ::c_int = 21; +pub const SIGIO: ::c_int = 22; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 22; +pub const SIGPWR: ::c_int = 19; +pub const SIG_SETMASK: ::c_int = 3; +pub const SIG_BLOCK: ::c_int = 0x1; +pub const SIG_UNBLOCK: ::c_int = 0x2; + +pub const POLLWRNORM: ::c_short = 0x004; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const VEOF: usize = 16; +pub const VEOL: usize = 17; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x00000100; +pub const TOSTOP: ::tcflag_t = 0x00008000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const EXTPROC: ::tcflag_t = 0o200000; + +pub const F_GETLK: ::c_int = 14; +pub const F_GETOWN: ::c_int = 23; +pub const F_SETOWN: ::c_int = 24; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; + +pub const TCGETS: ::c_ulong = 0x540d; +pub const TCSETS: ::c_ulong = 0x540e; +pub const TCSETSW: ::c_ulong = 0x540f; +pub const TCSETSF: ::c_ulong = 0x5410; +pub const TCGETA: ::c_ulong = 0x5401; +pub const TCSETA: ::c_ulong = 0x5402; +pub const TCSETAW: ::c_ulong = 0x5403; +pub const TCSETAF: ::c_ulong = 0x5404; +pub const TCSBRK: ::c_ulong = 0x5405; +pub const TCXONC: ::c_ulong = 0x5406; +pub const TCFLSH: ::c_ulong = 0x5407; +pub const TIOCGSOFTCAR: ::c_ulong = 0x5481; +pub const TIOCSSOFTCAR: ::c_ulong = 0x5482; +pub const TIOCINQ: ::c_ulong = 0x467f; +pub const TIOCLINUX: ::c_ulong = 0x5483; +pub const TIOCGSERIAL: ::c_ulong = 0x5484; +pub const TIOCEXCL: ::c_ulong = 0x740d; +pub const TIOCNXCL: ::c_ulong = 0x740e; +pub const TIOCSCTTY: ::c_ulong = 0x5480; +pub const TIOCGPGRP: ::c_ulong = 0x40047477; +pub const TIOCSPGRP: ::c_ulong = 0x80047476; +pub const TIOCOUTQ: ::c_ulong = 0x7472; +pub const TIOCSTI: ::c_ulong = 0x5472; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const TIOCMGET: ::c_ulong = 0x741d; +pub const TIOCMBIS: ::c_ulong = 0x741b; +pub const TIOCMBIC: ::c_ulong = 0x741c; +pub const TIOCMSET: ::c_ulong = 0x741a; +pub const FIONREAD: ::c_ulong = 0x467f; +pub const TIOCCONS: ::c_ulong = 0x80047478; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const CBAUD: ::tcflag_t = 0o0010017; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; +pub const FF1: ::tcflag_t = 0x00008000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 0x00000400; +pub const IXOFF: ::tcflag_t = 0x00001000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x00000030; +pub const CS6: ::tcflag_t = 0x00000010; +pub const CS7: ::tcflag_t = 0x00000020; +pub const CS8: ::tcflag_t = 0x00000030; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00000800; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const ECHOPRT: ::tcflag_t = 0x00000400; +pub const ECHOCTL: ::tcflag_t = 0x00000200; +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const PENDIN: ::tcflag_t = 0x00004000; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0o010000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const BOTHER: ::speed_t = 0o010000; +pub const B57600: ::speed_t = 0o010001; +pub const B115200: ::speed_t = 0o010002; +pub const B230400: ::speed_t = 0o010003; +pub const B460800: ::speed_t = 0o010004; +pub const B500000: ::speed_t = 0o010005; +pub const B576000: ::speed_t = 0o010006; +pub const B921600: ::speed_t = 0o010007; +pub const B1000000: ::speed_t = 0o010010; +pub const B1152000: ::speed_t = 0o010011; +pub const B1500000: ::speed_t = 0o010012; +pub const B2000000: ::speed_t = 0o010013; +pub const B2500000: ::speed_t = 0o010014; +pub const B3000000: ::speed_t = 0o010015; +pub const B3500000: ::speed_t = 0o010016; +pub const B4000000: ::speed_t = 0o010017; + +pub const TIOCM_ST: ::c_int = 0x010; +pub const TIOCM_SR: ::c_int = 0x020; +pub const TIOCM_CTS: ::c_int = 0x040; +pub const TIOCM_CAR: ::c_int = 0x100; +pub const TIOCM_RNG: ::c_int = 0x200; +pub const TIOCM_DSR: ::c_int = 0x400; + +pub const EHWPOISON: ::c_int = 168; + +extern { + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; +} diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index d79dda4dbe04c..cb8c8c373c561 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -124,6 +124,9 @@ cfg_if! { if #[cfg(target_arch = "aarch64")] { mod aarch64; pub use self::aarch64::*; + } else if #[cfg(target_arch = "mips64")] { + mod mips64; + pub use self::mips64::*; } else if #[cfg(any(target_arch = "powerpc64"))] { mod powerpc64; pub use self::powerpc64::*; diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index e47af4f280670..9c26c7973bc50 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -409,6 +409,7 @@ extern { cfg_if! { if #[cfg(any(target_arch = "x86_64", target_arch = "aarch64", + target_arch = "mips64", target_arch = "powerpc64"))] { mod b64; pub use self::b64::*; From 2883e4ce0fb6b24d8953217074e2550d183c6dca Mon Sep 17 00:00:00 2001 From: Wang Xuerui Date: Wed, 31 Jul 2019 13:22:45 +0800 Subject: [PATCH 138/296] ci: Add mips64(el)-unknown-linux-muslabi64 as initially no_core targets --- ci/build.sh | 2 ++ .../mips64-unknown-linux-muslabi64/Dockerfile | 15 +++++++++++++++ .../mips64el-unknown-linux-muslabi64/Dockerfile | 15 +++++++++++++++ ci/install-musl.sh | 14 ++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 ci/docker/mips64-unknown-linux-muslabi64/Dockerfile create mode 100644 ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile diff --git a/ci/build.sh b/ci/build.sh index e63b4f7e2cf64..0df169c452792 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -204,6 +204,8 @@ i686-unknown-netbsd \ i686-unknown-openbsd \ mips-unknown-linux-uclibc \ mipsel-unknown-linux-uclibc \ +mips64-unknown-linux-muslabi64 \ +mips64el-unknown-linux-muslabi64 \ nvptx64-nvidia-cuda \ powerpc-unknown-linux-gnuspe \ powerpc-unknown-netbsd \ diff --git a/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile b/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile new file mode 100644 index 0000000000000..8f63ade604b5b --- /dev/null +++ b/ci/docker/mips64-unknown-linux-muslabi64/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:19.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc make libc6-dev git curl ca-certificates \ + gcc-mips64-linux-gnuabi64 qemu-user + +COPY install-musl.sh / +RUN sh /install-musl.sh mips64 + +# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd? +ENV PATH=$PATH:/musl-mips64/bin:/rust/bin \ + CC_mips64_unknown_linux_muslabi64=musl-gcc \ + RUSTFLAGS='-Clink-args=-lgcc' \ + CARGO_TARGET_MIPS64_UNKNOWN_LINUX_MUSLABI64_LINKER=musl-gcc \ + CARGO_TARGET_MIPS64_UNKNOWN_LINUX_MUSLABI64_RUNNER="qemu-mips64 -L /musl-mips64" diff --git a/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile b/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile new file mode 100644 index 0000000000000..c42c2ba601001 --- /dev/null +++ b/ci/docker/mips64el-unknown-linux-muslabi64/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:19.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc make libc6-dev git curl ca-certificates \ + gcc-mips64el-linux-gnuabi64 qemu-user + +COPY install-musl.sh / +RUN sh /install-musl.sh mips64el + +# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd? +ENV PATH=$PATH:/musl-mips64el/bin:/rust/bin \ + CC_mips64el_unknown_linux_muslabi64=musl-gcc \ + RUSTFLAGS='-Clink-args=-lgcc' \ + CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_MUSLABI64_LINKER=musl-gcc \ + CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_MUSLABI64_RUNNER="qemu-mips64el -L /musl-mips64el" diff --git a/ci/install-musl.sh b/ci/install-musl.sh index ab98c4f0f62cb..d6ec17e60466d 100644 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -46,6 +46,20 @@ case ${1} in ./configure --prefix="/musl-${musl_arch}" make install -j4 ;; + mips64) + musl_arch=mips64 + kernel_arch=mips + CC=mips64-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \ + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + make install -j4 + ;; + mips64el) + musl_arch=mips64el + kernel_arch=mips + CC=mips64el-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \ + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + make install -j4 + ;; *) echo "Unknown target arch: \"${1}\"" exit 1 From 435cdeeec85d113982765cdfb306aef818c53888 Mon Sep 17 00:00:00 2001 From: Wang Xuerui Date: Fri, 16 Aug 2019 00:39:53 +0800 Subject: [PATCH 139/296] Bump version to 0.2.63 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a39ab2945ceb1..2ed71f9f12fef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.62" +version = "0.2.63" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 13175a8170715547a6cbfbc27eae986dcd9e2af7 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Fri, 16 Aug 2019 19:12:55 -0700 Subject: [PATCH 140/296] Update Emscripten system types These changes bring the types up to parity with recent Emscripten versions using the upstream LLVM wasm backend. These changes should be coordinated with the upgrade of rustc's Emscripten support. See https://internals.rust-lang.org/t/upgrading-rust-s-emscripten-support/10684 --- src/unix/linux_like/emscripten/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 67631fccf0892..e415f589e2a8a 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -5,8 +5,8 @@ pub type dev_t = u32; pub type socklen_t = u32; pub type pthread_t = c_ulong; pub type mode_t = u32; -pub type ino64_t = u32; -pub type off64_t = i32; +pub type ino64_t = u64; +pub type off64_t = i64; pub type blkcnt64_t = i32; pub type rlim64_t = u64; pub type shmatt_t = ::c_ulong; @@ -16,14 +16,14 @@ pub type msglen_t = ::c_ulong; pub type nfds_t = ::c_ulong; pub type nl_item = ::c_int; pub type idtype_t = ::c_uint; -pub type loff_t = i32; +pub type loff_t = i64; pub type pthread_key_t = ::c_uint; pub type clock_t = c_long; pub type time_t = c_long; pub type suseconds_t = c_long; pub type ino_t = u32; -pub type off_t = i32; +pub type off_t = i64; pub type blkcnt_t = i32; pub type blksize_t = c_long; From 2b158cefc22460afe2b278fc4b196ab332cef319 Mon Sep 17 00:00:00 2001 From: Luke Petre Date: Fri, 16 Aug 2019 06:31:47 +0100 Subject: [PATCH 141/296] Adding UTIME_NOW and UTIME_OMIT to OSes which support utimensat --- src/unix/bsd/apple/mod.rs | 3 +++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 3 +++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 3 +++ src/unix/haiku/mod.rs | 3 +++ src/unix/solarish/mod.rs | 3 +++ src/wasi.rs | 3 +++ 6 files changed, 18 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 24ad12bee5207..904bfe00b00f8 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2823,6 +2823,9 @@ pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; pub const P_PGID: idtype_t = 2; +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + pub const XATTR_NOFOLLOW: ::c_int = 0x0001; pub const XATTR_CREATE: ::c_int = 0x0002; pub const XATTR_REPLACE: ::c_int = 0x0004; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index fea680d2af40c..62d416406aa91 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1041,6 +1041,9 @@ pub const P_PID: idtype_t = 0; pub const P_PGID: idtype_t = 2; pub const P_ALL: idtype_t = 7; +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + pub const B460800: ::speed_t = 460800; pub const B921600: ::speed_t = 921600; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 893b15752ad61..c4e03adea7e11 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1357,6 +1357,9 @@ pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; pub const P_PGID: idtype_t = 4; +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + pub const B460800: ::speed_t = 460800; pub const B921600: ::speed_t = 921600; diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index c8cf8ad25d9a6..fe1929f9bb1fc 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1039,6 +1039,9 @@ pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1; pub const P_PGID: idtype_t = 2; +pub const UTIME_OMIT: c_long = 1000000001; +pub const UTIME_NOW: c_long = 1000000000; + pub const VINTR: usize = 0; pub const VQUIT: usize = 1; pub const VERASE: usize = 2; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 78956146adea6..f8a64547d4cb0 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -965,6 +965,9 @@ pub const P_CTID: idtype_t = 13; pub const P_CPUID: idtype_t = 14; pub const P_PSETID: idtype_t = 15; +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + pub const PROT_NONE: ::c_int = 0; pub const PROT_READ: ::c_int = 1; pub const PROT_WRITE: ::c_int = 2; diff --git a/src/wasi.rs b/src/wasi.rs index e1ffeded9f6d6..551f8b96f18c0 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -334,6 +334,9 @@ pub const AT_EACCESS: c_int = 0x0; pub const AT_SYMLINK_NOFOLLOW: c_int = 0x1; pub const AT_SYMLINK_FOLLOW: c_int = 0x2; pub const AT_REMOVEDIR: c_int = 0x4; +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + pub const E2BIG: c_int = __WASI_E2BIG as c_int; pub const EACCES: c_int = __WASI_EACCES as c_int; From 2c839a3342ee08bb4875373497ce5a6571ca335d Mon Sep 17 00:00:00 2001 From: Luke Petre Date: Sat, 17 Aug 2019 06:41:39 +0100 Subject: [PATCH 142/296] Adding OpenBSD as per request, verified here: https://github.com/openbsd/src/blob/master/sys/sys/stat.h#L188 --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 51b1bf14d759d..a8c5252efed80 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -748,6 +748,9 @@ pub const ELAST : ::c_int = 95; pub const F_DUPFD_CLOEXEC : ::c_int = 10; +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + pub const AT_FDCWD: ::c_int = -100; pub const AT_EACCESS: ::c_int = 0x01; pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; From bde74be6b20fe8dfc9191ccce29718a073166b81 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 17 Aug 2019 14:01:21 +0200 Subject: [PATCH 143/296] Rename armv7-wrs-vxworks target --- ci/build.sh | 2 +- src/lib.rs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index e63b4f7e2cf64..76af9e5fc728d 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -224,7 +224,7 @@ x86_64-unknown-haiku \ x86_64-unknown-hermit \ x86_64-unknown-l4re-uclibc \ x86_64-unknown-openbsd \ -armv7-wrs-vxworks \ +armv7-wrs-vxworks-eabihf \ aarch64-wrs-vxworks \ i686-wrs-vxworks \ x86_64-wrs-vxworks \ diff --git a/src/lib.rs b/src/lib.rs index 3c757f75b3231..bc2a36ef71963 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,9 +15,10 @@ #![crate_name = "libc"] #![crate_type = "rlib"] #![cfg_attr(libc_deny_warnings, deny(warnings))] -#![allow(bad_style, overflowing_literals, improper_ctypes, unknown_lints)] -// FIXME: this is due to a rustc bug -#![allow(redundant_semicolon)] +#![allow( + bad_style, overflowing_literals, improper_ctypes, unknown_lints, + redundant_semicolon +)] // Attributes needed when building as part of the standard library #![cfg_attr( feature = "rustc-dep-of-std", From 2742aaa11f5924ceed4913040bf8e93778a2c828 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 17 Aug 2019 14:51:47 +0200 Subject: [PATCH 144/296] Formatting --- src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index bc2a36ef71963..3255303e5a9b0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,7 +16,10 @@ #![crate_type = "rlib"] #![cfg_attr(libc_deny_warnings, deny(warnings))] #![allow( - bad_style, overflowing_literals, improper_ctypes, unknown_lints, + bad_style, + overflowing_literals, + improper_ctypes, + unknown_lints, redundant_semicolon )] // Attributes needed when building as part of the standard library From 3b7be3c193e56ca6e9eded2d20f24e919318ed12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Sun, 18 Aug 2019 10:19:49 +0200 Subject: [PATCH 145/296] adapt ioctl() BPF for OpenBSD --- libc-test/build.rs | 1 + src/unix/bsd/apple/mod.rs | 5 +++++ src/unix/bsd/freebsdlike/mod.rs | 5 +++++ src/unix/bsd/mod.rs | 5 ----- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 ++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 4 ++++ 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 146beb073442b..002ece011b99b 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -264,6 +264,7 @@ fn test_openbsd(target: &str) { "netinet/ip.h", "netinet/tcp.h", "netinet/udp.h", + "net/bpf.h", "resolv.h", "pthread.h", "dlfcn.h", diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index e59772949905d..7230385c9e7a3 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1761,6 +1761,11 @@ pub const TIOCPTYGRANT: ::c_uint = 0x20007454; pub const TIOCPTYGNAME: ::c_uint = 0x40807453; pub const TIOCPTYUNLK: ::c_uint = 0x20007452; +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; pub const BIOCGDLTLIST: ::c_ulong = 0xc00c4279; pub const FIODTYPE: ::c_ulong = 0x4004667a; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index aed3ac660d377..2561e2504e630 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1009,6 +1009,11 @@ pub const SLIPDISC: ::c_int = 0x4; pub const PPPDISC: ::c_int = 0x5; pub const NETGRAPHDISC: ::c_int = 0x6; +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; pub const BIOCSETF: ::c_ulong = 0x80104267; pub const BIOCGDLTLIST: ::c_ulong = 0xc0104279; pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 193cd7478e17e..40b18c638dafa 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -446,13 +446,8 @@ pub const BIOCSETIF: ::c_ulong = 0x8020426c; pub const BIOCGSTATS: ::c_ulong = 0x4008426f; pub const BIOCIMMEDIATE: ::c_ulong = 0x80044270; pub const BIOCVERSION: ::c_ulong = 0x40044271; -pub const BIOCGRSIG: ::c_ulong = 0x40044272; -pub const BIOCSRSIG: ::c_ulong = 0x80044273; pub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274; pub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275; -pub const BIOCGSEESENT: ::c_ulong = 0x40044276; -pub const BIOCSSEESENT: ::c_ulong = 0x80044277; -pub const BIOCSDLT: ::c_ulong = 0x80044278; pub const SIOCGIFADDR: ::c_ulong = 0xc0206921; f! { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 893b15752ad61..dc5b092ce9c93 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1077,6 +1077,12 @@ pub const FD_SETSIZE: usize = 0x100; pub const ST_NOSUID: ::c_ulong = 8; +pub const BIOCGRSIG: ::c_ulong = 0x40044272; +pub const BIOCSRSIG: ::c_ulong = 0x80044273; +pub const BIOCSDLT: ::c_ulong = 0x80044278; +pub const BIOCGSEESENT: ::c_ulong = 0x40044276; +pub const BIOCSSEESENT: ::c_ulong = 0x80044277; + cfg_if! { if #[cfg(any(target_arch = "sparc", target_arch = "sparc64", target_arch = "x86", target_arch = "x86_64"))] { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 51b1bf14d759d..f942ece3751f9 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1307,6 +1307,10 @@ pub const SOCK_CLOEXEC: ::c_int = 0x8000; pub const SOCK_NONBLOCK: ::c_int = 0x4000; pub const SOCK_DNS: ::c_int = 0x1000; +pub const BIOCGRSIG: ::c_ulong = 0x40044273; +pub const BIOCSRSIG: ::c_ulong = 0x80044272; +pub const BIOCSDLT: ::c_ulong = 0x8004427a; + pub const PTRACE_FORK: ::c_int = 0x0002; pub const WCONTINUED: ::c_int = 8; From 6c995607ce202511c769eed41d3342459020ed06 Mon Sep 17 00:00:00 2001 From: Luke Petre Date: Sun, 18 Aug 2019 14:35:33 +0100 Subject: [PATCH 146/296] Fix style error in wasi.rs --- src/wasi.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wasi.rs b/src/wasi.rs index 551f8b96f18c0..7100a99785945 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -337,7 +337,6 @@ pub const AT_REMOVEDIR: c_int = 0x4; pub const UTIME_OMIT: c_long = 1073741822; pub const UTIME_NOW: c_long = 1073741823; - pub const E2BIG: c_int = __WASI_E2BIG as c_int; pub const EACCES: c_int = __WASI_EACCES as c_int; pub const EADDRINUSE: c_int = __WASI_EADDRINUSE as c_int; From fd037479db24357fff4c5e98c48950ab19d86249 Mon Sep 17 00:00:00 2001 From: FenrirWolf Date: Sat, 17 Aug 2019 13:44:23 -0600 Subject: [PATCH 147/296] Define newlib socket types by target arch --- src/unix/newlib/aarch64/mod.rs | 28 ++++++++++++++++++++++++++++ src/unix/newlib/arm/mod.rs | 30 ++++++++++++++++++++++++++++++ src/unix/newlib/mod.rs | 25 ------------------------- 3 files changed, 58 insertions(+), 25 deletions(-) diff --git a/src/unix/newlib/aarch64/mod.rs b/src/unix/newlib/aarch64/mod.rs index 96f381a39113f..7e1b2bb70eb52 100644 --- a/src/unix/newlib/aarch64/mod.rs +++ b/src/unix/newlib/aarch64/mod.rs @@ -3,3 +3,31 @@ pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; + +s! { + pub struct sockaddr { + pub sa_len: u8, + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_len: u8, + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [::c_char; 8], + } +} + +pub const POLLOUT: ::c_short = 0x4; +pub const POLLHUP: ::c_short = 0x10; diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index 372a48c4b4aed..39cb425fe7f46 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -3,3 +3,33 @@ pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; + +s! { + pub struct sockaddr { + pub sa_family: ::sa_family_t, + pub sa_data: [::c_char; 14], + } + + pub struct sockaddr_in6 { + pub sin6_family: ::sa_family_t, + pub sin6_port: ::in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: ::in6_addr, + pub sin6_scope_id: u32, + } + + pub struct sockaddr_in { + pub sin_family: ::sa_family_t, + pub sin_port: ::in_port_t, + pub sin_addr: ::in_addr, + pub sin_zero: [u8; 8], + } + + pub struct sockaddr_storage { + pub ss_family: ::sa_family_t, + pub __ss_padding: [u8; 26], + } +} + +pub const POLLOUT: ::c_short = 0x10; +pub const POLLHUP: ::c_short = 0x4; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 8f1a58480c09f..9e9fce746dde1 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -25,29 +25,6 @@ pub type time_t = i32; pub type useconds_t = u32; s! { - pub struct sockaddr { - pub sa_len: u8, - pub sa_family: sa_family_t, - pub sa_data: [::c_char; 14], - } - - pub struct sockaddr_in6 { - pub sin6_len: u8, - pub sin6_family: sa_family_t, - pub sin6_port: ::in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: ::in6_addr, - pub sin6_scope_id: u32, - } - - pub struct sockaddr_in { - pub sin_len: u8, - pub sin_family: ::sa_family_t, - pub sin_port: ::in_port_t, - pub sin_addr: ::in_addr, - pub sin_zero: [::c_char; 8], - } - pub struct addrinfo { pub ai_flags: ::c_int, pub ai_family: ::c_int, @@ -389,9 +366,7 @@ pub const O_CLOEXEC: ::c_int = 0x80000; pub const POLLIN: ::c_short = 0x1; pub const POLLPRI: ::c_short = 0x2; -pub const POLLOUT: ::c_short = 0x4; pub const POLLERR: ::c_short = 0x8; -pub const POLLHUP: ::c_short = 0x10; pub const POLLNVAL: ::c_short = 0x20; pub const RTLD_LAZY: ::c_int = 0x1; From a5a5a90e2fafdc0719c40db6c459ad3aceabcf94 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Mon, 19 Aug 2019 11:49:50 -0700 Subject: [PATCH 148/296] Update emscripten version --- ci/emscripten.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ci/emscripten.sh b/ci/emscripten.sh index db3132325503d..5dafb7bc54cfd 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -34,8 +34,8 @@ curl --retry 5 -L https://s3.amazonaws.com/mozilla-games/emscripten/releases/ems cd /emsdk-portable ./emsdk update -hide_output ./emsdk install sdk-1.38.15-64bit -./emsdk activate sdk-1.38.15-64bit +hide_output ./emsdk install sdk-1.38.40-64bit +./emsdk activate sdk-1.38.40-64bit # Compile and cache libc # shellcheck disable=SC1091 @@ -53,4 +53,3 @@ chmod a+rxw -R /emsdk-portable cd / curl --retry 5 -L https://nodejs.org/dist/v12.3.1/node-v12.3.1-linux-x64.tar.xz | \ tar -xJ - From d3c7de896f443e18d2430c110ac401f917654f27 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Mon, 19 Aug 2019 14:40:46 -0700 Subject: [PATCH 149/296] Update emscripten, take 2 --- ci/emscripten.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/emscripten.sh b/ci/emscripten.sh index 5dafb7bc54cfd..4666a1212e45a 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -34,8 +34,8 @@ curl --retry 5 -L https://s3.amazonaws.com/mozilla-games/emscripten/releases/ems cd /emsdk-portable ./emsdk update -hide_output ./emsdk install sdk-1.38.40-64bit -./emsdk activate sdk-1.38.40-64bit +hide_output ./emsdk install 1.38.37 +./emsdk activate 1.38.37 # Compile and cache libc # shellcheck disable=SC1091 From 4051e270268f9b3a089a32261f1a23dd5e5343b2 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 20 Aug 2019 14:59:26 +0200 Subject: [PATCH 150/296] Revert "Reorganize constant declarations to make up space for MIPS64-specific ones" This reverts commit 9df2deb33bde1330c9a2e5120ca2e86ad2b5b1fd. --- src/unix/linux_like/linux/musl/b64/aarch64.rs | 160 -------------- src/unix/linux_like/linux/musl/b64/mod.rs | 200 ++++++++++++++++++ .../linux_like/linux/musl/b64/powerpc64.rs | 160 -------------- src/unix/linux_like/linux/musl/b64/x86_64.rs | 160 -------------- 4 files changed, 200 insertions(+), 480 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index a6d68c8a821b7..14405a5ad0097 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -49,36 +49,6 @@ s! { __unused: [::c_uint; 2], } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t, @@ -92,36 +62,15 @@ s! { } } -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x10000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x20000; pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; pub const MINSIGSTKSZ: ::size_t = 6144; pub const SIGSTKSZ: ::size_t = 12288; pub const MADV_SOFT_OFFLINE: ::c_int = 101; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; pub const SYS_io_setup: ::c_long = 0; pub const SYS_io_destroy: ::c_long = 1; pub const SYS_io_submit: ::c_long = 2; @@ -392,87 +341,6 @@ pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - pub const RLIMIT_NLIMITS: ::c_int = 15; pub const TIOCINQ: ::c_int = ::FIONREAD; pub const MCL_CURRENT: ::c_int = 0x0001; @@ -549,31 +417,6 @@ pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOL_SOCKET: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 16; pub const SO_PEERCRED: ::c_int = 17; pub const SO_RCVLOWAT: ::c_int = 18; @@ -581,7 +424,6 @@ pub const SO_SNDLOWAT: ::c_int = 19; pub const SO_RCVTIMEO: ::c_int = 20; pub const SO_SNDTIMEO: ::c_int = 21; pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -634,8 +476,6 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const EHWPOISON: ::c_int = 133; - extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index cb8c8c373c561..8066e561e7710 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -2,6 +2,21 @@ pub type c_long = i64; pub type c_ulong = u64; s! { + pub struct statfs64 { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + pub struct statvfs64 { pub f_bsize: ::c_ulong, pub f_frsize: ::c_ulong, @@ -58,6 +73,21 @@ s! { __pad2: ::c_ulong, } + pub struct statfs { + pub f_type: ::c_ulong, + pub f_bsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_flags: ::c_ulong, + pub f_spare: [::c_ulong; 4], + } + pub struct msghdr { pub msg_name: *mut ::c_void, pub msg_namelen: ::socklen_t, @@ -102,16 +132,186 @@ s! { pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const O_ASYNC: ::c_int = 0x2000; + pub const RLIMIT_RSS: ::c_int = 5; pub const RLIMIT_NOFILE: ::c_int = 7; pub const RLIMIT_AS: ::c_int = 9; pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_MEMLOCK: ::c_int = 8; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; + pub const SOCK_NONBLOCK: ::c_int = 2048; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; pub const SOCK_SEQPACKET: ::c_int = 5; +pub const SOL_SOCKET: ::c_int = 1; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 41c88c5b00599..04ceb79a45d91 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -47,36 +47,6 @@ s! { __reserved: [::c_long; 3], } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct ipc_perm { pub __ipc_perm_key: ::key_t, pub uid: ::uid_t, @@ -92,31 +62,10 @@ s! { pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x20000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x8000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; @@ -482,117 +431,11 @@ pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - pub const FIOCLEX: ::c_int = 0x20006601; pub const FIONCLEX: ::c_int = 0x20006602; pub const FIONBIO: ::c_int = 0x8004667e; pub const EDEADLK: ::c_int = 58; pub const EDEADLOCK: ::c_int = EDEADLK; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOL_SOCKET: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 20; pub const SO_PEERCRED: ::c_int = 21; pub const SO_RCVLOWAT: ::c_int = 16; @@ -600,7 +443,6 @@ pub const SO_SNDLOWAT: ::c_int = 17; pub const SO_RCVTIMEO: ::c_int = 18; pub const SO_SNDTIMEO: ::c_int = 19; pub const EXTPROC: ::tcflag_t = 0x10000000; -pub const VEOF: usize = 4; pub const VEOL: usize = 6; pub const VEOL2: usize = 8; pub const VMIN: usize = 5; @@ -725,8 +567,6 @@ pub const B3000000: ::speed_t = 0o00034; pub const B3500000: ::speed_t = 0o00035; pub const B4000000: ::speed_t = 0o00036; -pub const EHWPOISON: ::c_int = 133; - extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index 0c17cdb8e8c21..b4023f726c293 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -47,36 +47,6 @@ s! { __reserved: [::c_long; 3], } - pub struct statfs { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - - pub struct statfs64 { - pub f_type: ::c_ulong, - pub f_bsize: ::c_ulong, - pub f_blocks: ::fsblkcnt_t, - pub f_bfree: ::fsblkcnt_t, - pub f_bavail: ::fsblkcnt_t, - pub f_files: ::fsfilcnt_t, - pub f_ffree: ::fsfilcnt_t, - pub f_fsid: ::fsid_t, - pub f_namelen: ::c_ulong, - pub f_frsize: ::c_ulong, - pub f_flags: ::c_ulong, - pub f_spare: [::c_ulong; 4], - } - pub struct mcontext_t { __private: [u64; 32], } @@ -484,57 +454,6 @@ pub const SYS_pwritev2: ::c_long = 328; // FIXME syscalls 329-331 have been added in musl 1.16 // See discussion https://github.com/rust-lang/libc/pull/699 -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; - // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; pub const R14: ::c_int = 1; @@ -564,63 +483,12 @@ pub const ES: ::c_int = 24; pub const FS: ::c_int = 25; pub const GS: ::c_int = 26; -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; -pub const MAP_HUGETLB: ::c_int = 0x040000; -pub const O_ASYNC: ::c_int = 0x2000; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_LARGEFILE: ::c_int = 0; pub const O_NOFOLLOW: ::c_int = 0x20000; -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; @@ -704,31 +572,6 @@ pub const FIONCLEX: ::c_int = 0x5450; pub const FIONBIO: ::c_int = 0x5421; pub const EDEADLK: ::c_int = 35; pub const EDEADLOCK: ::c_int = EDEADLK; -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; -pub const SOL_SOCKET: ::c_int = 1; -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; pub const SO_PASSCRED: ::c_int = 16; pub const SO_PEERCRED: ::c_int = 17; pub const SO_RCVLOWAT: ::c_int = 18; @@ -736,7 +579,6 @@ pub const SO_SNDLOWAT: ::c_int = 19; pub const SO_RCVTIMEO: ::c_int = 20; pub const SO_SNDTIMEO: ::c_int = 21; pub const EXTPROC: ::tcflag_t = 0x00010000; -pub const VEOF: usize = 4; pub const VEOL: usize = 11; pub const VEOL2: usize = 16; pub const VMIN: usize = 6; @@ -786,8 +628,6 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; -pub const EHWPOISON: ::c_int = 133; - extern { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } From 1dd09fbbe6398ed1782b526f4862cf3b10af92a0 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 20 Aug 2019 15:00:05 +0200 Subject: [PATCH 151/296] Update Cargo.toml to 0.2.64 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2ed71f9f12fef..e48a34cdfe9a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.63" +version = "0.2.64" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 8f50a261c2195871b17fd324a3205d64c319ed1e Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 20 Aug 2019 16:37:42 +0200 Subject: [PATCH 152/296] Add support for musl mips64 --- src/unix/linux_like/linux/musl/b64/aarch64.rs | 166 +++++++++++++++++ src/unix/linux_like/linux/musl/b64/mips64.rs | 2 +- src/unix/linux_like/linux/musl/b64/mod.rs | 170 ------------------ .../linux_like/linux/musl/b64/powerpc64.rs | 166 +++++++++++++++++ src/unix/linux_like/linux/musl/b64/x86_64.rs | 166 +++++++++++++++++ 5 files changed, 499 insertions(+), 171 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index 14405a5ad0097..66f424a9e7562 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -62,10 +62,176 @@ s! { } } +pub const O_APPEND: ::c_int = 1024; pub const O_DIRECT: ::c_int = 0x10000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x20000; pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; pub const MINSIGSTKSZ: ::size_t = 6144; pub const SIGSTKSZ: ::size_t = 12288; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 43244214601da..c0b2867de659d 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -523,12 +523,12 @@ pub const EOWNERDEAD: ::c_int = 165; pub const ENOTRECOVERABLE: ::c_int = 166; pub const ERFKILL: ::c_int = 167; -pub const MAP_NORESERVE: ::c_int = 0x400; pub const MAP_ANON: ::c_int = 0x800; pub const MAP_GROWSDOWN: ::c_int = 0x1000; pub const MAP_DENYWRITE: ::c_int = 0x2000; pub const MAP_EXECUTABLE: ::c_int = 0x4000; pub const MAP_LOCKED: ::c_int = 0x8000; +pub const MAP_NORESERVE: ::c_int = 0x400; pub const MAP_POPULATE: ::c_int = 0x10000; pub const MAP_NONBLOCK: ::c_int = 0x20000; pub const MAP_STACK: ::c_int = 0x40000; diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 8066e561e7710..0c08ab3c4fb15 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -132,186 +132,16 @@ s! { pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -pub const O_ASYNC: ::c_int = 0x2000; - pub const RLIMIT_RSS: ::c_int = 5; pub const RLIMIT_NOFILE: ::c_int = 7; pub const RLIMIT_AS: ::c_int = 9; pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_MEMLOCK: ::c_int = 8; -pub const O_APPEND: ::c_int = 1024; -pub const O_CREAT: ::c_int = 64; -pub const O_EXCL: ::c_int = 128; -pub const O_NOCTTY: ::c_int = 256; -pub const O_NONBLOCK: ::c_int = 2048; -pub const O_SYNC: ::c_int = 1052672; -pub const O_RSYNC: ::c_int = 1052672; -pub const O_DSYNC: ::c_int = 4096; - pub const SOCK_NONBLOCK: ::c_int = 2048; -pub const MAP_ANON: ::c_int = 0x0020; -pub const MAP_GROWSDOWN: ::c_int = 0x0100; -pub const MAP_DENYWRITE: ::c_int = 0x0800; -pub const MAP_EXECUTABLE: ::c_int = 0x01000; -pub const MAP_LOCKED: ::c_int = 0x02000; -pub const MAP_NORESERVE: ::c_int = 0x04000; -pub const MAP_POPULATE: ::c_int = 0x08000; -pub const MAP_NONBLOCK: ::c_int = 0x010000; -pub const MAP_STACK: ::c_int = 0x020000; - -pub const SOCK_STREAM: ::c_int = 1; -pub const SOCK_DGRAM: ::c_int = 2; pub const SOCK_SEQPACKET: ::c_int = 5; -pub const SOL_SOCKET: ::c_int = 1; - -pub const ENAMETOOLONG: ::c_int = 36; -pub const ENOLCK: ::c_int = 37; -pub const ENOSYS: ::c_int = 38; -pub const ENOTEMPTY: ::c_int = 39; -pub const ELOOP: ::c_int = 40; -pub const ENOMSG: ::c_int = 42; -pub const EIDRM: ::c_int = 43; -pub const ECHRNG: ::c_int = 44; -pub const EL2NSYNC: ::c_int = 45; -pub const EL3HLT: ::c_int = 46; -pub const EL3RST: ::c_int = 47; -pub const ELNRNG: ::c_int = 48; -pub const EUNATCH: ::c_int = 49; -pub const ENOCSI: ::c_int = 50; -pub const EL2HLT: ::c_int = 51; -pub const EBADE: ::c_int = 52; -pub const EBADR: ::c_int = 53; -pub const EXFULL: ::c_int = 54; -pub const ENOANO: ::c_int = 55; -pub const EBADRQC: ::c_int = 56; -pub const EBADSLT: ::c_int = 57; -pub const EMULTIHOP: ::c_int = 72; -pub const EBADMSG: ::c_int = 74; -pub const EOVERFLOW: ::c_int = 75; -pub const ENOTUNIQ: ::c_int = 76; -pub const EBADFD: ::c_int = 77; -pub const EREMCHG: ::c_int = 78; -pub const ELIBACC: ::c_int = 79; -pub const ELIBBAD: ::c_int = 80; -pub const ELIBSCN: ::c_int = 81; -pub const ELIBMAX: ::c_int = 82; -pub const ELIBEXEC: ::c_int = 83; -pub const EILSEQ: ::c_int = 84; -pub const ERESTART: ::c_int = 85; -pub const ESTRPIPE: ::c_int = 86; -pub const EUSERS: ::c_int = 87; -pub const ENOTSOCK: ::c_int = 88; -pub const EDESTADDRREQ: ::c_int = 89; -pub const EMSGSIZE: ::c_int = 90; -pub const EPROTOTYPE: ::c_int = 91; -pub const ENOPROTOOPT: ::c_int = 92; -pub const EPROTONOSUPPORT: ::c_int = 93; -pub const ESOCKTNOSUPPORT: ::c_int = 94; -pub const EOPNOTSUPP: ::c_int = 95; -pub const ENOTSUP: ::c_int = EOPNOTSUPP; -pub const EPFNOSUPPORT: ::c_int = 96; -pub const EAFNOSUPPORT: ::c_int = 97; -pub const EADDRINUSE: ::c_int = 98; -pub const EADDRNOTAVAIL: ::c_int = 99; -pub const ENETDOWN: ::c_int = 100; -pub const ENETUNREACH: ::c_int = 101; -pub const ENETRESET: ::c_int = 102; -pub const ECONNABORTED: ::c_int = 103; -pub const ECONNRESET: ::c_int = 104; -pub const ENOBUFS: ::c_int = 105; -pub const EISCONN: ::c_int = 106; -pub const ENOTCONN: ::c_int = 107; -pub const ESHUTDOWN: ::c_int = 108; -pub const ETOOMANYREFS: ::c_int = 109; -pub const ETIMEDOUT: ::c_int = 110; -pub const ECONNREFUSED: ::c_int = 111; -pub const EHOSTDOWN: ::c_int = 112; -pub const EHOSTUNREACH: ::c_int = 113; -pub const EALREADY: ::c_int = 114; -pub const EINPROGRESS: ::c_int = 115; -pub const ESTALE: ::c_int = 116; -pub const EUCLEAN: ::c_int = 117; -pub const ENOTNAM: ::c_int = 118; -pub const ENAVAIL: ::c_int = 119; -pub const EISNAM: ::c_int = 120; -pub const EREMOTEIO: ::c_int = 121; -pub const EDQUOT: ::c_int = 122; -pub const ENOMEDIUM: ::c_int = 123; -pub const EMEDIUMTYPE: ::c_int = 124; -pub const ECANCELED: ::c_int = 125; -pub const ENOKEY: ::c_int = 126; -pub const EKEYEXPIRED: ::c_int = 127; -pub const EKEYREVOKED: ::c_int = 128; -pub const EKEYREJECTED: ::c_int = 129; -pub const EOWNERDEAD: ::c_int = 130; -pub const ENOTRECOVERABLE: ::c_int = 131; -pub const ERFKILL: ::c_int = 132; -pub const EHWPOISON: ::c_int = 133; - -pub const SO_REUSEADDR: ::c_int = 2; -pub const SO_TYPE: ::c_int = 3; -pub const SO_ERROR: ::c_int = 4; -pub const SO_DONTROUTE: ::c_int = 5; -pub const SO_BROADCAST: ::c_int = 6; -pub const SO_SNDBUF: ::c_int = 7; -pub const SO_RCVBUF: ::c_int = 8; -pub const SO_KEEPALIVE: ::c_int = 9; -pub const SO_OOBINLINE: ::c_int = 10; -pub const SO_NO_CHECK: ::c_int = 11; -pub const SO_PRIORITY: ::c_int = 12; -pub const SO_LINGER: ::c_int = 13; -pub const SO_BSDCOMPAT: ::c_int = 14; -pub const SO_REUSEPORT: ::c_int = 15; -pub const SO_ACCEPTCONN: ::c_int = 30; -pub const SO_SNDBUFFORCE: ::c_int = 32; -pub const SO_RCVBUFFORCE: ::c_int = 33; -pub const SO_PROTOCOL: ::c_int = 38; -pub const SO_DOMAIN: ::c_int = 39; - -pub const SA_ONSTACK: ::c_int = 0x08000000; -pub const SA_SIGINFO: ::c_int = 0x00000004; -pub const SA_NOCLDWAIT: ::c_int = 0x00000002; - -pub const SIGCHLD: ::c_int = 17; -pub const SIGBUS: ::c_int = 7; -pub const SIGTTIN: ::c_int = 21; -pub const SIGTTOU: ::c_int = 22; -pub const SIGXCPU: ::c_int = 24; -pub const SIGXFSZ: ::c_int = 25; -pub const SIGVTALRM: ::c_int = 26; -pub const SIGPROF: ::c_int = 27; -pub const SIGWINCH: ::c_int = 28; -pub const SIGUSR1: ::c_int = 10; -pub const SIGUSR2: ::c_int = 12; -pub const SIGCONT: ::c_int = 18; -pub const SIGSTOP: ::c_int = 19; -pub const SIGTSTP: ::c_int = 20; -pub const SIGURG: ::c_int = 23; -pub const SIGIO: ::c_int = 29; -pub const SIGSYS: ::c_int = 31; -pub const SIGSTKFLT: ::c_int = 16; -pub const SIGPOLL: ::c_int = 29; -pub const SIGPWR: ::c_int = 30; -pub const SIG_SETMASK: ::c_int = 2; -pub const SIG_BLOCK: ::c_int = 0x000000; -pub const SIG_UNBLOCK: ::c_int = 0x01; - -pub const MAP_HUGETLB: ::c_int = 0x040000; - -pub const F_GETLK: ::c_int = 5; -pub const F_GETOWN: ::c_int = 9; -pub const F_SETLK: ::c_int = 6; -pub const F_SETLKW: ::c_int = 7; -pub const F_SETOWN: ::c_int = 8; - -pub const VEOF: usize = 4; - -pub const POLLWRNORM: ::c_short = 0x100; -pub const POLLWRBAND: ::c_short = 0x200; - extern { pub fn getrandom( buf: *mut ::c_void, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 04ceb79a45d91..d20ca4843102d 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -62,10 +62,176 @@ s! { pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; +pub const O_APPEND: ::c_int = 1024; pub const O_DIRECT: ::c_int = 0x20000; pub const O_DIRECTORY: ::c_int = 0x4000; pub const O_LARGEFILE: ::c_int = 0x10000; pub const O_NOFOLLOW: ::c_int = 0x8000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; + +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; pub const SIGSTKSZ: ::size_t = 10240; pub const MINSIGSTKSZ: ::size_t = 4096; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index b4023f726c293..8eee323a31f19 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -485,10 +485,19 @@ pub const GS: ::c_int = 26; pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; +pub const O_APPEND: ::c_int = 1024; pub const O_DIRECT: ::c_int = 0x4000; pub const O_DIRECTORY: ::c_int = 0x10000; pub const O_LARGEFILE: ::c_int = 0; pub const O_NOFOLLOW: ::c_int = 0x20000; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_ASYNC: ::c_int = 0x2000; pub const TIOCGRS485: ::c_int = 0x542E; pub const TIOCSRS485: ::c_int = 0x542F; @@ -496,6 +505,163 @@ pub const TIOCSRS485: ::c_int = 0x542F; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EBADMSG: ::c_int = 74; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const ENOTSUP: ::c_int = EOPNOTSUPP; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const ERFKILL: ::c_int = 132; +pub const EHWPOISON: ::c_int = 133; + +pub const SA_ONSTACK: ::c_int = 0x08000000; +pub const SA_SIGINFO: ::c_int = 0x00000004; +pub const SA_NOCLDWAIT: ::c_int = 0x00000002; + +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0x000000; +pub const SIG_UNBLOCK: ::c_int = 0x01; + +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_SETOWN: ::c_int = 8; + +pub const VEOF: usize = 4; + +pub const POLLWRNORM: ::c_short = 0x100; +pub const POLLWRBAND: ::c_short = 0x200; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; + +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_GROWSDOWN: ::c_int = 0x0100; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_LOCKED: ::c_int = 0x02000; +pub const MAP_NORESERVE: ::c_int = 0x04000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; + pub const RLIMIT_NLIMITS: ::c_int = 15; pub const TIOCINQ: ::c_int = ::FIONREAD; pub const MCL_CURRENT: ::c_int = 0x0001; From 255b01e6584bb0738810e778a011db482abf4000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Wed, 21 Aug 2019 08:45:14 +0200 Subject: [PATCH 153/296] UTIME_OMIT and UTIME_NOW values are inverted on OpenBSD. correct it --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index ab65a6de98c97..b50d815414b74 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -748,8 +748,8 @@ pub const ELAST : ::c_int = 95; pub const F_DUPFD_CLOEXEC : ::c_int = 10; -pub const UTIME_OMIT: c_long = -2; -pub const UTIME_NOW: c_long = -1; +pub const UTIME_OMIT: c_long = -1; +pub const UTIME_NOW: c_long = -2; pub const AT_FDCWD: ::c_int = -100; pub const AT_EACCESS: ::c_int = 0x01; From 30133d9d2a3f697815c23b84d1f2b069a5c3ed28 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Wed, 21 Aug 2019 09:20:32 +0200 Subject: [PATCH 154/296] ci: switch to the rust-lang-ci-mirrors bucket for mirrors Previously mirrors were stored in the rust-lang-ci2 bucket, which is meant to store temporary data (the CI artifacts). This switches the code to fetch from the new mirrors bucket. The old files won't be removed, but they won't be backed up either. --- ci/docker/mips-unknown-linux-musl/Dockerfile | 2 +- ci/docker/mipsel-unknown-linux-musl/Dockerfile | 2 +- ci/run.sh | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ci/docker/mips-unknown-linux-musl/Dockerfile b/ci/docker/mips-unknown-linux-musl/Dockerfile index aee73beaa4a05..50da684ae7b08 100644 --- a/ci/docker/mips-unknown-linux-musl/Dockerfile +++ b/ci/docker/mips-unknown-linux-musl/Dockerfile @@ -8,7 +8,7 @@ RUN mkdir /toolchain # Note that this originally came from: # https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 -RUN curl --retry 5 -L https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ +RUN curl --retry 5 -L https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ tar xjf - -C /toolchain --strip-components=1 ENV PATH=$PATH:/rust/bin:/toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15/bin \ diff --git a/ci/docker/mipsel-unknown-linux-musl/Dockerfile b/ci/docker/mipsel-unknown-linux-musl/Dockerfile index 03e83578ea90c..91c00c250cab0 100644 --- a/ci/docker/mipsel-unknown-linux-musl/Dockerfile +++ b/ci/docker/mipsel-unknown-linux-musl/Dockerfile @@ -8,7 +8,7 @@ RUN mkdir /toolchain # Note that this originally came from: # https://downloads.openwrt.org/snapshots/trunk/malta/generic/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 -RUN curl --retry 5 -L https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ +RUN curl --retry 5 -L https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ tar xjf - -C /toolchain --strip-components=2 ENV PATH=$PATH:/rust/bin:/toolchain/bin \ diff --git a/ci/run.sh b/ci/run.sh index 6f2ca11fe4090..e863085d9a15e 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -5,6 +5,8 @@ set -ex +MIRRORS_URL="https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc" + TARGET="${1}" # If we're going to run tests inside of a qemu image, then we don't need any of @@ -21,21 +23,21 @@ if [ "$QEMU" != "" ]; then # image is .gz : download and uncompress it qemufile="$(echo "${QEMU%.gz}" | sed 's/\//__/g')" if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/${QEMU}" | \ + curl --retry 5 "${MIRRORS_URL}/${QEMU}" | \ gunzip -d > "${tmpdir}/${qemufile}" fi elif [ -z "${QEMU#*.xz}" ]; then # image is .xz : download and uncompress it qemufile="$(echo "${QEMU%.xz}" | sed 's/\//__/g')" if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/${QEMU}" | \ + curl --retry 5 "${MIRRORS_URL}/${QEMU}" | \ unxz > "${tmpdir}/${qemufile}" fi else # plain qcow2 image: just download it qemufile="$(echo "${QEMU}" | sed 's/\//__/g')" if [ ! -f "${tmpdir}/${qemufile}" ]; then - curl --retry 5 "https://s3-us-west-1.amazonaws.com/rust-lang-ci2/libc/${QEMU}" \ + curl --retry 5 "${MIRRORS_URL}/${QEMU}" | \ > "${tmpdir}/${qemufile}" fi fi From 078a7486daec6ddffb5f206c43be125b559f1ca2 Mon Sep 17 00:00:00 2001 From: newpavlov Date: Wed, 21 Aug 2019 18:16:56 +0300 Subject: [PATCH 155/296] add __wasi_rights_t --- src/wasi.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/wasi.rs b/src/wasi.rs index a810c2ad437e8..50621fd5125f2 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -36,6 +36,8 @@ pub type blksize_t = c_long; pub type blkcnt_t = i64; pub type nfds_t = c_ulong; +pub type __wasi_rights_t = u64; + #[allow(missing_copy_implementations)] #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} From ab4ce4945ddced4b4940d3403c2362dd184c8bbf Mon Sep 17 00:00:00 2001 From: Logan Wendholt Date: Thu, 22 Aug 2019 14:36:09 -0400 Subject: [PATCH 156/296] Add user_regs_struct for musl x86_64 --- src/unix/linux_like/linux/musl/b64/x86_64.rs | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index 8eee323a31f19..2eda091fbc1f3 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -47,6 +47,36 @@ s! { __reserved: [::c_long; 3], } + pub struct user_regs_struct { + pub r15: ::c_ulonglong, + pub r14: ::c_ulonglong, + pub r13: ::c_ulonglong, + pub r12: ::c_ulonglong, + pub rbp: ::c_ulonglong, + pub rbx: ::c_ulonglong, + pub r11: ::c_ulonglong, + pub r10: ::c_ulonglong, + pub r9: ::c_ulonglong, + pub r8: ::c_ulonglong, + pub rax: ::c_ulonglong, + pub rcx: ::c_ulonglong, + pub rdx: ::c_ulonglong, + pub rsi: ::c_ulonglong, + pub rdi: ::c_ulonglong, + pub orig_rax: ::c_ulonglong, + pub rip: ::c_ulonglong, + pub cs: ::c_ulonglong, + pub eflags: ::c_ulonglong, + pub rsp: ::c_ulonglong, + pub ss: ::c_ulonglong, + pub fs_base: ::c_ulonglong, + pub gs_base: ::c_ulonglong, + pub ds: ::c_ulonglong, + pub es: ::c_ulonglong, + pub fs: ::c_ulonglong, + pub gs: ::c_ulonglong, + } + pub struct mcontext_t { __private: [u64; 32], } From a3f8a1845f741c31d9c88b144cdb2520a84b646b Mon Sep 17 00:00:00 2001 From: Logan Wendholt Date: Fri, 23 Aug 2019 10:31:36 -0400 Subject: [PATCH 157/296] Update musl x86_64 to match bits/user.h --- src/unix/linux_like/linux/musl/b64/x86_64.rs | 144 +++++++++++++++---- 1 file changed, 117 insertions(+), 27 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index 2eda091fbc1f3..ad28b3077c248 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -48,33 +48,55 @@ s! { } pub struct user_regs_struct { - pub r15: ::c_ulonglong, - pub r14: ::c_ulonglong, - pub r13: ::c_ulonglong, - pub r12: ::c_ulonglong, - pub rbp: ::c_ulonglong, - pub rbx: ::c_ulonglong, - pub r11: ::c_ulonglong, - pub r10: ::c_ulonglong, - pub r9: ::c_ulonglong, - pub r8: ::c_ulonglong, - pub rax: ::c_ulonglong, - pub rcx: ::c_ulonglong, - pub rdx: ::c_ulonglong, - pub rsi: ::c_ulonglong, - pub rdi: ::c_ulonglong, - pub orig_rax: ::c_ulonglong, - pub rip: ::c_ulonglong, - pub cs: ::c_ulonglong, - pub eflags: ::c_ulonglong, - pub rsp: ::c_ulonglong, - pub ss: ::c_ulonglong, - pub fs_base: ::c_ulonglong, - pub gs_base: ::c_ulonglong, - pub ds: ::c_ulonglong, - pub es: ::c_ulonglong, - pub fs: ::c_ulonglong, - pub gs: ::c_ulonglong, + pub r15: ::c_ulong, + pub r14: ::c_ulong, + pub r13: ::c_ulong, + pub r12: ::c_ulong, + pub rbp: ::c_ulong, + pub rbx: ::c_ulong, + pub r11: ::c_ulong, + pub r10: ::c_ulong, + pub r9: ::c_ulong, + pub r8: ::c_ulong, + pub rax: ::c_ulong, + pub rcx: ::c_ulong, + pub rdx: ::c_ulong, + pub rsi: ::c_ulong, + pub rdi: ::c_ulong, + pub orig_rax: ::c_ulong, + pub rip: ::c_ulong, + pub cs: ::c_ulong, + pub eflags: ::c_ulong, + pub rsp: ::c_ulong, + pub ss: ::c_ulong, + pub fs_base: ::c_ulong, + pub gs_base: ::c_ulong, + pub ds: ::c_ulong, + pub es: ::c_ulong, + pub fs: ::c_ulong, + pub gs: ::c_ulong, + } + + pub struct user { + pub regs: user_regs_struct, + pub u_fpvalid: ::c_int, + pub i387: user_fpregs_struct, + pub u_tsize: ::c_ulong, + pub u_dsize: ::c_ulong, + pub u_ssize: ::c_ulong, + pub start_code: ::c_ulong, + pub start_stack: ::c_ulong, + pub signal: ::c_long, + __reserved: ::c_int, + #[cfg(target_pointer_width = "32")] + __pad1: u32, + pub u_ar0: *mut user_regs_struct, + #[cfg(target_pointer_width = "32")] + __pad2: u32, + pub u_fpstate: *mut user_fpregs_struct, + pub magic: ::c_ulong, + pub u_comm: [::c_char; 32], + pub u_debugreg: [::c_ulong; 8], } pub struct mcontext_t { @@ -95,6 +117,20 @@ s! { } s_no_extra_traits!{ + pub struct user_fpregs_struct { + pub cwd: ::c_ushort, + pub swd: ::c_ushort, + pub ftw: ::c_ushort, + pub fop: ::c_ushort, + pub rip: ::c_ulonglong, + pub rdp: ::c_ulonglong, + pub mxcsr: ::c_uint, + pub mxcr_mask: ::c_uint, + pub st_space: [::c_uint; 32], + pub xmm_space: [::c_uint; 64], + padding: [::c_uint; 24], + } + pub struct ucontext_t { pub uc_flags: ::c_ulong, pub uc_link: *mut ucontext_t, @@ -107,6 +143,60 @@ s_no_extra_traits!{ cfg_if! { if #[cfg(feature = "extra_traits")] { + impl PartialEq for user_fpregs_struct { + fn eq(&self, other: &user_fpregs_struct) -> bool { + self.cwd == other.cwd + && self.swd == other.swd + && self.ftw == other.ftw + && self.fop == other.fop + && self.rip == other.rip + && self.rdp == other.rdp + && self.mxcsr == other.mxcsr + && self.mxcr_mask == other.mxcr_mask + && self.st_space == other.st_space + && self + .xmm_space + .iter() + .zip(other.xmm_space.iter()) + .all(|(a,b)| a == b) + // Ignore padding field + } + } + + impl Eq for user_fpregs_struct {} + + impl ::fmt::Debug for user_fpregs_struct { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("user_fpregs_struct") + .field("cwd", &self.cwd) + .field("ftw", &self.ftw) + .field("fop", &self.fop) + .field("rip", &self.rip) + .field("rdp", &self.rdp) + .field("mxcsr", &self.mxcsr) + .field("mxcr_mask", &self.mxcr_mask) + .field("st_space", &self.st_space) + // FIXME: .field("xmm_space", &self.xmm_space) + // Ignore padding field + .finish() + } + } + + impl ::hash::Hash for user_fpregs_struct { + fn hash(&self, state: &mut H) { + self.cwd.hash(state); + self.ftw.hash(state); + self.fop.hash(state); + self.rip.hash(state); + self.rdp.hash(state); + self.mxcsr.hash(state); + self.mxcr_mask.hash(state); + self.st_space.hash(state); + self.xmm_space.hash(state); + // Ignore padding field + } + } + impl PartialEq for ucontext_t { fn eq(&self, other: &ucontext_t) -> bool { self.uc_flags == other.uc_flags From 9883697267a5f848d3c15c1ab74ec3788782a94d Mon Sep 17 00:00:00 2001 From: Logan Wendholt Date: Fri, 23 Aug 2019 11:25:55 -0400 Subject: [PATCH 158/296] Fix rip and rdp types in user_fpregs_struct --- src/unix/linux_like/linux/musl/b64/x86_64.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index ad28b3077c248..bbbd1ed647b07 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -122,8 +122,8 @@ s_no_extra_traits!{ pub swd: ::c_ushort, pub ftw: ::c_ushort, pub fop: ::c_ushort, - pub rip: ::c_ulonglong, - pub rdp: ::c_ulonglong, + pub rip: ::c_ulong, + pub rdp: ::c_ulong, pub mxcsr: ::c_uint, pub mxcr_mask: ::c_uint, pub st_space: [::c_uint; 32], From e0113654521a2f1ea890706e468aa0554dbed81d Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Mon, 26 Aug 2019 13:14:38 -0700 Subject: [PATCH 159/296] Use git to acquire emsdk --- ci/emscripten.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ci/emscripten.sh b/ci/emscripten.sh index 4666a1212e45a..acec4ca26f87f 100644 --- a/ci/emscripten.sh +++ b/ci/emscripten.sh @@ -28,21 +28,18 @@ exit 1 set -x } -cd / -curl --retry 5 -L https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz | \ - tar -xz - +git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable cd /emsdk-portable -./emsdk update -hide_output ./emsdk install 1.38.37 -./emsdk activate 1.38.37 +# TODO: switch to an upstream install once +# https://github.com/rust-lang/rust/pull/63649 lands +hide_output ./emsdk install 1.38.42 +./emsdk activate 1.38.42 # Compile and cache libc # shellcheck disable=SC1091 source ./emsdk_env.sh echo "main(){}" > a.c HOME=/emsdk-portable/ emcc a.c -HOME=/emsdk-portable/ emcc -s BINARYEN=1 a.c rm -f a.* # Make emsdk usable by any user From b7884dbe51f7dfe422288d929eed2c0a820ef46c Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Mon, 26 Aug 2019 13:53:14 -0700 Subject: [PATCH 160/296] Add libxml2, a new Fastcomp dependency --- ci/docker/asmjs-unknown-emscripten/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/docker/asmjs-unknown-emscripten/Dockerfile b/ci/docker/asmjs-unknown-emscripten/Dockerfile index 6c08340eb98b3..64f73aa6a00b9 100644 --- a/ci/docker/asmjs-unknown-emscripten/Dockerfile +++ b/ci/docker/asmjs-unknown-emscripten/Dockerfile @@ -7,6 +7,7 @@ RUN apt-get update && \ gcc \ git \ libc6-dev \ + libxml2 \ python \ xz-utils From 89e8ae6ab999460cdbb75e2472775b25166e4ce1 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Mon, 26 Aug 2019 19:03:20 -0700 Subject: [PATCH 161/296] Add extra debug info in emscripten-entry.sh --- ci/emscripten-entry.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/emscripten-entry.sh b/ci/emscripten-entry.sh index 0016f5660b0eb..8d0b350ed3436 100755 --- a/ci/emscripten-entry.sh +++ b/ci/emscripten-entry.sh @@ -12,9 +12,11 @@ set -ex # shellcheck disable=SC1091 -source /emsdk-portable/emsdk_env.sh &> /dev/null +echo "IN EMSCRIPTEN ENTRY" +source /emsdk-portable/emsdk_env.sh # emsdk-portable provides a node binary, but we need version 8 to run wasm export PATH="/node-v12.3.1-linux-x64/bin:$PATH" +echo "RUNNING with PATH=$PATH" exec "$@" From cd617d78819ca6a5d06a4d33f5db372994151ddb Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Tue, 27 Aug 2019 10:12:14 -0700 Subject: [PATCH 162/296] Revert "Add extra debug info in emscripten-entry.sh" This reverts commit 89e8ae6ab999460cdbb75e2472775b25166e4ce1. --- ci/emscripten-entry.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ci/emscripten-entry.sh b/ci/emscripten-entry.sh index 8d0b350ed3436..0016f5660b0eb 100755 --- a/ci/emscripten-entry.sh +++ b/ci/emscripten-entry.sh @@ -12,11 +12,9 @@ set -ex # shellcheck disable=SC1091 -echo "IN EMSCRIPTEN ENTRY" -source /emsdk-portable/emsdk_env.sh +source /emsdk-portable/emsdk_env.sh &> /dev/null # emsdk-portable provides a node binary, but we need version 8 to run wasm export PATH="/node-v12.3.1-linux-x64/bin:$PATH" -echo "RUNNING with PATH=$PATH" exec "$@" From 71e47b8dced7c7584b51dbb632db9a337ce45257 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Tue, 27 Aug 2019 10:14:44 -0700 Subject: [PATCH 163/296] Add libxml2 to wasm32 to be safe --- ci/docker/wasm32-unknown-emscripten/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/docker/wasm32-unknown-emscripten/Dockerfile b/ci/docker/wasm32-unknown-emscripten/Dockerfile index c0ce825ed7443..4de9e7475559d 100644 --- a/ci/docker/wasm32-unknown-emscripten/Dockerfile +++ b/ci/docker/wasm32-unknown-emscripten/Dockerfile @@ -10,6 +10,7 @@ RUN apt-get update && \ gcc \ git \ libc6-dev \ + libxml2 \ python \ cmake \ sudo \ From ccb0e403ead913a32e73485fef8fcca560409012 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Wed, 28 Aug 2019 20:46:24 -0700 Subject: [PATCH 164/296] Update ino_t --- libc-test/Cargo.toml | 3 +++ src/unix/linux_like/emscripten/mod.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 8d2d9033308b7..87dd7af7df819 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,3 +1,6 @@ +[build] +rustc = "~/code/rust/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" + [package] name = "libc-test" version = "0.1.0" diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index e415f589e2a8a..acce2c1d41fed 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -22,7 +22,7 @@ pub type pthread_key_t = ::c_uint; pub type clock_t = c_long; pub type time_t = c_long; pub type suseconds_t = c_long; -pub type ino_t = u32; +pub type ino_t = u64; pub type off_t = i64; pub type blkcnt_t = i32; From 06c980ef754bc6c814e044ab1c6f70e09b08bbd6 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 29 Aug 2019 09:50:49 -0700 Subject: [PATCH 165/296] Remove accidental debugging config change --- libc-test/Cargo.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml index 87dd7af7df819..8d2d9033308b7 100644 --- a/libc-test/Cargo.toml +++ b/libc-test/Cargo.toml @@ -1,6 +1,3 @@ -[build] -rustc = "~/code/rust/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" - [package] name = "libc-test" version = "0.1.0" From a5aa78dda423a3ed3043856fa116300fc763a626 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sun, 1 Sep 2019 13:52:38 +0000 Subject: [PATCH 166/296] freebsd: add utmpx constants This adds a few missing constants from FreeBSD `utmpx.h`. Ref: https://github.com/freebsd/freebsd/blob/a1d2b5187332a366a897689c5fb41d38d7e1b0d8/include/utmpx.h --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index d534af9091291..498bc20ce2a8d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1008,6 +1008,7 @@ pub const MSG_COMPAT: ::c_int = 0x00008000; pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; pub const MSG_NOSIGNAL: ::c_int = 0x20000; +// utmpx entry types pub const EMPTY: ::c_short = 0; pub const BOOT_TIME: ::c_short = 1; pub const OLD_TIME: ::c_short = 2; @@ -1017,6 +1018,10 @@ pub const INIT_PROCESS: ::c_short = 5; pub const LOGIN_PROCESS: ::c_short = 6; pub const DEAD_PROCESS: ::c_short = 7; pub const SHUTDOWN_TIME: ::c_short = 8; +// utmp database types +pub const UTXDB_ACTIVE: ::c_int = 0; +pub const UTXDB_LASTLOGIN: ::c_int = 1; +pub const UTXDB_LOG: ::c_int = 2; pub const LC_COLLATE_MASK: ::c_int = (1 << 0); pub const LC_CTYPE_MASK: ::c_int = (1 << 1); From d21f9031e23077cdd2442031074fdbc333569692 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sun, 1 Sep 2019 13:55:24 +0000 Subject: [PATCH 167/296] dragonfly: add utmpx constants This adds a few missing constants from DragonflyBSD `utmpx.h`. Ref: http://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/include/utmpx.h --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index fc94fd3c7136e..32f6c434a86ca 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -935,6 +935,7 @@ pub const MSG_FBLOCKING: ::c_int = 0x00010000; pub const MSG_FNONBLOCKING: ::c_int = 0x00020000; pub const MSG_FMASK: ::c_int = 0xFFFF0000; +// utmpx entry types pub const EMPTY: ::c_short = 0; pub const RUN_LVL: ::c_short = 1; pub const BOOT_TIME: ::c_short = 2; @@ -944,6 +945,13 @@ pub const INIT_PROCESS: ::c_short = 5; pub const LOGIN_PROCESS: ::c_short = 6; pub const USER_PROCESS: ::c_short = 7; pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; +pub const SIGNATURE: ::c_short = 10; +pub const DOWNTIME: ::c_short = 11; +// utmpx database types +pub const UTX_DB_UTMPX: ::c_uint = 0; +pub const UTX_DB_WTMPX: ::c_uint = 1; +pub const UTX_DB_LASTLOG: ::c_uint = 2; pub const LC_COLLATE_MASK: ::c_int = (1 << 0); pub const LC_CTYPE_MASK: ::c_int = (1 << 1); From 8a480ed9d885ea1252191161cb457f8a494a64db Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sun, 1 Sep 2019 17:03:33 +0000 Subject: [PATCH 168/296] linux/gnu: add utmpname() This adds `utmpname(3)` on Linux with GNU libc. Ref: https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/baselib-utmpname-3.html --- src/unix/linux_like/linux/gnu/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 735eaf24d8717..538fb5e415a31 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -893,6 +893,7 @@ extern { resource: ::__rlimit_resource_t, new_limit: *const ::rlimit64, old_limit: *mut ::rlimit64) -> ::c_int; + pub fn utmpname(file: *const ::c_char) -> ::c_int; pub fn utmpxname(file: *const ::c_char) -> ::c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; From f7245fedccc0c4bcfc3b1113709af6a105869a64 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 2 Sep 2019 01:43:55 +0800 Subject: [PATCH 169/296] Fix the link_name for fstat and fstatfs on FreeBSD --- src/unix/bsd/freebsdlike/freebsd/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index d534af9091291..9329d7f84f020 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1312,7 +1312,15 @@ extern { newfd: ::c_int, ) -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", freebsd11), + link_name = "statfs@FBSD_1.0" + )] pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; + #[cfg_attr( + all(target_os = "freebsd", freebsd11), + link_name = "fstatfs@FBSD_1.0" + )] pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; From ac1e12409ef18d46240f48e432026951ff02e4a6 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 2 Sep 2019 10:21:57 -0600 Subject: [PATCH 170/296] Deprecate RLIM_NLIMITS This constant is not stable across OS versions, so it cannot be used in any backwards- or forwards- compatible way. It's typically used to size arrays in the kernel and in debugging utilities that are closely tied to the OS version. Since libc is ignorant about OS versions, we shouldn't even be defining it. --- src/unix/bsd/apple/mod.rs | 4 ++++ src/unix/bsd/freebsdlike/dragonfly/mod.rs | 4 ++++ src/unix/bsd/freebsdlike/freebsd/mod.rs | 4 ++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 4 ++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 4 ++++ src/unix/linux_like/linux/musl/b32/hexagon.rs | 4 ++++ src/unix/solarish/mod.rs | 4 ++++ 7 files changed, 28 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 6d0a5bfe32ced..ced5170375798 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1862,6 +1862,10 @@ pub const RLIMIT_RSS: ::c_int = RLIMIT_AS; pub const RLIMIT_MEMLOCK: ::c_int = 6; pub const RLIMIT_NPROC: ::c_int = 7; pub const RLIMIT_NOFILE: ::c_int = 8; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::c_int = 9; pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index fc94fd3c7136e..9e9dc384d7182 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -451,6 +451,10 @@ pub const ENOMEDIUM: ::c_int = 93; pub const EASYNC: ::c_int = 99; pub const ELAST: ::c_int = 99; pub const RLIMIT_POSIXLOCKS: ::c_int = 11; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::rlim_t = 12; pub const Q_GETQUOTA: ::c_int = 0x300; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9329d7f84f020..c4ad2b3952756 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -337,6 +337,10 @@ pub const RLIMIT_NPTS: ::c_int = 11; pub const RLIMIT_SWAP: ::c_int = 12; pub const RLIMIT_KQUEUES: ::c_int = 13; pub const RLIMIT_UMTXP: ::c_int = 14; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::rlim_t = 15; pub const Q_GETQUOTA: ::c_int = 0x700; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 9401c024bfb65..74b2334d84612 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -741,6 +741,10 @@ pub const O_RSYNC : ::c_int = 0x00020000; pub const MS_SYNC : ::c_int = 0x4; pub const MS_INVALIDATE : ::c_int = 0x2; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::c_int = 12; pub const EIDRM: ::c_int = 82; diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index b50d815414b74..ffefefd819188 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -757,6 +757,10 @@ pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; pub const AT_REMOVEDIR: ::c_int = 0x08; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::c_int = 9; pub const SO_TIMESTAMP: ::c_int = 0x0800; diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index c8666925315ff..2ff186f0719a4 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -288,6 +288,10 @@ pub const RLIMIT_MEMLOCK: ::c_int = 8; pub const RLIMIT_NOFILE: ::c_int = 7; pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_RSS: ::c_int = 5; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: ::c_int = 16; pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index f8a64547d4cb0..5582e271d6815 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1199,6 +1199,10 @@ pub const RLIMIT_NOFILE: ::c_int = 5; pub const RLIMIT_VMEM: ::c_int = 6; pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; +#[deprecated( + since = "0.2.64", + note = "Not stable across OS versions" +)] pub const RLIM_NLIMITS: rlim_t = 7; pub const RLIM_INFINITY: rlim_t = 0x7fffffff; From 1be630f89ce2e7226b0c98d013bd38039383ac8d Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Mon, 2 Sep 2019 10:46:01 -0600 Subject: [PATCH 171/296] Deprecate AIO_LISTIO_MAX This value can vary at runtime. Applications should instead use sysconf(3) with _SC_AIO_LISTIO_MAX. --- src/unix/bsd/apple/mod.rs | 4 ++++ src/unix/bsd/freebsdlike/mod.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 6d0a5bfe32ced..8af0c8eed6fd1 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -2814,6 +2814,10 @@ pub const SIGEV_THREAD: ::c_int = 3; pub const AIO_CANCELED: ::c_int = 2; pub const AIO_NOTCANCELED: ::c_int = 4; pub const AIO_ALLDONE: ::c_int = 1; +#[deprecated( + since="0.2.64", + note="Can vary at runtime. Use sysconf(3) instead") +] pub const AIO_LISTIO_MAX: ::c_int = 16; pub const LIO_NOP: ::c_int = 0; pub const LIO_WRITE: ::c_int = 2; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 2561e2504e630..a496a1c97aad4 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -239,6 +239,10 @@ cfg_if! { } } +#[deprecated( + since="0.2.64", + note="Can vary at runtime. Use sysconf(3) instead") +] pub const AIO_LISTIO_MAX: ::c_int = 16; pub const AIO_CANCELED: ::c_int = 1; pub const AIO_NOTCANCELED: ::c_int = 2; From 15d10475411037ae408ed7b9bb9b51acfcac8dab Mon Sep 17 00:00:00 2001 From: Luke Petre Date: Wed, 21 Aug 2019 08:46:39 +0100 Subject: [PATCH 172/296] Adding UTIME_NOW and UTIME_OMIT to musl and dragonfly --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 4 ++++ src/unix/linux_like/linux/musl/mod.rs | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index fc94fd3c7136e..117d5ebd66b60 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -1002,6 +1002,10 @@ pub const SF_NOHISTORY: ::c_ulong = 0x00400000; pub const SF_CACHE: ::c_ulong = 0x00800000; pub const SF_XLINK: ::c_ulong = 0x01000000; +// timespec constants +pub const UTIME_OMIT: c_long = -2; +pub const UTIME_NOW: c_long = -1; + fn _CMSG_ALIGN(n: usize) -> usize { (n + 3) & !3 } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 9c26c7973bc50..78326d200ee02 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -370,6 +370,9 @@ pub const RLIMIT_MSGQUEUE: ::c_int = 12; pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; +pub const UTIME_OMIT: c_long = 1073741822; +pub const UTIME_NOW: c_long = 1073741823; + extern { pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, flags: ::c_uint) -> ::c_int; From 600a67fe99f165d3ef440f2753fdfe31e28501b0 Mon Sep 17 00:00:00 2001 From: Luke Petre Date: Fri, 23 Aug 2019 15:51:45 +0100 Subject: [PATCH 173/296] MUSL already actually had a definition (as part of linux_like) --- src/unix/linux_like/linux/musl/mod.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 78326d200ee02..9c26c7973bc50 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -370,9 +370,6 @@ pub const RLIMIT_MSGQUEUE: ::c_int = 12; pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; -pub const UTIME_OMIT: c_long = 1073741822; -pub const UTIME_NOW: c_long = 1073741823; - extern { pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, flags: ::c_uint) -> ::c_int; From 1e769312b26389b75e10c12ea5f946d88533795f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 6 Sep 2019 21:40:42 +0200 Subject: [PATCH 174/296] Fix the nightly FreeBSD12 toolchain to one without the build.rs bug --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index e3f777b52907f..ff978ef149104 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -22,7 +22,7 @@ task: - curl https://sh.rustup.rs -sSf --output rustup.sh - sh rustup.sh --default-toolchain nightly -y - . $HOME/.cargo/env - - rustup default nightly + - rustup default nightly-2019-08-22 test_script: - . $HOME/.cargo/env - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd From 6255a457103f2c694db97551b8f6b8fbbc15e324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Wed, 11 Sep 2019 09:02:43 +0200 Subject: [PATCH 175/296] Test FreeBSD 12 on latest nightly --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index ff978ef149104..e3f777b52907f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -22,7 +22,7 @@ task: - curl https://sh.rustup.rs -sSf --output rustup.sh - sh rustup.sh --default-toolchain nightly -y - . $HOME/.cargo/env - - rustup default nightly-2019-08-22 + - rustup default nightly test_script: - . $HOME/.cargo/env - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd From c25c36025dbc1f3073d365c4d254de5bbb570e6f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 12 Sep 2019 11:41:26 +0200 Subject: [PATCH 176/296] Workaround Azure images not supporting rustup self update --- ci/azure-install-rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index eba066923f266..87a41ec57d5f1 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -17,7 +17,7 @@ steps: - script: | @echo on if not defined TOOLCHAIN set TOOLCHAIN=nightly - rustup update %TOOLCHAIN%-%TARGET% + rustup update --no-self-update %TOOLCHAIN%-%TARGET% rustup default %TOOLCHAIN%-%TARGET% displayName: Install rust (windows) condition: eq( variables['Agent.OS'], 'Windows_NT' ) From 829992510cfc6add6f1c9bbc86debe50e1ae3ee1 Mon Sep 17 00:00:00 2001 From: Paul Adenot Date: Thu, 12 Sep 2019 14:51:13 +0200 Subject: [PATCH 177/296] Add SCHED_RESET_ON_FORK --- src/unix/linux_like/linux/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0fc7c26f2ab74..c8ff2c64d018a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1195,6 +1195,8 @@ pub const SCHED_RR: ::c_int = 2; pub const SCHED_BATCH: ::c_int = 3; pub const SCHED_IDLE: ::c_int = 5; +pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; + // netinet/in.h // NOTE: These are in addition to the constants defined in src/unix/mod.rs From 939a2e5a3a03bf303db7a04ab3d2d686f4626241 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 12 Sep 2019 15:12:33 +0200 Subject: [PATCH 178/296] Formatting --- src/cloudabi/mod.rs | 112 +- src/fixed_width_ints.rs | 40 +- src/fuchsia/align.rs | 2 +- src/fuchsia/mod.rs | 1408 +++++++++++------ src/fuchsia/no_align.rs | 2 +- src/switch.rs | 1 - src/unix/bsd/apple/b32.rs | 12 +- src/unix/bsd/apple/b64.rs | 12 +- src/unix/bsd/apple/mod.rs | 720 +++++---- src/unix/bsd/freebsdlike/dragonfly/errno.rs | 2 +- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 71 +- .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 18 +- .../freebsdlike/freebsd/freebsd11/x86_64.rs | 4 +- .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 18 +- .../freebsdlike/freebsd/freebsd12/x86_64.rs | 4 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 412 +++-- src/unix/bsd/freebsdlike/mod.rs | 527 +++--- src/unix/bsd/mod.rs | 306 ++-- src/unix/bsd/netbsdlike/mod.rs | 624 ++++---- src/unix/bsd/netbsdlike/netbsd/mod.rs | 579 ++++--- src/unix/bsd/netbsdlike/openbsd/mod.rs | 419 ++--- src/unix/haiku/mod.rs | 789 ++++----- src/unix/hermit/mod.rs | 79 +- src/unix/linux_like/android/b32/mod.rs | 12 +- src/unix/linux_like/android/b64/mod.rs | 2 +- src/unix/linux_like/android/mod.rs | 551 ++++--- src/unix/linux_like/emscripten/align.rs | 2 +- src/unix/linux_like/emscripten/mod.rs | 240 +-- src/unix/linux_like/emscripten/no_align.rs | 2 +- src/unix/linux_like/linux/align.rs | 2 +- src/unix/linux_like/linux/gnu/b32/arm.rs | 19 +- src/unix/linux_like/linux/gnu/b32/mips.rs | 184 +-- src/unix/linux_like/linux/gnu/b32/mod.rs | 17 +- src/unix/linux_like/linux/gnu/b32/powerpc.rs | 19 +- src/unix/linux_like/linux/gnu/b32/x86.rs | 38 +- src/unix/linux_like/linux/gnu/b64/aarch64.rs | 36 +- src/unix/linux_like/linux/gnu/b64/mips64.rs | 211 +-- .../linux_like/linux/gnu/b64/powerpc64.rs | 36 +- src/unix/linux_like/linux/gnu/b64/s390x.rs | 62 +- src/unix/linux_like/linux/gnu/b64/sparc64.rs | 41 +- .../linux_like/linux/gnu/b64/x86_64/mod.rs | 43 +- .../linux/gnu/b64/x86_64/not_x32.rs | 17 +- src/unix/linux_like/linux/gnu/mod.rs | 204 ++- src/unix/linux_like/linux/mod.rs | 1043 +++++++----- src/unix/linux_like/linux/musl/b32/arm.rs | 28 +- src/unix/linux_like/linux/musl/b32/hexagon.rs | 5 +- src/unix/linux_like/linux/musl/b32/mips.rs | 196 +-- src/unix/linux_like/linux/musl/b32/mod.rs | 2 +- src/unix/linux_like/linux/musl/b32/powerpc.rs | 28 +- src/unix/linux_like/linux/musl/b32/x86.rs | 30 +- src/unix/linux_like/linux/musl/b64/aarch64.rs | 28 +- src/unix/linux_like/linux/musl/b64/mips64.rs | 196 +-- src/unix/linux_like/linux/musl/b64/mod.rs | 2 +- .../linux_like/linux/musl/b64/powerpc64.rs | 28 +- src/unix/linux_like/linux/musl/b64/x86_64.rs | 31 +- src/unix/linux_like/linux/musl/mod.rs | 82 +- src/unix/linux_like/linux/no_align.rs | 2 +- src/unix/linux_like/mod.rs | 350 ++-- src/unix/mod.rs | 1023 ++++++++---- src/unix/newlib/align.rs | 2 +- src/unix/newlib/mod.rs | 154 +- src/unix/redox/mod.rs | 36 +- src/unix/solarish/compat.rs | 19 +- src/unix/solarish/mod.rs | 729 +++++---- src/unix/uclibc/align.rs | 2 +- src/unix/uclibc/arm/mod.rs | 34 +- src/unix/uclibc/mips/mips32/mod.rs | 220 +-- src/unix/uclibc/mips/mips64/mod.rs | 4 +- src/unix/uclibc/mips/mips64/no_align.rs | 1 - src/unix/uclibc/mod.rs | 873 ++++++---- src/unix/uclibc/x86_64/align.rs | 2 +- src/vxworks/mod.rs | 18 +- src/wasi.rs | 6 +- src/windows/gnu.rs | 9 +- src/windows/mod.rs | 224 ++- src/windows/msvc.rs | 9 +- 76 files changed, 7992 insertions(+), 5323 deletions(-) diff --git a/src/cloudabi/mod.rs b/src/cloudabi/mod.rs index 0d8696210947e..551ef0b5297eb 100644 --- a/src/cloudabi/mod.rs +++ b/src/cloudabi/mod.rs @@ -115,16 +115,20 @@ pub const SOCK_STREAM: ::c_int = 130; pub enum FILE {} impl ::Copy for FILE {} impl ::Clone for FILE { - fn clone(&self) -> FILE { *self } + fn clone(&self) -> FILE { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // TODO: fill this out with a struct impl ::Copy for fpos_t {} impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { *self } + fn clone(&self) -> fpos_t { + *self + } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -139,28 +143,44 @@ extern { pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, - file: *mut FILE) -> *mut FILE; + pub fn freopen( + filename: *const c_char, + mode: *const c_char, + file: *mut FILE, + ) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; pub fn fclose(file: *mut FILE) -> c_int; pub fn remove(filename: *const c_char) -> c_int; pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, - size: size_t) -> c_int; + pub fn setvbuf( + stream: *mut FILE, + buffer: *mut c_char, + mode: c_int, + size: size_t, + ) -> c_int; pub fn setbuf(stream: *mut FILE, buf: *mut c_char); pub fn getchar() -> c_int; pub fn putchar(c: c_int) -> c_int; pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) + -> *mut c_char; pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; pub fn puts(s: *const c_char) -> c_int; pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; + pub fn fread( + ptr: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; + pub fn fwrite( + ptr: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); @@ -171,10 +191,16 @@ extern { pub fn perror(s: *const c_char); pub fn atoi(s: *const c_char) -> c_int; pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_long; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_ulong; + pub fn strtol( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_long; + pub fn strtoul( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_ulong; pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; @@ -182,17 +208,27 @@ extern { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; - pub fn getline (lineptr: *mut *mut c_char, n: *mut size_t, - stream: *mut FILE) -> ssize_t; + pub fn getline( + lineptr: *mut *mut c_char, + n: *mut size_t, + stream: *mut FILE, + ) -> ssize_t; pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncpy( + dst: *mut c_char, + src: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; + pub fn strncat( + s: *mut c_char, + ct: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; @@ -204,23 +240,35 @@ extern { pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncasecmp(s1: *const c_char, s2: *const c_char, - n: size_t) -> c_int; + pub fn strncasecmp( + s1: *const c_char, + s2: *const c_char, + n: size_t, + ) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; pub fn strerror(n: c_int) -> *mut c_char; pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, - n: size_t) -> ::size_t; + pub fn wcstombs( + dest: *mut c_char, + src: *const wchar_t, + n: size_t, + ) -> ::size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; + pub fn memcpy( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memmove( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; pub fn abs(i: c_int) -> c_int; @@ -259,7 +307,7 @@ extern { pub fn pthread_create( native: *mut ::pthread_t, attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, value: *mut ::c_void, ) -> ::c_int; pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; @@ -270,7 +318,7 @@ extern { ) -> ::c_int; pub fn pthread_key_create( key: *mut pthread_key_t, - dtor: ::Option, + dtor: ::Option, ) -> ::c_int; pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; pub fn pthread_setspecific( diff --git a/src/fixed_width_ints.rs b/src/fixed_width_ints.rs index 0c25d28b366f8..014640855fa30 100644 --- a/src/fixed_width_ints.rs +++ b/src/fixed_width_ints.rs @@ -2,43 +2,19 @@ //! //! These aliases are deprecated: use the Rust types instead. -#[deprecated( - since = "0.2.55", - note = "Use i8 instead." -)] +#[deprecated(since = "0.2.55", note = "Use i8 instead.")] pub type int8_t = i8; -#[deprecated( - since = "0.2.55", - note = "Use i16 instead." -)] +#[deprecated(since = "0.2.55", note = "Use i16 instead.")] pub type int16_t = i16; -#[deprecated( - since = "0.2.55", - note = "Use i32 instead." -)] +#[deprecated(since = "0.2.55", note = "Use i32 instead.")] pub type int32_t = i32; -#[deprecated( - since = "0.2.55", - note = "Use i64 instead." -)] +#[deprecated(since = "0.2.55", note = "Use i64 instead.")] pub type int64_t = i64; -#[deprecated( - since = "0.2.55", - note = "Use u8 instead." -)] +#[deprecated(since = "0.2.55", note = "Use u8 instead.")] pub type uint8_t = u8; -#[deprecated( - since = "0.2.55", - note = "Use u16 instead." -)] +#[deprecated(since = "0.2.55", note = "Use u16 instead.")] pub type uint16_t = u16; -#[deprecated( - since = "0.2.55", - note = "Use u32 instead." -)] +#[deprecated(since = "0.2.55", note = "Use u32 instead.")] pub type uint32_t = u32; -#[deprecated( - since = "0.2.55", - note = "Use u64 instead." -)] +#[deprecated(since = "0.2.55", note = "Use u64 instead.")] pub type uint64_t = u64; diff --git a/src/fuchsia/align.rs b/src/fuchsia/align.rs index bc972751926f1..3409bf0c61955 100644 --- a/src/fuchsia/align.rs +++ b/src/fuchsia/align.rs @@ -138,5 +138,5 @@ macro_rules! expand_align { } } } - } + }; } diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 0756866f51e29..86505281d0594 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -95,20 +95,26 @@ pub type c_ulong = u64; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum DIR {} impl ::Copy for DIR {} impl ::Clone for DIR { - fn clone(&self) -> DIR { *self } + fn clone(&self) -> DIR { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos64_t {} // TODO: fill this out with a struct impl ::Copy for fpos64_t {} impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { *self } + fn clone(&self) -> fpos64_t { + *self + } } // PUB_STRUCT @@ -1261,7 +1267,8 @@ cfg_if! { self.sigev_value == other.sigev_value && self.sigev_signo == other.sigev_signo && self.sigev_notify == other.sigev_notify - && self.sigev_notify_function == other.sigev_notify_function + && self.sigev_notify_function + == other.sigev_notify_function && self.sigev_notify_attributes == other.sigev_notify_attributes } @@ -1853,13 +1860,13 @@ pub const TCOON: ::c_int = 1; pub const TCIFLUSH: ::c_int = 0; pub const TCOFLUSH: ::c_int = 1; pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::c_int = 0x00000000; -pub const NL1: ::c_int = 0x00000100; +pub const NL0: ::c_int = 0x00000000; +pub const NL1: ::c_int = 0x00000100; pub const TAB0: ::c_int = 0x00000000; -pub const CR0: ::c_int = 0x00000000; -pub const FF0: ::c_int = 0x00000000; -pub const BS0: ::c_int = 0x00000000; -pub const VT0: ::c_int = 0x00000000; +pub const CR0: ::c_int = 0x00000000; +pub const FF0: ::c_int = 0x00000000; +pub const BS0: ::c_int = 0x00000000; +pub const VT0: ::c_int = 0x00000000; pub const VERASE: usize = 2; pub const VKILL: usize = 3; pub const VINTR: usize = 0; @@ -1880,11 +1887,11 @@ pub const OPOST: ::tcflag_t = 0x1; pub const CS5: ::tcflag_t = 0x00000000; pub const CRTSCTS: ::tcflag_t = 0x80000000; pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; +pub const OCRNL: ::tcflag_t = 0o000010; +pub const ONOCR: ::tcflag_t = 0o000020; pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; +pub const OFILL: ::tcflag_t = 0o000100; +pub const OFDEL: ::tcflag_t = 0o000200; pub const CLONE_VM: ::c_int = 0x100; pub const CLONE_FS: ::c_int = 0x200; @@ -2649,7 +2656,7 @@ pub const SFD_CLOEXEC: ::c_int = 0x080000; pub const NCCS: usize = 32; -pub const O_TRUNC: ::c_int = 0x00040000; +pub const O_TRUNC: ::c_int = 0x00040000; pub const O_NOATIME: ::c_int = 0x00002000; pub const O_CLOEXEC: ::c_int = 0x00000100; pub const O_TMPFILE: ::c_int = 0x00004000; @@ -2778,12 +2785,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -2817,14 +2824,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -2882,13 +2889,13 @@ pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_MEMLOCK: ::c_int = 8; pub const O_APPEND: ::c_int = 0x00100000; -pub const O_CREAT: ::c_int = 0x00010000; -pub const O_EXCL: ::c_int = 0x00020000; +pub const O_CREAT: ::c_int = 0x00010000; +pub const O_EXCL: ::c_int = 0x00020000; pub const O_NOCTTY: ::c_int = 0x00000200; pub const O_NONBLOCK: ::c_int = 0x00000010; -pub const O_SYNC: ::c_int = (0x00000040 | O_DSYNC); -pub const O_RSYNC: ::c_int = O_SYNC; -pub const O_DSYNC: ::c_int = 0x00000020; +pub const O_SYNC: ::c_int = (0x00000040 | O_DSYNC); +pub const O_RSYNC: ::c_int = O_SYNC; +pub const O_DSYNC: ::c_int = 0x00000020; pub const SOCK_NONBLOCK: ::c_int = 2048; @@ -3113,9 +3120,9 @@ pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; pub const O_DIRECTORY: ::c_int = 0x00080000; -pub const O_DIRECT: ::c_int = 0x00000800; +pub const O_DIRECT: ::c_int = 0x00000800; pub const O_LARGEFILE: ::c_int = 0x00001000; -pub const O_NOFOLLOW: ::c_int = 0x00000080; +pub const O_NOFOLLOW: ::c_int = 0x00000080; // intentionally not public, only used for fd_set cfg_if! { @@ -3255,22 +3262,26 @@ f! { #[link(name = "c")] #[link(name = "fdio")] -extern {} +extern "C" {} #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} impl ::Copy for FILE {} impl ::Clone for FILE { - fn clone(&self) -> FILE { *self } + fn clone(&self) -> FILE { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // TODO: fill this out with a struct impl ::Copy for fpos_t {} impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { *self } + fn clone(&self) -> fpos_t { + *self + } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -3285,28 +3296,44 @@ extern { pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, - file: *mut FILE) -> *mut FILE; + pub fn freopen( + filename: *const c_char, + mode: *const c_char, + file: *mut FILE, + ) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; pub fn fclose(file: *mut FILE) -> c_int; pub fn remove(filename: *const c_char) -> c_int; pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, - size: size_t) -> c_int; + pub fn setvbuf( + stream: *mut FILE, + buffer: *mut c_char, + mode: c_int, + size: size_t, + ) -> c_int; pub fn setbuf(stream: *mut FILE, buf: *mut c_char); pub fn getchar() -> c_int; pub fn putchar(c: c_int) -> c_int; pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) + -> *mut c_char; pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; pub fn puts(s: *const c_char) -> c_int; pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; + pub fn fread( + ptr: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; + pub fn fwrite( + ptr: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); @@ -3317,10 +3344,16 @@ extern { pub fn perror(s: *const c_char); pub fn atoi(s: *const c_char) -> c_int; pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_long; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_ulong; + pub fn strtol( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_long; + pub fn strtoul( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_ulong; pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; @@ -3328,16 +3361,22 @@ extern { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncpy( + dst: *mut c_char, + src: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncat( + s: *mut c_char, + ct: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; @@ -3354,15 +3393,24 @@ extern { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, - n: size_t) -> ::size_t; + pub fn wcstombs( + dest: *mut c_char, + src: *const wchar_t, + n: size_t, + ) -> ::size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; + pub fn memcpy( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memmove( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; pub fn abs(i: c_int) -> c_int; @@ -3374,36 +3422,73 @@ extern { pub fn getpwnam(name: *const ::c_char) -> *mut passwd; pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - pub fn fprintf(stream: *mut ::FILE, - format: *const ::c_char, ...) -> ::c_int; + pub fn fprintf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, - format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf( + s: *mut ::c_char, + n: ::size_t, + format: *const ::c_char, + ... + ) -> ::c_int; pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; pub fn scanf(format: *const ::c_char, ...) -> ::c_int; - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) + -> ::c_int; pub fn getchar_unlocked() -> ::c_int; pub fn putchar_unlocked(c: ::c_int) -> ::c_int; pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - pub fn connect(socket: ::c_int, address: *const sockaddr, - len: socklen_t) -> ::c_int; + pub fn connect( + socket: ::c_int, + address: *const sockaddr, + len: socklen_t, + ) -> ::c_int; pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - pub fn accept(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - pub fn getpeername(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - pub fn getsockname(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - pub fn setsockopt(socket: ::c_int, level: ::c_int, name: ::c_int, - value: *const ::c_void, - option_len: socklen_t) -> ::c_int; - pub fn socketpair(domain: ::c_int, type_: ::c_int, protocol: ::c_int, - socket_vector: *mut ::c_int) -> ::c_int; - pub fn sendto(socket: ::c_int, buf: *const ::c_void, len: ::size_t, - flags: ::c_int, addr: *const sockaddr, - addrlen: socklen_t) -> ::ssize_t; + pub fn accept( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn getpeername( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t, + ) -> ::c_int; + pub fn socketpair( + domain: ::c_int, + type_: ::c_int, + protocol: ::c_int, + socket_vector: *mut ::c_int, + ) -> ::c_int; + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; @@ -3425,72 +3510,114 @@ extern { pub fn opendir(dirname: *const c_char) -> *mut ::DIR; pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, - result: *mut *mut ::dirent) -> ::c_int; + pub fn readdir_r( + dirp: *mut ::DIR, + entry: *mut ::dirent, + result: *mut *mut ::dirent, + ) -> ::c_int; pub fn closedir(dirp: *mut ::DIR) -> ::c_int; pub fn rewinddir(dirp: *mut ::DIR); - pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int, ...) -> ::c_int; - pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, flags: ::c_int) -> ::c_int; - pub fn fchown(fd: ::c_int, - owner: ::uid_t, - group: ::gid_t) -> ::c_int; - pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, - owner: ::uid_t, group: ::gid_t, - flags: ::c_int) -> ::c_int; - pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, - buf: *mut stat, flags: ::c_int) -> ::c_int; - pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, - newdirfd: ::c_int, newpath: *const ::c_char, - flags: ::c_int) -> ::c_int; - pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, - buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; - pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, - newdirfd: ::c_int, newpath: *const ::c_char) - -> ::c_int; - pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, - linkpath: *const ::c_char) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int) -> ::c_int; + pub fn openat( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + ... + ) -> ::c_int; + pub fn fchmodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn fchownat( + dirfd: ::c_int, + pathname: *const ::c_char, + owner: ::uid_t, + group: ::gid_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn mkdirat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; + pub fn readlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut ::c_char, + bufsiz: ::size_t, + ) -> ::ssize_t; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + pub fn unlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; pub fn alarm(seconds: ::c_uint) -> ::c_uint; pub fn chdir(dir: *const c_char) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, - gid: gid_t) -> ::c_int; - pub fn lchown(path: *const c_char, uid: uid_t, - gid: gid_t) -> ::c_int; + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; pub fn close(fd: ::c_int) -> ::c_int; pub fn dup(fd: ::c_int) -> ::c_int; pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - pub fn execl(path: *const c_char, - arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, - arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, - arg0: *const ::c_char, ...) -> ::c_int; - pub fn execv(prog: *const c_char, - argv: *const *const c_char) -> ::c_int; - pub fn execve(prog: *const c_char, argv: *const *const c_char, - envp: *const *const c_char) - -> ::c_int; - pub fn execvp(c: *const c_char, - argv: *const *const c_char) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; + pub fn execle( + path: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execlp( + file: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) - -> ::c_int; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; pub fn getlogin() -> *mut c_char; - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, - optstr: *const c_char) -> ::c_int; + pub fn getopt( + argc: ::c_int, + argv: *const *mut c_char, + optstr: *const c_char, + ) -> ::c_int; pub fn getpgid(pid: pid_t) -> pid_t; pub fn getpgrp() -> pid_t; pub fn getpid() -> pid_t; @@ -3502,11 +3629,13 @@ extern { pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; pub fn pause() -> ::c_int; pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, - align: ::size_t, - size: ::size_t) -> ::c_int; + pub fn posix_memalign( + memptr: *mut *mut ::c_void, + align: ::size_t, + size: ::size_t, + ) -> ::c_int; pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) - -> ::ssize_t; + -> ::ssize_t; pub fn rmdir(path: *const c_char) -> ::c_int; pub fn seteuid(uid: uid_t) -> ::c_int; pub fn setegid(gid: gid_t) -> ::c_int; @@ -3515,21 +3644,34 @@ extern { pub fn setsid() -> pid_t; pub fn setuid(uid: uid_t) -> ::c_int; pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn nanosleep(rqtp: *const timespec, - rmtp: *mut timespec) -> ::c_int; + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; pub fn tcgetpgrp(fd: ::c_int) -> pid_t; pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; pub fn unlink(c: *const c_char) -> ::c_int; pub fn wait(status: *mut ::c_int) -> pid_t; - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) - -> pid_t; - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) - -> ::ssize_t; - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; + pub fn waitpid( + pid: pid_t, + status: *mut ::c_int, + options: ::c_int, + ) -> pid_t; + pub fn write( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + ) -> ::ssize_t; + pub fn pread( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: off_t, + ) -> ::ssize_t; + pub fn pwrite( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off_t, + ) -> ::ssize_t; pub fn umask(mask: mode_t) -> mode_t; pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; @@ -3541,124 +3683,167 @@ extern { pub fn mlockall(flags: ::c_int) -> ::c_int; pub fn munlockall() -> ::c_int; - pub fn mmap(addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off_t) - -> *mut ::c_void; + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, - ifname: *mut ::c_char) -> *mut ::c_char; + pub fn if_indextoname( + ifindex: ::c_uint, + ifname: *mut ::c_char, + ) -> *mut ::c_char; pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; pub fn fsync(fd: ::c_int) -> ::c_int; - pub fn setenv(name: *const c_char, val: *const c_char, - overwrite: ::c_int) -> ::c_int; + pub fn setenv( + name: *const c_char, + val: *const c_char, + overwrite: ::c_int, + ) -> ::c_int; pub fn unsetenv(name: *const c_char) -> ::c_int; - pub fn symlink(path1: *const c_char, - path2: *const c_char) -> ::c_int; + pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) - -> *mut ::c_char; + pub fn realpath( + pathname: *const ::c_char, + resolved: *mut ::c_char, + ) -> *mut ::c_char; pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn times(buf: *mut ::tms) -> ::clock_t; pub fn pthread_self() -> ::pthread_t; - pub fn pthread_join(native: ::pthread_t, - value: *mut *mut ::c_void) -> ::c_int; + pub fn pthread_join( + native: ::pthread_t, + value: *mut *mut ::c_void, + ) -> ::c_int; pub fn pthread_exit(value: *mut ::c_void); pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, - stack_size: ::size_t) -> ::c_int; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, - state: ::c_int) -> ::c_int; + pub fn pthread_attr_setstacksize( + attr: *mut ::pthread_attr_t, + stack_size: ::size_t, + ) -> ::c_int; + pub fn pthread_attr_setdetachstate( + attr: *mut ::pthread_attr_t, + state: ::c_int, + ) -> ::c_int; pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; pub fn sched_yield() -> ::c_int; - pub fn pthread_key_create(key: *mut pthread_key_t, - dtor: ::Option) - -> ::c_int; + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: ::Option, + ) -> ::c_int; pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) - -> ::c_int; - pub fn pthread_mutex_init(lock: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t) -> ::c_int; + pub fn pthread_setspecific( + key: pthread_key_t, + value: *const ::c_void, + ) -> ::c_int; + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, - _type: ::c_int) -> ::c_int; - - pub fn pthread_cond_init(cond: *mut pthread_cond_t, - attr: *const pthread_condattr_t) -> ::c_int; - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t) -> ::c_int; - pub fn pthread_cond_timedwait(cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; + pub fn pthread_mutexattr_destroy( + attr: *mut pthread_mutexattr_t, + ) -> ::c_int; + pub fn pthread_mutexattr_settype( + attr: *mut pthread_mutexattr_t, + _type: ::c_int, + ) -> ::c_int; + + pub fn pthread_cond_init( + cond: *mut pthread_cond_t, + attr: *const pthread_condattr_t, + ) -> ::c_int; + pub fn pthread_cond_wait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + ) -> ::c_int; + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; - pub fn pthread_rwlock_init(lock: *mut pthread_rwlock_t, - attr: *const pthread_rwlockattr_t) -> ::c_int; + pub fn pthread_rwlock_init( + lock: *mut pthread_rwlock_t, + attr: *const pthread_rwlockattr_t, + ) -> ::c_int; pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; - pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) - -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; - - pub fn getsockopt(sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t) -> ::c_int; + pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) + -> ::c_int; + pub fn pthread_rwlockattr_destroy( + attr: *mut pthread_rwlockattr_t, + ) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; + + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; pub fn raise(signum: ::c_int) -> ::c_int; - pub fn sigaction(signum: ::c_int, - act: *const sigaction, - oldact: *mut sigaction) -> ::c_int; - - pub fn utimes(filename: *const ::c_char, - times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, - flag: ::c_int) -> *mut ::c_void; + pub fn sigaction( + signum: ::c_int, + act: *const sigaction, + oldact: *mut sigaction, + ) -> ::c_int; + + pub fn utimes( + filename: *const ::c_char, + times: *const ::timeval, + ) -> ::c_int; + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, - symbol: *const ::c_char) -> *mut ::c_void; + pub fn dlsym( + handle: *mut ::c_void, + symbol: *const ::c_char, + ) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; - pub fn getaddrinfo(node: *const c_char, - service: *const c_char, - hints: *const addrinfo, - res: *mut *mut addrinfo) -> ::c_int; + pub fn getaddrinfo( + node: *const c_char, + service: *const c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; pub fn freeaddrinfo(res: *mut addrinfo); pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; pub fn res_init() -> ::c_int; @@ -3670,45 +3855,64 @@ extern { pub fn gmtime(time_p: *const time_t) -> *mut tm; pub fn localtime(time_p: *const time_t) -> *mut tm; - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, - dev: ::dev_t) -> ::c_int; + pub fn mknod( + pathname: *const ::c_char, + mode: ::mode_t, + dev: ::dev_t, + ) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn getservbyname(name: *const ::c_char, - proto: *const ::c_char) -> *mut servent; + pub fn getservbyname( + name: *const ::c_char, + proto: *const ::c_char, + ) -> *mut servent; pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; pub fn usleep(secs: ::c_uint) -> ::c_int; - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, - flags: ::c_int) -> ::ssize_t; - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int) -> ::ssize_t; + pub fn send( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recv( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; pub fn putenv(string: *mut c_char) -> ::c_int; pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - pub fn select(nfds: ::c_int, - readfs: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *mut timeval) -> ::c_int; - pub fn setlocale(category: ::c_int, - locale: *const ::c_char) -> *mut ::c_char; + pub fn select( + nfds: ::c_int, + readfs: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *mut timeval, + ) -> ::c_int; + pub fn setlocale( + category: ::c_int, + locale: *const ::c_char, + ) -> *mut ::c_char; pub fn localeconv() -> *mut lconv; pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; pub fn sem_wait(sem: *mut sem_t) -> ::c_int; pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; pub fn sem_post(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - pub fn readlink(path: *const c_char, - buf: *mut c_char, - bufsz: ::size_t) - -> ::ssize_t; + pub fn readlink( + path: *const c_char, + buf: *mut c_char, + bufsz: ::size_t, + ) -> ::ssize_t; pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; @@ -3716,10 +3920,11 @@ extern { pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; - pub fn sigprocmask(how: ::c_int, - set: *const sigset_t, - oldset: *mut sigset_t) - -> ::c_int; + pub fn sigprocmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sigpending(set: *mut sigset_t) -> ::c_int; pub fn timegm(tm: *mut ::tm) -> time_t; @@ -3730,15 +3935,19 @@ extern { pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn pselect(nfds: ::c_int, - readfs: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *const timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn fseeko(stream: *mut ::FILE, - offset: ::off_t, - whence: ::c_int) -> ::c_int; + pub fn pselect( + nfds: ::c_int, + readfs: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *const timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn fseeko( + stream: *mut ::FILE, + offset: ::off_t, + whence: ::c_int, + ) -> ::c_int; pub fn ftello(stream: *mut ::FILE) -> ::off_t; pub fn tcdrain(fd: ::c_int) -> ::c_int; pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; @@ -3748,9 +3957,11 @@ extern { pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, - optional_actions: ::c_int, - termios: *const ::termios) -> ::c_int; + pub fn tcsetattr( + fd: ::c_int, + optional_actions: ::c_int, + termios: *const ::termios, + ) -> ::c_int; pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; pub fn tcgetsid(fd: ::c_int) -> ::pid_t; @@ -3773,72 +3984,121 @@ extern { pub fn fdatasync(fd: ::c_int) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; + pub fn pthread_getattr_np( + native: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, - c: ::c_int, - n: ::size_t) -> *mut ::c_void; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, - advise: ::c_int) -> ::c_int; + pub fn memrchr( + cx: *const ::c_void, + c: ::c_int, + n: ::size_t, + ) -> *mut ::c_void; + + pub fn posix_fadvise( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + advise: ::c_int, + ) -> ::c_int; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; - pub fn accept4(fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, - buf: *mut ::c_char, - buflen: ::size_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn ptsname_r( + fd: ::c_int, + buf: *mut ::c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, - suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, - sgid: *mut ::gid_t) -> ::c_int; + pub fn getresuid( + ruid: *mut ::uid_t, + euid: *mut ::uid_t, + suid: *mut ::uid_t, + ) -> ::c_int; + pub fn getresgid( + rgid: *mut ::gid_t, + egid: *mut ::gid_t, + sgid: *mut ::gid_t, + ) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int; pub fn brk(addr: *mut ::c_void) -> ::c_int; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize) -> ::c_int; - pub fn execvpe(file: *const ::c_char, argv: *const *const ::c_char, - envp: *const *const ::c_char) -> ::c_int; - pub fn fexecve(fd: ::c_int, argv: *const *const ::c_char, - envp: *const *const ::c_char) - -> ::c_int; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; @@ -3848,267 +4108,421 @@ extern { pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, - mode: mode_t) -> ::c_int; + pub fn shm_open( + name: *const c_char, + oflag: ::c_int, + mode: mode_t, + ) -> ::c_int; // System V IPC pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, - shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, - cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, - sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, - semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn semop( + semid: ::c_int, + sops: *mut ::sembuf, + nsops: ::size_t, + ) -> ::c_int; + pub fn semctl( + semid: ::c_int, + semnum: ::c_int, + cmd: ::c_int, + ... + ) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) + -> ::c_int; pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, - msgtyp: ::c_long, msgflg: ::c_int) -> ::ssize_t; - pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, - msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fallocate(fd: ::c_int, mode: ::c_int, - offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, - count: ::size_t) -> ::ssize_t; - pub fn signalfd(fd: ::c_int, - mask: *const ::sigset_t, - flags: ::c_int) -> ::c_int; + pub fn fallocate( + fd: ::c_int, + mode: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn posix_fallocate( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn readahead( + fd: ::c_int, + offset: ::off64_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn signalfd( + fd: ::c_int, + mask: *const ::sigset_t, + flags: ::c_int, + ) -> ::c_int; pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, - curr_value: *mut itimerspec) -> ::c_int; - pub fn timerfd_settime(fd: ::c_int, - flags: ::c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec) -> ::c_int; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn quotactl(cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char) -> ::c_int; + pub fn timerfd_gettime( + fd: ::c_int, + curr_value: *mut itimerspec, + ) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, - suffixlen: ::c_int, - flags: ::c_int) -> ::c_int; - pub fn sigtimedwait(set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, - info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; + pub fn mkostemps( + template: *mut ::c_char, + suffixlen: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn reboot(how_to: ::c_int) -> ::c_int; pub fn setfsgid(gid: ::gid_t) -> ::c_int; pub fn setfsuid(uid: ::uid_t) -> ::c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range(fd: ::c_int, offset: ::off64_t, - nbytes: ::off64_t, flags: ::c_uint) -> ::c_int; + pub fn sync_file_range( + fd: ::c_int, + offset: ::off64_t, + nbytes: ::off64_t, + flags: ::c_uint, + ) -> ::c_int; pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn glob(pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn vhangup() -> ::c_int; - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; pub fn sync(); pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t) -> ::c_int; + pub fn sched_getaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *mut cpu_set_t, + ) -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; pub fn umount(target: *const ::c_char) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, - fd_out: ::c_int, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice(fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; + pub fn tee( + fd_in: ::c_int, + fd_out: ::c_int, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn settimeofday( + tv: *const ::timeval, + tz: *const ::timezone, + ) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) + -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam( + pid: ::pid_t, + param: *const ::sched_param, + ) -> ::c_int; pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice(fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; pub fn personality(persona: ::c_ulong) -> ::c_int; pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll(fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, ...) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep(clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler(pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; pub fn sem_unlink(name: *const ::c_char) -> ::c_int; pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist(user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int) -> ::c_int; - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; pub fn dl_iterate_phdr( - callback: ::Option ::c_int>, - data: *mut ::c_void + callback: ::Option< + unsafe extern "C" fn( + info: *mut ::dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, ) -> ::c_int; } diff --git a/src/fuchsia/no_align.rs b/src/fuchsia/no_align.rs index 437da97ee0626..7ca90e0e48a39 100644 --- a/src/fuchsia/no_align.rs +++ b/src/fuchsia/no_align.rs @@ -125,5 +125,5 @@ macro_rules! expand_align { } } } - } + }; } diff --git a/src/switch.rs b/src/switch.rs index 801b8ed56e590..030ab20d7bd8e 100644 --- a/src/switch.rs +++ b/src/switch.rs @@ -47,4 +47,3 @@ cfg_if! { } } } - diff --git a/src/unix/bsd/apple/b32.rs b/src/unix/bsd/apple/b32.rs index 0afda1c238fca..eacb0307cc106 100644 --- a/src/unix/bsd/apple/b32.rs +++ b/src/unix/bsd/apple/b32.rs @@ -45,7 +45,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, __opaque: [::c_char; 36] @@ -99,8 +99,10 @@ pub const BIOCSRTIMEOUT: ::c_ulong = 0x8008426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4008426e; pub const BIOCSETFNR: ::c_ulong = 0x8008427e; -extern { - pub fn exchangedata(path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_ulong) -> ::c_int; +extern "C" { + pub fn exchangedata( + path1: *const ::c_char, + path2: *const ::c_char, + options: ::c_ulong, + ) -> ::c_int; } diff --git a/src/unix/bsd/apple/b64.rs b/src/unix/bsd/apple/b64.rs index 69bc0043bea3b..9019babc7c1ed 100644 --- a/src/unix/bsd/apple/b64.rs +++ b/src/unix/bsd/apple/b64.rs @@ -50,7 +50,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct pthread_attr_t { __sig: c_long, __opaque: [::c_char; 56] @@ -104,8 +104,10 @@ pub const BIOCSRTIMEOUT: ::c_ulong = 0x8010426d; pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e; pub const BIOCSETFNR: ::c_ulong = 0x8010427e; -extern { - pub fn exchangedata(path1: *const ::c_char, - path2: *const ::c_char, - options: ::c_uint) -> ::c_int; +extern "C" { + pub fn exchangedata( + path1: *const ::c_char, + path2: *const ::c_char, + options: ::c_uint, + ) -> ::c_int; } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 2c03ab7ea76d9..fa3ba81b0bd9f 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -41,7 +41,9 @@ deprecated_mach! { pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s! { @@ -493,7 +495,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { #[cfg_attr(libc_packedN, repr(packed(4)))] pub struct kevent { pub ident: ::uintptr_t, @@ -1244,11 +1246,11 @@ pub const LC_MONETARY_MASK: ::c_int = (1 << 3); pub const LC_NUMERIC_MASK: ::c_int = (1 << 4); pub const LC_TIME_MASK: ::c_int = (1 << 5); pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; pub const CODESET: ::nl_item = 0; pub const D_T_FMT: ::nl_item = 1; @@ -1798,17 +1800,17 @@ pub const EXTB: speed_t = 38400; pub const SIGTRAP: ::c_int = 5; -pub const GLOB_APPEND : ::c_int = 0x0001; -pub const GLOB_DOOFFS : ::c_int = 0x0002; -pub const GLOB_ERR : ::c_int = 0x0004; -pub const GLOB_MARK : ::c_int = 0x0008; -pub const GLOB_NOCHECK : ::c_int = 0x0010; -pub const GLOB_NOSORT : ::c_int = 0x0020; +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; pub const GLOB_NOESCAPE: ::c_int = 0x2000; -pub const GLOB_NOSPACE : ::c_int = -1; -pub const GLOB_ABORTED : ::c_int = -2; -pub const GLOB_NOMATCH : ::c_int = -3; +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; pub const POSIX_MADV_NORMAL: ::c_int = 0; pub const POSIX_MADV_RANDOM: ::c_int = 1; @@ -1862,10 +1864,7 @@ pub const RLIMIT_RSS: ::c_int = RLIMIT_AS; pub const RLIMIT_MEMLOCK: ::c_int = 6; pub const RLIMIT_NPROC: ::c_int = 7; pub const RLIMIT_NOFILE: ::c_int = 8; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 9; pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000; @@ -1885,7 +1884,7 @@ pub const MADV_FREE_REUSABLE: ::c_int = 7; pub const MADV_FREE_REUSE: ::c_int = 8; pub const MADV_CAN_REUSE: ::c_int = 9; -pub const MINCORE_INCORE: ::c_int = 0x1; +pub const MINCORE_INCORE: ::c_int = 0x1; pub const MINCORE_REFERENCED: ::c_int = 0x2; pub const MINCORE_MODIFIED: ::c_int = 0x4; pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; @@ -2152,39 +2151,39 @@ pub const SYSPROTO_CONTROL: ::c_int = 2; pub const PF_UNSPEC: ::c_int = AF_UNSPEC; pub const PF_LOCAL: ::c_int = AF_LOCAL; -pub const PF_UNIX: ::c_int = PF_LOCAL; -pub const PF_INET: ::c_int = AF_INET; +pub const PF_UNIX: ::c_int = PF_LOCAL; +pub const PF_INET: ::c_int = AF_INET; pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -pub const PF_PUP: ::c_int = AF_PUP; +pub const PF_PUP: ::c_int = AF_PUP; pub const PF_CHAOS: ::c_int = AF_CHAOS; -pub const PF_NS: ::c_int = AF_NS; -pub const PF_ISO: ::c_int = AF_ISO; -pub const PF_OSI: ::c_int = AF_ISO; -pub const PF_ECMA: ::c_int = AF_ECMA; +pub const PF_NS: ::c_int = AF_NS; +pub const PF_ISO: ::c_int = AF_ISO; +pub const PF_OSI: ::c_int = AF_ISO; +pub const PF_ECMA: ::c_int = AF_ECMA; pub const PF_DATAKIT: ::c_int = AF_DATAKIT; pub const PF_CCITT: ::c_int = AF_CCITT; -pub const PF_SNA: ::c_int = AF_SNA; +pub const PF_SNA: ::c_int = AF_SNA; pub const PF_DECnet: ::c_int = AF_DECnet; -pub const PF_DLI: ::c_int = AF_DLI; -pub const PF_LAT: ::c_int = AF_LAT; +pub const PF_DLI: ::c_int = AF_DLI; +pub const PF_LAT: ::c_int = AF_LAT; pub const PF_HYLINK: ::c_int = AF_HYLINK; pub const PF_APPLETALK: ::c_int = AF_APPLETALK; pub const PF_ROUTE: ::c_int = AF_ROUTE; -pub const PF_LINK: ::c_int = AF_LINK; -pub const PF_XTP: ::c_int = pseudo_AF_XTP; -pub const PF_COIP: ::c_int = AF_COIP; -pub const PF_CNT: ::c_int = AF_CNT; -pub const PF_SIP: ::c_int = AF_SIP; -pub const PF_IPX: ::c_int = AF_IPX; -pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -pub const PF_PIP: ::c_int = pseudo_AF_PIP; -pub const PF_ISDN: ::c_int = AF_ISDN; -pub const PF_KEY: ::c_int = pseudo_AF_KEY; +pub const PF_LINK: ::c_int = AF_LINK; +pub const PF_XTP: ::c_int = pseudo_AF_XTP; +pub const PF_COIP: ::c_int = AF_COIP; +pub const PF_CNT: ::c_int = AF_CNT; +pub const PF_SIP: ::c_int = AF_SIP; +pub const PF_IPX: ::c_int = AF_IPX; +pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; +pub const PF_PIP: ::c_int = pseudo_AF_PIP; +pub const PF_ISDN: ::c_int = AF_ISDN; +pub const PF_KEY: ::c_int = pseudo_AF_KEY; pub const PF_INET6: ::c_int = AF_INET6; -pub const PF_NATM: ::c_int = AF_NATM; +pub const PF_NATM: ::c_int = AF_NATM; pub const PF_SYSTEM: ::c_int = AF_SYSTEM; pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -pub const PF_PPP: ::c_int = AF_PPP; +pub const PF_PPP: ::c_int = AF_PPP; pub const NET_RT_DUMP: ::c_int = 1; pub const NET_RT_FLAGS: ::c_int = 2; @@ -2263,15 +2262,15 @@ pub const SO_NOTIFYCONFLICT: ::c_int = 0x1026; pub const SO_RANDOMPORT: ::c_int = 0x1082; pub const SO_NP_EXTENSIONS: ::c_int = 0x1083; -pub const MSG_OOB: ::c_int = 0x1; +pub const MSG_OOB: ::c_int = 0x1; pub const MSG_PEEK: ::c_int = 0x2; pub const MSG_DONTROUTE: ::c_int = 0x4; -pub const MSG_EOR: ::c_int = 0x8; +pub const MSG_EOR: ::c_int = 0x8; pub const MSG_TRUNC: ::c_int = 0x10; pub const MSG_CTRUNC: ::c_int = 0x20; pub const MSG_WAITALL: ::c_int = 0x40; pub const MSG_DONTWAIT: ::c_int = 0x80; -pub const MSG_EOF: ::c_int = 0x100; +pub const MSG_EOF: ::c_int = 0x100; pub const MSG_FLUSH: ::c_int = 0x400; pub const MSG_HOLD: ::c_int = 0x800; pub const MSG_SEND: ::c_int = 0x1000; @@ -2283,23 +2282,23 @@ pub const SCM_TIMESTAMP: ::c_int = 0x02; pub const SCM_CREDS: ::c_int = 0x03; // https://github.com/aosm/xnu/blob/master/bsd/net/if.h#L140-L156 -pub const IFF_UP: ::c_int = 0x1; // interface is up -pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid -pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging -pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net +pub const IFF_UP: ::c_int = 0x1; // interface is up +pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid +pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging +pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link -pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers -pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated -pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol -pub const IFF_PROMISC: ::c_int = 0x100;// receive all packets -pub const IFF_ALLMULTI: ::c_int = 0x200;// receive all multicast packets -pub const IFF_OACTIVE: ::c_int = 0x400;// transmission in progress -pub const IFF_SIMPLEX: ::c_int = 0x800;// can't hear own transmissions -pub const IFF_LINK0: ::c_int = 0x1000;// per link layer defined bit -pub const IFF_LINK1: ::c_int = 0x2000;// per link layer defined bit -pub const IFF_LINK2: ::c_int = 0x4000;// per link layer defined bit -pub const IFF_ALTPHYS: ::c_int = IFF_LINK2;// use alternate physical connection -pub const IFF_MULTICAST: ::c_int = 0x8000;// supports multicast +pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers +pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated +pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol +pub const IFF_PROMISC: ::c_int = 0x100; // receive all packets +pub const IFF_ALLMULTI: ::c_int = 0x200; // receive all multicast packets +pub const IFF_OACTIVE: ::c_int = 0x400; // transmission in progress +pub const IFF_SIMPLEX: ::c_int = 0x800; // can't hear own transmissions +pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit +pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit +pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit +pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection +pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; @@ -2493,7 +2492,7 @@ pub const NOTE_EXIT: u32 = 0x80000000; pub const NOTE_FORK: u32 = 0x40000000; pub const NOTE_EXEC: u32 = 0x20000000; #[doc(hidden)] -#[deprecated(since="0.2.49", note="Deprecated since MacOSX 10.9")] +#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] pub const NOTE_REAP: u32 = 0x10000000; pub const NOTE_SIGNAL: u32 = 0x08000000; pub const NOTE_EXITSTATUS: u32 = 0x04000000; @@ -2501,7 +2500,7 @@ pub const NOTE_EXIT_DETAIL: u32 = 0x02000000; pub const NOTE_PDATAMASK: u32 = 0x000fffff; pub const NOTE_PCTRLMASK: u32 = 0xfff00000; #[doc(hidden)] -#[deprecated(since="0.2.49", note="Deprecated since MacOSX 10.9")] +#[deprecated(since = "0.2.49", note = "Deprecated since MacOSX 10.9")] pub const NOTE_EXIT_REPARENTED: u32 = 0x00080000; pub const NOTE_EXIT_DETAIL_MASK: u32 = 0x00070000; pub const NOTE_EXIT_DECRYPTFAIL: u32 = 0x00010000; @@ -2534,22 +2533,22 @@ pub const BSDLY: ::tcflag_t = 0x00008000; pub const VTDLY: ::tcflag_t = 0x00010000; pub const OFDEL: ::tcflag_t = 0x00020000; -pub const NL0: ::tcflag_t = 0x00000000; +pub const NL0: ::tcflag_t = 0x00000000; pub const NL1: ::tcflag_t = 0x00000100; pub const TAB0: ::tcflag_t = 0x00000000; pub const TAB1: ::tcflag_t = 0x00000400; pub const TAB2: ::tcflag_t = 0x00000800; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00001000; -pub const CR2: ::tcflag_t = 0x00002000; -pub const CR3: ::tcflag_t = 0x00003000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00004000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00008000; +pub const CR0: ::tcflag_t = 0x00000000; +pub const CR1: ::tcflag_t = 0x00001000; +pub const CR2: ::tcflag_t = 0x00002000; +pub const CR3: ::tcflag_t = 0x00003000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const FF1: ::tcflag_t = 0x00004000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const BS1: ::tcflag_t = 0x00008000; pub const TAB3: ::tcflag_t = 0x00000004; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00010000; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VT1: ::tcflag_t = 0x00010000; pub const IUTF8: ::tcflag_t = 0x00004000; pub const CRTSCTS: ::tcflag_t = 0x00030000; @@ -2708,10 +2707,10 @@ pub const KERN_KDGETENTROPY: ::c_int = 16; pub const KERN_KDWRITETR: ::c_int = 17; pub const KERN_KDWRITEMAP: ::c_int = 18; #[doc(hidden)] -#[deprecated(since = "0.2.49", note ="Removed in MacOSX 10.12")] +#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] pub const KERN_KDENABLE_BG_TRACE: ::c_int = 19; #[doc(hidden)] -#[deprecated(since = "0.2.49", note ="Removed in MacOSX 10.12")] +#[deprecated(since = "0.2.49", note = "Removed in MacOSX 10.12")] pub const KERN_KDDISABLE_BG_TRACE: ::c_int = 20; pub const KERN_KDREADCURTHRMAP: ::c_int = 21; pub const KERN_KDSET_TYPEFILTER: ::c_int = 22; @@ -2802,8 +2801,11 @@ pub const AI_PASSIVE: ::c_int = 0x00000001; pub const AI_CANONNAME: ::c_int = 0x00000002; pub const AI_NUMERICHOST: ::c_int = 0x00000004; pub const AI_NUMERICSERV: ::c_int = 0x00001000; -pub const AI_MASK: ::c_int = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | - AI_NUMERICSERV | AI_ADDRCONFIG; +pub const AI_MASK: ::c_int = AI_PASSIVE + | AI_CANONNAME + | AI_NUMERICHOST + | AI_NUMERICSERV + | AI_ADDRCONFIG; pub const AI_ALL: ::c_int = 0x00000100; pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; pub const AI_ADDRCONFIG: ::c_int = 0x00000400; @@ -2819,9 +2821,9 @@ pub const AIO_CANCELED: ::c_int = 2; pub const AIO_NOTCANCELED: ::c_int = 4; pub const AIO_ALLDONE: ::c_int = 1; #[deprecated( - since="0.2.64", - note="Can vary at runtime. Use sysconf(3) instead") -] + since = "0.2.64", + note = "Can vary at runtime. Use sysconf(3) instead" +)] pub const AIO_LISTIO_MAX: ::c_int = 16; pub const LIO_NOP: ::c_int = 0; pub const LIO_WRITE: ::c_int = 2; @@ -2955,19 +2957,19 @@ pub const UTUN_OPT_FLAGS: ::c_int = 1; pub const UTUN_OPT_IFNAME: ::c_int = 2; // net/bpf.h -pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation -pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb) -pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb) -pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25 -pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring -pub const DLT_CHAOS: ::c_uint = 5; // Chaos -pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks -pub const DLT_ARCNET: ::c_uint = 7; // ARCNET -pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP -pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol -pub const DLT_FDDI: ::c_uint = 10; // FDDI +pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation +pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb) +pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb) +pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25 +pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring +pub const DLT_CHAOS: ::c_uint = 5; // Chaos +pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks +pub const DLT_ARCNET: ::c_uint = 7; // ARCNET +pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP +pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol +pub const DLT_FDDI: ::c_uint = 10; // FDDI pub const DLT_ATM_RFC1483: ::c_uint = 11; // LLC/SNAP encapsulated atm -pub const DLT_RAW: ::c_uint = 12; // raw IP +pub const DLT_RAW: ::c_uint = 12; // raw IP pub const DLT_LOOP: ::c_uint = 108; // https://github.com/apple/darwin-xnu/blob/master/bsd/net/bpf.h#L100 @@ -3016,18 +3018,18 @@ pub const SHM_R: ::c_int = IPC_R; pub const SHM_W: ::c_int = IPC_W; // Flags for chflags(2) -pub const UF_SETTABLE: ::c_uint = 0x0000ffff; -pub const UF_NODUMP: ::c_uint = 0x00000001; -pub const UF_IMMUTABLE: ::c_uint = 0x00000002; -pub const UF_APPEND: ::c_uint = 0x00000004; -pub const UF_OPAQUE: ::c_uint = 0x00000008; -pub const UF_COMPRESSED: ::c_uint = 0x00000020; -pub const UF_TRACKED: ::c_uint = 0x00000040; -pub const SF_SETTABLE: ::c_uint = 0xffff0000; -pub const SF_ARCHIVED: ::c_uint = 0x00010000; -pub const SF_IMMUTABLE: ::c_uint = 0x00020000; -pub const SF_APPEND: ::c_uint = 0x00040000; -pub const UF_HIDDEN: ::c_uint = 0x00008000; +pub const UF_SETTABLE: ::c_uint = 0x0000ffff; +pub const UF_NODUMP: ::c_uint = 0x00000001; +pub const UF_IMMUTABLE: ::c_uint = 0x00000002; +pub const UF_APPEND: ::c_uint = 0x00000004; +pub const UF_OPAQUE: ::c_uint = 0x00000008; +pub const UF_COMPRESSED: ::c_uint = 0x00000020; +pub const UF_TRACKED: ::c_uint = 0x00000040; +pub const SF_SETTABLE: ::c_uint = 0xffff0000; +pub const SF_ARCHIVED: ::c_uint = 0x00010000; +pub const SF_IMMUTABLE: ::c_uint = 0x00020000; +pub const SF_APPEND: ::c_uint = 0x00040000; +pub const UF_HIDDEN: ::c_uint = 0x00008000; cfg_if! { if #[cfg(libc_const_size_of)] { @@ -3097,44 +3099,53 @@ f! { } } -extern { +extern "C" { pub fn setgrent(); #[doc(hidden)] - #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.5")] + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.5")] #[link_name = "daemon$1050"] pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[doc(hidden)] - #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.10")] + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; #[doc(hidden)] - #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.10")] - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + #[deprecated(since = "0.2.49", note = "Deprecated in MacOSX 10.10")] + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "aio_suspend$UNIX2003")] - pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int, - timeout: *const ::timespec) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "aio_suspend$UNIX2003" + )] + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut sigevent) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; pub fn getutxline(ut: *const utmpx) -> *mut utmpx; @@ -3143,53 +3154,83 @@ extern { pub fn endutxent(); pub fn utmpxname(file: *const ::c_char) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, - vec: *mut ::c_char) -> ::c_int; - pub fn sysctlnametomib(name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t) - -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "mprotect$UNIX2003")] - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mincore( + addr: *const ::c_void, + len: ::size_t, + vec: *mut ::c_char, + ) -> ::c_int; + pub fn sysctlnametomib( + name: *const ::c_char, + mibp: *mut ::c_int, + sizep: *mut ::size_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mprotect$UNIX2003" + )] + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn semget(key: key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "semctl$UNIX2003")] - pub fn semctl(semid: ::c_int, - semnum: ::c_int, - cmd: ::c_int, ...) -> ::c_int; - pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "semctl$UNIX2003" + )] + pub fn semctl( + semid: ::c_int, + semnum: ::c_int, + cmd: ::c_int, + ... + ) -> ::c_int; + pub fn semop( + semid: ::c_int, + sops: *mut sembuf, + nsops: ::size_t, + ) -> ::c_int; pub fn shm_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn ftok(pathname : *const c_char, proj_id : ::c_int) -> key_t; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; + pub fn ftok(pathname: *const c_char, proj_id: ::c_int) -> key_t; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "shmctl$UNIX2003")] - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "shmctl$UNIX2003" + )] + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; - pub fn sysctlbyname(name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; #[deprecated(since = "0.2.55", note = "Use the mach crate")] pub fn mach_absolute_time() -> u64; #[deprecated(since = "0.2.55", note = "Use the mach crate")] @@ -3198,121 +3239,206 @@ extern { pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void; pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; + pub fn pthread_condattr_setpshared( + attr: *mut pthread_condattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared( + attr: *mut pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; pub fn __error() -> *mut ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "statfs$INODE64")] pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstatfs$INODE64")] pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn kevent(kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec) -> ::c_int; - pub fn kevent64(kq: ::c_int, - changelist: *const ::kevent64_s, - nchanges: ::c_int, - eventlist: *mut ::kevent64_s, - nevents: ::c_int, - flags: ::c_uint, - timeout: *const ::timespec) -> ::c_int; - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void) -> ::c_int; - pub fn ptrace(request: ::c_int, - pid: ::pid_t, - addr: *mut ::c_char, - data: ::c_int) -> ::c_int; - pub fn quotactl(special: *const ::c_char, - cmd: ::c_int, - id: ::c_int, - data: *mut ::c_char) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn kevent64( + kq: ::c_int, + changelist: *const ::kevent64_s, + nchanges: ::c_int, + eventlist: *mut ::kevent64_s, + nevents: ::c_int, + flags: ::c_uint, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + flags: ::c_int, + data: *mut ::c_void, + ) -> ::c_int; + pub fn ptrace( + request: ::c_int, + pid: ::pid_t, + addr: *mut ::c_char, + data: ::c_int, + ) -> ::c_int; + pub fn quotactl( + special: *const ::c_char, + cmd: ::c_int, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn sendfile(fd: ::c_int, - s: ::c_int, - offset: ::off_t, - len: *mut ::off_t, - hdtr: *mut ::sf_hdtr, - flags: ::c_int) -> ::c_int; + pub fn sendfile( + fd: ::c_int, + s: ::c_int, + offset: ::off_t, + len: *mut ::off_t, + hdtr: *mut ::sf_hdtr, + flags: ::c_int, + ) -> ::c_int; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::c_int; - pub fn forkpty(amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::pid_t; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t) -> ::c_int; pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn getxattr(path: *const ::c_char, name: *const ::c_char, - value: *mut ::c_void, size: ::size_t, position: u32, - flags: ::c_int) -> ::ssize_t; - pub fn fgetxattr(filedes: ::c_int, name: *const ::c_char, - value: *mut ::c_void, size: ::size_t, position: u32, - flags: ::c_int) -> ::ssize_t; - pub fn setxattr(path: *const ::c_char, name: *const ::c_char, - value: *const ::c_void, size: ::size_t, position: u32, - flags: ::c_int) -> ::c_int; - pub fn fsetxattr(filedes: ::c_int, name: *const ::c_char, - value: *const ::c_void, size: ::size_t, position: u32, - flags: ::c_int) -> ::c_int; - pub fn listxattr(path: *const ::c_char, list: *mut ::c_char, - size: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char, - size: ::size_t, flags: ::c_int) -> ::ssize_t; - pub fn removexattr(path: *const ::c_char, name: *const ::c_char, - flags: ::c_int) -> ::c_int; - pub fn renamex_np(from: *const ::c_char, to: *const ::c_char, - flags: ::c_uint) -> ::c_int; - pub fn renameatx_np(fromfd: ::c_int, from: *const ::c_char, - tofd: ::c_int, to: *const ::c_char, - flags: ::c_uint) -> ::c_int; - pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char, - flags: ::c_int) -> ::c_int; - - pub fn getgrouplist(name: *const ::c_char, - basegid: ::c_int, - groups: *mut ::c_int, - ngroups: *mut ::c_int) -> ::c_int; + pub fn getxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *mut ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::ssize_t; + pub fn setxattr( + path: *const ::c_char, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const ::c_char, + value: *const ::c_void, + size: ::size_t, + position: u32, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr( + path: *const ::c_char, + list: *mut ::c_char, + size: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn flistxattr( + filedes: ::c_int, + list: *mut ::c_char, + size: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn removexattr( + path: *const ::c_char, + name: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn renamex_np( + from: *const ::c_char, + to: *const ::c_char, + flags: ::c_uint, + ) -> ::c_int; + pub fn renameatx_np( + fromfd: ::c_int, + from: *const ::c_char, + tofd: ::c_int, + to: *const ::c_char, + flags: ::c_uint, + ) -> ::c_int; + pub fn fremovexattr( + filedes: ::c_int, + name: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::c_int, + groups: *mut ::c_int, + ngroups: *mut ::c_int, + ) -> ::c_int; pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "waitid$UNIX2003")] - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "waitid$UNIX2003" + )] + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; pub fn brk(addr: *const ::c_void) -> *mut ::c_void; pub fn sbrk(increment: ::c_int) -> *mut ::c_void; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn settimeofday( + tv: *const ::timeval, + tz: *const ::timezone, + ) -> ::c_int; #[deprecated(since = "0.2.55", note = "Use the mach crate")] pub fn _dyld_image_count() -> u32; #[deprecated(since = "0.2.55", note = "Use the mach crate")] @@ -3323,36 +3449,56 @@ extern { #[deprecated(since = "0.2.55", note = "Use the mach crate")] pub fn _dyld_get_image_name(image_index: u32) -> *const ::c_char; - pub fn posix_spawn(pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; - pub fn posix_spawnp(pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigdefault(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getsigmask(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigmask(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, - flags: *mut ::c_short) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, - flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup(attr: *const posix_spawnattr_t, - flags: *mut ::pid_t) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, - flags: ::pid_t) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags( + attr: *mut posix_spawnattr_t, + flags: ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup( + attr: *mut posix_spawnattr_t, + flags: ::pid_t, + ) -> ::c_int; pub fn posix_spawn_file_actions_init( actions: *mut posix_spawn_file_actions_t, diff --git a/src/unix/bsd/freebsdlike/dragonfly/errno.rs b/src/unix/bsd/freebsdlike/dragonfly/errno.rs index e18036adf5c52..e9ad63b86bb2d 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/errno.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/errno.rs @@ -6,7 +6,7 @@ f! { } } -extern { +extern "C" { #[thread_local] pub static mut errno: ::c_int; } diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 97d8509bcd4a4..ae03a95c698fb 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -24,7 +24,9 @@ pub type sem_t = *mut sem; pub enum sem {} impl ::Copy for sem {} impl ::Clone for sem { - fn clone(&self) -> sem { *self } + fn clone(&self) -> sem { + *self + } } s! { @@ -451,10 +453,7 @@ pub const ENOMEDIUM: ::c_int = 93; pub const EASYNC: ::c_int = 99; pub const ELAST: ::c_int = 99; pub const RLIMIT_POSIXLOCKS: ::c_int = 11; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::rlim_t = 12; pub const Q_GETQUOTA: ::c_int = 0x300; @@ -680,7 +679,7 @@ pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection pub const IFF_MULTICAST: ::c_int = 0x8000; // supports multicast -// was interface is in polling mode + // was interface is in polling mode pub const IFF_POLLING_COMPAT: ::c_int = 0x10000; pub const IFF_PPROMISC: ::c_int = 0x20000; // user-requested promisc mode pub const IFF_MONITOR: ::c_int = 0x40000; // user-requested monitor mode @@ -914,9 +913,9 @@ pub const IPPROTO_DONE: ::c_int = 257; pub const IPPROTO_UNKNOWN: ::c_int = 258; // sys/netinet/tcp.h -pub const TCP_SIGNATURE_ENABLE: ::c_int = 16; -pub const TCP_KEEPINIT: ::c_int = 32; -pub const TCP_FASTKEEP: ::c_int = 128; +pub const TCP_SIGNATURE_ENABLE: ::c_int = 16; +pub const TCP_KEEPINIT: ::c_int = 32; +pub const TCP_FASTKEEP: ::c_int = 128; pub const AF_BLUETOOTH: ::c_int = 33; pub const AF_MPLS: ::c_int = 34; @@ -956,11 +955,11 @@ pub const LC_NUMERIC_MASK: ::c_int = (1 << 3); pub const LC_TIME_MASK: ::c_int = (1 << 4); pub const LC_MESSAGES_MASK: ::c_int = (1 << 5); pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; pub const TIOCSIG: ::c_uint = 0x2000745f; pub const BTUARTDISC: ::c_int = 0x7; @@ -971,11 +970,11 @@ pub const TIOCMODS: ::c_ulong = 0x80047404; pub const TIOCREMOTE: ::c_ulong = 0x80047469; // Constants used by "at" family of system calls. -pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor +pub const AT_FDCWD: ::c_int = 0xFFFAFDCD; // invalid file descriptor pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1; -pub const AT_REMOVEDIR: ::c_int = 2; -pub const AT_EACCESS: ::c_int = 4; -pub const AT_SYMLINK_FOLLOW: ::c_int = 8; +pub const AT_REMOVEDIR: ::c_int = 2; +pub const AT_EACCESS: ::c_int = 4; +pub const AT_SYMLINK_FOLLOW: ::c_int = 8; pub const VCHECKPT: usize = 19; @@ -1000,11 +999,11 @@ pub const RTP_PRIO_THREAD: ::c_ushort = 3; // Flags for chflags(2) pub const UF_NOHISTORY: ::c_ulong = 0x00000040; -pub const UF_CACHE: ::c_ulong = 0x00000080; -pub const UF_XLINK: ::c_ulong = 0x00000100; +pub const UF_CACHE: ::c_ulong = 0x00000080; +pub const UF_XLINK: ::c_ulong = 0x00000100; pub const SF_NOHISTORY: ::c_ulong = 0x00400000; -pub const SF_CACHE: ::c_ulong = 0x00800000; -pub const SF_XLINK: ::c_ulong = 0x01000000; +pub const SF_CACHE: ::c_ulong = 0x00800000; +pub const SF_XLINK: ::c_ulong = 0x01000000; // timespec constants pub const UTIME_OMIT: c_long = -2; @@ -1046,23 +1045,35 @@ f! { } } -extern { +extern "C" { pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; pub fn setutxdb(_type: ::c_uint, file: *mut ::c_char) -> ::c_int; - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, - timeout: *mut ::timespec) -> ::c_int; + pub fn aio_waitcomplete( + iocbp: *mut *mut aiocb, + timeout: *mut ::timespec, + ) -> ::c_int; pub fn freelocale(loc: ::locale_t); - pub fn lwp_rtprio(function: ::c_int, pid: ::pid_t, lwpid: lwpid_t, - rtp: *mut super::rtprio) -> ::c_int; + pub fn lwp_rtprio( + function: ::c_int, + pid: ::pid_t, + lwpid: lwpid_t, + rtp: *mut super::rtprio, + ) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs index b71b284e42554..79a152fc85834 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs @@ -191,21 +191,29 @@ cfg_if! { pub const ELAST: ::c_int = 96; -extern { +extern "C" { // Return type ::c_int was removed in FreeBSD 12 pub fn setgrent() -> ::c_int; // Type of `addr` argument changed from `const void*` to `void*` // in FreeBSD 12 - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *const ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; // Return type ::c_int was removed in FreeBSD 12 pub fn freelocale(loc: ::locale_t) -> ::c_int; // Return type ::c_int changed to ::ssize_t in FreeBSD 12: - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, - msgtyp: ::c_long, msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/x86_64.rs index bba277e70036e..f32128f775574 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd11/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd11/x86_64.rs @@ -26,5 +26,7 @@ pub struct stat { impl ::Copy for ::stat {} impl ::Clone for ::stat { - fn clone(&self) -> ::stat { *self } + fn clone(&self) -> ::stat { + *self + } } diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 464744d140da4..6bf7f957e692e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -199,13 +199,21 @@ cfg_if! { } } -extern { +extern "C" { pub fn setgrent(); - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn freelocale(loc: ::locale_t); - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, - msgtyp: ::c_long, msgflg: ::c_int) -> ::ssize_t; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs index dbaa4ae2f9e3c..80c6fa1684530 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs @@ -28,5 +28,7 @@ pub struct stat { impl ::Copy for ::stat {} impl ::Clone for ::stat { - fn clone(&self) -> ::stat { *self } + fn clone(&self) -> ::stat { + *self + } } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index c4ad2b3952756..afceb51de049c 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -337,10 +337,7 @@ pub const RLIMIT_NPTS: ::c_int = 11; pub const RLIMIT_SWAP: ::c_int = 12; pub const RLIMIT_KQUEUES: ::c_int = 13; pub const RLIMIT_UMTXP: ::c_int = 14; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::rlim_t = 15; pub const Q_GETQUOTA: ::c_int = 0x700; @@ -658,12 +655,12 @@ pub const IFF_BROADCAST: ::c_int = 0x2; // (i) broadcast address valid pub const IFF_DEBUG: ::c_int = 0x4; // (n) turn on debugging pub const IFF_LOOPBACK: ::c_int = 0x8; // (i) is a loopback net pub const IFF_POINTOPOINT: ::c_int = 0x10; // (i) is a point-to-point link -// 0x20 was IFF_SMART + // 0x20 was IFF_SMART pub const IFF_RUNNING: ::c_int = 0x40; // (d) resources allocated #[doc(hidden)] #[deprecated( - since="0.2.54", - note="IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" + since = "0.2.54", + note = "IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" )] pub const IFF_DRV_RUNNING: ::c_int = 0x40; pub const IFF_NOARP: ::c_int = 0x80; // (n) no address resolution protocol @@ -673,7 +670,7 @@ pub const IFF_OACTIVE: ::c_int = 0x400; // (d) tx hardware queue is full #[doc(hidden)] #[deprecated( since = "0.2.54", - note = "Use the portable `IFF_OACTIVE` instead", + note = "Use the portable `IFF_OACTIVE` instead" )] pub const IFF_DRV_OACTIVE: ::c_int = 0x400; pub const IFF_SIMPLEX: ::c_int = 0x800; // (i) can't hear own transmissions @@ -682,7 +679,7 @@ pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection pub const IFF_MULTICAST: ::c_int = 0x8000; // (i) supports multicast -// (i) unconfigurable using ioctl(2) + // (i) unconfigurable using ioctl(2) pub const IFF_CANTCONFIG: ::c_int = 0x10000; pub const IFF_PPROMISC: ::c_int = 0x20000; // (n) user-requested promisc mode pub const IFF_MONITOR: ::c_int = 0x40000; // (n) user-requested monitor mode @@ -942,8 +939,8 @@ pub const TCP_PCAP_IN: ::c_int = 4096; pub const IP_BINDANY: ::c_int = 24; pub const IP_BINDMULTI: ::c_int = 25; pub const IP_RSS_LISTEN_BUCKET: ::c_int = 26; -pub const IP_ORIGDSTADDR : ::c_int = 27; -pub const IP_RECVORIGDSTADDR : ::c_int = IP_ORIGDSTADDR; +pub const IP_ORIGDSTADDR: ::c_int = 27; +pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; pub const IP_RECVTOS: ::c_int = 68; @@ -973,9 +970,9 @@ pub const IPC_RMID: ::c_int = 0; pub const IPC_SET: ::c_int = 1; pub const IPC_STAT: ::c_int = 2; pub const IPC_INFO: ::c_int = 3; -pub const IPC_R : ::c_int = 0o400; -pub const IPC_W : ::c_int = 0o200; -pub const IPC_M : ::c_int = 0o10000; +pub const IPC_R: ::c_int = 0o400; +pub const IPC_W: ::c_int = 0o200; +pub const IPC_M: ::c_int = 0o10000; pub const MSG_NOERROR: ::c_int = 0o10000; pub const SHM_RDONLY: ::c_int = 0o10000; pub const SHM_RND: ::c_int = 0o20000; @@ -992,16 +989,16 @@ pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; // they were all removed in svn r262489. They remain here for backwards // compatibility only, and are scheduled to be removed in libc 1.0.0. #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const CTL_MAXID: ::c_int = 10; #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const KERN_MAXID: ::c_int = 38; #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const HW_MAXID: ::c_int = 13; #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const USER_MAXID: ::c_int = 21; #[doc(hidden)] pub const CTL_P1003_1B_MAXID: ::c_int = 26; @@ -1024,16 +1021,16 @@ pub const SHUTDOWN_TIME: ::c_short = 8; pub const LC_COLLATE_MASK: ::c_int = (1 << 0); pub const LC_CTYPE_MASK: ::c_int = (1 << 1); -pub const LC_MONETARY_MASK: ::c_int =(1 << 2); +pub const LC_MONETARY_MASK: ::c_int = (1 << 2); pub const LC_NUMERIC_MASK: ::c_int = (1 << 3); pub const LC_TIME_MASK: ::c_int = (1 << 4); pub const LC_MESSAGES_MASK: ::c_int = (1 << 5); pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK - | LC_CTYPE_MASK - | LC_MESSAGES_MASK - | LC_MONETARY_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK; + | LC_CTYPE_MASK + | LC_MESSAGES_MASK + | LC_MONETARY_MASK + | LC_NUMERIC_MASK + | LC_TIME_MASK; pub const WSTOPPED: ::c_int = 2; // same as WUNTRACED pub const WCONTINUED: ::c_int = 4; @@ -1088,14 +1085,14 @@ pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; // Flags for chflags(2) -pub const UF_SYSTEM: ::c_ulong = 0x00000080; -pub const UF_SPARSE: ::c_ulong = 0x00000100; -pub const UF_OFFLINE: ::c_ulong = 0x00000200; -pub const UF_REPARSE: ::c_ulong = 0x00000400; -pub const UF_ARCHIVE: ::c_ulong = 0x00000800; -pub const UF_READONLY: ::c_ulong = 0x00001000; -pub const UF_HIDDEN: ::c_ulong = 0x00008000; -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; +pub const UF_SYSTEM: ::c_ulong = 0x00000080; +pub const UF_SPARSE: ::c_ulong = 0x00000100; +pub const UF_OFFLINE: ::c_ulong = 0x00000200; +pub const UF_REPARSE: ::c_ulong = 0x00000400; +pub const UF_ARCHIVE: ::c_ulong = 0x00000800; +pub const UF_READONLY: ::c_ulong = 0x00001000; +pub const UF_HIDDEN: ::c_ulong = 0x00008000; +pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; fn _ALIGN(p: usize) -> usize { (p + _ALIGNBYTES) & !_ALIGNBYTES @@ -1139,151 +1136,241 @@ f! { } } -extern { +extern "C" { pub fn __error() -> *mut ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - - pub fn extattr_delete_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_delete_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_delete_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_get_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_get_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_get_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_list_fd(fd: ::c_int, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_list_file(path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_list_link(path: *const ::c_char, - attrnamespace: ::c_int, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_set_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_set_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_set_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::ssize_t; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; + + pub fn extattr_delete_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_get_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_fd( + fd: ::c_int, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_file( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_list_link( + path: *const ::c_char, + attrnamespace: ::c_int, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_set_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; pub fn jail(jail: *mut ::jail) -> ::c_int; pub fn jail_attach(jid: ::c_int) -> ::c_int; pub fn jail_remove(jid: ::c_int) -> ::c_int; - pub fn jail_get(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) - -> ::c_int; - pub fn jail_set(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) - -> ::c_int; + pub fn jail_get( + iov: *mut ::iovec, + niov: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn jail_set( + iov: *mut ::iovec, + niov: ::c_uint, + flags: ::c_int, + ) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, - advise: ::c_int) -> ::c_int; + pub fn posix_fallocate( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn posix_fadvise( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + advise: ::c_int, + ) -> ::c_int; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, - suffixlen: ::c_int, - flags: ::c_int) -> ::c_int; + pub fn mkostemps( + template: *mut ::c_char, + suffixlen: ::c_int, + flags: ::c_int, + ) -> ::c_int; pub fn getutxuser(user: *const ::c_char) -> *mut utmpx; pub fn setutxdb(_type: ::c_int, file: *const ::c_char) -> ::c_int; - pub fn aio_waitcomplete(iocbp: *mut *mut aiocb, - timeout: *mut ::timespec) -> ::ssize_t; + pub fn aio_waitcomplete( + iocbp: *mut *mut aiocb, + timeout: *mut ::timespec, + ) -> ::ssize_t; pub fn mq_getfd_np(mqd: ::mqd_t) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: ::id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: ::id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, - buf: *mut ::msqid_ds) -> ::c_int; + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; + pub fn msgctl( + msqid: ::c_int, + cmd: ::c_int, + buf: *mut ::msqid_ds, + ) -> ::c_int; pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, - msgflg: ::c_int) -> ::c_int; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; pub fn cfmakesane(termios: *mut ::termios); - pub fn fexecve(fd: ::c_int, argv: *const *const ::c_char, - envp: *const *const ::c_char) - -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; pub fn pdfork(fdp: *mut ::c_int, flags: ::c_int) -> ::pid_t; pub fn pdgetpid(fd: ::c_int, pidp: *mut ::pid_t) -> ::c_int; pub fn pdkill(fd: ::c_int, signum: ::c_int) -> ::c_int; - pub fn rtprio_thread(function: ::c_int, lwpid: ::lwpid_t, - rtp: *mut super::rtprio) -> ::c_int; - - pub fn posix_spawn(pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; - pub fn posix_spawnp(pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; + pub fn rtprio_thread( + function: ::c_int, + lwpid: ::lwpid_t, + rtp: *mut super::rtprio, + ) -> ::c_int; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigdefault(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getsigmask(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigmask(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, - flags: *mut ::c_short) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, - flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup(attr: *const posix_spawnattr_t, - flags: *mut ::pid_t) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, - flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy(attr: *const posix_spawnattr_t, - flags: *mut ::c_int) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, - flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags( + attr: *mut posix_spawnattr_t, + flags: ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup( + attr: *mut posix_spawnattr_t, + flags: ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy( + attr: *mut posix_spawnattr_t, + flags: ::c_int, + ) -> ::c_int; pub fn posix_spawnattr_getschedparam( attr: *const posix_spawnattr_t, param: *mut ::sched_param, @@ -1330,18 +1417,31 @@ extern { pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; pub fn __xuname(nmln: ::c_int, buf: *mut ::c_void) -> ::c_int; - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::size_t, - flags: ::c_int) -> ::ssize_t; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::size_t, - flags: ::c_int, timeout: *const ::timespec) -> ::ssize_t; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::size_t, + flags: ::c_int, + timeout: *const ::timespec, + ) -> ::ssize_t; } #[link(name = "util")] -extern { - pub fn extattr_namespace_to_string(attrnamespace: ::c_int, - string: *mut *mut ::c_char) -> ::c_int; - pub fn extattr_string_to_namespace(string: *const ::c_char, - attrnamespace: *mut ::c_int) -> ::c_int; +extern "C" { + pub fn extattr_namespace_to_string( + attrnamespace: ::c_int, + string: *mut *mut ::c_char, + ) -> ::c_int; + pub fn extattr_string_to_namespace( + string: *const ::c_char, + attrnamespace: *mut ::c_int, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index a496a1c97aad4..c1128952f2a64 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -18,7 +18,9 @@ pub type vm_size_t = ::uintptr_t; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } impl siginfo_t { @@ -240,9 +242,9 @@ cfg_if! { } #[deprecated( - since="0.2.64", - note="Can vary at runtime. Use sysconf(3) instead") -] + since = "0.2.64", + note = "Can vary at runtime. Use sysconf(3) instead" +)] pub const AIO_LISTIO_MAX: ::c_int = 16; pub const AIO_CANCELED: ::c_int = 1; pub const AIO_NOTCANCELED: ::c_int = 2; @@ -524,9 +526,15 @@ pub const EMULTIHOP: ::c_int = 90; pub const ENOLINK: ::c_int = 91; pub const EPROTO: ::c_int = 92; -pub const POLLSTANDARD: ::c_short = ::POLLIN | ::POLLPRI | ::POLLOUT | - ::POLLRDNORM | ::POLLRDBAND | ::POLLWRBAND | ::POLLERR | - ::POLLHUP | ::POLLNVAL; +pub const POLLSTANDARD: ::c_short = ::POLLIN + | ::POLLPRI + | ::POLLOUT + | ::POLLRDNORM + | ::POLLRDBAND + | ::POLLWRBAND + | ::POLLERR + | ::POLLHUP + | ::POLLNVAL; pub const EAI_AGAIN: ::c_int = 2; pub const EAI_BADFLAGS: ::c_int = 3; @@ -547,17 +555,17 @@ pub const F_SETFL: ::c_int = 4; pub const SIGTRAP: ::c_int = 5; -pub const GLOB_APPEND : ::c_int = 0x0001; -pub const GLOB_DOOFFS : ::c_int = 0x0002; -pub const GLOB_ERR : ::c_int = 0x0004; -pub const GLOB_MARK : ::c_int = 0x0008; -pub const GLOB_NOCHECK : ::c_int = 0x0010; -pub const GLOB_NOSORT : ::c_int = 0x0020; +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; pub const GLOB_NOESCAPE: ::c_int = 0x2000; -pub const GLOB_NOSPACE : ::c_int = -1; -pub const GLOB_ABORTED : ::c_int = -2; -pub const GLOB_NOMATCH : ::c_int = -3; +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; pub const POSIX_MADV_NORMAL: ::c_int = 0; pub const POSIX_MADV_RANDOM: ::c_int = 1; @@ -598,7 +606,7 @@ pub const MADV_AUTOSYNC: ::c_int = 7; pub const MADV_NOCORE: ::c_int = 8; pub const MADV_CORE: ::c_int = 9; -pub const MINCORE_INCORE: ::c_int = 0x1; +pub const MINCORE_INCORE: ::c_int = 0x1; pub const MINCORE_REFERENCED: ::c_int = 0x2; pub const MINCORE_MODIFIED: ::c_int = 0x4; pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; @@ -694,7 +702,7 @@ pub const SOMAXCONN: ::c_int = 128; pub const MSG_OOB: ::c_int = 0x00000001; pub const MSG_PEEK: ::c_int = 0x00000002; pub const MSG_DONTROUTE: ::c_int = 0x00000004; -pub const MSG_EOR: ::c_int = 0x00000008; +pub const MSG_EOR: ::c_int = 0x00000008; pub const MSG_TRUNC: ::c_int = 0x00000010; pub const MSG_CTRUNC: ::c_int = 0x00000020; pub const MSG_WAITALL: ::c_int = 0x00000040; @@ -725,11 +733,11 @@ pub const IPV6_PKTINFO: ::c_int = 46; pub const IPV6_RECVTCLASS: ::c_int = 57; pub const IPV6_TCLASS: ::c_int = 61; -pub const TCP_NOPUSH: ::c_int = 4; -pub const TCP_NOOPT: ::c_int = 8; -pub const TCP_KEEPIDLE: ::c_int = 256; +pub const TCP_NOPUSH: ::c_int = 4; +pub const TCP_NOOPT: ::c_int = 8; +pub const TCP_KEEPIDLE: ::c_int = 256; pub const TCP_KEEPINTVL: ::c_int = 512; -pub const TCP_KEEPCNT: ::c_int = 1024; +pub const TCP_KEEPCNT: ::c_int = 1024; pub const SOL_SOCKET: ::c_int = 0xffff; pub const SO_DEBUG: ::c_int = 0x01; @@ -765,10 +773,10 @@ pub const LOCK_UN: ::c_int = 8; pub const MAP_COPY: ::c_int = 0x0002; #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const MAP_RENAME: ::c_int = 0x0020; #[doc(hidden)] -#[deprecated(since="0.2.54",note="Removed in FreeBSD 11")] +#[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] pub const MAP_NORESERVE: ::c_int = 0x0040; pub const MAP_HASSEMAPHORE: ::c_int = 0x0200; pub const MAP_STACK: ::c_int = 0x0400; @@ -1079,17 +1087,17 @@ pub const RTP_LOOKUP: ::c_int = 0; pub const RTP_SET: ::c_int = 1; // Flags for chflags(2) -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const UF_NOUNLINK: ::c_ulong = 0x00000010; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_APPEND: ::c_ulong = 0x00040000; -pub const SF_NOUNLINK: ::c_ulong = 0x00100000; +pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; +pub const UF_NODUMP: ::c_ulong = 0x00000001; +pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; +pub const UF_APPEND: ::c_ulong = 0x00000004; +pub const UF_OPAQUE: ::c_ulong = 0x00000008; +pub const UF_NOUNLINK: ::c_ulong = 0x00000010; +pub const SF_SETTABLE: ::c_ulong = 0xffff0000; +pub const SF_ARCHIVED: ::c_ulong = 0x00010000; +pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; +pub const SF_APPEND: ::c_ulong = 0x00040000; +pub const SF_NOUNLINK: ::c_ulong = 0x00100000; pub const TIMER_ABSTIME: ::c_int = 1; @@ -1111,55 +1119,74 @@ f! { } } -extern { +extern "C" { pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; - pub fn accept4(s: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, flags: ::c_int) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn accept4( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int, - timeout: *const ::timespec) -> ::c_int; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn chflagsat(fd: ::c_int, path: *const ::c_char, flags: ::c_ulong, - atflag: ::c_int) -> ::c_int; + pub fn chflagsat( + fd: ::c_int, + path: *const ::c_char, + flags: ::c_ulong, + atflag: ::c_int, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn endutxent(); pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; - pub fn getgrent_r(grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] - pub fn getpwent_r(pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd) -> ::c_int; - pub fn getgrouplist(name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int) -> ::c_int; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + servlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; pub fn getutxent() -> *mut utmpx; pub fn getutxid(ut: *const utmpx) -> *mut utmpx; @@ -1169,167 +1196,259 @@ extern { all(target_os = "freebsd", freebsd11), link_name = "kevent@FBSD_1.0" )] - pub fn kevent(kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut sigevent) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, - c: ::c_int, - n: ::size_t) -> *mut ::c_void; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn memrchr( + cx: *const ::c_void, + c: ::c_int, + n: ::size_t, + ) -> *mut ::c_void; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; #[cfg_attr( all(target_os = "freebsd", freebsd11), link_name = "mknodat@FBSD_1.1" )] - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; + pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) + -> ::c_int; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; - pub fn mq_timedreceive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint, - abs_timeout: *const ::timespec) -> ::ssize_t; - pub fn mq_timedsend(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint, - abs_timeout: *const ::timespec) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr, + ) -> ::c_int; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, - vec: *mut ::c_char) -> ::c_int; - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn mincore( + addr: *const ::c_void, + len: ::size_t, + vec: *mut ::c_char, + ) -> ::c_int; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn ppoll(fds: *mut ::pollfd, - nfds: ::nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn pthread_attr_get_np(tid: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: ::nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn pthread_attr_get_np( + tid: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared( + attr: *mut pthread_condattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared( + attr: *mut pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); - pub fn ptrace(request: ::c_int, - pid: ::pid_t, - addr: *mut ::c_char, - data: ::c_int) -> ::c_int; + pub fn ptrace( + request: ::c_int, + pid: ::pid_t, + addr: *mut ::c_char, + data: ::c_int, + ) -> ::c_int; pub fn pututxline(ut: *const utmpx) -> *mut utmpx; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; - pub fn rtprio(function: ::c_int, pid: ::pid_t, rtp: *mut rtprio) -> ::c_int; + pub fn rtprio( + function: ::c_int, + pid: ::pid_t, + rtp: *mut rtprio, + ) -> ::c_int; pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_setscheduler(pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sendfile(fd: ::c_int, - s: ::c_int, - offset: ::off_t, - nbytes: ::size_t, - hdtr: *mut ::sf_hdtr, - sbytes: *mut ::off_t, - flags: ::c_int) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sendfile( + fd: ::c_int, + s: ::c_int, + offset: ::off_t, + nbytes: ::size_t, + hdtr: *mut ::sf_hdtr, + sbytes: *mut ::off_t, + flags: ::c_int, + ) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) + -> ::c_int; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn settimeofday( + tv: *const ::timeval, + tz: *const ::timezone, + ) -> ::c_int; pub fn setutxent(); - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) - -> ::c_int; - pub fn sigtimedwait(set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, - info: *mut siginfo_t) -> ::c_int; - pub fn sysctl(name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t) - -> ::c_int; - pub fn sysctlbyname(name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t) - -> ::c_int; - pub fn sysctlnametomib(name: *const ::c_char, - mibp: *mut ::c_int, - sizep: *mut ::size_t) - -> ::c_int; + pub fn shm_open( + name: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlnametomib( + name: *const ::c_char, + mibp: *mut ::c_int, + sizep: *mut ::size_t, + ) -> ::c_int; pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; } #[link(name = "util")] -extern { - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::c_int; - pub fn forkpty(amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::pid_t; +extern "C" { + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; } diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 40b18c638dafa..6cb40a0d804f8 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -103,7 +103,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct sockaddr_un { pub sun_len: u8, pub sun_family: sa_family_t, @@ -506,16 +506,23 @@ f! { } } -extern { - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "getrlimit$UNIX2003")] +extern "C" { + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getrlimit$UNIX2003" + )] pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "setrlimit$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setrlimit$UNIX2003" + )] pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; pub fn labs(i: ::c_long) -> ::c_long; @@ -524,8 +531,7 @@ extern { pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn setgroups(ngroups: ::c_int, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; pub fn kqueue() -> ::c_int; pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int; @@ -543,9 +549,11 @@ extern { pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn getpeereid(socket: ::c_int, - euid: *mut ::uid_t, - egid: *mut ::gid_t) -> ::c_int; + pub fn getpeereid( + socket: ::c_int, + euid: *mut ::uid_t, + egid: *mut ::gid_t, + ) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] @@ -553,11 +561,14 @@ extern { all(target_os = "freebsd", freebsd11), link_name = "glob@FBSD_1.0" )] - pub fn glob(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] #[cfg_attr( all(target_os = "freebsd", freebsd11), @@ -565,130 +576,205 @@ extern { )] pub fn globfree(pglob: *mut ::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "seekdir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "seekdir$INODE64$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "seekdir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "seekdir$INODE64$UNIX2003" + )] pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "telldir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "telldir$INODE64$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "telldir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "telldir$INODE64$UNIX2003" + )] pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "msync$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "msync$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "recvfrom$UNIX2003")] - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recvfrom$UNIX2003" + )] + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__futimes50")] pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "bind$UNIX2003")] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "writev$UNIX2003")] - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "readv$UNIX2003")] - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sendmsg$UNIX2003")] - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "recvmsg$UNIX2003")] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "bind$UNIX2003" + )] + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "writev$UNIX2003" + )] + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "readv$UNIX2003" + )] + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sendmsg$UNIX2003" + )] + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recvmsg$UNIX2003" + )] + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; pub fn sync(); #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cancel$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cancel$UNIX2003" + )] pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; pub fn sem_unlink(name: *const ::c_char) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int; } diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 2630a2f0bc196..5ce68e2c17fa6 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -15,13 +15,17 @@ pub type sem_t = *mut sem; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum sem {} impl ::Copy for sem {} impl ::Clone for sem { - fn clone(&self) -> sem { *self } + fn clone(&self) -> sem { + *self + } } s! { @@ -120,201 +124,201 @@ pub const CRNCYSTR: ::nl_item = 50; pub const CODESET: ::nl_item = 51; -pub const EXIT_FAILURE : ::c_int = 1; -pub const EXIT_SUCCESS : ::c_int = 0; -pub const RAND_MAX : ::c_int = 2147483647; -pub const EOF : ::c_int = -1; -pub const SEEK_SET : ::c_int = 0; -pub const SEEK_CUR : ::c_int = 1; -pub const SEEK_END : ::c_int = 2; -pub const _IOFBF : ::c_int = 0; -pub const _IONBF : ::c_int = 2; -pub const _IOLBF : ::c_int = 1; -pub const BUFSIZ : ::c_uint = 1024; -pub const FOPEN_MAX : ::c_uint = 20; -pub const FILENAME_MAX : ::c_uint = 1024; -pub const L_tmpnam : ::c_uint = 1024; -pub const O_NOCTTY : ::c_int = 32768; -pub const S_IFIFO : mode_t = 4096; -pub const S_IFCHR : mode_t = 8192; -pub const S_IFBLK : mode_t = 24576; -pub const S_IFDIR : mode_t = 16384; -pub const S_IFREG : mode_t = 32768; -pub const S_IFLNK : mode_t = 40960; -pub const S_IFSOCK : mode_t = 49152; -pub const S_IFMT : mode_t = 61440; -pub const S_IEXEC : mode_t = 64; -pub const S_IWRITE : mode_t = 128; -pub const S_IREAD : mode_t = 256; -pub const S_IRWXU : mode_t = 448; -pub const S_IXUSR : mode_t = 64; -pub const S_IWUSR : mode_t = 128; -pub const S_IRUSR : mode_t = 256; -pub const S_IRWXG : mode_t = 56; -pub const S_IXGRP : mode_t = 8; -pub const S_IWGRP : mode_t = 16; -pub const S_IRGRP : mode_t = 32; -pub const S_IRWXO : mode_t = 7; -pub const S_IXOTH : mode_t = 1; -pub const S_IWOTH : mode_t = 2; -pub const S_IROTH : mode_t = 4; -pub const F_OK : ::c_int = 0; -pub const R_OK : ::c_int = 4; -pub const W_OK : ::c_int = 2; -pub const X_OK : ::c_int = 1; -pub const STDIN_FILENO : ::c_int = 0; -pub const STDOUT_FILENO : ::c_int = 1; -pub const STDERR_FILENO : ::c_int = 2; -pub const F_LOCK : ::c_int = 1; -pub const F_TEST : ::c_int = 3; -pub const F_TLOCK : ::c_int = 2; -pub const F_ULOCK : ::c_int = 0; +pub const EXIT_FAILURE: ::c_int = 1; +pub const EXIT_SUCCESS: ::c_int = 0; +pub const RAND_MAX: ::c_int = 2147483647; +pub const EOF: ::c_int = -1; +pub const SEEK_SET: ::c_int = 0; +pub const SEEK_CUR: ::c_int = 1; +pub const SEEK_END: ::c_int = 2; +pub const _IOFBF: ::c_int = 0; +pub const _IONBF: ::c_int = 2; +pub const _IOLBF: ::c_int = 1; +pub const BUFSIZ: ::c_uint = 1024; +pub const FOPEN_MAX: ::c_uint = 20; +pub const FILENAME_MAX: ::c_uint = 1024; +pub const L_tmpnam: ::c_uint = 1024; +pub const O_NOCTTY: ::c_int = 32768; +pub const S_IFIFO: mode_t = 4096; +pub const S_IFCHR: mode_t = 8192; +pub const S_IFBLK: mode_t = 24576; +pub const S_IFDIR: mode_t = 16384; +pub const S_IFREG: mode_t = 32768; +pub const S_IFLNK: mode_t = 40960; +pub const S_IFSOCK: mode_t = 49152; +pub const S_IFMT: mode_t = 61440; +pub const S_IEXEC: mode_t = 64; +pub const S_IWRITE: mode_t = 128; +pub const S_IREAD: mode_t = 256; +pub const S_IRWXU: mode_t = 448; +pub const S_IXUSR: mode_t = 64; +pub const S_IWUSR: mode_t = 128; +pub const S_IRUSR: mode_t = 256; +pub const S_IRWXG: mode_t = 56; +pub const S_IXGRP: mode_t = 8; +pub const S_IWGRP: mode_t = 16; +pub const S_IRGRP: mode_t = 32; +pub const S_IRWXO: mode_t = 7; +pub const S_IXOTH: mode_t = 1; +pub const S_IWOTH: mode_t = 2; +pub const S_IROTH: mode_t = 4; +pub const F_OK: ::c_int = 0; +pub const R_OK: ::c_int = 4; +pub const W_OK: ::c_int = 2; +pub const X_OK: ::c_int = 1; +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +pub const F_LOCK: ::c_int = 1; +pub const F_TEST: ::c_int = 3; +pub const F_TLOCK: ::c_int = 2; +pub const F_ULOCK: ::c_int = 0; pub const F_GETLK: ::c_int = 7; pub const F_SETLK: ::c_int = 8; pub const F_SETLKW: ::c_int = 9; -pub const SIGHUP : ::c_int = 1; -pub const SIGINT : ::c_int = 2; -pub const SIGQUIT : ::c_int = 3; -pub const SIGILL : ::c_int = 4; -pub const SIGABRT : ::c_int = 6; +pub const SIGHUP: ::c_int = 1; +pub const SIGINT: ::c_int = 2; +pub const SIGQUIT: ::c_int = 3; +pub const SIGILL: ::c_int = 4; +pub const SIGABRT: ::c_int = 6; pub const SIGEMT: ::c_int = 7; -pub const SIGFPE : ::c_int = 8; -pub const SIGKILL : ::c_int = 9; -pub const SIGSEGV : ::c_int = 11; -pub const SIGPIPE : ::c_int = 13; -pub const SIGALRM : ::c_int = 14; -pub const SIGTERM : ::c_int = 15; - -pub const PROT_NONE : ::c_int = 0; -pub const PROT_READ : ::c_int = 1; -pub const PROT_WRITE : ::c_int = 2; -pub const PROT_EXEC : ::c_int = 4; - -pub const MAP_FILE : ::c_int = 0x0000; -pub const MAP_SHARED : ::c_int = 0x0001; -pub const MAP_PRIVATE : ::c_int = 0x0002; -pub const MAP_FIXED : ::c_int = 0x0010; -pub const MAP_ANON : ::c_int = 0x1000; - -pub const MAP_FAILED : *mut ::c_void = !0 as *mut ::c_void; - -pub const MCL_CURRENT : ::c_int = 0x0001; -pub const MCL_FUTURE : ::c_int = 0x0002; - -pub const MS_ASYNC : ::c_int = 0x0001; - -pub const EPERM : ::c_int = 1; -pub const ENOENT : ::c_int = 2; -pub const ESRCH : ::c_int = 3; -pub const EINTR : ::c_int = 4; -pub const EIO : ::c_int = 5; -pub const ENXIO : ::c_int = 6; -pub const E2BIG : ::c_int = 7; -pub const ENOEXEC : ::c_int = 8; -pub const EBADF : ::c_int = 9; -pub const ECHILD : ::c_int = 10; -pub const EDEADLK : ::c_int = 11; -pub const ENOMEM : ::c_int = 12; -pub const EACCES : ::c_int = 13; -pub const EFAULT : ::c_int = 14; -pub const ENOTBLK : ::c_int = 15; -pub const EBUSY : ::c_int = 16; -pub const EEXIST : ::c_int = 17; -pub const EXDEV : ::c_int = 18; -pub const ENODEV : ::c_int = 19; -pub const ENOTDIR : ::c_int = 20; -pub const EISDIR : ::c_int = 21; -pub const EINVAL : ::c_int = 22; -pub const ENFILE : ::c_int = 23; -pub const EMFILE : ::c_int = 24; -pub const ENOTTY : ::c_int = 25; -pub const ETXTBSY : ::c_int = 26; -pub const EFBIG : ::c_int = 27; -pub const ENOSPC : ::c_int = 28; -pub const ESPIPE : ::c_int = 29; -pub const EROFS : ::c_int = 30; -pub const EMLINK : ::c_int = 31; -pub const EPIPE : ::c_int = 32; -pub const EDOM : ::c_int = 33; -pub const ERANGE : ::c_int = 34; -pub const EAGAIN : ::c_int = 35; -pub const EWOULDBLOCK : ::c_int = 35; -pub const EINPROGRESS : ::c_int = 36; -pub const EALREADY : ::c_int = 37; -pub const ENOTSOCK : ::c_int = 38; -pub const EDESTADDRREQ : ::c_int = 39; -pub const EMSGSIZE : ::c_int = 40; -pub const EPROTOTYPE : ::c_int = 41; -pub const ENOPROTOOPT : ::c_int = 42; -pub const EPROTONOSUPPORT : ::c_int = 43; -pub const ESOCKTNOSUPPORT : ::c_int = 44; -pub const EOPNOTSUPP : ::c_int = 45; -pub const EPFNOSUPPORT : ::c_int = 46; -pub const EAFNOSUPPORT : ::c_int = 47; -pub const EADDRINUSE : ::c_int = 48; -pub const EADDRNOTAVAIL : ::c_int = 49; -pub const ENETDOWN : ::c_int = 50; -pub const ENETUNREACH : ::c_int = 51; -pub const ENETRESET : ::c_int = 52; -pub const ECONNABORTED : ::c_int = 53; -pub const ECONNRESET : ::c_int = 54; -pub const ENOBUFS : ::c_int = 55; -pub const EISCONN : ::c_int = 56; -pub const ENOTCONN : ::c_int = 57; -pub const ESHUTDOWN : ::c_int = 58; -pub const ETOOMANYREFS : ::c_int = 59; -pub const ETIMEDOUT : ::c_int = 60; -pub const ECONNREFUSED : ::c_int = 61; -pub const ELOOP : ::c_int = 62; -pub const ENAMETOOLONG : ::c_int = 63; -pub const EHOSTDOWN : ::c_int = 64; -pub const EHOSTUNREACH : ::c_int = 65; -pub const ENOTEMPTY : ::c_int = 66; -pub const EPROCLIM : ::c_int = 67; -pub const EUSERS : ::c_int = 68; -pub const EDQUOT : ::c_int = 69; -pub const ESTALE : ::c_int = 70; -pub const EREMOTE : ::c_int = 71; -pub const EBADRPC : ::c_int = 72; -pub const ERPCMISMATCH : ::c_int = 73; -pub const EPROGUNAVAIL : ::c_int = 74; -pub const EPROGMISMATCH : ::c_int = 75; -pub const EPROCUNAVAIL : ::c_int = 76; -pub const ENOLCK : ::c_int = 77; -pub const ENOSYS : ::c_int = 78; -pub const EFTYPE : ::c_int = 79; -pub const EAUTH : ::c_int = 80; -pub const ENEEDAUTH : ::c_int = 81; - -pub const F_DUPFD : ::c_int = 0; -pub const F_GETFD : ::c_int = 1; -pub const F_SETFD : ::c_int = 2; -pub const F_GETFL : ::c_int = 3; -pub const F_SETFL : ::c_int = 4; - -pub const SIGTRAP : ::c_int = 5; - -pub const GLOB_APPEND : ::c_int = 0x0001; -pub const GLOB_DOOFFS : ::c_int = 0x0002; -pub const GLOB_ERR : ::c_int = 0x0004; -pub const GLOB_MARK : ::c_int = 0x0008; -pub const GLOB_NOCHECK : ::c_int = 0x0010; -pub const GLOB_NOSORT : ::c_int = 0x0020; -pub const GLOB_NOESCAPE : ::c_int = 0x1000; - -pub const GLOB_NOSPACE : ::c_int = -1; -pub const GLOB_ABORTED : ::c_int = -2; -pub const GLOB_NOMATCH : ::c_int = -3; -pub const GLOB_NOSYS : ::c_int = -4; - -pub const POSIX_MADV_NORMAL : ::c_int = 0; -pub const POSIX_MADV_RANDOM : ::c_int = 1; -pub const POSIX_MADV_SEQUENTIAL : ::c_int = 2; -pub const POSIX_MADV_WILLNEED : ::c_int = 3; -pub const POSIX_MADV_DONTNEED : ::c_int = 4; - -pub const PTHREAD_CREATE_JOINABLE : ::c_int = 0; -pub const PTHREAD_CREATE_DETACHED : ::c_int = 1; +pub const SIGFPE: ::c_int = 8; +pub const SIGKILL: ::c_int = 9; +pub const SIGSEGV: ::c_int = 11; +pub const SIGPIPE: ::c_int = 13; +pub const SIGALRM: ::c_int = 14; +pub const SIGTERM: ::c_int = 15; + +pub const PROT_NONE: ::c_int = 0; +pub const PROT_READ: ::c_int = 1; +pub const PROT_WRITE: ::c_int = 2; +pub const PROT_EXEC: ::c_int = 4; + +pub const MAP_FILE: ::c_int = 0x0000; +pub const MAP_SHARED: ::c_int = 0x0001; +pub const MAP_PRIVATE: ::c_int = 0x0002; +pub const MAP_FIXED: ::c_int = 0x0010; +pub const MAP_ANON: ::c_int = 0x1000; + +pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; + +pub const MCL_CURRENT: ::c_int = 0x0001; +pub const MCL_FUTURE: ::c_int = 0x0002; + +pub const MS_ASYNC: ::c_int = 0x0001; + +pub const EPERM: ::c_int = 1; +pub const ENOENT: ::c_int = 2; +pub const ESRCH: ::c_int = 3; +pub const EINTR: ::c_int = 4; +pub const EIO: ::c_int = 5; +pub const ENXIO: ::c_int = 6; +pub const E2BIG: ::c_int = 7; +pub const ENOEXEC: ::c_int = 8; +pub const EBADF: ::c_int = 9; +pub const ECHILD: ::c_int = 10; +pub const EDEADLK: ::c_int = 11; +pub const ENOMEM: ::c_int = 12; +pub const EACCES: ::c_int = 13; +pub const EFAULT: ::c_int = 14; +pub const ENOTBLK: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const EXDEV: ::c_int = 18; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENFILE: ::c_int = 23; +pub const EMFILE: ::c_int = 24; +pub const ENOTTY: ::c_int = 25; +pub const ETXTBSY: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const ESPIPE: ::c_int = 29; +pub const EROFS: ::c_int = 30; +pub const EMLINK: ::c_int = 31; +pub const EPIPE: ::c_int = 32; +pub const EDOM: ::c_int = 33; +pub const ERANGE: ::c_int = 34; +pub const EAGAIN: ::c_int = 35; +pub const EWOULDBLOCK: ::c_int = 35; +pub const EINPROGRESS: ::c_int = 36; +pub const EALREADY: ::c_int = 37; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const ELOOP: ::c_int = 62; +pub const ENAMETOOLONG: ::c_int = 63; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const ENOTEMPTY: ::c_int = 66; +pub const EPROCLIM: ::c_int = 67; +pub const EUSERS: ::c_int = 68; +pub const EDQUOT: ::c_int = 69; +pub const ESTALE: ::c_int = 70; +pub const EREMOTE: ::c_int = 71; +pub const EBADRPC: ::c_int = 72; +pub const ERPCMISMATCH: ::c_int = 73; +pub const EPROGUNAVAIL: ::c_int = 74; +pub const EPROGMISMATCH: ::c_int = 75; +pub const EPROCUNAVAIL: ::c_int = 76; +pub const ENOLCK: ::c_int = 77; +pub const ENOSYS: ::c_int = 78; +pub const EFTYPE: ::c_int = 79; +pub const EAUTH: ::c_int = 80; +pub const ENEEDAUTH: ::c_int = 81; + +pub const F_DUPFD: ::c_int = 0; +pub const F_GETFD: ::c_int = 1; +pub const F_SETFD: ::c_int = 2; +pub const F_GETFL: ::c_int = 3; +pub const F_SETFL: ::c_int = 4; + +pub const SIGTRAP: ::c_int = 5; + +pub const GLOB_APPEND: ::c_int = 0x0001; +pub const GLOB_DOOFFS: ::c_int = 0x0002; +pub const GLOB_ERR: ::c_int = 0x0004; +pub const GLOB_MARK: ::c_int = 0x0008; +pub const GLOB_NOCHECK: ::c_int = 0x0010; +pub const GLOB_NOSORT: ::c_int = 0x0020; +pub const GLOB_NOESCAPE: ::c_int = 0x1000; + +pub const GLOB_NOSPACE: ::c_int = -1; +pub const GLOB_ABORTED: ::c_int = -2; +pub const GLOB_NOMATCH: ::c_int = -3; +pub const GLOB_NOSYS: ::c_int = -4; + +pub const POSIX_MADV_NORMAL: ::c_int = 0; +pub const POSIX_MADV_RANDOM: ::c_int = 1; +pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; +pub const POSIX_MADV_WILLNEED: ::c_int = 3; +pub const POSIX_MADV_DONTNEED: ::c_int = 4; + +pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; +pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; pub const PT_TRACE_ME: ::c_int = 0; pub const PT_READ_I: ::c_int = 1; @@ -355,12 +359,12 @@ pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY; pub const RUSAGE_SELF: ::c_int = 0; pub const RUSAGE_CHILDREN: ::c_int = -1; -pub const MADV_NORMAL : ::c_int = 0; -pub const MADV_RANDOM : ::c_int = 1; -pub const MADV_SEQUENTIAL : ::c_int = 2; -pub const MADV_WILLNEED : ::c_int = 3; -pub const MADV_DONTNEED : ::c_int = 4; -pub const MADV_FREE : ::c_int = 6; +pub const MADV_NORMAL: ::c_int = 0; +pub const MADV_RANDOM: ::c_int = 1; +pub const MADV_SEQUENTIAL: ::c_int = 2; +pub const MADV_WILLNEED: ::c_int = 3; +pub const MADV_DONTNEED: ::c_int = 4; +pub const MADV_FREE: ::c_int = 6; pub const AF_UNSPEC: ::c_int = 0; pub const AF_LOCAL: ::c_int = 1; @@ -477,38 +481,38 @@ pub const LOCK_EX: ::c_int = 2; pub const LOCK_NB: ::c_int = 4; pub const LOCK_UN: ::c_int = 8; -pub const IPPROTO_RAW : ::c_int = 255; - -pub const _SC_ARG_MAX : ::c_int = 1; -pub const _SC_CHILD_MAX : ::c_int = 2; -pub const _SC_NGROUPS_MAX : ::c_int = 4; -pub const _SC_OPEN_MAX : ::c_int = 5; -pub const _SC_JOB_CONTROL : ::c_int = 6; -pub const _SC_SAVED_IDS : ::c_int = 7; -pub const _SC_VERSION : ::c_int = 8; -pub const _SC_BC_BASE_MAX : ::c_int = 9; -pub const _SC_BC_DIM_MAX : ::c_int = 10; -pub const _SC_BC_SCALE_MAX : ::c_int = 11; -pub const _SC_BC_STRING_MAX : ::c_int = 12; -pub const _SC_COLL_WEIGHTS_MAX : ::c_int = 13; -pub const _SC_EXPR_NEST_MAX : ::c_int = 14; -pub const _SC_LINE_MAX : ::c_int = 15; -pub const _SC_RE_DUP_MAX : ::c_int = 16; -pub const _SC_2_VERSION : ::c_int = 17; -pub const _SC_2_C_BIND : ::c_int = 18; -pub const _SC_2_C_DEV : ::c_int = 19; -pub const _SC_2_CHAR_TERM : ::c_int = 20; -pub const _SC_2_FORT_DEV : ::c_int = 21; -pub const _SC_2_FORT_RUN : ::c_int = 22; -pub const _SC_2_LOCALEDEF : ::c_int = 23; -pub const _SC_2_SW_DEV : ::c_int = 24; -pub const _SC_2_UPE : ::c_int = 25; -pub const _SC_STREAM_MAX : ::c_int = 26; -pub const _SC_TZNAME_MAX : ::c_int = 27; -pub const _SC_PAGESIZE : ::c_int = 28; +pub const IPPROTO_RAW: ::c_int = 255; + +pub const _SC_ARG_MAX: ::c_int = 1; +pub const _SC_CHILD_MAX: ::c_int = 2; +pub const _SC_NGROUPS_MAX: ::c_int = 4; +pub const _SC_OPEN_MAX: ::c_int = 5; +pub const _SC_JOB_CONTROL: ::c_int = 6; +pub const _SC_SAVED_IDS: ::c_int = 7; +pub const _SC_VERSION: ::c_int = 8; +pub const _SC_BC_BASE_MAX: ::c_int = 9; +pub const _SC_BC_DIM_MAX: ::c_int = 10; +pub const _SC_BC_SCALE_MAX: ::c_int = 11; +pub const _SC_BC_STRING_MAX: ::c_int = 12; +pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13; +pub const _SC_EXPR_NEST_MAX: ::c_int = 14; +pub const _SC_LINE_MAX: ::c_int = 15; +pub const _SC_RE_DUP_MAX: ::c_int = 16; +pub const _SC_2_VERSION: ::c_int = 17; +pub const _SC_2_C_BIND: ::c_int = 18; +pub const _SC_2_C_DEV: ::c_int = 19; +pub const _SC_2_CHAR_TERM: ::c_int = 20; +pub const _SC_2_FORT_DEV: ::c_int = 21; +pub const _SC_2_FORT_RUN: ::c_int = 22; +pub const _SC_2_LOCALEDEF: ::c_int = 23; +pub const _SC_2_SW_DEV: ::c_int = 24; +pub const _SC_2_UPE: ::c_int = 25; +pub const _SC_STREAM_MAX: ::c_int = 26; +pub const _SC_TZNAME_MAX: ::c_int = 27; +pub const _SC_PAGESIZE: ::c_int = 28; pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -pub const _SC_FSYNC : ::c_int = 29; -pub const _SC_XOPEN_SHM : ::c_int = 30; +pub const _SC_FSYNC: ::c_int = 29; +pub const _SC_XOPEN_SHM: ::c_int = 30; pub const Q_GETQUOTA: ::c_int = 0x300; pub const Q_SETQUOTA: ::c_int = 0x400; @@ -583,90 +587,130 @@ pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; // Flags for chflags(2) -pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; -pub const UF_NODUMP: ::c_ulong = 0x00000001; -pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; -pub const UF_APPEND: ::c_ulong = 0x00000004; -pub const UF_OPAQUE: ::c_ulong = 0x00000008; -pub const SF_SETTABLE: ::c_ulong = 0xffff0000; -pub const SF_ARCHIVED: ::c_ulong = 0x00010000; -pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; -pub const SF_APPEND: ::c_ulong = 0x00040000; +pub const UF_SETTABLE: ::c_ulong = 0x0000ffff; +pub const UF_NODUMP: ::c_ulong = 0x00000001; +pub const UF_IMMUTABLE: ::c_ulong = 0x00000002; +pub const UF_APPEND: ::c_ulong = 0x00000004; +pub const UF_OPAQUE: ::c_ulong = 0x00000008; +pub const SF_SETTABLE: ::c_ulong = 0xffff0000; +pub const SF_ARCHIVED: ::c_ulong = 0x00010000; +pub const SF_IMMUTABLE: ::c_ulong = 0x00020000; +pub const SF_APPEND: ::c_ulong = 0x00040000; pub const TIMER_ABSTIME: ::c_int = 1; #[link(name = "util")] -extern { +extern "C" { pub fn setgrent(); pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, - vec: *mut ::c_char) -> ::c_int; + pub fn mincore( + addr: *mut ::c_void, + len: ::size_t, + vec: *mut ::c_char, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_getres50")] pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_gettime50")] pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__clock_settime50")] - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; pub fn __errno() -> *mut ::c_int; - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) - -> ::c_int; - pub fn memrchr(cx: *const ::c_void, - c: ::c_int, - n: ::size_t) -> *mut ::c_void; + pub fn shm_open( + name: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; + pub fn memrchr( + cx: *const ::c_void, + c: ::c_int, + n: ::size_t, + ) -> *mut ::c_void; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, - suffixlen: ::c_int, - flags: ::c_int) -> ::c_int; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; + pub fn mkostemps( + template: *mut ::c_char, + suffixlen: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::c_int; - pub fn forkpty(amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::pid_t; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn getgrouplist(name: *const ::c_char, - basegid: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int) -> ::c_int; + pub fn getgrouplist( + name: *const ::c_char, + basegid: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 74b2334d84612..5e3f0467ffe2b 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -735,16 +735,13 @@ pub const O_ALT_IO: ::c_int = 0x40000; pub const O_NOSIGPIPE: ::c_int = 0x1000000; pub const O_SEARCH: ::c_int = 0x800000; pub const O_DIRECTORY: ::c_int = 0x200000; -pub const O_DIRECT : ::c_int = 0x00080000; -pub const O_RSYNC : ::c_int = 0x00020000; +pub const O_DIRECT: ::c_int = 0x00080000; +pub const O_RSYNC: ::c_int = 0x00020000; -pub const MS_SYNC : ::c_int = 0x4; -pub const MS_INVALIDATE : ::c_int = 0x2; +pub const MS_SYNC: ::c_int = 0x4; +pub const MS_INVALIDATE: ::c_int = 0x2; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 12; pub const EIDRM: ::c_int = 82; @@ -764,7 +761,7 @@ pub const ENOLINK: ::c_int = 95; pub const EPROTO: ::c_int = 96; pub const ELAST: ::c_int = 96; -pub const F_DUPFD_CLOEXEC : ::c_int = 12; +pub const F_DUPFD_CLOEXEC: ::c_int = 12; pub const F_CLOSEM: ::c_int = 10; pub const F_GETNOSIGPIPE: ::c_int = 13; pub const F_SETNOSIGPIPE: ::c_int = 14; @@ -778,13 +775,13 @@ pub const IP_RECVPKTINFO: ::c_int = 26; pub const IPV6_JOIN_GROUP: ::c_int = 12; pub const IPV6_LEAVE_GROUP: ::c_int = 13; -pub const TCP_KEEPIDLE: ::c_int = 3; +pub const TCP_KEEPIDLE: ::c_int = 3; pub const TCP_KEEPINTVL: ::c_int = 5; -pub const TCP_KEEPCNT: ::c_int = 6; -pub const TCP_KEEPINIT: ::c_int = 7; -pub const TCP_INFO: ::c_int = 9; -pub const TCP_MD5SIG: ::c_int = 0x10; -pub const TCP_CONGCTL: ::c_int = 0x20; +pub const TCP_KEEPCNT: ::c_int = 6; +pub const TCP_KEEPINIT: ::c_int = 7; +pub const TCP_INFO: ::c_int = 9; +pub const TCP_MD5SIG: ::c_int = 0x10; +pub const TCP_CONGCTL: ::c_int = 0x20; pub const SOCK_CONN_DGRAM: ::c_int = 6; pub const SOCK_DCCP: ::c_int = SOCK_CONN_DGRAM; @@ -925,18 +922,18 @@ pub const MSG_NOTIFICATION: ::c_int = 0x4000; pub const SCM_TIMESTAMP: ::c_int = 0x08; pub const SCM_CREDS: ::c_int = 0x10; -pub const O_DSYNC : ::c_int = 0x10000; +pub const O_DSYNC: ::c_int = 0x10000; -pub const MAP_RENAME : ::c_int = 0x20; -pub const MAP_NORESERVE : ::c_int = 0x40; -pub const MAP_HASSEMAPHORE : ::c_int = 0x200; +pub const MAP_RENAME: ::c_int = 0x20; +pub const MAP_NORESERVE: ::c_int = 0x40; +pub const MAP_HASSEMAPHORE: ::c_int = 0x200; pub const MAP_WIRED: ::c_int = 0x800; pub const DCCP_TYPE_REQUEST: ::c_int = 0; pub const DCCP_TYPE_RESPONSE: ::c_int = 1; pub const DCCP_TYPE_DATA: ::c_int = 2; pub const DCCP_TYPE_ACK: ::c_int = 3; -pub const DCCP_TYPE_DATAACK: ::c_int = 4; +pub const DCCP_TYPE_DATAACK: ::c_int = 4; pub const DCCP_TYPE_CLOSEREQ: ::c_int = 5; pub const DCCP_TYPE_CLOSE: ::c_int = 6; pub const DCCP_TYPE_RESET: ::c_int = 7; @@ -944,12 +941,12 @@ pub const DCCP_TYPE_MOVE: ::c_int = 8; pub const DCCP_FEATURE_CC: ::c_int = 1; pub const DCCP_FEATURE_ECN: ::c_int = 2; -pub const DCCP_FEATURE_ACKRATIO: ::c_int = 3; +pub const DCCP_FEATURE_ACKRATIO: ::c_int = 3; pub const DCCP_FEATURE_ACKVECTOR: ::c_int = 4; -pub const DCCP_FEATURE_MOBILITY: ::c_int = 5; +pub const DCCP_FEATURE_MOBILITY: ::c_int = 5; pub const DCCP_FEATURE_LOSSWINDOW: ::c_int = 6; pub const DCCP_FEATURE_CONN_NONCE: ::c_int = 8; -pub const DCCP_FEATURE_IDENTREG: ::c_int = 7; +pub const DCCP_FEATURE_IDENTREG: ::c_int = 7; pub const DCCP_OPT_PADDING: ::c_int = 0; pub const DCCP_OPT_DATA_DISCARD: ::c_int = 1; @@ -991,91 +988,91 @@ pub const DCCP_SEQ_NUM_LIMIT: ::c_int = 16777216; pub const DCCP_MAX_OPTIONS: ::c_int = 32; pub const DCCP_MAX_PKTS: ::c_int = 100; -pub const _PC_LINK_MAX : ::c_int = 1; -pub const _PC_MAX_CANON : ::c_int = 2; -pub const _PC_MAX_INPUT : ::c_int = 3; -pub const _PC_NAME_MAX : ::c_int = 4; -pub const _PC_PATH_MAX : ::c_int = 5; -pub const _PC_PIPE_BUF : ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED : ::c_int = 7; -pub const _PC_NO_TRUNC : ::c_int = 8; -pub const _PC_VDISABLE : ::c_int = 9; -pub const _PC_SYNC_IO : ::c_int = 10; -pub const _PC_FILESIZEBITS : ::c_int = 11; -pub const _PC_SYMLINK_MAX : ::c_int = 12; -pub const _PC_2_SYMLINKS : ::c_int = 13; -pub const _PC_ACL_EXTENDED : ::c_int = 14; -pub const _PC_MIN_HOLE_SIZE : ::c_int = 15; - -pub const _SC_SYNCHRONIZED_IO : ::c_int = 31; -pub const _SC_IOV_MAX : ::c_int = 32; -pub const _SC_MAPPED_FILES : ::c_int = 33; -pub const _SC_MEMLOCK : ::c_int = 34; -pub const _SC_MEMLOCK_RANGE : ::c_int = 35; -pub const _SC_MEMORY_PROTECTION : ::c_int = 36; -pub const _SC_LOGIN_NAME_MAX : ::c_int = 37; -pub const _SC_MONOTONIC_CLOCK : ::c_int = 38; -pub const _SC_CLK_TCK : ::c_int = 39; -pub const _SC_ATEXIT_MAX : ::c_int = 40; -pub const _SC_THREADS : ::c_int = 41; -pub const _SC_SEMAPHORES : ::c_int = 42; -pub const _SC_BARRIERS : ::c_int = 43; -pub const _SC_TIMERS : ::c_int = 44; -pub const _SC_SPIN_LOCKS : ::c_int = 45; -pub const _SC_READER_WRITER_LOCKS : ::c_int = 46; -pub const _SC_GETGR_R_SIZE_MAX : ::c_int = 47; -pub const _SC_GETPW_R_SIZE_MAX : ::c_int = 48; -pub const _SC_CLOCK_SELECTION : ::c_int = 49; -pub const _SC_ASYNCHRONOUS_IO : ::c_int = 50; -pub const _SC_AIO_LISTIO_MAX : ::c_int = 51; -pub const _SC_AIO_MAX : ::c_int = 52; -pub const _SC_MESSAGE_PASSING : ::c_int = 53; -pub const _SC_MQ_OPEN_MAX : ::c_int = 54; -pub const _SC_MQ_PRIO_MAX : ::c_int = 55; -pub const _SC_PRIORITY_SCHEDULING : ::c_int = 56; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : ::c_int = 57; -pub const _SC_THREAD_KEYS_MAX : ::c_int = 58; -pub const _SC_THREAD_STACK_MIN : ::c_int = 59; -pub const _SC_THREAD_THREADS_MAX : ::c_int = 60; -pub const _SC_THREAD_ATTR_STACKADDR : ::c_int = 61; -pub const _SC_THREAD_ATTR_STACKSIZE : ::c_int = 62; -pub const _SC_THREAD_PRIORITY_SCHEDULING : ::c_int = 63; -pub const _SC_THREAD_PRIO_INHERIT : ::c_int = 64; -pub const _SC_THREAD_PRIO_PROTECT : ::c_int = 65; -pub const _SC_THREAD_PROCESS_SHARED : ::c_int = 66; -pub const _SC_THREAD_SAFE_FUNCTIONS : ::c_int = 67; -pub const _SC_TTY_NAME_MAX : ::c_int = 68; -pub const _SC_HOST_NAME_MAX : ::c_int = 69; -pub const _SC_PASS_MAX : ::c_int = 70; -pub const _SC_REGEXP : ::c_int = 71; -pub const _SC_SHELL : ::c_int = 72; -pub const _SC_SYMLOOP_MAX : ::c_int = 73; -pub const _SC_V6_ILP32_OFF32 : ::c_int = 74; -pub const _SC_V6_ILP32_OFFBIG : ::c_int = 75; -pub const _SC_V6_LP64_OFF64 : ::c_int = 76; -pub const _SC_V6_LPBIG_OFFBIG : ::c_int = 77; -pub const _SC_2_PBS : ::c_int = 80; -pub const _SC_2_PBS_ACCOUNTING : ::c_int = 81; -pub const _SC_2_PBS_CHECKPOINT : ::c_int = 82; -pub const _SC_2_PBS_LOCATE : ::c_int = 83; -pub const _SC_2_PBS_MESSAGE : ::c_int = 84; -pub const _SC_2_PBS_TRACK : ::c_int = 85; -pub const _SC_SPAWN : ::c_int = 86; -pub const _SC_SHARED_MEMORY_OBJECTS : ::c_int = 87; -pub const _SC_TIMER_MAX : ::c_int = 88; -pub const _SC_SEM_NSEMS_MAX : ::c_int = 89; -pub const _SC_CPUTIME : ::c_int = 90; -pub const _SC_THREAD_CPUTIME : ::c_int = 91; -pub const _SC_DELAYTIMER_MAX : ::c_int = 92; +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_SYNC_IO: ::c_int = 10; +pub const _PC_FILESIZEBITS: ::c_int = 11; +pub const _PC_SYMLINK_MAX: ::c_int = 12; +pub const _PC_2_SYMLINKS: ::c_int = 13; +pub const _PC_ACL_EXTENDED: ::c_int = 14; +pub const _PC_MIN_HOLE_SIZE: ::c_int = 15; + +pub const _SC_SYNCHRONIZED_IO: ::c_int = 31; +pub const _SC_IOV_MAX: ::c_int = 32; +pub const _SC_MAPPED_FILES: ::c_int = 33; +pub const _SC_MEMLOCK: ::c_int = 34; +pub const _SC_MEMLOCK_RANGE: ::c_int = 35; +pub const _SC_MEMORY_PROTECTION: ::c_int = 36; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 37; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 38; +pub const _SC_CLK_TCK: ::c_int = 39; +pub const _SC_ATEXIT_MAX: ::c_int = 40; +pub const _SC_THREADS: ::c_int = 41; +pub const _SC_SEMAPHORES: ::c_int = 42; +pub const _SC_BARRIERS: ::c_int = 43; +pub const _SC_TIMERS: ::c_int = 44; +pub const _SC_SPIN_LOCKS: ::c_int = 45; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 46; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 47; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 48; +pub const _SC_CLOCK_SELECTION: ::c_int = 49; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 50; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 51; +pub const _SC_AIO_MAX: ::c_int = 52; +pub const _SC_MESSAGE_PASSING: ::c_int = 53; +pub const _SC_MQ_OPEN_MAX: ::c_int = 54; +pub const _SC_MQ_PRIO_MAX: ::c_int = 55; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 56; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 57; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 58; +pub const _SC_THREAD_STACK_MIN: ::c_int = 59; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 60; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 63; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 64; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 65; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 66; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 67; +pub const _SC_TTY_NAME_MAX: ::c_int = 68; +pub const _SC_HOST_NAME_MAX: ::c_int = 69; +pub const _SC_PASS_MAX: ::c_int = 70; +pub const _SC_REGEXP: ::c_int = 71; +pub const _SC_SHELL: ::c_int = 72; +pub const _SC_SYMLOOP_MAX: ::c_int = 73; +pub const _SC_V6_ILP32_OFF32: ::c_int = 74; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 75; +pub const _SC_V6_LP64_OFF64: ::c_int = 76; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 77; +pub const _SC_2_PBS: ::c_int = 80; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 81; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 82; +pub const _SC_2_PBS_LOCATE: ::c_int = 83; +pub const _SC_2_PBS_MESSAGE: ::c_int = 84; +pub const _SC_2_PBS_TRACK: ::c_int = 85; +pub const _SC_SPAWN: ::c_int = 86; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 87; +pub const _SC_TIMER_MAX: ::c_int = 88; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 89; +pub const _SC_CPUTIME: ::c_int = 90; +pub const _SC_THREAD_CPUTIME: ::c_int = 91; +pub const _SC_DELAYTIMER_MAX: ::c_int = 92; // These two variables will be supported in NetBSD 8.0 // pub const _SC_SIGQUEUE_MAX : ::c_int = 93; // pub const _SC_REALTIME_SIGNALS : ::c_int = 94; -pub const _SC_PHYS_PAGES : ::c_int = 121; -pub const _SC_NPROCESSORS_CONF : ::c_int = 1001; -pub const _SC_NPROCESSORS_ONLN : ::c_int = 1002; -pub const _SC_SCHED_RT_TS : ::c_int = 2001; -pub const _SC_SCHED_PRI_MIN : ::c_int = 2002; -pub const _SC_SCHED_PRI_MAX : ::c_int = 2003; +pub const _SC_PHYS_PAGES: ::c_int = 121; +pub const _SC_NPROCESSORS_CONF: ::c_int = 1001; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 1002; +pub const _SC_SCHED_RT_TS: ::c_int = 2001; +pub const _SC_SCHED_PRI_MIN: ::c_int = 2002; +pub const _SC_SCHED_PRI_MAX: ::c_int = 2003; pub const FD_SETSIZE: usize = 0x100; @@ -1090,7 +1087,8 @@ pub const BIOCSSEESENT: ::c_ulong = 0x80044277; cfg_if! { if #[cfg(any(target_arch = "sparc", target_arch = "sparc64", target_arch = "x86", target_arch = "x86_64"))] { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t + = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, ptm_pad1: [0; 3], @@ -1102,7 +1100,8 @@ cfg_if! { ptm_spare2: 0 as *mut _, }; } else { - pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { + pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t + = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, ptm_unused: 0, @@ -1176,7 +1175,7 @@ pub const NOTE_TRACK: u32 = 0x00000001; pub const NOTE_TRACKERR: u32 = 0x00000002; pub const NOTE_CHILD: u32 = 0x00000004; -pub const TMP_MAX : ::c_uint = 308915776; +pub const TMP_MAX: ::c_uint = 308915776; pub const NI_MAXHOST: ::socklen_t = 1025; @@ -1390,7 +1389,7 @@ pub const FIONWRITE: ::c_ulong = 0x40046679; pub const FIONSPACE: ::c_ulong = 0x40046678; pub const FIBMAP: ::c_ulong = 0xc008667a; -pub const SIGSTKSZ : ::size_t = 40960; +pub const SIGSTKSZ: ::size_t = 40960; pub const PT_DUMPCORE: ::c_int = 12; pub const PT_LWPINFO: ::c_int = 13; @@ -1402,8 +1401,8 @@ pub const PT_GET_PROCESS_STATE: ::c_int = 18; pub const PT_FIRSTMACH: ::c_int = 32; // Flags for chflags(2) -pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; -pub const SF_LOG: ::c_ulong = 0x00400000; +pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; +pub const SF_LOG: ::c_ulong = 0x00400000; pub const SF_SNAPINVAL: ::c_ulong = 0x00800000; fn _ALIGN(p: usize) -> usize { @@ -1477,185 +1476,261 @@ f! { } #[link(name = "rt")] -extern { +extern "C" { pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; #[link_name = "__aio_suspend50"] - pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int, - timeout: *const ::timespec) -> ::c_int; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut sigevent) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut sigevent, + ) -> ::c_int; } -extern { +extern "C" { pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int; - pub fn extattr_delete_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_delete_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_delete_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char) -> ::c_int; - pub fn extattr_get_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_get_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_get_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *mut ::c_void, - nbytes: ::size_t) -> ::ssize_t; - pub fn extattr_namespace_to_string(attrnamespace: ::c_int, - string: *mut *mut ::c_char) -> ::c_int; - pub fn extattr_set_fd(fd: ::c_int, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::c_int; - pub fn extattr_set_file(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::c_int; - pub fn extattr_set_link(path: *const ::c_char, - attrnamespace: ::c_int, - attrname: *const ::c_char, - data: *const ::c_void, - nbytes: ::size_t) -> ::c_int; - pub fn extattr_string_to_namespace(string: *const ::c_char, - attrnamespace: *mut ::c_int) -> ::c_int; + pub fn extattr_delete_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_delete_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + ) -> ::c_int; + pub fn extattr_get_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_get_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *mut ::c_void, + nbytes: ::size_t, + ) -> ::ssize_t; + pub fn extattr_namespace_to_string( + attrnamespace: ::c_int, + string: *mut *mut ::c_char, + ) -> ::c_int; + pub fn extattr_set_fd( + fd: ::c_int, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_set_file( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_set_link( + path: *const ::c_char, + attrnamespace: ::c_int, + attrname: *const ::c_char, + data: *const ::c_void, + nbytes: ::size_t, + ) -> ::c_int; + pub fn extattr_string_to_namespace( + string: *const ::c_char, + attrnamespace: *mut ::c_int, + ) -> ::c_int; #[link_name = "__lutimes50"] pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; #[link_name = "__gettimeofday50"] - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; - pub fn sysctl(name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t) - -> ::c_int; - pub fn sysctlbyname(name: *const ::c_char, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *const ::c_void, - newlen: ::size_t) - -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; + pub fn sysctlbyname( + name: *const ::c_char, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *const ::c_void, + newlen: ::size_t, + ) -> ::c_int; #[link_name = "__kevent50"] - pub fn kevent(kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::size_t, - eventlist: *mut ::kevent, - nevents: ::size_t, - timeout: *const ::timespec) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::size_t, + eventlist: *mut ::kevent, + nevents: ::size_t, + timeout: *const ::timespec, + ) -> ::c_int; #[link_name = "__mount50"] - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - flags: ::c_int, - data: *mut ::c_void, - size: ::size_t) -> ::c_int; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + flags: ::c_int, + data: *mut ::c_void, + size: ::size_t, + ) -> ::c_int; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; + pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) + -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr, + ) -> ::c_int; #[link_name = "__mq_timedreceive50"] - pub fn mq_timedreceive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint, - abs_timeout: *const ::timespec) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; #[link_name = "__mq_timedsend50"] - pub fn mq_timedsend(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint, - abs_timeout: *const ::timespec) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn ptrace(request: ::c_int, - pid: ::pid_t, - addr: *mut ::c_void, - data: ::c_int) -> ::c_int; - pub fn pthread_setname_np(t: ::pthread_t, - name: *const ::c_char, - arg: *mut ::c_void) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; + pub fn ptrace( + request: ::c_int, + pid: ::pid_t, + addr: *mut ::c_void, + data: ::c_int, + ) -> ::c_int; + pub fn pthread_setname_np( + t: ::pthread_t, + name: *const ::c_char, + arg: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_getattr_np( + native: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; #[link_name = "__sigtimedwait50"] - pub fn sigtimedwait(set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, - info: *mut siginfo_t) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); pub fn localeconv_l(loc: ::locale_t) -> *mut lconv; - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; #[link_name = "__settimeofday50"] pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; } #[link(name = "util")] -extern { +extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] - pub fn getpwent_r(pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd) -> ::c_int; - pub fn getgrent_r(grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index ffefefd819188..d82c3273e67ed 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -728,25 +728,25 @@ pub const O_CLOEXEC: ::c_int = 0x10000; pub const O_DIRECTORY: ::c_int = 0x20000; pub const O_RSYNC: ::c_int = O_SYNC; -pub const MS_SYNC : ::c_int = 0x0002; -pub const MS_INVALIDATE : ::c_int = 0x0004; +pub const MS_SYNC: ::c_int = 0x0002; +pub const MS_INVALIDATE: ::c_int = 0x0004; pub const POLLNORM: ::c_short = ::POLLRDNORM; -pub const ENOATTR : ::c_int = 83; -pub const EILSEQ : ::c_int = 84; -pub const EOVERFLOW : ::c_int = 87; -pub const ECANCELED : ::c_int = 88; -pub const EIDRM : ::c_int = 89; -pub const ENOMSG : ::c_int = 90; -pub const ENOTSUP : ::c_int = 91; -pub const EBADMSG : ::c_int = 92; -pub const ENOTRECOVERABLE : ::c_int = 93; -pub const EOWNERDEAD : ::c_int = 94; -pub const EPROTO : ::c_int = 95; -pub const ELAST : ::c_int = 95; - -pub const F_DUPFD_CLOEXEC : ::c_int = 10; +pub const ENOATTR: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const EOVERFLOW: ::c_int = 87; +pub const ECANCELED: ::c_int = 88; +pub const EIDRM: ::c_int = 89; +pub const ENOMSG: ::c_int = 90; +pub const ENOTSUP: ::c_int = 91; +pub const EBADMSG: ::c_int = 92; +pub const ENOTRECOVERABLE: ::c_int = 93; +pub const EOWNERDEAD: ::c_int = 94; +pub const EPROTO: ::c_int = 95; +pub const ELAST: ::c_int = 95; + +pub const F_DUPFD_CLOEXEC: ::c_int = 10; pub const UTIME_OMIT: c_long = -1; pub const UTIME_NOW: c_long = -2; @@ -757,10 +757,7 @@ pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; pub const AT_REMOVEDIR: ::c_int = 0x08; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 9; pub const SO_TIMESTAMP: ::c_int = 0x0800; @@ -834,8 +831,7 @@ pub const IPPROTO_MPLS: ::c_int = 137; pub const IPPROTO_PFSYNC: ::c_int = 240; pub const IPPROTO_MAX: ::c_int = 256; -/* Only used internally, so it can be outside the range of valid IP protocols */ -/// Divert sockets +// Only used internally, so it can be outside the range of valid IP protocols pub const IPPROTO_DIVERT: ::c_int = 258; pub const IP_RECVDSTADDR: ::c_int = 7; @@ -881,15 +877,15 @@ pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; pub const SCM_TIMESTAMP: ::c_int = 0x04; -pub const O_DSYNC : ::c_int = 128; +pub const O_DSYNC: ::c_int = 128; -pub const MAP_RENAME : ::c_int = 0x0000; -pub const MAP_NORESERVE : ::c_int = 0x0000; -pub const MAP_HASSEMAPHORE : ::c_int = 0x0000; +pub const MAP_RENAME: ::c_int = 0x0000; +pub const MAP_NORESERVE: ::c_int = 0x0000; +pub const MAP_HASSEMAPHORE: ::c_int = 0x0000; -pub const EIPSEC : ::c_int = 82; -pub const ENOMEDIUM : ::c_int = 85; -pub const EMEDIUMTYPE : ::c_int = 86; +pub const EIPSEC: ::c_int = 82; +pub const ENOMEDIUM: ::c_int = 85; +pub const EMEDIUMTYPE: ::c_int = 86; pub const EAI_BADFLAGS: ::c_int = -1; pub const EAI_NONAME: ::c_int = -2; @@ -905,131 +901,131 @@ pub const EAI_OVERFLOW: ::c_int = -14; pub const RUSAGE_THREAD: ::c_int = 1; -pub const MAP_COPY : ::c_int = 0x0002; -pub const MAP_NOEXTEND : ::c_int = 0x0000; - -pub const _PC_LINK_MAX : ::c_int = 1; -pub const _PC_MAX_CANON : ::c_int = 2; -pub const _PC_MAX_INPUT : ::c_int = 3; -pub const _PC_NAME_MAX : ::c_int = 4; -pub const _PC_PATH_MAX : ::c_int = 5; -pub const _PC_PIPE_BUF : ::c_int = 6; -pub const _PC_CHOWN_RESTRICTED : ::c_int = 7; -pub const _PC_NO_TRUNC : ::c_int = 8; -pub const _PC_VDISABLE : ::c_int = 9; -pub const _PC_2_SYMLINKS : ::c_int = 10; -pub const _PC_ALLOC_SIZE_MIN : ::c_int = 11; -pub const _PC_ASYNC_IO : ::c_int = 12; -pub const _PC_FILESIZEBITS : ::c_int = 13; -pub const _PC_PRIO_IO : ::c_int = 14; -pub const _PC_REC_INCR_XFER_SIZE : ::c_int = 15; -pub const _PC_REC_MAX_XFER_SIZE : ::c_int = 16; -pub const _PC_REC_MIN_XFER_SIZE : ::c_int = 17; -pub const _PC_REC_XFER_ALIGN : ::c_int = 18; -pub const _PC_SYMLINK_MAX : ::c_int = 19; -pub const _PC_SYNC_IO : ::c_int = 20; -pub const _PC_TIMESTAMP_RESOLUTION : ::c_int = 21; - -pub const _SC_CLK_TCK : ::c_int = 3; -pub const _SC_SEM_NSEMS_MAX : ::c_int = 31; -pub const _SC_SEM_VALUE_MAX : ::c_int = 32; -pub const _SC_HOST_NAME_MAX : ::c_int = 33; -pub const _SC_MONOTONIC_CLOCK : ::c_int = 34; -pub const _SC_2_PBS : ::c_int = 35; -pub const _SC_2_PBS_ACCOUNTING : ::c_int = 36; -pub const _SC_2_PBS_CHECKPOINT : ::c_int = 37; -pub const _SC_2_PBS_LOCATE : ::c_int = 38; -pub const _SC_2_PBS_MESSAGE : ::c_int = 39; -pub const _SC_2_PBS_TRACK : ::c_int = 40; -pub const _SC_ADVISORY_INFO : ::c_int = 41; -pub const _SC_AIO_LISTIO_MAX : ::c_int = 42; -pub const _SC_AIO_MAX : ::c_int = 43; -pub const _SC_AIO_PRIO_DELTA_MAX : ::c_int = 44; -pub const _SC_ASYNCHRONOUS_IO : ::c_int = 45; -pub const _SC_ATEXIT_MAX : ::c_int = 46; -pub const _SC_BARRIERS : ::c_int = 47; -pub const _SC_CLOCK_SELECTION : ::c_int = 48; -pub const _SC_CPUTIME : ::c_int = 49; -pub const _SC_DELAYTIMER_MAX : ::c_int = 50; -pub const _SC_IOV_MAX : ::c_int = 51; -pub const _SC_IPV6 : ::c_int = 52; -pub const _SC_MAPPED_FILES : ::c_int = 53; -pub const _SC_MEMLOCK : ::c_int = 54; -pub const _SC_MEMLOCK_RANGE : ::c_int = 55; -pub const _SC_MEMORY_PROTECTION : ::c_int = 56; -pub const _SC_MESSAGE_PASSING : ::c_int = 57; -pub const _SC_MQ_OPEN_MAX : ::c_int = 58; -pub const _SC_MQ_PRIO_MAX : ::c_int = 59; -pub const _SC_PRIORITIZED_IO : ::c_int = 60; -pub const _SC_PRIORITY_SCHEDULING : ::c_int = 61; -pub const _SC_RAW_SOCKETS : ::c_int = 62; -pub const _SC_READER_WRITER_LOCKS : ::c_int = 63; -pub const _SC_REALTIME_SIGNALS : ::c_int = 64; -pub const _SC_REGEXP : ::c_int = 65; -pub const _SC_RTSIG_MAX : ::c_int = 66; -pub const _SC_SEMAPHORES : ::c_int = 67; -pub const _SC_SHARED_MEMORY_OBJECTS : ::c_int = 68; -pub const _SC_SHELL : ::c_int = 69; -pub const _SC_SIGQUEUE_MAX : ::c_int = 70; -pub const _SC_SPAWN : ::c_int = 71; -pub const _SC_SPIN_LOCKS : ::c_int = 72; -pub const _SC_SPORADIC_SERVER : ::c_int = 73; -pub const _SC_SS_REPL_MAX : ::c_int = 74; -pub const _SC_SYNCHRONIZED_IO : ::c_int = 75; -pub const _SC_SYMLOOP_MAX : ::c_int = 76; -pub const _SC_THREAD_ATTR_STACKADDR : ::c_int = 77; -pub const _SC_THREAD_ATTR_STACKSIZE : ::c_int = 78; -pub const _SC_THREAD_CPUTIME : ::c_int = 79; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : ::c_int = 80; -pub const _SC_THREAD_KEYS_MAX : ::c_int = 81; -pub const _SC_THREAD_PRIO_INHERIT : ::c_int = 82; -pub const _SC_THREAD_PRIO_PROTECT : ::c_int = 83; -pub const _SC_THREAD_PRIORITY_SCHEDULING : ::c_int = 84; -pub const _SC_THREAD_PROCESS_SHARED : ::c_int = 85; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT : ::c_int = 86; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT : ::c_int = 87; -pub const _SC_THREAD_SPORADIC_SERVER : ::c_int = 88; -pub const _SC_THREAD_STACK_MIN : ::c_int = 89; -pub const _SC_THREAD_THREADS_MAX : ::c_int = 90; -pub const _SC_THREADS : ::c_int = 91; -pub const _SC_TIMEOUTS : ::c_int = 92; -pub const _SC_TIMER_MAX : ::c_int = 93; -pub const _SC_TIMERS : ::c_int = 94; -pub const _SC_TRACE : ::c_int = 95; -pub const _SC_TRACE_EVENT_FILTER : ::c_int = 96; -pub const _SC_TRACE_EVENT_NAME_MAX : ::c_int = 97; -pub const _SC_TRACE_INHERIT : ::c_int = 98; -pub const _SC_TRACE_LOG : ::c_int = 99; -pub const _SC_GETGR_R_SIZE_MAX : ::c_int = 100; -pub const _SC_GETPW_R_SIZE_MAX : ::c_int = 101; -pub const _SC_LOGIN_NAME_MAX : ::c_int = 102; -pub const _SC_THREAD_SAFE_FUNCTIONS : ::c_int = 103; -pub const _SC_TRACE_NAME_MAX : ::c_int = 104; -pub const _SC_TRACE_SYS_MAX : ::c_int = 105; -pub const _SC_TRACE_USER_EVENT_MAX : ::c_int = 106; -pub const _SC_TTY_NAME_MAX : ::c_int = 107; -pub const _SC_TYPED_MEMORY_OBJECTS : ::c_int = 108; -pub const _SC_V6_ILP32_OFF32 : ::c_int = 109; -pub const _SC_V6_ILP32_OFFBIG : ::c_int = 110; -pub const _SC_V6_LP64_OFF64 : ::c_int = 111; -pub const _SC_V6_LPBIG_OFFBIG : ::c_int = 112; -pub const _SC_V7_ILP32_OFF32 : ::c_int = 113; -pub const _SC_V7_ILP32_OFFBIG : ::c_int = 114; -pub const _SC_V7_LP64_OFF64 : ::c_int = 115; -pub const _SC_V7_LPBIG_OFFBIG : ::c_int = 116; -pub const _SC_XOPEN_CRYPT : ::c_int = 117; -pub const _SC_XOPEN_ENH_I18N : ::c_int = 118; -pub const _SC_XOPEN_LEGACY : ::c_int = 119; -pub const _SC_XOPEN_REALTIME : ::c_int = 120; -pub const _SC_XOPEN_REALTIME_THREADS : ::c_int = 121; -pub const _SC_XOPEN_STREAMS : ::c_int = 122; -pub const _SC_XOPEN_UNIX : ::c_int = 123; -pub const _SC_XOPEN_UUCP : ::c_int = 124; -pub const _SC_XOPEN_VERSION : ::c_int = 125; -pub const _SC_PHYS_PAGES : ::c_int = 500; -pub const _SC_AVPHYS_PAGES : ::c_int = 501; -pub const _SC_NPROCESSORS_CONF : ::c_int = 502; -pub const _SC_NPROCESSORS_ONLN : ::c_int = 503; +pub const MAP_COPY: ::c_int = 0x0002; +pub const MAP_NOEXTEND: ::c_int = 0x0000; + +pub const _PC_LINK_MAX: ::c_int = 1; +pub const _PC_MAX_CANON: ::c_int = 2; +pub const _PC_MAX_INPUT: ::c_int = 3; +pub const _PC_NAME_MAX: ::c_int = 4; +pub const _PC_PATH_MAX: ::c_int = 5; +pub const _PC_PIPE_BUF: ::c_int = 6; +pub const _PC_CHOWN_RESTRICTED: ::c_int = 7; +pub const _PC_NO_TRUNC: ::c_int = 8; +pub const _PC_VDISABLE: ::c_int = 9; +pub const _PC_2_SYMLINKS: ::c_int = 10; +pub const _PC_ALLOC_SIZE_MIN: ::c_int = 11; +pub const _PC_ASYNC_IO: ::c_int = 12; +pub const _PC_FILESIZEBITS: ::c_int = 13; +pub const _PC_PRIO_IO: ::c_int = 14; +pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 15; +pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 16; +pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 17; +pub const _PC_REC_XFER_ALIGN: ::c_int = 18; +pub const _PC_SYMLINK_MAX: ::c_int = 19; +pub const _PC_SYNC_IO: ::c_int = 20; +pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 21; + +pub const _SC_CLK_TCK: ::c_int = 3; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 31; +pub const _SC_SEM_VALUE_MAX: ::c_int = 32; +pub const _SC_HOST_NAME_MAX: ::c_int = 33; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 34; +pub const _SC_2_PBS: ::c_int = 35; +pub const _SC_2_PBS_ACCOUNTING: ::c_int = 36; +pub const _SC_2_PBS_CHECKPOINT: ::c_int = 37; +pub const _SC_2_PBS_LOCATE: ::c_int = 38; +pub const _SC_2_PBS_MESSAGE: ::c_int = 39; +pub const _SC_2_PBS_TRACK: ::c_int = 40; +pub const _SC_ADVISORY_INFO: ::c_int = 41; +pub const _SC_AIO_LISTIO_MAX: ::c_int = 42; +pub const _SC_AIO_MAX: ::c_int = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44; +pub const _SC_ASYNCHRONOUS_IO: ::c_int = 45; +pub const _SC_ATEXIT_MAX: ::c_int = 46; +pub const _SC_BARRIERS: ::c_int = 47; +pub const _SC_CLOCK_SELECTION: ::c_int = 48; +pub const _SC_CPUTIME: ::c_int = 49; +pub const _SC_DELAYTIMER_MAX: ::c_int = 50; +pub const _SC_IOV_MAX: ::c_int = 51; +pub const _SC_IPV6: ::c_int = 52; +pub const _SC_MAPPED_FILES: ::c_int = 53; +pub const _SC_MEMLOCK: ::c_int = 54; +pub const _SC_MEMLOCK_RANGE: ::c_int = 55; +pub const _SC_MEMORY_PROTECTION: ::c_int = 56; +pub const _SC_MESSAGE_PASSING: ::c_int = 57; +pub const _SC_MQ_OPEN_MAX: ::c_int = 58; +pub const _SC_MQ_PRIO_MAX: ::c_int = 59; +pub const _SC_PRIORITIZED_IO: ::c_int = 60; +pub const _SC_PRIORITY_SCHEDULING: ::c_int = 61; +pub const _SC_RAW_SOCKETS: ::c_int = 62; +pub const _SC_READER_WRITER_LOCKS: ::c_int = 63; +pub const _SC_REALTIME_SIGNALS: ::c_int = 64; +pub const _SC_REGEXP: ::c_int = 65; +pub const _SC_RTSIG_MAX: ::c_int = 66; +pub const _SC_SEMAPHORES: ::c_int = 67; +pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68; +pub const _SC_SHELL: ::c_int = 69; +pub const _SC_SIGQUEUE_MAX: ::c_int = 70; +pub const _SC_SPAWN: ::c_int = 71; +pub const _SC_SPIN_LOCKS: ::c_int = 72; +pub const _SC_SPORADIC_SERVER: ::c_int = 73; +pub const _SC_SS_REPL_MAX: ::c_int = 74; +pub const _SC_SYNCHRONIZED_IO: ::c_int = 75; +pub const _SC_SYMLOOP_MAX: ::c_int = 76; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; +pub const _SC_THREAD_CPUTIME: ::c_int = 79; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 80; +pub const _SC_THREAD_KEYS_MAX: ::c_int = 81; +pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 82; +pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 83; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 84; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 85; +pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 86; +pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 87; +pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 88; +pub const _SC_THREAD_STACK_MIN: ::c_int = 89; +pub const _SC_THREAD_THREADS_MAX: ::c_int = 90; +pub const _SC_THREADS: ::c_int = 91; +pub const _SC_TIMEOUTS: ::c_int = 92; +pub const _SC_TIMER_MAX: ::c_int = 93; +pub const _SC_TIMERS: ::c_int = 94; +pub const _SC_TRACE: ::c_int = 95; +pub const _SC_TRACE_EVENT_FILTER: ::c_int = 96; +pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 97; +pub const _SC_TRACE_INHERIT: ::c_int = 98; +pub const _SC_TRACE_LOG: ::c_int = 99; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 100; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 101; +pub const _SC_LOGIN_NAME_MAX: ::c_int = 102; +pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 103; +pub const _SC_TRACE_NAME_MAX: ::c_int = 104; +pub const _SC_TRACE_SYS_MAX: ::c_int = 105; +pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 106; +pub const _SC_TTY_NAME_MAX: ::c_int = 107; +pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 108; +pub const _SC_V6_ILP32_OFF32: ::c_int = 109; +pub const _SC_V6_ILP32_OFFBIG: ::c_int = 110; +pub const _SC_V6_LP64_OFF64: ::c_int = 111; +pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 112; +pub const _SC_V7_ILP32_OFF32: ::c_int = 113; +pub const _SC_V7_ILP32_OFFBIG: ::c_int = 114; +pub const _SC_V7_LP64_OFF64: ::c_int = 115; +pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 116; +pub const _SC_XOPEN_CRYPT: ::c_int = 117; +pub const _SC_XOPEN_ENH_I18N: ::c_int = 118; +pub const _SC_XOPEN_LEGACY: ::c_int = 119; +pub const _SC_XOPEN_REALTIME: ::c_int = 120; +pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 121; +pub const _SC_XOPEN_STREAMS: ::c_int = 122; +pub const _SC_XOPEN_UNIX: ::c_int = 123; +pub const _SC_XOPEN_UUCP: ::c_int = 124; +pub const _SC_XOPEN_VERSION: ::c_int = 125; +pub const _SC_PHYS_PAGES: ::c_int = 500; +pub const _SC_AVPHYS_PAGES: ::c_int = 501; +pub const _SC_NPROCESSORS_CONF: ::c_int = 502; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 503; pub const FD_SETSIZE: usize = 1024; @@ -1085,7 +1081,7 @@ pub const NOTE_TRACK: u32 = 0x00000001; pub const NOTE_TRACKERR: u32 = 0x00000002; pub const NOTE_CHILD: u32 = 0x00000004; -pub const TMP_MAX : ::c_uint = 0x7fffffff; +pub const TMP_MAX: ::c_uint = 0x7fffffff; pub const NI_MAXHOST: ::size_t = 256; @@ -1284,7 +1280,7 @@ pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2; pub const TMPFS_ARGS_VERSION: ::c_int = 1; -pub const MAP_STACK : ::c_int = 0x4000; +pub const MAP_STACK: ::c_int = 0x4000; // https://github.com/openbsd/src/blob/master/sys/net/if.h#L187 pub const IFF_UP: ::c_int = 0x1; // interface is up @@ -1376,57 +1372,84 @@ f! { } } -extern { - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; - pub fn accept4(s: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t, flags: ::c_int) -> ::c_int; - pub fn execvpe(file: *const ::c_char, argv: *const *const ::c_char, - envp: *const *const ::c_char) -> ::c_int; - pub fn pledge(promises: *const ::c_char, - execpromises: *const ::c_char) -> ::c_int; - pub fn strtonum(nptr: *const ::c_char, minval: ::c_longlong, - maxval: ::c_longlong, - errstr: *mut *const ::c_char) -> ::c_longlong; +extern "C" { + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn accept4( + s: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn pledge( + promises: *const ::c_char, + execpromises: *const ::c_char, + ) -> ::c_int; + pub fn strtonum( + nptr: *const ::c_char, + minval: ::c_longlong, + maxval: ::c_longlong, + errstr: *mut *const ::c_char, + ) -> ::c_longlong; pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int; pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int; - pub fn chflagsat(fd: ::c_int, path: *const ::c_char, flags: ::c_uint, - atflag: ::c_int) -> ::c_int; + pub fn chflagsat( + fd: ::c_int, + path: *const ::c_char, + flags: ::c_uint, + atflag: ::c_int, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - servlen: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn kevent(kq: ::c_int, - changelist: *const ::kevent, - nchanges: ::c_int, - eventlist: *mut ::kevent, - nevents: ::c_int, - timeout: *const ::timespec) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + servlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn kevent( + kq: ::c_int, + changelist: *const ::kevent, + nchanges: ::c_int, + eventlist: *mut ::kevent, + nevents: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn pthread_main_np() -> ::c_int; pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); - pub fn pthread_stackseg_np(thread: ::pthread_t, - sinfo: *mut ::stack_t) -> ::c_int; - pub fn sysctl(name: *const ::c_int, - namelen: ::c_uint, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; + pub fn pthread_stackseg_np( + thread: ::pthread_t, + sinfo: *mut ::stack_t, + ) -> ::c_int; + pub fn sysctl( + name: *const ::c_int, + namelen: ::c_uint, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn ptrace(request: ::c_int, - pid: ::pid_t, - addr: caddr_t, - data: ::c_int) -> ::c_int; + pub fn ptrace( + request: ::c_int, + pid: ::pid_t, + addr: caddr_t, + data: ::c_int, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index fe1929f9bb1fc..fb206c9a9ea08 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -33,7 +33,9 @@ pub type idtype_t = ::c_uint; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s! { @@ -674,95 +676,95 @@ pub const MS_ASYNC: ::c_int = 0x01; pub const MS_INVALIDATE: ::c_int = 0x04; pub const MS_SYNC: ::c_int = 0x02; -pub const E2BIG : ::c_int = -2147454975; -pub const ECHILD : ::c_int = -2147454974; -pub const EDEADLK : ::c_int = -2147454973; -pub const EFBIG : ::c_int = -2147454972; -pub const EMLINK : ::c_int = -2147454971; -pub const ENFILE : ::c_int = -2147454970; -pub const ENODEV : ::c_int = -2147454969; -pub const ENOLCK : ::c_int = -2147454968; -pub const ENOSYS : ::c_int = -2147454967; -pub const ENOTTY : ::c_int = -2147454966; -pub const ENXIO : ::c_int = -2147454965; -pub const ESPIPE : ::c_int = -2147454964; -pub const ESRCH : ::c_int = -2147454963; -pub const EFPOS : ::c_int = -2147457962; -pub const ESIGPARM : ::c_int = -2147457961; -pub const EDOM : ::c_int = -2147454960; -pub const ERANGE : ::c_int = -2147454959; -pub const EPROTOTYPE : ::c_int = -2147454958; -pub const EPROTONOSUPPORT : ::c_int = -2147454957; -pub const EPFNOSUPPORT : ::c_int = -2147454956; -pub const EAFNOSUPPORT : ::c_int = -2147454955; -pub const EADDRINUSE : ::c_int = -2147454954; -pub const EADDRNOTAVAIL : ::c_int = -2147454953; -pub const ENETDOWN : ::c_int = -2147454952; -pub const ENETUNREACH : ::c_int = -2147454951; -pub const ENETRESET : ::c_int = -2147454950; -pub const ECONNABORTED : ::c_int = -2147454949; -pub const ECONNRESET : ::c_int = -2147454948; -pub const EISCONN : ::c_int = -2147454947; -pub const ENOTCONN : ::c_int = -2147454946; -pub const ESHUTDOWN : ::c_int = -2147454945; -pub const ECONNREFUSED : ::c_int = -2147454944; -pub const EHOSTUNREACH : ::c_int = -2147454943; -pub const ENOPROTOOPT : ::c_int = -2147454942; -pub const ENOBUFS : ::c_int = -2147454941; -pub const EINPROGRESS : ::c_int = -2147454940; -pub const EALREADY : ::c_int = -2147454939; -pub const EILSEQ : ::c_int = -2147454938; -pub const ENOMSG : ::c_int = -2147454937; -pub const ESTALE : ::c_int = -2147454936; -pub const EOVERFLOW : ::c_int = -2147454935; -pub const EMSGSIZE : ::c_int = -2147454934; -pub const EOPNOTSUPP : ::c_int = -2147454933; -pub const ENOTSOCK : ::c_int = -2147454932; -pub const EHOSTDOWN : ::c_int = -2147454931; -pub const EBADMSG : ::c_int = -2147454930; -pub const ECANCELED : ::c_int = -2147454929; -pub const EDESTADDRREQ : ::c_int = -2147454928; -pub const EDQUOT : ::c_int = -2147454927; -pub const EIDRM : ::c_int = -2147454926; -pub const EMULTIHOP : ::c_int = -2147454925; -pub const ENODATA : ::c_int = -2147454924; -pub const ENOLINK : ::c_int = -2147454923; -pub const ENOSR : ::c_int = -2147454922; -pub const ENOSTR : ::c_int = -2147454921; -pub const ENOTSUP : ::c_int = -2147454920; -pub const EPROTO : ::c_int = -2147454919; -pub const ETIME : ::c_int = -2147454918; -pub const ETXTBSY : ::c_int = -2147454917; -pub const ENOATTR : ::c_int = -2147454916; +pub const E2BIG: ::c_int = -2147454975; +pub const ECHILD: ::c_int = -2147454974; +pub const EDEADLK: ::c_int = -2147454973; +pub const EFBIG: ::c_int = -2147454972; +pub const EMLINK: ::c_int = -2147454971; +pub const ENFILE: ::c_int = -2147454970; +pub const ENODEV: ::c_int = -2147454969; +pub const ENOLCK: ::c_int = -2147454968; +pub const ENOSYS: ::c_int = -2147454967; +pub const ENOTTY: ::c_int = -2147454966; +pub const ENXIO: ::c_int = -2147454965; +pub const ESPIPE: ::c_int = -2147454964; +pub const ESRCH: ::c_int = -2147454963; +pub const EFPOS: ::c_int = -2147457962; +pub const ESIGPARM: ::c_int = -2147457961; +pub const EDOM: ::c_int = -2147454960; +pub const ERANGE: ::c_int = -2147454959; +pub const EPROTOTYPE: ::c_int = -2147454958; +pub const EPROTONOSUPPORT: ::c_int = -2147454957; +pub const EPFNOSUPPORT: ::c_int = -2147454956; +pub const EAFNOSUPPORT: ::c_int = -2147454955; +pub const EADDRINUSE: ::c_int = -2147454954; +pub const EADDRNOTAVAIL: ::c_int = -2147454953; +pub const ENETDOWN: ::c_int = -2147454952; +pub const ENETUNREACH: ::c_int = -2147454951; +pub const ENETRESET: ::c_int = -2147454950; +pub const ECONNABORTED: ::c_int = -2147454949; +pub const ECONNRESET: ::c_int = -2147454948; +pub const EISCONN: ::c_int = -2147454947; +pub const ENOTCONN: ::c_int = -2147454946; +pub const ESHUTDOWN: ::c_int = -2147454945; +pub const ECONNREFUSED: ::c_int = -2147454944; +pub const EHOSTUNREACH: ::c_int = -2147454943; +pub const ENOPROTOOPT: ::c_int = -2147454942; +pub const ENOBUFS: ::c_int = -2147454941; +pub const EINPROGRESS: ::c_int = -2147454940; +pub const EALREADY: ::c_int = -2147454939; +pub const EILSEQ: ::c_int = -2147454938; +pub const ENOMSG: ::c_int = -2147454937; +pub const ESTALE: ::c_int = -2147454936; +pub const EOVERFLOW: ::c_int = -2147454935; +pub const EMSGSIZE: ::c_int = -2147454934; +pub const EOPNOTSUPP: ::c_int = -2147454933; +pub const ENOTSOCK: ::c_int = -2147454932; +pub const EHOSTDOWN: ::c_int = -2147454931; +pub const EBADMSG: ::c_int = -2147454930; +pub const ECANCELED: ::c_int = -2147454929; +pub const EDESTADDRREQ: ::c_int = -2147454928; +pub const EDQUOT: ::c_int = -2147454927; +pub const EIDRM: ::c_int = -2147454926; +pub const EMULTIHOP: ::c_int = -2147454925; +pub const ENODATA: ::c_int = -2147454924; +pub const ENOLINK: ::c_int = -2147454923; +pub const ENOSR: ::c_int = -2147454922; +pub const ENOSTR: ::c_int = -2147454921; +pub const ENOTSUP: ::c_int = -2147454920; +pub const EPROTO: ::c_int = -2147454919; +pub const ETIME: ::c_int = -2147454918; +pub const ETXTBSY: ::c_int = -2147454917; +pub const ENOATTR: ::c_int = -2147454916; // INT_MIN -pub const ENOMEM : ::c_int = -2147454976; +pub const ENOMEM: ::c_int = -2147454976; // POSIX errors that can be mapped to BeOS error codes -pub const EACCES : ::c_int = -2147483646; -pub const EINTR : ::c_int = -2147483638; -pub const EIO : ::c_int = -2147483647; -pub const EBUSY : ::c_int = -2147483634; -pub const EFAULT : ::c_int = -2147478783; -pub const ETIMEDOUT : ::c_int = -2147483639; -pub const EAGAIN : ::c_int = -2147483637; -pub const EWOULDBLOCK : ::c_int = -2147483637; -pub const EBADF : ::c_int = -2147459072; -pub const EEXIST : ::c_int = -2147459070; -pub const EINVAL : ::c_int = -2147483643; -pub const ENAMETOOLONG : ::c_int = -2147459068; -pub const ENOENT : ::c_int = -2147459069; -pub const EPERM : ::c_int = -2147483633; -pub const ENOTDIR : ::c_int = -2147459067; -pub const EISDIR : ::c_int = -2147459063; -pub const ENOTEMPTY : ::c_int = -2147459066; -pub const ENOSPC : ::c_int = -2147459065; -pub const EROFS : ::c_int = -2147459064; -pub const EMFILE : ::c_int = -2147459062; -pub const EXDEV : ::c_int = -2147459061; -pub const ELOOP : ::c_int = -2147459060; -pub const ENOEXEC : ::c_int = -2147478782; -pub const EPIPE : ::c_int = -2147459059; +pub const EACCES: ::c_int = -2147483646; +pub const EINTR: ::c_int = -2147483638; +pub const EIO: ::c_int = -2147483647; +pub const EBUSY: ::c_int = -2147483634; +pub const EFAULT: ::c_int = -2147478783; +pub const ETIMEDOUT: ::c_int = -2147483639; +pub const EAGAIN: ::c_int = -2147483637; +pub const EWOULDBLOCK: ::c_int = -2147483637; +pub const EBADF: ::c_int = -2147459072; +pub const EEXIST: ::c_int = -2147459070; +pub const EINVAL: ::c_int = -2147483643; +pub const ENAMETOOLONG: ::c_int = -2147459068; +pub const ENOENT: ::c_int = -2147459069; +pub const EPERM: ::c_int = -2147483633; +pub const ENOTDIR: ::c_int = -2147459067; +pub const EISDIR: ::c_int = -2147459063; +pub const ENOTEMPTY: ::c_int = -2147459066; +pub const ENOSPC: ::c_int = -2147459065; +pub const EROFS: ::c_int = -2147459064; +pub const EMFILE: ::c_int = -2147459062; +pub const EXDEV: ::c_int = -2147459061; +pub const ELOOP: ::c_int = -2147459060; +pub const ENOEXEC: ::c_int = -2147478782; +pub const EPIPE: ::c_int = -2147459059; pub const IPPROTO_RAW: ::c_int = 255; @@ -915,51 +917,51 @@ pub const _PC_XATTR_ENABLED: ::c_int = 39; pub const FIONBIO: ::c_int = 0xbe000000; -pub const _SC_ARG_MAX : ::c_int = 15; -pub const _SC_CHILD_MAX : ::c_int = 16; -pub const _SC_CLK_TCK : ::c_int = 17; -pub const _SC_JOB_CONTROL : ::c_int = 18; -pub const _SC_NGROUPS_MAX : ::c_int = 19; -pub const _SC_OPEN_MAX : ::c_int = 20; -pub const _SC_SAVED_IDS : ::c_int = 21; -pub const _SC_STREAM_MAX : ::c_int = 22; -pub const _SC_TZNAME_MAX : ::c_int = 23; -pub const _SC_VERSION : ::c_int = 24; -pub const _SC_GETGR_R_SIZE_MAX : ::c_int = 25; -pub const _SC_GETPW_R_SIZE_MAX : ::c_int = 26; -pub const _SC_PAGESIZE : ::c_int = 27; -pub const _SC_PAGE_SIZE : ::c_int = 27; -pub const _SC_SEM_NSEMS_MAX : ::c_int = 28; -pub const _SC_SEM_VALUE_MAX : ::c_int = 29; -pub const _SC_SEMAPHORES : ::c_int = 30; -pub const _SC_THREADS : ::c_int = 31; -pub const _SC_IOV_MAX : ::c_int = 32; -pub const _SC_UIO_MAXIOV : ::c_int = 32; -pub const _SC_NPROCESSORS_CONF : ::c_int = 34; -pub const _SC_NPROCESSORS_ONLN : ::c_int = 35; -pub const _SC_ATEXIT_MAX : ::c_int = 37; -pub const _SC_PASS_MAX : ::c_int = 39; -pub const _SC_PHYS_PAGES : ::c_int = 40; -pub const _SC_AVPHYS_PAGES : ::c_int = 41; -pub const _SC_PIPE : ::c_int = 42; -pub const _SC_SELECT : ::c_int = 43; -pub const _SC_POLL : ::c_int = 44; -pub const _SC_MAPPED_FILES : ::c_int = 45; -pub const _SC_THREAD_PROCESS_SHARED : ::c_int = 46; -pub const _SC_THREAD_STACK_MIN : ::c_int = 47; -pub const _SC_THREAD_ATTR_STACKADDR : ::c_int = 48; -pub const _SC_THREAD_ATTR_STACKSIZE : ::c_int = 49; -pub const _SC_THREAD_PRIORITY_SCHEDULING : ::c_int = 50; -pub const _SC_REALTIME_SIGNALS : ::c_int = 51; -pub const _SC_MEMORY_PROTECTION : ::c_int = 52; -pub const _SC_SIGQUEUE_MAX : ::c_int = 53; -pub const _SC_RTSIG_MAX : ::c_int = 54; -pub const _SC_MONOTONIC_CLOCK : ::c_int = 55; -pub const _SC_DELAYTIMER_MAX : ::c_int = 56; -pub const _SC_TIMER_MAX : ::c_int = 57; -pub const _SC_TIMERS : ::c_int = 58; -pub const _SC_CPUTIME : ::c_int = 59; -pub const _SC_THREAD_CPUTIME : ::c_int = 60; +pub const _SC_ARG_MAX: ::c_int = 15; +pub const _SC_CHILD_MAX: ::c_int = 16; +pub const _SC_CLK_TCK: ::c_int = 17; +pub const _SC_JOB_CONTROL: ::c_int = 18; +pub const _SC_NGROUPS_MAX: ::c_int = 19; +pub const _SC_OPEN_MAX: ::c_int = 20; +pub const _SC_SAVED_IDS: ::c_int = 21; +pub const _SC_STREAM_MAX: ::c_int = 22; +pub const _SC_TZNAME_MAX: ::c_int = 23; +pub const _SC_VERSION: ::c_int = 24; +pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 25; +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 26; +pub const _SC_PAGESIZE: ::c_int = 27; +pub const _SC_PAGE_SIZE: ::c_int = 27; +pub const _SC_SEM_NSEMS_MAX: ::c_int = 28; +pub const _SC_SEM_VALUE_MAX: ::c_int = 29; +pub const _SC_SEMAPHORES: ::c_int = 30; +pub const _SC_THREADS: ::c_int = 31; +pub const _SC_IOV_MAX: ::c_int = 32; +pub const _SC_UIO_MAXIOV: ::c_int = 32; +pub const _SC_NPROCESSORS_CONF: ::c_int = 34; +pub const _SC_NPROCESSORS_ONLN: ::c_int = 35; +pub const _SC_ATEXIT_MAX: ::c_int = 37; +pub const _SC_PASS_MAX: ::c_int = 39; +pub const _SC_PHYS_PAGES: ::c_int = 40; +pub const _SC_AVPHYS_PAGES: ::c_int = 41; +pub const _SC_PIPE: ::c_int = 42; +pub const _SC_SELECT: ::c_int = 43; +pub const _SC_POLL: ::c_int = 44; +pub const _SC_MAPPED_FILES: ::c_int = 45; +pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 46; +pub const _SC_THREAD_STACK_MIN: ::c_int = 47; +pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 48; +pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 49; +pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 50; +pub const _SC_REALTIME_SIGNALS: ::c_int = 51; +pub const _SC_MEMORY_PROTECTION: ::c_int = 52; +pub const _SC_SIGQUEUE_MAX: ::c_int = 53; +pub const _SC_RTSIG_MAX: ::c_int = 54; +pub const _SC_MONOTONIC_CLOCK: ::c_int = 55; +pub const _SC_DELAYTIMER_MAX: ::c_int = 56; +pub const _SC_TIMER_MAX: ::c_int = 57; +pub const _SC_TIMERS: ::c_int = 58; +pub const _SC_CPUTIME: ::c_int = 59; +pub const _SC_THREAD_CPUTIME: ::c_int = 60; pub const PTHREAD_STACK_MIN: ::size_t = 8192; @@ -1070,68 +1072,68 @@ pub const IXON: ::tcflag_t = 0x400; pub const IXANY: ::tcflag_t = 0x800; pub const IXOFF: ::tcflag_t = 0x1000; -pub const OPOST: ::tcflag_t = 0x00000001; -pub const OLCUC: ::tcflag_t = 0x00000002; -pub const ONLCR: ::tcflag_t = 0x00000004; -pub const OCRNL: ::tcflag_t = 0x00000008; -pub const ONOCR: ::tcflag_t = 0x00000010; +pub const OPOST: ::tcflag_t = 0x00000001; +pub const OLCUC: ::tcflag_t = 0x00000002; +pub const ONLCR: ::tcflag_t = 0x00000004; +pub const OCRNL: ::tcflag_t = 0x00000008; +pub const ONOCR: ::tcflag_t = 0x00000010; pub const ONLRET: ::tcflag_t = 0x00000020; -pub const OFILL: ::tcflag_t = 0x00000040; -pub const OFDEL: ::tcflag_t = 0x00000080; -pub const NLDLY: ::tcflag_t = 0x00000100; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; -pub const CRDLY: ::tcflag_t = 0x00000600; -pub const CR0: ::tcflag_t = 0x00000000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; +pub const OFILL: ::tcflag_t = 0x00000040; +pub const OFDEL: ::tcflag_t = 0x00000080; +pub const NLDLY: ::tcflag_t = 0x00000100; +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00000100; +pub const CRDLY: ::tcflag_t = 0x00000600; +pub const CR0: ::tcflag_t = 0x00000000; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; pub const TABDLY: ::tcflag_t = 0x00001800; -pub const TAB0: ::tcflag_t = 0x00000000; -pub const TAB1: ::tcflag_t = 0x00000800; -pub const TAB2: ::tcflag_t = 0x00001000; -pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0x00002000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const VTDLY: ::tcflag_t = 0x00004000; -pub const VT0: ::tcflag_t = 0x00000000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const FFDLY: ::tcflag_t = 0x00008000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const FF1: ::tcflag_t = 0x00008000; - -pub const CSIZE: ::tcflag_t = 0x00000020; -pub const CS5: ::tcflag_t = 0x00000000; -pub const CS6: ::tcflag_t = 0x00000000; -pub const CS7: ::tcflag_t = 0x00000000; -pub const CS8: ::tcflag_t = 0x00000020; -pub const CSTOPB: ::tcflag_t = 0x00000040; -pub const CREAD: ::tcflag_t = 0x00000080; -pub const PARENB: ::tcflag_t = 0x00000100; -pub const PARODD: ::tcflag_t = 0x00000200; -pub const HUPCL: ::tcflag_t = 0x00000400; -pub const CLOCAL: ::tcflag_t = 0x00000800; -pub const XLOBLK: ::tcflag_t = 0x00001000; -pub const CTSFLOW: ::tcflag_t = 0x00002000; -pub const RTSFLOW: ::tcflag_t = 0x00004000; -pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW; - -pub const ISIG: ::tcflag_t = 0x00000001; -pub const ICANON: ::tcflag_t = 0x00000002; -pub const XCASE: ::tcflag_t = 0x00000004; -pub const ECHO: ::tcflag_t = 0x00000008; -pub const ECHOE: ::tcflag_t = 0x00000010; -pub const ECHOK: ::tcflag_t = 0x00000020; -pub const ECHONL: ::tcflag_t = 0x00000040; -pub const NOFLSH: ::tcflag_t = 0x00000080; -pub const TOSTOP: ::tcflag_t = 0x00000100; -pub const IEXTEN: ::tcflag_t = 0x00000200; -pub const ECHOCTL: ::tcflag_t = 0x00000400; -pub const ECHOPRT: ::tcflag_t = 0x00000800; -pub const ECHOKE: ::tcflag_t = 0x00001000; -pub const FLUSHO: ::tcflag_t = 0x00002000; -pub const PENDIN: ::tcflag_t = 0x00004000; +pub const TAB0: ::tcflag_t = 0x00000000; +pub const TAB1: ::tcflag_t = 0x00000800; +pub const TAB2: ::tcflag_t = 0x00001000; +pub const TAB3: ::tcflag_t = 0x00001800; +pub const BSDLY: ::tcflag_t = 0x00002000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const VTDLY: ::tcflag_t = 0x00004000; +pub const VT0: ::tcflag_t = 0x00000000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const FFDLY: ::tcflag_t = 0x00008000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const FF1: ::tcflag_t = 0x00008000; + +pub const CSIZE: ::tcflag_t = 0x00000020; +pub const CS5: ::tcflag_t = 0x00000000; +pub const CS6: ::tcflag_t = 0x00000000; +pub const CS7: ::tcflag_t = 0x00000000; +pub const CS8: ::tcflag_t = 0x00000020; +pub const CSTOPB: ::tcflag_t = 0x00000040; +pub const CREAD: ::tcflag_t = 0x00000080; +pub const PARENB: ::tcflag_t = 0x00000100; +pub const PARODD: ::tcflag_t = 0x00000200; +pub const HUPCL: ::tcflag_t = 0x00000400; +pub const CLOCAL: ::tcflag_t = 0x00000800; +pub const XLOBLK: ::tcflag_t = 0x00001000; +pub const CTSFLOW: ::tcflag_t = 0x00002000; +pub const RTSFLOW: ::tcflag_t = 0x00004000; +pub const CRTSCTS: ::tcflag_t = RTSFLOW | CTSFLOW; + +pub const ISIG: ::tcflag_t = 0x00000001; +pub const ICANON: ::tcflag_t = 0x00000002; +pub const XCASE: ::tcflag_t = 0x00000004; +pub const ECHO: ::tcflag_t = 0x00000008; +pub const ECHOE: ::tcflag_t = 0x00000010; +pub const ECHOK: ::tcflag_t = 0x00000020; +pub const ECHONL: ::tcflag_t = 0x00000040; +pub const NOFLSH: ::tcflag_t = 0x00000080; +pub const TOSTOP: ::tcflag_t = 0x00000100; +pub const IEXTEN: ::tcflag_t = 0x00000200; +pub const ECHOCTL: ::tcflag_t = 0x00000400; +pub const ECHOPRT: ::tcflag_t = 0x00000800; +pub const ECHOKE: ::tcflag_t = 0x00001000; +pub const FLUSHO: ::tcflag_t = 0x00002000; +pub const PENDIN: ::tcflag_t = 0x00004000; pub const TCGB_CTS: ::c_int = 0x01; pub const TCGB_DSR: ::c_int = 0x02; @@ -1145,26 +1147,26 @@ pub const TIOCM_DSR: ::c_int = TCGB_DSR; pub const TIOCM_DTR: ::c_int = 0x10; pub const TIOCM_RTS: ::c_int = 0x20; -pub const B0: speed_t = 0x00; -pub const B50: speed_t = 0x01; -pub const B75: speed_t = 0x02; -pub const B110: speed_t = 0x03; -pub const B134: speed_t = 0x04; -pub const B150: speed_t = 0x05; -pub const B200: speed_t = 0x06; -pub const B300: speed_t = 0x07; -pub const B600: speed_t = 0x08; -pub const B1200: speed_t = 0x09; -pub const B1800: speed_t = 0x0A; -pub const B2400: speed_t = 0x0B; -pub const B4800: speed_t = 0x0C; -pub const B9600: speed_t = 0x0D; -pub const B19200: speed_t = 0x0E; -pub const B38400: speed_t = 0x0F; -pub const B57600: speed_t = 0x10; +pub const B0: speed_t = 0x00; +pub const B50: speed_t = 0x01; +pub const B75: speed_t = 0x02; +pub const B110: speed_t = 0x03; +pub const B134: speed_t = 0x04; +pub const B150: speed_t = 0x05; +pub const B200: speed_t = 0x06; +pub const B300: speed_t = 0x07; +pub const B600: speed_t = 0x08; +pub const B1200: speed_t = 0x09; +pub const B1800: speed_t = 0x0A; +pub const B2400: speed_t = 0x0B; +pub const B4800: speed_t = 0x0C; +pub const B9600: speed_t = 0x0D; +pub const B19200: speed_t = 0x0E; +pub const B38400: speed_t = 0x0F; +pub const B57600: speed_t = 0x10; pub const B115200: speed_t = 0x11; pub const B230400: speed_t = 0x12; -pub const B31250: speed_t = 0x13; +pub const B31250: speed_t = 0x13; pub const TCSANOW: ::c_int = 0x01; pub const TCSADRAIN: ::c_int = 0x02; @@ -1179,30 +1181,30 @@ pub const TCIFLUSH: ::c_int = 0x01; pub const TCOFLUSH: ::c_int = 0x02; pub const TCIOFLUSH: ::c_int = 0x03; -pub const TCGETA: ::c_int = 0x8000; -pub const TCSETA: ::c_int = TCGETA + 1; -pub const TCSETAF: ::c_int = TCGETA + 2; -pub const TCSETAW: ::c_int = TCGETA + 3; +pub const TCGETA: ::c_int = 0x8000; +pub const TCSETA: ::c_int = TCGETA + 1; +pub const TCSETAF: ::c_int = TCGETA + 2; +pub const TCSETAW: ::c_int = TCGETA + 3; pub const TCWAITEVENT: ::c_int = TCGETA + 4; -pub const TCSBRK: ::c_int = TCGETA + 5; -pub const TCFLSH: ::c_int = TCGETA + 6; -pub const TCXONC: ::c_int = TCGETA + 7; +pub const TCSBRK: ::c_int = TCGETA + 5; +pub const TCFLSH: ::c_int = TCGETA + 6; +pub const TCXONC: ::c_int = TCGETA + 7; pub const TCQUERYCONNECTED: ::c_int = TCGETA + 8; -pub const TCGETBITS: ::c_int = TCGETA + 9; -pub const TCSETDTR: ::c_int = TCGETA + 10; -pub const TCSETRTS: ::c_int = TCGETA + 11; -pub const TIOCGWINSZ: ::c_int = TCGETA + 12; -pub const TIOCSWINSZ: ::c_int = TCGETA + 13; -pub const TCVTIME: ::c_int = TCGETA + 14; -pub const TIOCGPGRP: ::c_int = TCGETA + 15; -pub const TIOCSPGRP: ::c_int = TCGETA + 16; -pub const TIOCSCTTY: ::c_int = TCGETA + 17; -pub const TIOCMGET: ::c_int = TCGETA + 18; -pub const TIOCMSET: ::c_int = TCGETA + 19; -pub const TIOCSBRK: ::c_int = TCGETA + 20; -pub const TIOCCBRK: ::c_int = TCGETA + 21; -pub const TIOCMBIS: ::c_int = TCGETA + 22; -pub const TIOCMBIC: ::c_int = TCGETA + 23; +pub const TCGETBITS: ::c_int = TCGETA + 9; +pub const TCSETDTR: ::c_int = TCGETA + 10; +pub const TCSETRTS: ::c_int = TCGETA + 11; +pub const TIOCGWINSZ: ::c_int = TCGETA + 12; +pub const TIOCSWINSZ: ::c_int = TCGETA + 13; +pub const TCVTIME: ::c_int = TCGETA + 14; +pub const TIOCGPGRP: ::c_int = TCGETA + 15; +pub const TIOCSPGRP: ::c_int = TCGETA + 16; +pub const TIOCSCTTY: ::c_int = TCGETA + 17; +pub const TIOCMGET: ::c_int = TCGETA + 18; +pub const TIOCMSET: ::c_int = TCGETA + 19; +pub const TIOCSBRK: ::c_int = TCGETA + 20; +pub const TIOCCBRK: ::c_int = TCGETA + 21; +pub const TIOCMBIS: ::c_int = TCGETA + 22; +pub const TIOCMBIC: ::c_int = TCGETA + 23; f! { pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { @@ -1265,11 +1267,14 @@ f! { } } -extern { +extern "C" { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn _errnop() -> *mut ::c_int; pub fn abs(i: ::c_int) -> ::c_int; @@ -1280,118 +1285,184 @@ extern { } #[link(name = "bsd")] -extern { +extern "C" { pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn clock_gettime(clk_id: ::c_int, tp: *mut ::timespec) -> ::c_int; pub fn clock_settime(clk_id: ::c_int, tp: *const ::timespec) -> ::c_int; - pub fn pthread_create(thread: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; + pub fn pthread_create( + thread: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *const ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - sevlen: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; - - pub fn glob(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + sevlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) - -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn shm_open( + name: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; - pub fn execvpe(file: *const ::c_char, argv: *const *const ::c_char, - environment: *const *const ::c_char) -> ::c_int; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + environment: *const *const ::c_char, + ) -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; @@ -1399,40 +1470,52 @@ extern { pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::c_int; - pub fn forkpty(amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::pid_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::pid_t; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; } diff --git a/src/unix/hermit/mod.rs b/src/unix/hermit/mod.rs index 4bc03ef9baa18..83e064e71f980 100644 --- a/src/unix/hermit/mod.rs +++ b/src/unix/hermit/mod.rs @@ -806,7 +806,7 @@ pub const _SC_TRACE_SYS_MAX: ::c_int = 89; pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 90; pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 91; pub const _SC_V7_ILP32_OFF32: ::c_int = 92; -pub const _SC_V6_ILP32_OFF32: ::c_int =_SC_V7_ILP32_OFF32; +pub const _SC_V6_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; pub const _SC_XBS5_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; pub const _SC_V7_ILP32_OFFBIG: ::c_int = 93; pub const _SC_V6_ILP32_OFFBIG: ::c_int = _SC_V7_ILP32_OFFBIG; @@ -963,17 +963,21 @@ f! { } } -extern { +extern "C" { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; @@ -981,31 +985,52 @@ extern { pub fn rand() -> ::c_int; pub fn srand(seed: ::c_uint); - pub fn bind(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) - -> ::c_int; - - pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; - pub fn getpwuid_r(uid: ::uid_t, pwd: *mut passwd, buf: *mut ::c_char, - buflen: ::size_t, result: *mut *mut passwd) -> ::c_int; + pub fn bind( + s: ::c_int, + name: *const ::sockaddr, + namelen: ::socklen_t, + ) -> ::c_int; + + pub fn clock_gettime( + clock_id: ::clockid_t, + tp: *mut ::timespec, + ) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; // Dummy pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; pub fn memalign(align: ::size_t, nbytes: ::size_t) -> *mut ::c_void; - pub fn pthread_create(tid: *mut ::pthread_t, attr: *const ::pthread_attr_t, - start: extern fn(*mut ::c_void) -> *mut ::c_void, arg: *mut ::c_void) - -> ::c_int; - - pub fn pthread_sigmask(how: ::c_int, set: *const ::sigset_t, - oset: *mut ::sigset_t) -> ::c_int; - - pub fn recvfrom(s: ::c_int, mem: *mut ::c_void, len: ::size_t, - flags: ::c_int, from: *mut ::sockaddr, fromlen: *mut ::socklen_t) - -> ::c_int; + pub fn pthread_create( + tid: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + arg: *mut ::c_void, + ) -> ::c_int; + + pub fn pthread_sigmask( + how: ::c_int, + set: *const ::sigset_t, + oset: *mut ::sigset_t, + ) -> ::c_int; + + pub fn recvfrom( + s: ::c_int, + mem: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + from: *mut ::sockaddr, + fromlen: *mut ::socklen_t, + ) -> ::c_int; pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index e8fd20e49dc69..e5c97e9e002f3 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -179,12 +179,10 @@ pub const PTRACE_SETFPREGS: ::c_int = 15; pub const PTRACE_GETREGS: ::c_int = 12; pub const PTRACE_SETREGS: ::c_int = 13; -pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { - value: 0, -}; -pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { - value: 0, -}; +pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = + pthread_mutex_t { value: 0 }; +pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = + pthread_cond_t { value: 0 }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { lock: PTHREAD_MUTEX_INITIALIZER, cond: PTHREAD_COND_INITIALIZER, @@ -206,7 +204,7 @@ pub const UT_HOSTSIZE: usize = 16; pub const SIGSTKSZ: ::size_t = 8192; pub const MINSIGSTKSZ: ::size_t = 2048; -extern { +extern "C" { pub fn timegm64(tm: *const ::tm) -> ::time64_t; } diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index d9759bda1092a..9826bb9e38caa 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -107,7 +107,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct pthread_mutex_t { value: ::c_int, __reserved: [::c_char; 36], diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index ab6e2650fef56..74c64e5ec73c6 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -200,7 +200,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct sockaddr_nl { pub nl_family: ::sa_family_t, nl_pad: ::c_ushort, @@ -798,10 +798,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGTTIN: ::c_int = 21; pub const SIGTTOU: ::c_int = 22; @@ -831,17 +828,17 @@ pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE); pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT); pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION); pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; + | ::LC_NUMERIC_MASK + | ::LC_TIME_MASK + | ::LC_COLLATE_MASK + | ::LC_MONETARY_MASK + | ::LC_MESSAGES_MASK + | LC_PAPER_MASK + | LC_NAME_MASK + | LC_ADDRESS_MASK + | LC_TELEPHONE_MASK + | LC_MEASUREMENT_MASK + | LC_IDENTIFICATION_MASK; pub const MAP_ANON: ::c_int = 0x0020; pub const MAP_ANONYMOUS: ::c_int = 0x0020; @@ -1207,14 +1204,14 @@ pub const ICANON: ::tcflag_t = 0x00000002; pub const PENDIN: ::tcflag_t = 0x00004000; pub const NOFLSH: ::tcflag_t = 0x00000080; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -1400,10 +1397,10 @@ pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK; pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; pub const SO_ORIGINAL_DST: ::c_int = 80; -pub const IP_ORIGDSTADDR : ::c_int = 20; -pub const IP_RECVORIGDSTADDR : ::c_int = IP_ORIGDSTADDR; -pub const IPV6_ORIGDSTADDR : ::c_int = 74; -pub const IPV6_RECVORIGDSTADDR : ::c_int = IPV6_ORIGDSTADDR; +pub const IP_ORIGDSTADDR: ::c_int = 20; +pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; +pub const IPV6_ORIGDSTADDR: ::c_int = 74; +pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; pub const IPV6_FLOWINFO_SEND: ::c_int = 33; @@ -1419,11 +1416,11 @@ pub const MFD_HUGETLB: ::c_uint = 0x0004; // linux/netfilter.h pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; +pub const NF_ACCEPT: ::c_int = 1; +pub const NF_STOLEN: ::c_int = 2; +pub const NF_QUEUE: ::c_int = 3; +pub const NF_REPEAT: ::c_int = 4; +pub const NF_STOP: ::c_int = 5; pub const NF_MAX_VERDICT: ::c_int = NF_STOP; pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; @@ -1847,38 +1844,44 @@ pub const ALG_OP_DECRYPT: ::c_int = 0; pub const ALG_OP_ENCRYPT: ::c_int = 1; // uapi/linux/inotify.h -pub const IN_ACCESS: u32 = 0x0000_0001; -pub const IN_MODIFY: u32 = 0x0000_0002; -pub const IN_ATTRIB: u32 = 0x0000_0004; -pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; +pub const IN_ACCESS: u32 = 0x0000_0001; +pub const IN_MODIFY: u32 = 0x0000_0002; +pub const IN_ATTRIB: u32 = 0x0000_0004; +pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; -pub const IN_CLOSE: u32 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); -pub const IN_OPEN: u32 = 0x0000_0020; -pub const IN_MOVED_FROM: u32 = 0x0000_0040; -pub const IN_MOVED_TO: u32 = 0x0000_0080; -pub const IN_MOVE: u32 = (IN_MOVED_FROM | IN_MOVED_TO); -pub const IN_CREATE: u32 = 0x0000_0100; -pub const IN_DELETE: u32 = 0x0000_0200; -pub const IN_DELETE_SELF: u32 = 0x0000_0400; -pub const IN_MOVE_SELF: u32 = 0x0000_0800; -pub const IN_UNMOUNT: u32 = 0x0000_2000; -pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; -pub const IN_IGNORED: u32 = 0x0000_8000; -pub const IN_ONLYDIR: u32 = 0x0100_0000; -pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; +pub const IN_CLOSE: u32 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); +pub const IN_OPEN: u32 = 0x0000_0020; +pub const IN_MOVED_FROM: u32 = 0x0000_0040; +pub const IN_MOVED_TO: u32 = 0x0000_0080; +pub const IN_MOVE: u32 = (IN_MOVED_FROM | IN_MOVED_TO); +pub const IN_CREATE: u32 = 0x0000_0100; +pub const IN_DELETE: u32 = 0x0000_0200; +pub const IN_DELETE_SELF: u32 = 0x0000_0400; +pub const IN_MOVE_SELF: u32 = 0x0000_0800; +pub const IN_UNMOUNT: u32 = 0x0000_2000; +pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; +pub const IN_IGNORED: u32 = 0x0000_8000; +pub const IN_ONLYDIR: u32 = 0x0100_0000; +pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; // pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; // pub const IN_MASK_CREATE: u32 = 0x1000_0000; // pub const IN_MASK_ADD: u32 = 0x2000_0000; -pub const IN_ISDIR: u32 = 0x4000_0000; -pub const IN_ONESHOT: u32 = 0x8000_0000; - -pub const IN_ALL_EVENTS: u32 = ( - IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | - IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | - IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | - IN_MOVE_SELF -); +pub const IN_ISDIR: u32 = 0x4000_0000; +pub const IN_ONESHOT: u32 = 0x8000_0000; + +pub const IN_ALL_EVENTS: u32 = (IN_ACCESS + | IN_MODIFY + | IN_ATTRIB + | IN_CLOSE_WRITE + | IN_CLOSE_NOWRITE + | IN_OPEN + | IN_MOVED_FROM + | IN_MOVED_TO + | IN_DELETE + | IN_CREATE + | IN_DELETE_SELF + | IN_MOVE_SELF); pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; @@ -1963,166 +1966,245 @@ f! { } } -extern { - pub fn getrlimit64(resource: ::c_int, - rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, - rlim: *const rlimit64) -> ::c_int; +extern "C" { + pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn msync(addr: *mut ::c_void, len: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::size_t, - serv: *mut ::c_char, - sevlen: ::size_t, - flags: ::c_int) -> ::c_int; + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::size_t, + serv: *mut ::c_char, + sevlen: ::size_t, + flags: ::c_int, + ) -> ::c_int; pub fn ptrace(request: ::c_int, ...) -> ::c_long; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; pub fn __sched_cpualloc(count: ::size_t) -> *mut ::cpu_set_t; pub fn __sched_cpufree(set: *mut ::cpu_set_t); - pub fn __sched_cpucount(setsize: ::size_t, - set: *const cpu_set_t) -> ::c_int; + pub fn __sched_cpucount( + setsize: ::size_t, + set: *const cpu_set_t, + ) -> ::c_int; pub fn sched_getcpu() -> ::c_int; pub fn utmpname(name: *const ::c_char) -> ::c_int; pub fn setutent(); pub fn getutent() -> *mut utmp; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) - -> ::c_int; + pub fn posix_fallocate( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn signalfd( + fd: ::c_int, + mask: *const ::sigset_t, + flags: ::c_int, + ) -> ::c_int; pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t) -> ::c_int; + pub fn sched_getaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *mut cpu_set_t, + ) -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; pub fn epoll_create(size: ::c_int) -> ::c_int; pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; - pub fn pthread_getschedparam(native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event, + ) -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; pub fn unshare(flags: ::c_int) -> ::c_int; pub fn umount(target: *const ::c_char) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, - fd_out: ::c_int, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice(fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; + pub fn tee( + fd_in: ::c_int, + fd_out: ::c_int, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn settimeofday( + tv: *const ::timeval, + tz: *const ::timezone, + ) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) + -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam( + pid: ::pid_t, + param: *const ::sched_param, + ) -> ::c_int; pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice(fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; pub fn personality(persona: ::c_uint) -> ::c_int; pub fn prctl(option: ::c_int, ...) -> ::c_int; pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll(fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, ...) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep(clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedparam(native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler(pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; - pub fn sendfile(out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t) -> ::ssize_t; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; pub fn setfsgid(gid: ::gid_t) -> ::c_int; pub fn setfsuid(uid: ::uid_t) -> ::c_int; pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; @@ -2130,55 +2212,84 @@ extern { pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist(user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int) -> ::c_int; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; pub fn __errno() -> *mut ::c_int; pub fn inotify_rm_watch(fd: ::c_int, wd: u32) -> ::c_int; - pub fn sendmmsg(sockfd: ::c_int, msgvec: *const ::mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *const ::timespec) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *const ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn inotify_init() -> ::c_int; pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, - path: *const ::c_char, - mask: u32) -> ::c_int; + pub fn inotify_add_watch( + fd: ::c_int, + path: *const ::c_char, + mask: u32, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index 26a49b234b99c..8019b7c3bb708 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -62,5 +62,5 @@ macro_rules! expand_align { } } } - } + }; } diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index acce2c1d41fed..d062b98f41c47 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -38,7 +38,9 @@ pub type nlink_t = u32; pub enum fpos64_t {} // TODO: fill this out with a struct impl ::Copy for fpos64_t {} impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { *self } + fn clone(&self) -> fpos64_t { + *self + } } s! { @@ -1219,10 +1221,7 @@ pub const TCP_FASTOPEN: ::c_int = 23; pub const TCP_TIMESTAMP: ::c_int = 24; #[doc(hidden)] -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = ::SIGSYS; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; @@ -1293,12 +1292,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -1331,14 +1330,14 @@ pub const PENDIN: ::tcflag_t = 0x00004000; pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -1719,15 +1718,16 @@ f! { } } -extern { - pub fn getrlimit64(resource: ::c_int, - rlim: *mut rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, - rlim: *const rlimit64) -> ::c_int; +extern "C" { + pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; @@ -1735,108 +1735,166 @@ extern { pub fn rand() -> ::c_int; pub fn srand(seed: ::c_uint); - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, - mode: mode_t) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn shm_open( + name: *const c_char, + oflag: ::c_int, + mode: mode_t, + ) -> ::c_int; + + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fopen64(filename: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn freopen64(filename: *const c_char, mode: *const c_char, - file: *mut ::FILE) -> *mut ::FILE; + pub fn fopen64( + filename: *const c_char, + mode: *const c_char, + ) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; pub fn tmpfile64() -> *mut ::FILE; pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int) -> ::c_int; + pub fn fseeko64( + stream: *mut ::FILE, + offset: ::off64_t, + whence: ::c_int, + ) -> ::c_int; pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; + pub fn posix_fallocate( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, - suffixlen: ::c_int, - flags: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; + pub fn mkostemps( + template: *mut ::c_char, + suffixlen: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn mremap(addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ...) -> *mut ::c_void; - - pub fn glob(pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_uint) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_uint, timeout: *mut ::timespec) -> ::c_int; + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; pub fn sync(); pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/emscripten/no_align.rs b/src/unix/linux_like/emscripten/no_align.rs index ece4dff17c665..768dc73a434f6 100644 --- a/src/unix/linux_like/emscripten/no_align.rs +++ b/src/unix/linux_like/emscripten/no_align.rs @@ -59,5 +59,5 @@ macro_rules! expand_align { } } } - } + }; } diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs index be8ac0697633a..440a8415fbec6 100644 --- a/src/unix/linux_like/linux/align.rs +++ b/src/unix/linux_like/linux/align.rs @@ -98,5 +98,5 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } } - } + }; } diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm.rs index e186c241d67c2..73af4b8116b06 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm.rs @@ -349,10 +349,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -411,14 +408,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips.rs index f21b8c4cae640..cfe8ef6927051 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips.rs @@ -178,91 +178,91 @@ pub const SYS_close: ::c_long = 4000 + 6; pub const SYS_waitpid: ::c_long = 4000 + 7; pub const SYS_creat: ::c_long = 4000 + 8; pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; pub const SYS_fstatfs: ::c_long = 4000 + 100; pub const SYS_ioperm: ::c_long = 4000 + 101; pub const SYS_socketcall: ::c_long = 4000 + 102; @@ -839,14 +839,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 2e584f21310ec..6f39c208c31d2 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -238,14 +238,15 @@ pub const PTRACE_GETREGS: ::c_uint = 12; pub const PTRACE_SETREGS: ::c_uint = 13; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 8f57b72639983..92e52333cad18 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -363,10 +363,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -423,14 +420,14 @@ pub const ICANON: ::tcflag_t = 0x100; pub const PENDIN: ::tcflag_t = 0x20000000; pub const NOFLSH: ::tcflag_t = 0x80000000; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86.rs index 654a18d73d830..67b80b28f7f9c 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86.rs @@ -240,7 +240,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct user_fpxregs_struct { pub cwd: ::c_ushort, pub swd: ::c_ushort, @@ -555,10 +555,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -617,14 +614,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const TIOCGSOFTCAR: ::c_ulong = 0x5419; pub const TIOCSSOFTCAR: ::c_ulong = 0x541A; @@ -1136,12 +1133,17 @@ pub const REG_EFL: ::c_int = 16; pub const REG_UESP: ::c_int = 17; pub const REG_SS: ::c_int = 18; -extern { +extern "C" { pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, - func: extern fn (), - argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, - ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext( + ucp: *mut ucontext_t, + func: extern "C" fn(), + argc: ::c_int, + ... + ); + pub fn swapcontext( + uocp: *mut ucontext_t, + ucp: *const ucontext_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64.rs index 3e1bff5a1d877..4769e74e7b325 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64.rs @@ -398,10 +398,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -580,14 +577,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -929,12 +926,13 @@ pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64.rs index baaa330028fe1..a9b49f3c31019 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64.rs @@ -254,96 +254,96 @@ pub const SYS_lstat: ::c_long = 5000 + 6; pub const SYS_poll: ::c_long = 5000 + 7; pub const SYS_lseek: ::c_long = 5000 + 8; pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; +pub const SYS_mprotect: ::c_long = 5000 + 10; +pub const SYS_munmap: ::c_long = 5000 + 11; +pub const SYS_brk: ::c_long = 5000 + 12; +pub const SYS_rt_sigaction: ::c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; +pub const SYS_ioctl: ::c_long = 5000 + 15; +pub const SYS_pread64: ::c_long = 5000 + 16; +pub const SYS_pwrite64: ::c_long = 5000 + 17; +pub const SYS_readv: ::c_long = 5000 + 18; +pub const SYS_writev: ::c_long = 5000 + 19; +pub const SYS_access: ::c_long = 5000 + 20; +pub const SYS_pipe: ::c_long = 5000 + 21; +pub const SYS__newselect: ::c_long = 5000 + 22; +pub const SYS_sched_yield: ::c_long = 5000 + 23; +pub const SYS_mremap: ::c_long = 5000 + 24; +pub const SYS_msync: ::c_long = 5000 + 25; +pub const SYS_mincore: ::c_long = 5000 + 26; +pub const SYS_madvise: ::c_long = 5000 + 27; +pub const SYS_shmget: ::c_long = 5000 + 28; +pub const SYS_shmat: ::c_long = 5000 + 29; +pub const SYS_shmctl: ::c_long = 5000 + 30; +pub const SYS_dup: ::c_long = 5000 + 31; +pub const SYS_dup2: ::c_long = 5000 + 32; +pub const SYS_pause: ::c_long = 5000 + 33; +pub const SYS_nanosleep: ::c_long = 5000 + 34; +pub const SYS_getitimer: ::c_long = 5000 + 35; +pub const SYS_setitimer: ::c_long = 5000 + 36; +pub const SYS_alarm: ::c_long = 5000 + 37; +pub const SYS_getpid: ::c_long = 5000 + 38; +pub const SYS_sendfile: ::c_long = 5000 + 39; +pub const SYS_socket: ::c_long = 5000 + 40; +pub const SYS_connect: ::c_long = 5000 + 41; +pub const SYS_accept: ::c_long = 5000 + 42; +pub const SYS_sendto: ::c_long = 5000 + 43; +pub const SYS_recvfrom: ::c_long = 5000 + 44; +pub const SYS_sendmsg: ::c_long = 5000 + 45; +pub const SYS_recvmsg: ::c_long = 5000 + 46; +pub const SYS_shutdown: ::c_long = 5000 + 47; +pub const SYS_bind: ::c_long = 5000 + 48; +pub const SYS_listen: ::c_long = 5000 + 49; +pub const SYS_getsockname: ::c_long = 5000 + 50; +pub const SYS_getpeername: ::c_long = 5000 + 51; +pub const SYS_socketpair: ::c_long = 5000 + 52; +pub const SYS_setsockopt: ::c_long = 5000 + 53; +pub const SYS_getsockopt: ::c_long = 5000 + 54; +pub const SYS_clone: ::c_long = 5000 + 55; +pub const SYS_fork: ::c_long = 5000 + 56; +pub const SYS_execve: ::c_long = 5000 + 57; +pub const SYS_exit: ::c_long = 5000 + 58; +pub const SYS_wait4: ::c_long = 5000 + 59; +pub const SYS_kill: ::c_long = 5000 + 60; +pub const SYS_uname: ::c_long = 5000 + 61; +pub const SYS_semget: ::c_long = 5000 + 62; +pub const SYS_semop: ::c_long = 5000 + 63; +pub const SYS_semctl: ::c_long = 5000 + 64; +pub const SYS_shmdt: ::c_long = 5000 + 65; +pub const SYS_msgget: ::c_long = 5000 + 66; +pub const SYS_msgsnd: ::c_long = 5000 + 67; +pub const SYS_msgrcv: ::c_long = 5000 + 68; +pub const SYS_msgctl: ::c_long = 5000 + 69; +pub const SYS_fcntl: ::c_long = 5000 + 70; +pub const SYS_flock: ::c_long = 5000 + 71; +pub const SYS_fsync: ::c_long = 5000 + 72; +pub const SYS_fdatasync: ::c_long = 5000 + 73; +pub const SYS_truncate: ::c_long = 5000 + 74; +pub const SYS_ftruncate: ::c_long = 5000 + 75; +pub const SYS_getdents: ::c_long = 5000 + 76; +pub const SYS_getcwd: ::c_long = 5000 + 77; +pub const SYS_chdir: ::c_long = 5000 + 78; +pub const SYS_fchdir: ::c_long = 5000 + 79; +pub const SYS_rename: ::c_long = 5000 + 80; +pub const SYS_mkdir: ::c_long = 5000 + 81; +pub const SYS_rmdir: ::c_long = 5000 + 82; +pub const SYS_creat: ::c_long = 5000 + 83; +pub const SYS_link: ::c_long = 5000 + 84; +pub const SYS_unlink: ::c_long = 5000 + 85; +pub const SYS_symlink: ::c_long = 5000 + 86; +pub const SYS_readlink: ::c_long = 5000 + 87; +pub const SYS_chmod: ::c_long = 5000 + 88; +pub const SYS_fchmod: ::c_long = 5000 + 89; +pub const SYS_chown: ::c_long = 5000 + 90; +pub const SYS_fchown: ::c_long = 5000 + 91; +pub const SYS_lchown: ::c_long = 5000 + 92; +pub const SYS_umask: ::c_long = 5000 + 93; +pub const SYS_gettimeofday: ::c_long = 5000 + 94; +pub const SYS_getrlimit: ::c_long = 5000 + 95; +pub const SYS_getrusage: ::c_long = 5000 + 96; +pub const SYS_sysinfo: ::c_long = 5000 + 97; +pub const SYS_times: ::c_long = 5000 + 98; +pub const SYS_ptrace: ::c_long = 5000 + 99; pub const SYS_getuid: ::c_long = 5000 + 100; pub const SYS_syslog: ::c_long = 5000 + 101; pub const SYS_getgid: ::c_long = 5000 + 102; @@ -935,14 +935,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -989,12 +989,13 @@ pub const TIOCM_DSR: ::c_int = 0x400; pub const EHWPOISON: ::c_int = 168; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs index 432495983fb37..212062b32af12 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64.rs @@ -385,10 +385,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -594,14 +591,14 @@ pub const ICANON: ::tcflag_t = 0x100; pub const PENDIN: ::tcflag_t = 0x20000000; pub const NOFLSH: ::tcflag_t = 0x80000000; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -1028,12 +1025,13 @@ pub const SYS_kexec_file_load: ::c_long = 382; pub const SYS_statx: ::c_long = 383; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index b8fda7aeeeacb..ac3170416024d 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -213,7 +213,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { // FIXME: This is actually a union. pub struct fpreg_t { pub d: ::c_double, @@ -498,10 +498,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -593,20 +590,20 @@ pub const OLCUC: ::tcflag_t = 0o000002; pub const ONLCR: ::tcflag_t = 0o000004; pub const NLDLY: ::tcflag_t = 0o000400; pub const CRDLY: ::tcflag_t = 0o003000; -pub const CR1: ::tcflag_t = 0x00000200; -pub const CR2: ::tcflag_t = 0x00000400; -pub const CR3: ::tcflag_t = 0x00000600; +pub const CR1: ::tcflag_t = 0x00000200; +pub const CR2: ::tcflag_t = 0x00000400; +pub const CR3: ::tcflag_t = 0x00000600; pub const TABDLY: ::tcflag_t = 0o014000; pub const TAB1: ::tcflag_t = 0x00000800; pub const TAB2: ::tcflag_t = 0x00001000; pub const TAB3: ::tcflag_t = 0x00001800; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const BS1: ::tcflag_t = 0x00002000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const FF1: ::tcflag_t = 0x00008000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const VT1: ::tcflag_t = 0x00004000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const BS1: ::tcflag_t = 0x00002000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const FF1: ::tcflag_t = 0x00008000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const VT1: ::tcflag_t = 0x00004000; +pub const XTABS: ::tcflag_t = 0o014000; pub const CBAUD: ::speed_t = 0o010017; pub const B0: ::speed_t = 0o000000; @@ -998,21 +995,26 @@ pub const SYS_setfsgid: ::c_long = 216; pub const SYS_newfstatat: ::c_long = 293; #[link(name = "util")] -extern { - - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; pub fn getcontext(ucp: *mut ::ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ::ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ::ucontext_t, - func: extern fn (), - argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ::ucontext_t, - ucp: *const ::ucontext_t) -> ::c_int; + pub fn makecontext( + ucp: *mut ::ucontext_t, + func: extern "C" fn(), + argc: ::c_int, + ... + ); + pub fn swapcontext( + uocp: *mut ::ucontext_t, + ucp: *const ::ucontext_t, + ) -> ::c_int; } - diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64.rs index d3f854e5dd650..32489bc33a8b1 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64.rs @@ -548,14 +548,14 @@ pub const NOFLSH: ::tcflag_t = 0x80; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0x00001000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -841,11 +841,11 @@ pub const SYS_mlockall: ::c_long = 239; pub const SYS_munlockall: ::c_long = 240; pub const SYS_sched_setparam: ::c_long = 241; pub const SYS_sched_getparam: ::c_long = 242; -pub const SYS_sched_setscheduler: ::c_long =243; -pub const SYS_sched_getscheduler: ::c_long =244; +pub const SYS_sched_setscheduler: ::c_long = 243; +pub const SYS_sched_getscheduler: ::c_long = 244; pub const SYS_sched_yield: ::c_long = 245; -pub const SYS_sched_get_priority_max: ::c_long =246; -pub const SYS_sched_get_priority_min: ::c_long =247; +pub const SYS_sched_get_priority_max: ::c_long = 246; +pub const SYS_sched_get_priority_min: ::c_long = 247; pub const SYS_sched_rr_get_interval: ::c_long = 248; pub const SYS_nanosleep: ::c_long = 249; pub const SYS_mremap: ::c_long = 250; @@ -899,7 +899,7 @@ pub const SYS_ppoll: ::c_long = 298; pub const SYS_unshare: ::c_long = 299; pub const SYS_set_robust_list: ::c_long = 300; pub const SYS_get_robust_list: ::c_long = 301; -pub const SYS_migrate_pages: ::c_long =302; +pub const SYS_migrate_pages: ::c_long = 302; pub const SYS_mbind: ::c_long = 303; pub const SYS_get_mempolicy: ::c_long = 304; pub const SYS_set_mempolicy: ::c_long = 305; @@ -960,12 +960,13 @@ pub const SYS_pwritev2: ::c_long = 359; pub const SYS_statx: ::c_long = 360; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index f3b10084fdecd..2ff0969b0a143 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -581,10 +581,7 @@ pub const SIGURG: ::c_int = 23; pub const SIGIO: ::c_int = 29; pub const SIGSYS: ::c_int = 31; pub const SIGSTKFLT: ::c_int = 16; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = 31; pub const SIGPOLL: ::c_int = 29; pub const SIGPWR: ::c_int = 30; @@ -755,14 +752,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B0: ::speed_t = 0o000000; pub const B50: ::speed_t = 0o000001; @@ -879,17 +876,25 @@ pub const REG_TRAPNO: ::c_int = 20; pub const REG_OLDMASK: ::c_int = 21; pub const REG_CR2: ::c_int = 22; -extern { +extern "C" { pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; - pub fn makecontext(ucp: *mut ucontext_t, - func: extern fn (), - argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, - ucp: *const ucontext_t) -> ::c_int; + pub fn makecontext( + ucp: *mut ucontext_t, + func: extern "C" fn(), + argc: ::c_int, + ... + ); + pub fn swapcontext( + uocp: *mut ucontext_t, + ucp: *const ucontext_t, + ) -> ::c_int; pub fn iopl(level: ::c_int) -> ::c_int; - pub fn ioperm(from: ::c_ulong, num: ::c_ulong, - turn_on: ::c_int) -> ::c_int; + pub fn ioperm( + from: ::c_ulong, + num: ::c_ulong, + turn_on: ::c_int, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs index 97e21f279df2a..64a6de9c67098 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs @@ -411,12 +411,13 @@ pub const SYS_pkey_free: ::c_long = 331; pub const SYS_statx: ::c_long = 332; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 538fb5e415a31..6473a041ee6ad 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -189,7 +189,7 @@ impl siginfo_t { _si_signo: ::c_int, _si_errno: ::c_int, _si_code: ::c_int, - si_addr: *mut ::c_void + si_addr: *mut ::c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr } @@ -361,17 +361,17 @@ pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE); pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT); pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION); pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK - | ::LC_NUMERIC_MASK - | ::LC_TIME_MASK - | ::LC_COLLATE_MASK - | ::LC_MONETARY_MASK - | ::LC_MESSAGES_MASK - | LC_PAPER_MASK - | LC_NAME_MASK - | LC_ADDRESS_MASK - | LC_TELEPHONE_MASK - | LC_MEASUREMENT_MASK - | LC_IDENTIFICATION_MASK; + | ::LC_NUMERIC_MASK + | ::LC_TIME_MASK + | ::LC_COLLATE_MASK + | ::LC_MONETARY_MASK + | ::LC_MESSAGES_MASK + | LC_PAPER_MASK + | LC_NAME_MASK + | LC_ADDRESS_MASK + | LC_TELEPHONE_MASK + | LC_MEASUREMENT_MASK + | LC_IDENTIFICATION_MASK; pub const MAP_SHARED_VALIDATE: ::c_int = 0x3; pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000; @@ -872,27 +872,49 @@ cfg_if! { } pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; -extern { - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; - - pub fn getrlimit64(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::__rlimit_resource_t, - rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::__rlimit_resource_t, - rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit(pid: ::pid_t, - resource: ::__rlimit_resource_t, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::__rlimit_resource_t, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; +extern "C" { + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_int, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn getrlimit64( + resource: ::__rlimit_resource_t, + rlim: *mut ::rlimit64, + ) -> ::c_int; + pub fn setrlimit64( + resource: ::__rlimit_resource_t, + rlim: *const ::rlimit64, + ) -> ::c_int; + pub fn getrlimit( + resource: ::__rlimit_resource_t, + rlim: *mut ::rlimit, + ) -> ::c_int; + pub fn setrlimit( + resource: ::__rlimit_resource_t, + rlim: *const ::rlimit, + ) -> ::c_int; + pub fn prlimit( + pid: ::pid_t, + resource: ::__rlimit_resource_t, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn prlimit64( + pid: ::pid_t, + resource: ::__rlimit_resource_t, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, + ) -> ::c_int; pub fn utmpname(file: *const ::c_char) -> ::c_int; pub fn utmpxname(file: *const ::c_char) -> ::c_int; pub fn getutxent() -> *mut utmpx; @@ -903,10 +925,14 @@ extern { pub fn endutxent(); pub fn getpt() -> ::c_int; pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; - pub fn statx(dirfd: ::c_int, pathname: *const c_char, flags: ::c_int, - mask: ::c_uint, statxbuf: *mut statx) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn statx( + dirfd: ::c_int, + pathname: *const c_char, + flags: ::c_int, + mask: ::c_uint, + statxbuf: *mut statx, + ) -> ::c_int; pub fn getrandom( buf: *mut ::c_void, buflen: ::size_t, @@ -915,58 +941,82 @@ extern { } #[link(name = "util")] -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; - pub fn glob64(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t) -> ::c_int; + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn glob64( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut glob64_t, + ) -> ::c_int; pub fn globfree64(pglob: *mut glob64_t); pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; + pub fn pthread_attr_getaffinity_np( + attr: *const ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_attr_setaffinity_np( + attr: *mut ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::__priority_which_t, who: ::id_t, - prio: ::c_int) -> ::c_int; - pub fn pthread_getaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_setaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; - pub fn pthread_rwlockattr_getkind_np(attr: *const ::pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setkind_np(attr: *mut ::pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; + pub fn setpriority( + which: ::__priority_which_t, + who: ::id_t, + prio: ::c_int, + ) -> ::c_int; + pub fn pthread_getaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_setaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_rwlockattr_getkind_np( + attr: *const ::pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setkind_np( + attr: *mut ::pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; pub fn sched_getcpu() -> ::c_int; pub fn mallinfo() -> ::mallinfo; pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t; pub fn getauxval(type_: ::c_ulong) -> ::c_ulong; #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwent_r")] - pub fn getpwent_r(pwd: *mut ::passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::passwd) -> ::c_int; + pub fn getpwent_r( + pwd: *mut ::passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getgrent_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrent_r")] - pub fn getgrent_r(grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - pub fn pthread_getname_np(thread: ::pthread_t, - name: *mut ::c_char, - len: ::size_t) -> ::c_int; - pub fn pthread_setname_np(thread: ::pthread_t, - name: *const ::c_char) -> ::c_int; + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn pthread_getname_np( + thread: ::pthread_t, + name: *mut ::c_char, + len: ::size_t, + ) -> ::c_int; + pub fn pthread_setname_np( + thread: ::pthread_t, + name: *const ::c_char, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0fc7c26f2ab74..2219918aa023a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -40,7 +40,9 @@ pub type Elf64_Section = u16; pub enum fpos64_t {} // TODO: fill this out with a struct impl ::Copy for fpos64_t {} impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { *self } + fn clone(&self) -> fpos64_t { + *self + } } s! { @@ -484,7 +486,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct sockaddr_nl { pub nl_family: ::sa_family_t, nl_pad: ::c_ushort, @@ -1133,18 +1135,18 @@ pub const IFF_NO_PI: ::c_int = 0x1000; // Read queue size pub const TUN_READQ_SIZE: ::c_short = 500; // TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. -pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short; -pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short; +pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short; +pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short; pub const TUN_TYPE_MASK: ::c_short = 0x000f; // This flag has no real effect -pub const IFF_ONE_QUEUE: ::c_int = 0x2000; -pub const IFF_VNET_HDR: ::c_int = 0x4000; -pub const IFF_TUN_EXCL: ::c_int = 0x8000; -pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; +pub const IFF_ONE_QUEUE: ::c_int = 0x2000; +pub const IFF_VNET_HDR: ::c_int = 0x4000; +pub const IFF_TUN_EXCL: ::c_int = 0x8000; +pub const IFF_MULTI_QUEUE: ::c_int = 0x0100; pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200; pub const IFF_DETACH_QUEUE: ::c_int = 0x0400; // read-only flag -pub const IFF_PERSIST: ::c_int = 0x0800; +pub const IFF_PERSIST: ::c_int = 0x0800; pub const IFF_NOFILTER: ::c_int = 0x1000; pub const ST_RDONLY: ::c_ulong = 1; @@ -1515,10 +1517,10 @@ pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40; pub const ENOATTR: ::c_int = ::ENODATA; pub const SO_ORIGINAL_DST: ::c_int = 80; -pub const IP_ORIGDSTADDR : ::c_int = 20; -pub const IP_RECVORIGDSTADDR : ::c_int = IP_ORIGDSTADDR; -pub const IPV6_ORIGDSTADDR : ::c_int = 74; -pub const IPV6_RECVORIGDSTADDR : ::c_int = IPV6_ORIGDSTADDR; +pub const IP_ORIGDSTADDR: ::c_int = 20; +pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; +pub const IPV6_ORIGDSTADDR: ::c_int = 74; +pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; pub const IPV6_FLOWINFO_SEND: ::c_int = 33; @@ -1704,11 +1706,11 @@ pub const PACKET_MR_UNICAST: ::c_int = 3; // linux/netfilter.h pub const NF_DROP: ::c_int = 0; -pub const NF_ACCEPT: ::c_int = 1; -pub const NF_STOLEN: ::c_int = 2; -pub const NF_QUEUE: ::c_int = 3; -pub const NF_REPEAT: ::c_int = 4; -pub const NF_STOP: ::c_int = 5; +pub const NF_ACCEPT: ::c_int = 1; +pub const NF_STOLEN: ::c_int = 2; +pub const NF_QUEUE: ::c_int = 3; +pub const NF_REPEAT: ::c_int = 4; +pub const NF_STOP: ::c_int = 5; pub const NF_MAX_VERDICT: ::c_int = NF_STOP; pub const NF_VERDICT_MASK: ::c_int = 0x000000ff; @@ -2123,38 +2125,44 @@ pub const VMADDR_CID_HOST: ::c_uint = 2; pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF; // uapi/linux/inotify.h -pub const IN_ACCESS: u32 = 0x0000_0001; -pub const IN_MODIFY: u32 = 0x0000_0002; -pub const IN_ATTRIB: u32 = 0x0000_0004; -pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; +pub const IN_ACCESS: u32 = 0x0000_0001; +pub const IN_MODIFY: u32 = 0x0000_0002; +pub const IN_ATTRIB: u32 = 0x0000_0004; +pub const IN_CLOSE_WRITE: u32 = 0x0000_0008; pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010; -pub const IN_CLOSE: u32 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); -pub const IN_OPEN: u32 = 0x0000_0020; -pub const IN_MOVED_FROM: u32 = 0x0000_0040; -pub const IN_MOVED_TO: u32 = 0x0000_0080; -pub const IN_MOVE: u32 = (IN_MOVED_FROM | IN_MOVED_TO); -pub const IN_CREATE: u32 = 0x0000_0100; -pub const IN_DELETE: u32 = 0x0000_0200; -pub const IN_DELETE_SELF: u32 = 0x0000_0400; -pub const IN_MOVE_SELF: u32 = 0x0000_0800; -pub const IN_UNMOUNT: u32 = 0x0000_2000; -pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; -pub const IN_IGNORED: u32 = 0x0000_8000; -pub const IN_ONLYDIR: u32 = 0x0100_0000; -pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; +pub const IN_CLOSE: u32 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); +pub const IN_OPEN: u32 = 0x0000_0020; +pub const IN_MOVED_FROM: u32 = 0x0000_0040; +pub const IN_MOVED_TO: u32 = 0x0000_0080; +pub const IN_MOVE: u32 = (IN_MOVED_FROM | IN_MOVED_TO); +pub const IN_CREATE: u32 = 0x0000_0100; +pub const IN_DELETE: u32 = 0x0000_0200; +pub const IN_DELETE_SELF: u32 = 0x0000_0400; +pub const IN_MOVE_SELF: u32 = 0x0000_0800; +pub const IN_UNMOUNT: u32 = 0x0000_2000; +pub const IN_Q_OVERFLOW: u32 = 0x0000_4000; +pub const IN_IGNORED: u32 = 0x0000_8000; +pub const IN_ONLYDIR: u32 = 0x0100_0000; +pub const IN_DONT_FOLLOW: u32 = 0x0200_0000; // pub const IN_EXCL_UNLINK: u32 = 0x0400_0000; // pub const IN_MASK_CREATE: u32 = 0x1000_0000; // pub const IN_MASK_ADD: u32 = 0x2000_0000; -pub const IN_ISDIR: u32 = 0x4000_0000; -pub const IN_ONESHOT: u32 = 0x8000_0000; - -pub const IN_ALL_EVENTS: u32 = ( - IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | - IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | - IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | - IN_MOVE_SELF -); +pub const IN_ISDIR: u32 = 0x4000_0000; +pub const IN_ONESHOT: u32 = 0x8000_0000; + +pub const IN_ALL_EVENTS: u32 = (IN_ACCESS + | IN_MODIFY + | IN_ATTRIB + | IN_CLOSE_WRITE + | IN_CLOSE_NOWRITE + | IN_OPEN + | IN_MOVED_FROM + | IN_MOVED_TO + | IN_DELETE + | IN_CREATE + | IN_DELETE_SELF + | IN_MOVE_SELF); pub const IN_CLOEXEC: ::c_int = O_CLOEXEC; pub const IN_NONBLOCK: ::c_int = O_NONBLOCK; @@ -2280,11 +2288,13 @@ f! { } } -extern { - #[cfg_attr(not(target_env = "musl"), - link_name = "__xpg_strerror_r")] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; +extern "C" { + #[cfg_attr(not(target_env = "musl"), link_name = "__xpg_strerror_r")] + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; @@ -2297,11 +2307,18 @@ extern { pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int; pub fn aio_error(aiocbp: *const aiocb) -> ::c_int; pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t; - pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int, - timeout: *const ::timespec) -> ::c_int; + pub fn aio_suspend( + aiocb_list: *const *const aiocb, + nitems: ::c_int, + timeout: *const ::timespec, + ) -> ::c_int; pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut ::sigevent) -> ::c_int; + pub fn lio_listio( + mode: ::c_int, + aiocb_list: *const *mut aiocb, + nitems: ::c_int, + sevp: *mut ::sigevent, + ) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; @@ -2317,206 +2334,358 @@ extern { pub fn getspnam(__name: *const ::c_char) -> *mut spwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, - mode: mode_t) -> ::c_int; + pub fn shm_open( + name: *const c_char, + oflag: ::c_int, + mode: mode_t, + ) -> ::c_int; // System V IPC pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, - shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, - cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; - pub fn semop(semid: ::c_int, - sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; - pub fn semctl(semid: ::c_int, - semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn semop( + semid: ::c_int, + sops: *mut ::sembuf, + nsops: ::size_t, + ) -> ::c_int; + pub fn semctl( + semid: ::c_int, + semnum: ::c_int, + cmd: ::c_int, + ... + ) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) + -> ::c_int; pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, - msgtyp: ::c_long, msgflg: ::c_int) -> ::ssize_t; - pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, - msgflg: ::c_int) -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fopen64(filename: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn freopen64(filename: *const c_char, mode: *const c_char, - file: *mut ::FILE) -> *mut ::FILE; + pub fn fopen64( + filename: *const c_char, + mode: *const c_char, + ) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; pub fn tmpfile64() -> *mut ::FILE; pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int) -> ::c_int; + pub fn fseeko64( + stream: *mut ::FILE, + offset: ::off64_t, + whence: ::c_int, + ) -> ::c_int; pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn fallocate(fd: ::c_int, mode: ::c_int, - offset: ::off_t, len: ::off_t) -> ::c_int; - pub fn fallocate64(fd: ::c_int, mode: ::c_int, - offset: ::off64_t, len: ::off64_t) -> ::c_int; - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, - len: ::off64_t) -> ::c_int; - pub fn readahead(fd: ::c_int, offset: ::off64_t, - count: ::size_t) -> ::ssize_t; - pub fn getxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn lgetxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn fgetxattr(filedes: ::c_int, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn setxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn lsetxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn fsetxattr(filedes: ::c_int, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, - size: ::size_t) -> ::ssize_t; + pub fn fallocate( + fd: ::c_int, + mode: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn fallocate64( + fd: ::c_int, + mode: ::c_int, + offset: ::off64_t, + len: ::off64_t, + ) -> ::c_int; + pub fn posix_fallocate( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + ) -> ::c_int; + pub fn posix_fallocate64( + fd: ::c_int, + offset: ::off64_t, + len: ::off64_t, + ) -> ::c_int; + pub fn readahead( + fd: ::c_int, + offset: ::off64_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn getxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn lsetxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr( + path: *const c_char, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; + pub fn llistxattr( + path: *const c_char, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; + pub fn flistxattr( + filedes: ::c_int, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, - mask: *const ::sigset_t, - flags: ::c_int) -> ::c_int; + pub fn signalfd( + fd: ::c_int, + mask: *const ::sigset_t, + flags: ::c_int, + ) -> ::c_int; pub fn timerfd_create(clockid: ::c_int, flags: ::c_int) -> ::c_int; - pub fn timerfd_gettime(fd: ::c_int, - curr_value: *mut itimerspec) -> ::c_int; - pub fn timerfd_settime(fd: ::c_int, - flags: ::c_int, - new_value: *const itimerspec, - old_value: *mut itimerspec) -> ::c_int; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn quotactl(cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char) -> ::c_int; + pub fn timerfd_gettime( + fd: ::c_int, + curr_value: *mut itimerspec, + ) -> ::c_int; + pub fn timerfd_settime( + fd: ::c_int, + flags: ::c_int, + new_value: *const itimerspec, + old_value: *mut itimerspec, + ) -> ::c_int; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_timedreceive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint, - abs_timeout: *const ::timespec) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; - pub fn mq_timedsend(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint, - abs_timeout: *const ::timespec) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; - pub fn epoll_pwait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr, + ) -> ::c_int; + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int; pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; - pub fn mkostemps(template: *mut ::c_char, - suffixlen: ::c_int, - flags: ::c_int) -> ::c_int; - pub fn sigtimedwait(set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, - info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; - pub fn pthread_setschedprio(native: ::pthread_t, - priority: ::c_int) -> ::c_int; + pub fn mkostemps( + template: *mut ::c_char, + suffixlen: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_setschedprio( + native: ::pthread_t, + priority: ::c_int, + ) -> ::c_int; pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; - pub fn process_vm_readv(pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong) -> isize; - pub fn process_vm_writev(pid: ::pid_t, - local_iov: *const ::iovec, - liovcnt: ::c_ulong, - remote_iov: *const ::iovec, - riovcnt: ::c_ulong, - flags: ::c_ulong) -> isize; + pub fn process_vm_readv( + pid: ::pid_t, + local_iov: *const ::iovec, + liovcnt: ::c_ulong, + remote_iov: *const ::iovec, + riovcnt: ::c_ulong, + flags: ::c_ulong, + ) -> isize; + pub fn process_vm_writev( + pid: ::pid_t, + local_iov: *const ::iovec, + liovcnt: ::c_ulong, + remote_iov: *const ::iovec, + riovcnt: ::c_ulong, + flags: ::c_ulong, + ) -> isize; pub fn reboot(how_to: ::c_int) -> ::c_int; pub fn setfsgid(gid: ::gid_t) -> ::c_int; pub fn setfsuid(uid: ::uid_t) -> ::c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range(fd: ::c_int, offset: ::off64_t, - nbytes: ::off64_t, flags: ::c_uint) -> ::c_int; - pub fn mremap(addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ...) -> *mut ::c_void; - - pub fn glob(pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn sync_file_range( + fd: ::c_int, + offset: ::off64_t, + nbytes: ::off64_t, + flags: ::c_uint, + ) -> ::c_int; + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - pub fn remap_file_pages(addr: *mut ::c_void, size: ::size_t, prot: ::c_int, - pgoff: ::size_t, flags: ::c_int) -> ::c_int; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn remap_file_pages( + addr: *mut ::c_void, + size: ::size_t, + prot: ::c_int, + pgoff: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; @@ -2526,119 +2695,174 @@ extern { pub fn vhangup() -> ::c_int; pub fn sync(); pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sched_getaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t) -> ::c_int; + pub fn sched_getaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *mut cpu_set_t, + ) -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; pub fn epoll_create(size: ::c_int) -> ::c_int; pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; - pub fn pthread_getschedparam(native: ::pthread_t, - policy: *mut ::c_int, - param: *mut ::sched_param) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event, + ) -> ::c_int; + pub fn pthread_getschedparam( + native: ::pthread_t, + policy: *mut ::c_int, + param: *mut ::sched_param, + ) -> ::c_int; pub fn unshare(flags: ::c_int) -> ::c_int; pub fn umount(target: *const ::c_char) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn tee(fd_in: ::c_int, - fd_out: ::c_int, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - pub fn splice(fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; + pub fn tee( + fd_in: ::c_int, + fd_out: ::c_int, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn settimeofday( + tv: *const ::timeval, + tz: *const ::timezone, + ) -> ::c_int; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int; + pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) + -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn sched_setparam( + pid: ::pid_t, + param: *const ::sched_param, + ) -> ::c_int; pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; pub fn swapoff(puath: *const ::c_char) -> ::c_int; - pub fn vmsplice(fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void) -> ::c_int; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; pub fn personality(persona: ::c_ulong) -> ::c_int; pub fn prctl(option: ::c_int, ...) -> ::c_int; pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int; - pub fn ppoll(fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, ...) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn clock_nanosleep(clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn pthread_setschedparam(native: ::pthread_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; + pub fn pthread_setschedparam( + native: ::pthread_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; - pub fn sched_setscheduler(pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; - pub fn sendfile(out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t) -> ::ssize_t; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int; @@ -2647,94 +2871,142 @@ extern { pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - pub fn getgrouplist(user: *const ::c_char, - group: ::gid_t, - groups: *mut ::gid_t, - ngroups: *mut ::c_int) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::c_int, flags: ::c_int) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + pub fn getgrouplist( + user: *const ::c_char, + group: ::gid_t, + groups: *mut ::gid_t, + ngroups: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; + pub fn faccessat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::c_int, + flags: ::c_int, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; pub fn dl_iterate_phdr( - callback: ::Option ::c_int>, - data: *mut ::c_void + callback: ::Option< + unsafe extern "C" fn( + info: *mut ::dl_phdr_info, + size: ::size_t, + data: *mut ::c_void, + ) -> ::c_int, + >, + data: *mut ::c_void, ) -> ::c_int; - pub fn setmntent(filename: *const ::c_char, - ty: *const ::c_char) -> *mut ::FILE; + pub fn setmntent( + filename: *const ::c_char, + ty: *const ::c_char, + ) -> *mut ::FILE; pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent; pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int; pub fn endmntent(streamp: *mut ::FILE) -> ::c_int; - pub fn hasmntopt(mnt: *const ::mntent, - opt: *const ::c_char) -> *mut ::c_char; - - pub fn posix_spawn(pid: *mut ::pid_t, - path: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; - pub fn posix_spawnp(pid: *mut ::pid_t, - file: *const ::c_char, - file_actions: *const ::posix_spawn_file_actions_t, - attrp: *const ::posix_spawnattr_t, - argv: *const *mut ::c_char, - envp: *const *mut ::c_char) -> ::c_int; + pub fn hasmntopt( + mnt: *const ::mntent, + opt: *const ::c_char, + ) -> *mut ::c_char; + + pub fn posix_spawn( + pid: *mut ::pid_t, + path: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; + pub fn posix_spawnp( + pid: *mut ::pid_t, + file: *const ::c_char, + file_actions: *const ::posix_spawn_file_actions_t, + attrp: *const ::posix_spawnattr_t, + argv: *const *mut ::c_char, + envp: *const *mut ::c_char, + ) -> ::c_int; pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; - pub fn posix_spawnattr_getsigdefault(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigdefault(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getsigmask(attr: *const posix_spawnattr_t, - default: *mut ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_setsigmask(attr: *mut posix_spawnattr_t, - default: *const ::sigset_t) -> ::c_int; - pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, - flags: *mut ::c_short) -> ::c_int; - pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, - flags: ::c_short) -> ::c_int; - pub fn posix_spawnattr_getpgroup(attr: *const posix_spawnattr_t, - flags: *mut ::pid_t) -> ::c_int; - pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, - flags: ::pid_t) -> ::c_int; - pub fn posix_spawnattr_getschedpolicy(attr: *const posix_spawnattr_t, - flags: *mut ::c_int) -> ::c_int; - pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, - flags: ::c_int) -> ::c_int; + pub fn posix_spawnattr_getsigdefault( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigdefault( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getsigmask( + attr: *const posix_spawnattr_t, + default: *mut ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_setsigmask( + attr: *mut posix_spawnattr_t, + default: *const ::sigset_t, + ) -> ::c_int; + pub fn posix_spawnattr_getflags( + attr: *const posix_spawnattr_t, + flags: *mut ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_setflags( + attr: *mut posix_spawnattr_t, + flags: ::c_short, + ) -> ::c_int; + pub fn posix_spawnattr_getpgroup( + attr: *const posix_spawnattr_t, + flags: *mut ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_setpgroup( + attr: *mut posix_spawnattr_t, + flags: ::pid_t, + ) -> ::c_int; + pub fn posix_spawnattr_getschedpolicy( + attr: *const posix_spawnattr_t, + flags: *mut ::c_int, + ) -> ::c_int; + pub fn posix_spawnattr_setschedpolicy( + attr: *mut posix_spawnattr_t, + flags: ::c_int, + ) -> ::c_int; pub fn posix_spawnattr_getschedparam( attr: *const posix_spawnattr_t, param: *mut ::sched_param, @@ -2766,17 +3038,20 @@ extern { fd: ::c_int, newfd: ::c_int, ) -> ::c_int; - pub fn fread_unlocked(ptr: *mut ::c_void, + pub fn fread_unlocked( + ptr: *mut ::c_void, size: ::size_t, nobj: ::size_t, - stream: *mut ::FILE + stream: *mut ::FILE, ) -> ::size_t; pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int; pub fn inotify_init() -> ::c_int; pub fn inotify_init1(flags: ::c_int) -> ::c_int; - pub fn inotify_add_watch(fd: ::c_int, - path: *const ::c_char, - mask: u32) -> ::c_int; + pub fn inotify_add_watch( + fd: ::c_int, + path: *const ::c_char, + mask: u32, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm.rs index 3d6e0013d9083..12e977a64e0af 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm.rs @@ -179,12 +179,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -218,14 +218,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B57600: ::speed_t = 0o010001; pub const B115200: ::speed_t = 0o010002; pub const B230400: ::speed_t = 0o010003; @@ -828,7 +828,7 @@ pub const SYS_pkey_mprotect: ::c_long = 394; pub const SYS_pkey_alloc: ::c_long = 395; pub const SYS_pkey_free: ::c_long = 396; -extern { +extern "C" { pub fn getrandom( buf: *mut ::c_void, buflen: ::size_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 2ff186f0719a4..0e6cc148fab34 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -288,10 +288,7 @@ pub const RLIMIT_MEMLOCK: ::c_int = 8; pub const RLIMIT_NOFILE: ::c_int = 7; pub const RLIMIT_NPROC: ::c_int = 6; pub const RLIMIT_RSS: ::c_int = 5; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: ::c_int = 16; pub const SA_ONSTACK: ::c_int = 0x08000000; pub const SA_SIGINFO: ::c_int = 0x00000004; diff --git a/src/unix/linux_like/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips.rs index 8da21cac51a81..f574223f9bd1a 100644 --- a/src/unix/linux_like/linux/musl/b32/mips.rs +++ b/src/unix/linux_like/linux/musl/b32/mips.rs @@ -189,12 +189,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -228,14 +228,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B57600: ::speed_t = 0o010001; pub const B115200: ::speed_t = 0o010002; pub const B230400: ::speed_t = 0o010003; @@ -496,91 +496,91 @@ pub const SYS_close: ::c_long = 4000 + 6; pub const SYS_waitpid: ::c_long = 4000 + 7; pub const SYS_creat: ::c_long = 4000 + 8; pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; pub const SYS_fstatfs: ::c_long = 4000 + 100; pub const SYS_ioperm: ::c_long = 4000 + 101; pub const SYS_socketcall: ::c_long = 4000 + 102; diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 0de23257a7b8f..7cf6da913f9b8 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -39,7 +39,7 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; pub const TIOCINQ: ::c_int = ::FIONREAD; -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 76f23dd318af1..6181b1cdc137e 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -182,12 +182,12 @@ pub const CBAUD: ::tcflag_t = 0o0000377; pub const TAB1: ::c_int = 0x00000400; pub const TAB2: ::c_int = 0x00000800; pub const TAB3: ::c_int = 0x00000C00; -pub const CR1: ::c_int = 0x00001000; -pub const CR2: ::c_int = 0x00002000; -pub const CR3: ::c_int = 0x00003000; -pub const FF1: ::c_int = 0x00004000; -pub const BS1: ::c_int = 0x00008000; -pub const VT1: ::c_int = 0x00010000; +pub const CR1: ::c_int = 0x00001000; +pub const CR2: ::c_int = 0x00002000; +pub const CR3: ::c_int = 0x00003000; +pub const FF1: ::c_int = 0x00004000; +pub const BS1: ::c_int = 0x00008000; +pub const VT1: ::c_int = 0x00010000; pub const VWERASE: usize = 10; pub const VREPRINT: usize = 11; pub const VSUSP: usize = 12; @@ -221,14 +221,14 @@ pub const NOFLSH: ::tcflag_t = 0x80000000; pub const CIBAUD: ::tcflag_t = 0o00077600000; pub const CBAUDEX: ::tcflag_t = 0o000020; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o001400; -pub const CRDLY: ::tcflag_t = 0o030000; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o001400; +pub const CRDLY: ::tcflag_t = 0o030000; pub const TABDLY: ::tcflag_t = 0o006000; -pub const BSDLY: ::tcflag_t = 0o100000; -pub const FFDLY: ::tcflag_t = 0o040000; -pub const VTDLY: ::tcflag_t = 0o200000; -pub const XTABS: ::tcflag_t = 0o006000; +pub const BSDLY: ::tcflag_t = 0o100000; +pub const FFDLY: ::tcflag_t = 0o040000; +pub const VTDLY: ::tcflag_t = 0o200000; +pub const XTABS: ::tcflag_t = 0o006000; pub const B57600: ::speed_t = 0o000020; pub const B115200: ::speed_t = 0o000021; pub const B230400: ::speed_t = 0o000022; @@ -854,7 +854,7 @@ pub const SYS_pkey_alloc: ::c_long = 384; pub const SYS_pkey_free: ::c_long = 385; pub const SYS_pkey_mprotect: ::c_long = 386; -extern { +extern "C" { pub fn getrandom( buf: *mut ::c_void, buflen: ::size_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86.rs index 91c5945ac287e..de73b3ebc68ab 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86.rs @@ -156,7 +156,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct ucontext_t { pub uc_flags: ::c_ulong, pub uc_link: *mut ucontext_t, @@ -239,12 +239,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -278,14 +278,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B57600: ::speed_t = 0o010001; pub const B115200: ::speed_t = 0o010002; pub const B230400: ::speed_t = 0o010003; @@ -936,7 +936,7 @@ pub const EFL: ::c_int = 14; pub const UESP: ::c_int = 15; pub const SS: ::c_int = 16; -extern { +extern "C" { pub fn getrandom( buf: *mut ::c_void, buflen: ::size_t, diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64.rs index 66f424a9e7562..caf49ff4ad96e 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64.rs @@ -515,12 +515,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -554,14 +554,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B57600: ::speed_t = 0o010001; pub const B115200: ::speed_t = 0o010002; pub const B230400: ::speed_t = 0o010003; @@ -642,6 +642,6 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index c0b2867de659d..bbdc0105fbf97 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -110,96 +110,96 @@ pub const SYS_lstat: ::c_long = 5000 + 6; pub const SYS_poll: ::c_long = 5000 + 7; pub const SYS_lseek: ::c_long = 5000 + 8; pub const SYS_mmap: ::c_long = 5000 + 9; -pub const SYS_mprotect: ::c_long = 5000 + 10; -pub const SYS_munmap: ::c_long = 5000 + 11; -pub const SYS_brk: ::c_long = 5000 + 12; -pub const SYS_rt_sigaction: ::c_long = 5000 + 13; -pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; -pub const SYS_ioctl: ::c_long = 5000 + 15; -pub const SYS_pread64: ::c_long = 5000 + 16; -pub const SYS_pwrite64: ::c_long = 5000 + 17; -pub const SYS_readv: ::c_long = 5000 + 18; -pub const SYS_writev: ::c_long = 5000 + 19; -pub const SYS_access: ::c_long = 5000 + 20; -pub const SYS_pipe: ::c_long = 5000 + 21; -pub const SYS__newselect: ::c_long = 5000 + 22; -pub const SYS_sched_yield: ::c_long = 5000 + 23; -pub const SYS_mremap: ::c_long = 5000 + 24; -pub const SYS_msync: ::c_long = 5000 + 25; -pub const SYS_mincore: ::c_long = 5000 + 26; -pub const SYS_madvise: ::c_long = 5000 + 27; -pub const SYS_shmget: ::c_long = 5000 + 28; -pub const SYS_shmat: ::c_long = 5000 + 29; -pub const SYS_shmctl: ::c_long = 5000 + 30; -pub const SYS_dup: ::c_long = 5000 + 31; -pub const SYS_dup2: ::c_long = 5000 + 32; -pub const SYS_pause: ::c_long = 5000 + 33; -pub const SYS_nanosleep: ::c_long = 5000 + 34; -pub const SYS_getitimer: ::c_long = 5000 + 35; -pub const SYS_setitimer: ::c_long = 5000 + 36; -pub const SYS_alarm: ::c_long = 5000 + 37; -pub const SYS_getpid: ::c_long = 5000 + 38; -pub const SYS_sendfile: ::c_long = 5000 + 39; -pub const SYS_socket: ::c_long = 5000 + 40; -pub const SYS_connect: ::c_long = 5000 + 41; -pub const SYS_accept: ::c_long = 5000 + 42; -pub const SYS_sendto: ::c_long = 5000 + 43; -pub const SYS_recvfrom: ::c_long = 5000 + 44; -pub const SYS_sendmsg: ::c_long = 5000 + 45; -pub const SYS_recvmsg: ::c_long = 5000 + 46; -pub const SYS_shutdown: ::c_long = 5000 + 47; -pub const SYS_bind: ::c_long = 5000 + 48; -pub const SYS_listen: ::c_long = 5000 + 49; -pub const SYS_getsockname: ::c_long = 5000 + 50; -pub const SYS_getpeername: ::c_long = 5000 + 51; -pub const SYS_socketpair: ::c_long = 5000 + 52; -pub const SYS_setsockopt: ::c_long = 5000 + 53; -pub const SYS_getsockopt: ::c_long = 5000 + 54; -pub const SYS_clone: ::c_long = 5000 + 55; -pub const SYS_fork: ::c_long = 5000 + 56; -pub const SYS_execve: ::c_long = 5000 + 57; -pub const SYS_exit: ::c_long = 5000 + 58; -pub const SYS_wait4: ::c_long = 5000 + 59; -pub const SYS_kill: ::c_long = 5000 + 60; -pub const SYS_uname: ::c_long = 5000 + 61; -pub const SYS_semget: ::c_long = 5000 + 62; -pub const SYS_semop: ::c_long = 5000 + 63; -pub const SYS_semctl: ::c_long = 5000 + 64; -pub const SYS_shmdt: ::c_long = 5000 + 65; -pub const SYS_msgget: ::c_long = 5000 + 66; -pub const SYS_msgsnd: ::c_long = 5000 + 67; -pub const SYS_msgrcv: ::c_long = 5000 + 68; -pub const SYS_msgctl: ::c_long = 5000 + 69; -pub const SYS_fcntl: ::c_long = 5000 + 70; -pub const SYS_flock: ::c_long = 5000 + 71; -pub const SYS_fsync: ::c_long = 5000 + 72; -pub const SYS_fdatasync: ::c_long = 5000 + 73; -pub const SYS_truncate: ::c_long = 5000 + 74; -pub const SYS_ftruncate: ::c_long = 5000 + 75; -pub const SYS_getdents: ::c_long = 5000 + 76; -pub const SYS_getcwd: ::c_long = 5000 + 77; -pub const SYS_chdir: ::c_long = 5000 + 78; -pub const SYS_fchdir: ::c_long = 5000 + 79; -pub const SYS_rename: ::c_long = 5000 + 80; -pub const SYS_mkdir: ::c_long = 5000 + 81; -pub const SYS_rmdir: ::c_long = 5000 + 82; -pub const SYS_creat: ::c_long = 5000 + 83; -pub const SYS_link: ::c_long = 5000 + 84; -pub const SYS_unlink: ::c_long = 5000 + 85; -pub const SYS_symlink: ::c_long = 5000 + 86; -pub const SYS_readlink: ::c_long = 5000 + 87; -pub const SYS_chmod: ::c_long = 5000 + 88; -pub const SYS_fchmod: ::c_long = 5000 + 89; -pub const SYS_chown: ::c_long = 5000 + 90; -pub const SYS_fchown: ::c_long = 5000 + 91; -pub const SYS_lchown: ::c_long = 5000 + 92; -pub const SYS_umask: ::c_long = 5000 + 93; -pub const SYS_gettimeofday: ::c_long = 5000 + 94; -pub const SYS_getrlimit: ::c_long = 5000 + 95; -pub const SYS_getrusage: ::c_long = 5000 + 96; -pub const SYS_sysinfo: ::c_long = 5000 + 97; -pub const SYS_times: ::c_long = 5000 + 98; -pub const SYS_ptrace: ::c_long = 5000 + 99; +pub const SYS_mprotect: ::c_long = 5000 + 10; +pub const SYS_munmap: ::c_long = 5000 + 11; +pub const SYS_brk: ::c_long = 5000 + 12; +pub const SYS_rt_sigaction: ::c_long = 5000 + 13; +pub const SYS_rt_sigprocmask: ::c_long = 5000 + 14; +pub const SYS_ioctl: ::c_long = 5000 + 15; +pub const SYS_pread64: ::c_long = 5000 + 16; +pub const SYS_pwrite64: ::c_long = 5000 + 17; +pub const SYS_readv: ::c_long = 5000 + 18; +pub const SYS_writev: ::c_long = 5000 + 19; +pub const SYS_access: ::c_long = 5000 + 20; +pub const SYS_pipe: ::c_long = 5000 + 21; +pub const SYS__newselect: ::c_long = 5000 + 22; +pub const SYS_sched_yield: ::c_long = 5000 + 23; +pub const SYS_mremap: ::c_long = 5000 + 24; +pub const SYS_msync: ::c_long = 5000 + 25; +pub const SYS_mincore: ::c_long = 5000 + 26; +pub const SYS_madvise: ::c_long = 5000 + 27; +pub const SYS_shmget: ::c_long = 5000 + 28; +pub const SYS_shmat: ::c_long = 5000 + 29; +pub const SYS_shmctl: ::c_long = 5000 + 30; +pub const SYS_dup: ::c_long = 5000 + 31; +pub const SYS_dup2: ::c_long = 5000 + 32; +pub const SYS_pause: ::c_long = 5000 + 33; +pub const SYS_nanosleep: ::c_long = 5000 + 34; +pub const SYS_getitimer: ::c_long = 5000 + 35; +pub const SYS_setitimer: ::c_long = 5000 + 36; +pub const SYS_alarm: ::c_long = 5000 + 37; +pub const SYS_getpid: ::c_long = 5000 + 38; +pub const SYS_sendfile: ::c_long = 5000 + 39; +pub const SYS_socket: ::c_long = 5000 + 40; +pub const SYS_connect: ::c_long = 5000 + 41; +pub const SYS_accept: ::c_long = 5000 + 42; +pub const SYS_sendto: ::c_long = 5000 + 43; +pub const SYS_recvfrom: ::c_long = 5000 + 44; +pub const SYS_sendmsg: ::c_long = 5000 + 45; +pub const SYS_recvmsg: ::c_long = 5000 + 46; +pub const SYS_shutdown: ::c_long = 5000 + 47; +pub const SYS_bind: ::c_long = 5000 + 48; +pub const SYS_listen: ::c_long = 5000 + 49; +pub const SYS_getsockname: ::c_long = 5000 + 50; +pub const SYS_getpeername: ::c_long = 5000 + 51; +pub const SYS_socketpair: ::c_long = 5000 + 52; +pub const SYS_setsockopt: ::c_long = 5000 + 53; +pub const SYS_getsockopt: ::c_long = 5000 + 54; +pub const SYS_clone: ::c_long = 5000 + 55; +pub const SYS_fork: ::c_long = 5000 + 56; +pub const SYS_execve: ::c_long = 5000 + 57; +pub const SYS_exit: ::c_long = 5000 + 58; +pub const SYS_wait4: ::c_long = 5000 + 59; +pub const SYS_kill: ::c_long = 5000 + 60; +pub const SYS_uname: ::c_long = 5000 + 61; +pub const SYS_semget: ::c_long = 5000 + 62; +pub const SYS_semop: ::c_long = 5000 + 63; +pub const SYS_semctl: ::c_long = 5000 + 64; +pub const SYS_shmdt: ::c_long = 5000 + 65; +pub const SYS_msgget: ::c_long = 5000 + 66; +pub const SYS_msgsnd: ::c_long = 5000 + 67; +pub const SYS_msgrcv: ::c_long = 5000 + 68; +pub const SYS_msgctl: ::c_long = 5000 + 69; +pub const SYS_fcntl: ::c_long = 5000 + 70; +pub const SYS_flock: ::c_long = 5000 + 71; +pub const SYS_fsync: ::c_long = 5000 + 72; +pub const SYS_fdatasync: ::c_long = 5000 + 73; +pub const SYS_truncate: ::c_long = 5000 + 74; +pub const SYS_ftruncate: ::c_long = 5000 + 75; +pub const SYS_getdents: ::c_long = 5000 + 76; +pub const SYS_getcwd: ::c_long = 5000 + 77; +pub const SYS_chdir: ::c_long = 5000 + 78; +pub const SYS_fchdir: ::c_long = 5000 + 79; +pub const SYS_rename: ::c_long = 5000 + 80; +pub const SYS_mkdir: ::c_long = 5000 + 81; +pub const SYS_rmdir: ::c_long = 5000 + 82; +pub const SYS_creat: ::c_long = 5000 + 83; +pub const SYS_link: ::c_long = 5000 + 84; +pub const SYS_unlink: ::c_long = 5000 + 85; +pub const SYS_symlink: ::c_long = 5000 + 86; +pub const SYS_readlink: ::c_long = 5000 + 87; +pub const SYS_chmod: ::c_long = 5000 + 88; +pub const SYS_fchmod: ::c_long = 5000 + 89; +pub const SYS_chown: ::c_long = 5000 + 90; +pub const SYS_fchown: ::c_long = 5000 + 91; +pub const SYS_lchown: ::c_long = 5000 + 92; +pub const SYS_umask: ::c_long = 5000 + 93; +pub const SYS_gettimeofday: ::c_long = 5000 + 94; +pub const SYS_getrlimit: ::c_long = 5000 + 95; +pub const SYS_getrusage: ::c_long = 5000 + 96; +pub const SYS_sysinfo: ::c_long = 5000 + 97; +pub const SYS_times: ::c_long = 5000 + 98; +pub const SYS_ptrace: ::c_long = 5000 + 99; pub const SYS_getuid: ::c_long = 5000 + 100; pub const SYS_syslog: ::c_long = 5000 + 101; pub const SYS_getgid: ::c_long = 5000 + 102; @@ -713,14 +713,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const BOTHER: ::speed_t = 0o010000; pub const B57600: ::speed_t = 0o010001; @@ -748,6 +748,6 @@ pub const TIOCM_DSR: ::c_int = 0x400; pub const EHWPOISON: ::c_int = 168; -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/mod.rs b/src/unix/linux_like/linux/musl/b64/mod.rs index 0c08ab3c4fb15..e6a8fc81fe289 100644 --- a/src/unix/linux_like/linux/musl/b64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/mod.rs @@ -142,7 +142,7 @@ pub const SOCK_NONBLOCK: ::c_int = 2048; pub const SOCK_SEQPACKET: ::c_int = 5; -extern { +extern "C" { pub fn getrandom( buf: *mut ::c_void, buflen: ::size_t, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index d20ca4843102d..5c068feae8cbf 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -667,12 +667,12 @@ pub const CBAUD: ::tcflag_t = 0xff; pub const TAB1: ::c_int = 0x400; pub const TAB2: ::c_int = 0x800; pub const TAB3: ::c_int = 0xc00; -pub const CR1: ::c_int = 0x1000; -pub const CR2: ::c_int = 0x2000; -pub const CR3: ::c_int = 0x3000; -pub const FF1: ::c_int = 0x4000; -pub const BS1: ::c_int = 0x8000; -pub const VT1: ::c_int = 0x10000; +pub const CR1: ::c_int = 0x1000; +pub const CR2: ::c_int = 0x2000; +pub const CR3: ::c_int = 0x3000; +pub const FF1: ::c_int = 0x4000; +pub const BS1: ::c_int = 0x8000; +pub const VT1: ::c_int = 0x10000; pub const VWERASE: usize = 10; pub const VREPRINT: usize = 11; pub const VSUSP: usize = 12; @@ -708,14 +708,14 @@ pub const NOFLSH: ::tcflag_t = 0x80000000; pub const CIBAUD: ::tcflag_t = 0o77600000; pub const CBAUDEX: ::tcflag_t = 0o0000020; pub const VSWTC: usize = 9; -pub const OLCUC: ::tcflag_t = 0o000004; -pub const NLDLY: ::tcflag_t = 0o0001400; -pub const CRDLY: ::tcflag_t = 0o0030000; +pub const OLCUC: ::tcflag_t = 0o000004; +pub const NLDLY: ::tcflag_t = 0o0001400; +pub const CRDLY: ::tcflag_t = 0o0030000; pub const TABDLY: ::tcflag_t = 0o0006000; -pub const BSDLY: ::tcflag_t = 0o0100000; -pub const FFDLY: ::tcflag_t = 0o0040000; -pub const VTDLY: ::tcflag_t = 0o0200000; -pub const XTABS: ::tcflag_t = 0o00006000; +pub const BSDLY: ::tcflag_t = 0o0100000; +pub const FFDLY: ::tcflag_t = 0o0040000; +pub const VTDLY: ::tcflag_t = 0o0200000; +pub const XTABS: ::tcflag_t = 0o00006000; pub const B57600: ::speed_t = 0o00020; pub const B115200: ::speed_t = 0o00021; @@ -733,6 +733,6 @@ pub const B3000000: ::speed_t = 0o00034; pub const B3500000: ::speed_t = 0o00035; pub const B4000000: ::speed_t = 0o00036; -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64.rs index bbbd1ed647b07..9e5a8bf1e95d4 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64.rs @@ -116,7 +116,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct user_fpregs_struct { pub cwd: ::c_ushort, pub swd: ::c_ushort, @@ -790,12 +790,12 @@ pub const CBAUD: ::tcflag_t = 0o0010017; pub const TAB1: ::c_int = 0x00000800; pub const TAB2: ::c_int = 0x00001000; pub const TAB3: ::c_int = 0x00001800; -pub const CR1: ::c_int = 0x00000200; -pub const CR2: ::c_int = 0x00000400; -pub const CR3: ::c_int = 0x00000600; -pub const FF1: ::c_int = 0x00008000; -pub const BS1: ::c_int = 0x00002000; -pub const VT1: ::c_int = 0x00004000; +pub const CR1: ::c_int = 0x00000200; +pub const CR2: ::c_int = 0x00000400; +pub const CR3: ::c_int = 0x00000600; +pub const FF1: ::c_int = 0x00008000; +pub const BS1: ::c_int = 0x00002000; +pub const VT1: ::c_int = 0x00004000; pub const VWERASE: usize = 14; pub const VREPRINT: usize = 12; pub const VSUSP: usize = 10; @@ -829,14 +829,14 @@ pub const NOFLSH: ::tcflag_t = 0x00000080; pub const CIBAUD: ::tcflag_t = 0o02003600000; pub const CBAUDEX: ::tcflag_t = 0o010000; pub const VSWTC: usize = 7; -pub const OLCUC: ::tcflag_t = 0o000002; -pub const NLDLY: ::tcflag_t = 0o000400; -pub const CRDLY: ::tcflag_t = 0o003000; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; pub const TABDLY: ::tcflag_t = 0o014000; -pub const BSDLY: ::tcflag_t = 0o020000; -pub const FFDLY: ::tcflag_t = 0o100000; -pub const VTDLY: ::tcflag_t = 0o040000; -pub const XTABS: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; pub const B57600: ::speed_t = 0o010001; pub const B115200: ::speed_t = 0o010002; pub const B230400: ::speed_t = 0o010003; @@ -914,7 +914,6 @@ pub const TIOCM_DSR: ::c_int = 0x100; pub const TIOCM_CD: ::c_int = TIOCM_CAR; pub const TIOCM_RI: ::c_int = TIOCM_RNG; -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } - diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 9c26c7973bc50..7f10a0b39fb09 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -20,7 +20,7 @@ impl siginfo_t { _si_signo: ::c_int, _si_errno: ::c_int, _si_code: ::c_int, - si_addr: *mut ::c_void + si_addr: *mut ::c_void, } (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr @@ -109,7 +109,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { pub struct sysinfo { pub uptime: ::c_ulong, pub loads: [::c_ulong; 3], @@ -270,10 +270,7 @@ pub const TCP_REPAIR_OPTIONS: ::c_int = 22; pub const TCP_FASTOPEN: ::c_int = 23; pub const TCP_TIMESTAMP: ::c_int = 24; -#[deprecated( - since = "0.2.55", - note = "Use SIGSYS instead" -)] +#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")] pub const SIGUNUSED: ::c_int = ::SIGSYS; pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; @@ -370,39 +367,52 @@ pub const RLIMIT_MSGQUEUE: ::c_int = 12; pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; -extern { - pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_uint) -> ::c_int; - pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint, - flags: ::c_uint, timeout: *mut ::timespec) -> ::c_int; - - pub fn getrlimit64(resource: ::c_int, - rlim: *mut ::rlimit64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, - rlim: *const ::rlimit64) -> ::c_int; - pub fn getrlimit(resource: ::c_int, - rlim: *mut ::rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, - rlim: *const ::rlimit) -> ::c_int; - pub fn prlimit(pid: ::pid_t, - resource: ::c_int, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; - - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; +extern "C" { + pub fn sendmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + ) -> ::c_int; + pub fn recvmmsg( + sockfd: ::c_int, + msgvec: *mut ::mmsghdr, + vlen: ::c_uint, + flags: ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + + pub fn getrlimit64(resource: ::c_int, rlim: *mut ::rlimit64) -> ::c_int; + pub fn setrlimit64(resource: ::c_int, rlim: *const ::rlimit64) -> ::c_int; + pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; + pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; + pub fn prlimit( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn prlimit64( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, + ) -> ::c_int; + + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn ptrace(request: ::c_int, ...) -> ::c_long; pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - pub fn pthread_getaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_setaffinity_np(thread: ::pthread_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; + pub fn pthread_getaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_setaffinity_np( + thread: ::pthread_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; pub fn sched_getcpu() -> ::c_int; } diff --git a/src/unix/linux_like/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs index 1f5f2eea5706d..016712a932263 100644 --- a/src/unix/linux_like/linux/no_align.rs +++ b/src/unix/linux_like/linux/no_align.rs @@ -76,5 +76,5 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } } - } + }; } diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index a6d1d5a33c14f..1568e4f8369f1 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -9,7 +9,9 @@ pub type id_t = ::c_uint; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s! { @@ -193,7 +195,7 @@ s! { } } -s_no_extra_traits!{ +s_no_extra_traits! { #[cfg_attr( any( all( @@ -928,11 +930,11 @@ pub const OPOST: ::tcflag_t = 0x1; pub const CS5: ::tcflag_t = 0x00000000; pub const CRTSCTS: ::tcflag_t = 0x80000000; pub const ECHO: ::tcflag_t = 0x00000008; -pub const OCRNL: ::tcflag_t = 0o000010; -pub const ONOCR: ::tcflag_t = 0o000020; +pub const OCRNL: ::tcflag_t = 0o000010; +pub const ONOCR: ::tcflag_t = 0o000020; pub const ONLRET: ::tcflag_t = 0o000040; -pub const OFILL: ::tcflag_t = 0o000100; -pub const OFDEL: ::tcflag_t = 0o000200; +pub const OFILL: ::tcflag_t = 0o000100; +pub const OFDEL: ::tcflag_t = 0o000200; pub const CLONE_VM: ::c_int = 0x100; pub const CLONE_FS: ::c_int = 0x200; @@ -1069,15 +1071,15 @@ pub const IPOPT_CONTROL: u8 = 0x00; pub const IPOPT_RESERVED1: u8 = 0x20; pub const IPOPT_MEASUREMENT: u8 = 0x40; pub const IPOPT_RESERVED2: u8 = 0x60; -pub const IPOPT_END: u8 = (0 |IPOPT_CONTROL); -pub const IPOPT_NOOP: u8 = (1 |IPOPT_CONTROL); -pub const IPOPT_SEC: u8 = (2 |IPOPT_CONTROL|IPOPT_COPY); -pub const IPOPT_LSRR: u8 = (3 |IPOPT_CONTROL|IPOPT_COPY); -pub const IPOPT_TIMESTAMP: u8 = (4 |IPOPT_MEASUREMENT); -pub const IPOPT_RR: u8 = (7 |IPOPT_CONTROL); -pub const IPOPT_SID: u8 = (8 |IPOPT_CONTROL|IPOPT_COPY); -pub const IPOPT_SSRR: u8 = (9 |IPOPT_CONTROL|IPOPT_COPY); -pub const IPOPT_RA: u8 = (20|IPOPT_CONTROL|IPOPT_COPY); +pub const IPOPT_END: u8 = (0 | IPOPT_CONTROL); +pub const IPOPT_NOOP: u8 = (1 | IPOPT_CONTROL); +pub const IPOPT_SEC: u8 = (2 | IPOPT_CONTROL | IPOPT_COPY); +pub const IPOPT_LSRR: u8 = (3 | IPOPT_CONTROL | IPOPT_COPY); +pub const IPOPT_TIMESTAMP: u8 = (4 | IPOPT_MEASUREMENT); +pub const IPOPT_RR: u8 = (7 | IPOPT_CONTROL); +pub const IPOPT_SID: u8 = (8 | IPOPT_CONTROL | IPOPT_COPY); +pub const IPOPT_SSRR: u8 = (9 | IPOPT_CONTROL | IPOPT_COPY); +pub const IPOPT_RA: u8 = (20 | IPOPT_CONTROL | IPOPT_COPY); pub const IPVERSION: u8 = 4; pub const MAXTTL: u8 = 255; pub const IPDEFTTL: u8 = 64; @@ -1268,28 +1270,38 @@ f! { } } -extern { +extern "C" { pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, - vec: *mut ::c_uchar) -> ::c_int; + pub fn mincore( + addr: *mut ::c_void, + len: ::size_t, + vec: *mut ::c_uchar, + ) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; + pub fn pthread_getattr_np( + native: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int; @@ -1297,125 +1309,217 @@ extern { pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int; pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int; pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, - c: ::c_int, - n: ::size_t) -> *mut ::c_void; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, - advise: ::c_int) -> ::c_int; + pub fn memrchr( + cx: *const ::c_void, + c: ::c_int, + n: ::size_t, + ) -> *mut ::c_void; + + pub fn posix_fadvise( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + advise: ::c_int, + ) -> ::c_int; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatat64(dirfd: ::c_int, pathname: *const c_char, - buf: *mut stat64, flags: ::c_int) -> ::c_int; + pub fn fstatat64( + dirfd: ::c_int, + pathname: *const c_char, + buf: *mut stat64, + flags: ::c_int, + ) -> ::c_int; pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn mmap64(addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off64_t) - -> *mut ::c_void; + pub fn mmap64( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off64_t, + ) -> *mut ::c_void; pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(fd: ::c_int, - path: *const c_char, - oflag: ::c_int, ...) -> ::c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn preadv64(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t) -> ::ssize_t; - pub fn pwrite64(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn pwritev64(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off64_t) -> ::ssize_t; + pub fn openat64( + fd: ::c_int, + path: *const c_char, + oflag: ::c_int, + ... + ) -> ::c_int; + pub fn pread64( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + pub fn preadv64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; + pub fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + pub fn pwritev64( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off64_t, + ) -> ::ssize_t; pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir64_r(dirp: *mut ::DIR, entry: *mut ::dirent64, - result: *mut *mut ::dirent64) -> ::c_int; + pub fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, + ) -> ::c_int; pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, - pshared: ::c_int) -> ::c_int; - pub fn accept4(fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, - buf: *mut ::c_char, - buflen: ::size_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared( + attr: *mut pthread_condattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared( + attr: *mut pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; + pub fn ptsname_r( + fd: ::c_int, + buf: *mut ::c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; - pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, - suid: *mut ::uid_t) -> ::c_int; - pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, - sgid: *mut ::gid_t) -> ::c_int; + pub fn getresuid( + ruid: *mut ::uid_t, + euid: *mut ::uid_t, + suid: *mut ::uid_t, + ) -> ::c_int; + pub fn getresgid( + rgid: *mut ::gid_t, + egid: *mut ::gid_t, + sgid: *mut ::gid_t, + ) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int; pub fn brk(addr: *mut ::c_void) -> ::c_int; pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; pub fn vfork() -> ::pid_t; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; - pub fn wait4(pid: ::pid_t, status: *mut ::c_int, options: ::c_int, - rusage: *mut ::rusage) -> ::pid_t; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize) -> ::c_int; - pub fn forkpty(amaster: *mut ::c_int, - name: *mut ::c_char, - termp: *const termios, - winp: *const ::winsize) -> ::pid_t; + pub fn wait4( + pid: ::pid_t, + status: *mut ::c_int, + options: ::c_int, + rusage: *mut ::rusage, + ) -> ::pid_t; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::c_int; + pub fn forkpty( + amaster: *mut ::c_int, + name: *mut ::c_char, + termp: *const termios, + winp: *const ::winsize, + ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; - pub fn execvpe(file: *const ::c_char, argv: *const *const ::c_char, - envp: *const *const ::c_char) -> ::c_int; - pub fn fexecve(fd: ::c_int, argv: *const *const ::c_char, - envp: *const *const ::c_char) - -> ::c_int; + pub fn execvpe( + file: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; pub fn uname(buf: *mut ::utsname) -> ::c_int; } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 721d241164a1d..5fc0f9bf36f5f 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -34,9 +34,11 @@ pub type cc_t = ::c_uchar; pub enum DIR {} impl ::Copy for DIR {} impl ::Clone for DIR { - fn clone(&self) -> DIR { *self } + fn clone(&self) -> DIR { + *self + } } -pub type locale_t = *mut :: c_void; +pub type locale_t = *mut ::c_void; s! { pub struct group { @@ -358,16 +360,20 @@ cfg_if! { pub enum FILE {} impl ::Copy for FILE {} impl ::Clone for FILE { - fn clone(&self) -> FILE { *self } + fn clone(&self) -> FILE { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // TODO: fill this out with a struct impl ::Copy for fpos_t {} impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { *self } + fn clone(&self) -> fpos_t { + *self + } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -390,20 +396,28 @@ extern { all(target_os = "macos", target_arch = "x86"), link_name = "freopen$UNIX2003" )] - pub fn freopen(filename: *const c_char, mode: *const c_char, - file: *mut FILE) -> *mut FILE; + pub fn freopen( + filename: *const c_char, + mode: *const c_char, + file: *mut FILE, + ) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; pub fn fclose(file: *mut FILE) -> c_int; pub fn remove(filename: *const c_char) -> c_int; pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, - size: size_t) -> c_int; + pub fn setvbuf( + stream: *mut FILE, + buffer: *mut c_char, + mode: c_int, + size: size_t, + ) -> c_int; pub fn setbuf(stream: *mut FILE, buf: *mut c_char); pub fn getchar() -> c_int; pub fn putchar(c: c_int) -> c_int; pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) + -> *mut c_char; pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), @@ -412,14 +426,22 @@ extern { pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; pub fn puts(s: *const c_char) -> c_int; pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; + pub fn fread( + ptr: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fwrite$UNIX2003" )] - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; + pub fn fwrite( + ptr: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); @@ -436,10 +458,16 @@ extern { link_name = "strtod$UNIX2003" )] pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_long; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_ulong; + pub fn strtol( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_long; + pub fn strtoul( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_ulong; pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; @@ -447,7 +475,7 @@ extern { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "system$UNIX2003" @@ -456,11 +484,17 @@ extern { pub fn getenv(s: *const c_char) -> *mut c_char; pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncpy( + dst: *mut c_char, + src: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncat( + s: *mut c_char, + ct: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; @@ -472,8 +506,11 @@ extern { pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; - pub fn strncasecmp(s1: *const c_char, s2: *const c_char, - n: size_t) -> c_int; + pub fn strncasecmp( + s1: *const c_char, + s2: *const c_char, + n: size_t, + ) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; #[cfg_attr( @@ -484,84 +521,148 @@ extern { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, - n: size_t) -> ::size_t; + pub fn wcstombs( + dest: *mut c_char, + src: *const wchar_t, + n: size_t, + ) -> ::size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; + pub fn memcpy( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memmove( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; } -extern { +extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] pub fn getpwnam(name: *const ::c_char) -> *mut passwd; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - pub fn fprintf(stream: *mut ::FILE, - format: *const ::c_char, ...) -> ::c_int; + pub fn fprintf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; pub fn printf(format: *const ::c_char, ...) -> ::c_int; - pub fn snprintf(s: *mut ::c_char, n: ::size_t, - format: *const ::c_char, ...) -> ::c_int; + pub fn snprintf( + s: *mut ::c_char, + n: ::size_t, + format: *const ::c_char, + ... + ) -> ::c_int; pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; #[cfg_attr(target_os = "linux", link_name = "__isoc99_fscanf")] - pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; + pub fn fscanf( + stream: *mut ::FILE, + format: *const ::c_char, + ... + ) -> ::c_int; #[cfg_attr(target_os = "linux", link_name = "__isoc99_scanf")] pub fn scanf(format: *const ::c_char, ...) -> ::c_int; #[cfg_attr(target_os = "linux", link_name = "__isoc99_sscanf")] - pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; + pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) + -> ::c_int; pub fn getchar_unlocked() -> ::c_int; pub fn putchar_unlocked(c: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "connect$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "connect$UNIX2003" + )] #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")] - pub fn connect(socket: ::c_int, address: *const sockaddr, - len: socklen_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "listen$UNIX2003")] + pub fn connect( + socket: ::c_int, + address: *const sockaddr, + len: socklen_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "listen$UNIX2003" + )] #[cfg_attr(target_os = "illumos", link_name = "__xnet_listen")] pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "accept$UNIX2003")] - pub fn accept(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "getpeername$UNIX2003")] - pub fn getpeername(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "getsockname$UNIX2003")] - pub fn getsockname(socket: ::c_int, address: *mut sockaddr, - address_len: *mut socklen_t) -> ::c_int; - pub fn setsockopt(socket: ::c_int, level: ::c_int, name: ::c_int, - value: *const ::c_void, - option_len: socklen_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "socketpair$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "accept$UNIX2003" + )] + pub fn accept( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getpeername$UNIX2003" + )] + pub fn getpeername( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getsockname$UNIX2003" + )] + pub fn getsockname( + socket: ::c_int, + address: *mut sockaddr, + address_len: *mut socklen_t, + ) -> ::c_int; + pub fn setsockopt( + socket: ::c_int, + level: ::c_int, + name: ::c_int, + value: *const ::c_void, + option_len: socklen_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "socketpair$UNIX2003" + )] #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")] - pub fn socketpair(domain: ::c_int, type_: ::c_int, protocol: ::c_int, - socket_vector: *mut ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sendto$UNIX2003")] + pub fn socketpair( + domain: ::c_int, + type_: ::c_int, + protocol: ::c_int, + socket_vector: *mut ::c_int, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sendto$UNIX2003" + )] #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")] - pub fn sendto(socket: ::c_int, buf: *const ::c_void, len: ::size_t, - flags: ::c_int, addr: *const sockaddr, - addrlen: socklen_t) -> ::ssize_t; + pub fn sendto( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *const sockaddr, + addrlen: socklen_t, + ) -> ::ssize_t; pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "chmod$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "chmod$UNIX2003" + )] pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fchmod$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fchmod$UNIX2003" + )] pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstat$INODE64")] @@ -583,25 +684,37 @@ extern { pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; pub fn pclose(stream: *mut ::FILE) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fdopen$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fdopen$UNIX2003" + )] pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; pub fn fileno(stream: *mut ::FILE) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "open$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "open$UNIX2003" + )] pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "creat$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "creat$UNIX2003" + )] pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fcntl$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fcntl$UNIX2003" + )] pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "opendir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "opendir$INODE64$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "opendir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "opendir$INODE64$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] pub fn opendir(dirname: *const c_char) -> *mut ::DIR; @@ -612,84 +725,126 @@ extern { link_name = "readdir@FBSD_1.0" )] pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "closedir$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "closedir$UNIX2003" + )] pub fn closedir(dirp: *mut ::DIR) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "rewinddir$INODE64")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "rewinddir$INODE64$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "rewinddir$INODE64" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "rewinddir$INODE64$UNIX2003" + )] pub fn rewinddir(dirp: *mut ::DIR); - pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, flags: ::c_int) -> ::c_int; - pub fn fchown(fd: ::c_int, - owner: ::uid_t, - group: ::gid_t) -> ::c_int; - pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, - owner: ::uid_t, group: ::gid_t, - flags: ::c_int) -> ::c_int; + pub fn fchmodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; + pub fn fchownat( + dirfd: ::c_int, + pathname: *const ::c_char, + owner: ::uid_t, + group: ::gid_t, + flags: ::c_int, + ) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] #[cfg_attr( all(target_os = "freebsd", freebsd11), link_name = "fstatat@FBSD_1.1" )] - pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, - buf: *mut stat, flags: ::c_int) -> ::c_int; - pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, - newdirfd: ::c_int, newpath: *const ::c_char, - flags: ::c_int) -> ::c_int; - pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, - newdirfd: ::c_int, newpath: *const ::c_char) - -> ::c_int; - pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, - linkpath: *const ::c_char) -> ::c_int; - pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, - flags: ::c_int) -> ::c_int; + pub fn fstatat( + dirfd: ::c_int, + pathname: *const ::c_char, + buf: *mut stat, + flags: ::c_int, + ) -> ::c_int; + pub fn linkat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; + pub fn renameat( + olddirfd: ::c_int, + oldpath: *const ::c_char, + newdirfd: ::c_int, + newpath: *const ::c_char, + ) -> ::c_int; + pub fn symlinkat( + target: *const ::c_char, + newdirfd: ::c_int, + linkpath: *const ::c_char, + ) -> ::c_int; + pub fn unlinkat( + dirfd: ::c_int, + pathname: *const ::c_char, + flags: ::c_int, + ) -> ::c_int; pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; pub fn alarm(seconds: ::c_uint) -> ::c_uint; pub fn chdir(dir: *const c_char) -> ::c_int; pub fn fchdir(dirfd: ::c_int) -> ::c_int; - pub fn chown(path: *const c_char, uid: uid_t, - gid: gid_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "lchown$UNIX2003")] - pub fn lchown(path: *const c_char, uid: uid_t, - gid: gid_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "close$NOCANCEL$UNIX2003")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "close$NOCANCEL")] + pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "lchown$UNIX2003" + )] + pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "close$NOCANCEL$UNIX2003" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "close$NOCANCEL" + )] pub fn close(fd: ::c_int) -> ::c_int; pub fn dup(fd: ::c_int) -> ::c_int; pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; - pub fn execl(path: *const c_char, - arg0: *const c_char, ...) -> ::c_int; - pub fn execle(path: *const ::c_char, - arg0: *const ::c_char, ...) -> ::c_int; - pub fn execlp(file: *const ::c_char, - arg0: *const ::c_char, ...) -> ::c_int; - pub fn execv(prog: *const c_char, - argv: *const *const c_char) -> ::c_int; - pub fn execve(prog: *const c_char, argv: *const *const c_char, - envp: *const *const c_char) - -> ::c_int; - pub fn execvp(c: *const c_char, - argv: *const *const c_char) -> ::c_int; + pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; + pub fn execle( + path: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execlp( + file: *const ::c_char, + arg0: *const ::c_char, + ... + ) -> ::c_int; + pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; + pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; pub fn getgid() -> gid_t; - pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) - -> ::c_int; + pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; pub fn getlogin() -> *mut c_char; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "getopt$UNIX2003")] - pub fn getopt(argc: ::c_int, argv: *const *mut c_char, - optstr: *const c_char) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "getopt$UNIX2003" + )] + pub fn getopt( + argc: ::c_int, + argv: *const *mut c_char, + optstr: *const c_char, + ) -> ::c_int; pub fn getpgid(pid: pid_t) -> pid_t; pub fn getpgrp() -> pid_t; pub fn getpid() -> pid_t; @@ -700,13 +855,17 @@ extern { pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; pub fn pipe(fds: *mut ::c_int) -> ::c_int; - pub fn posix_memalign(memptr: *mut *mut ::c_void, - align: ::size_t, - size: ::size_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "read$UNIX2003")] + pub fn posix_memalign( + memptr: *mut *mut ::c_void, + align: ::size_t, + size: ::size_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "read$UNIX2003" + )] pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) - -> ::ssize_t; + -> ::ssize_t; pub fn rmdir(path: *const c_char) -> ::c_int; pub fn seteuid(uid: uid_t) -> ::c_int; pub fn setegid(gid: gid_t) -> ::c_int; @@ -714,51 +873,87 @@ extern { pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; pub fn setsid() -> pid_t; pub fn setuid(uid: uid_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sleep$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sleep$UNIX2003" + )] pub fn sleep(secs: ::c_uint) -> ::c_uint; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "nanosleep$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "nanosleep$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] - pub fn nanosleep(rqtp: *const timespec, - rmtp: *mut timespec) -> ::c_int; + pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; pub fn tcgetpgrp(fd: ::c_int) -> pid_t; pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "ttyname_r$UNIX2003")] - pub fn ttyname_r(fd: ::c_int, - buf: *mut c_char, buflen: ::size_t) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "ttyname_r$UNIX2003" + )] + pub fn ttyname_r( + fd: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn unlink(c: *const c_char) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "wait$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "wait$UNIX2003" + )] pub fn wait(status: *mut ::c_int) -> pid_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "waitpid$UNIX2003")] - pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) - -> pid_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "write$UNIX2003")] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) - -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pread$UNIX2003")] - pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pwrite$UNIX2003")] - pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off_t) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "waitpid$UNIX2003" + )] + pub fn waitpid( + pid: pid_t, + status: *mut ::c_int, + options: ::c_int, + ) -> pid_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "write$UNIX2003" + )] + pub fn write( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pread$UNIX2003" + )] + pub fn pread( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: off_t, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pwrite$UNIX2003" + )] + pub fn pwrite( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off_t, + ) -> ::ssize_t; pub fn umask(mask: mode_t) -> mode_t; #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "kill$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "kill$UNIX2003" + )] pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "killpg$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "killpg$UNIX2003" + )] pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; @@ -766,22 +961,29 @@ extern { pub fn mlockall(flags: ::c_int) -> ::c_int; pub fn munlockall() -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "mmap$UNIX2003")] - pub fn mmap(addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off_t) - -> *mut ::c_void; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "munmap$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mmap$UNIX2003" + )] + pub fn mmap( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off_t, + ) -> *mut ::c_void; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "munmap$UNIX2003" + )] pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname(ifindex: ::c_uint, - ifname: *mut ::c_char) -> *mut ::c_char; + pub fn if_indextoname( + ifindex: ::c_uint, + ifname: *mut ::c_char, + ) -> *mut ::c_char; #[cfg_attr(target_os = "macos", link_name = "lstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] @@ -791,21 +993,29 @@ extern { )] pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "fsync$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "fsync$UNIX2003" + )] pub fn fsync(fd: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "setenv$UNIX2003")] - pub fn setenv(name: *const c_char, val: *const c_char, - overwrite: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "unsetenv$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "setenv$UNIX2003" + )] + pub fn setenv( + name: *const c_char, + val: *const c_char, + overwrite: ::c_int, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "unsetenv$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")] pub fn unsetenv(name: *const c_char) -> ::c_int; - pub fn symlink(path1: *const c_char, - path2: *const c_char) -> ::c_int; + pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; @@ -814,10 +1024,14 @@ extern { #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; - #[cfg_attr(any(target_os = "macos", target_os = "ios"), - link_name = "realpath$DARWIN_EXTSN")] - pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) - -> *mut ::c_char; + #[cfg_attr( + any(target_os = "macos", target_os = "ios"), + link_name = "realpath$DARWIN_EXTSN" + )] + pub fn realpath( + pathname: *const ::c_char, + resolved: *mut ::c_char, + ) -> *mut ::c_char; pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; @@ -825,130 +1039,195 @@ extern { pub fn times(buf: *mut ::tms) -> ::clock_t; pub fn pthread_self() -> ::pthread_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_join$UNIX2003")] - pub fn pthread_join(native: ::pthread_t, - value: *mut *mut ::c_void) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_join$UNIX2003" + )] + pub fn pthread_join( + native: ::pthread_t, + value: *mut *mut ::c_void, + ) -> ::c_int; pub fn pthread_exit(value: *mut ::c_void); pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, - stack_size: ::size_t) -> ::c_int; - pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, - state: ::c_int) -> ::c_int; + pub fn pthread_attr_setstacksize( + attr: *mut ::pthread_attr_t, + stack_size: ::size_t, + ) -> ::c_int; + pub fn pthread_attr_setdetachstate( + attr: *mut ::pthread_attr_t, + state: ::c_int, + ) -> ::c_int; pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] pub fn sched_yield() -> ::c_int; - pub fn pthread_key_create(key: *mut pthread_key_t, - dtor: ::Option) - -> ::c_int; + pub fn pthread_key_create( + key: *mut pthread_key_t, + dtor: ::Option, + ) -> ::c_int; pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; - pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) - -> ::c_int; - pub fn pthread_mutex_init(lock: *mut pthread_mutex_t, - attr: *const pthread_mutexattr_t) -> ::c_int; + pub fn pthread_setspecific( + key: pthread_key_t, + value: *const ::c_void, + ) -> ::c_int; + pub fn pthread_mutex_init( + lock: *mut pthread_mutex_t, + attr: *const pthread_mutexattr_t, + ) -> ::c_int; pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_mutexattr_destroy$UNIX2003")] - pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; - pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, - _type: ::c_int) -> ::c_int; - - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_init$UNIX2003")] - pub fn pthread_cond_init(cond: *mut pthread_cond_t, - attr: *const pthread_condattr_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_wait$UNIX2003")] - pub fn pthread_cond_wait(cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_cond_timedwait$UNIX2003")] - pub fn pthread_cond_timedwait(cond: *mut pthread_cond_t, - lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_mutexattr_destroy$UNIX2003" + )] + pub fn pthread_mutexattr_destroy( + attr: *mut pthread_mutexattr_t, + ) -> ::c_int; + pub fn pthread_mutexattr_settype( + attr: *mut pthread_mutexattr_t, + _type: ::c_int, + ) -> ::c_int; + + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_init$UNIX2003" + )] + pub fn pthread_cond_init( + cond: *mut pthread_cond_t, + attr: *const pthread_condattr_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_wait$UNIX2003" + )] + pub fn pthread_cond_wait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_cond_timedwait$UNIX2003" + )] + pub fn pthread_cond_timedwait( + cond: *mut pthread_cond_t, + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_init$UNIX2003")] - pub fn pthread_rwlock_init(lock: *mut pthread_rwlock_t, - attr: *const pthread_rwlockattr_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_destroy$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_init$UNIX2003" + )] + pub fn pthread_rwlock_init( + lock: *mut pthread_rwlock_t, + attr: *const pthread_rwlockattr_t, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_destroy$UNIX2003" + )] pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_rdlock$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_rdlock$UNIX2003" + )] pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_tryrdlock$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_tryrdlock$UNIX2003" + )] pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_wrlock$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_wrlock$UNIX2003" + )] pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_trywrlock$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_trywrlock$UNIX2003" + )] pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_rwlock_unlock$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_rwlock_unlock$UNIX2003" + )] pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; - pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; - pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) - -> ::c_int; + pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) + -> ::c_int; + pub fn pthread_rwlockattr_destroy( + attr: *mut pthread_rwlockattr_t, + ) -> ::c_int; #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")] - pub fn getsockopt(sockfd: ::c_int, - level: ::c_int, - optname: ::c_int, - optval: *mut ::c_void, - optlen: *mut ::socklen_t) -> ::c_int; + pub fn getsockopt( + sockfd: ::c_int, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_void, + optlen: *mut ::socklen_t, + ) -> ::c_int; pub fn raise(signum: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] - pub fn sigaction(signum: ::c_int, - act: *const sigaction, - oldact: *mut sigaction) -> ::c_int; + pub fn sigaction( + signum: ::c_int, + act: *const sigaction, + oldact: *mut sigaction, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] - pub fn utimes(filename: *const ::c_char, - times: *const ::timeval) -> ::c_int; - pub fn dlopen(filename: *const ::c_char, - flag: ::c_int) -> *mut ::c_void; + pub fn utimes( + filename: *const ::c_char, + times: *const ::timeval, + ) -> ::c_int; + pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; pub fn dlerror() -> *mut ::c_char; - pub fn dlsym(handle: *mut ::c_void, - symbol: *const ::c_char) -> *mut ::c_void; + pub fn dlsym( + handle: *mut ::c_void, + symbol: *const ::c_char, + ) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; - pub fn getaddrinfo(node: *const c_char, - service: *const c_char, - hints: *const addrinfo, - res: *mut *mut addrinfo) -> ::c_int; + pub fn getaddrinfo( + node: *const c_char, + service: *const c_char, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> ::c_int; pub fn freeaddrinfo(res: *mut addrinfo); pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; - #[cfg_attr(any( - all(target_os = "linux", not(target_env = "musl")), - target_os = "freebsd", - target_os = "dragonfly", - target_os = "haiku"), - link_name = "__res_init")] - #[cfg_attr(any(target_os = "macos", target_os = "ios"), - link_name = "res_9_init")] + #[cfg_attr( + any( + all(target_os = "linux", not(target_env = "musl")), + target_os = "freebsd", + target_os = "dragonfly", + target_os = "haiku" + ), + link_name = "__res_init" + )] + #[cfg_attr( + any(target_os = "macos", target_os = "ios"), + link_name = "res_9_init" + )] pub fn res_init() -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "mktime$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "mktime$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] pub fn mktime(tm: *mut tm) -> time_t; #[cfg_attr(target_os = "netbsd", link_name = "__time50")] @@ -965,59 +1244,93 @@ extern { all(target_os = "freebsd", freebsd11), link_name = "mknod@FBSD_1.0" )] - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, - dev: ::dev_t) -> ::c_int; + pub fn mknod( + pathname: *const ::c_char, + mode: ::mode_t, + dev: ::dev_t, + ) -> ::c_int; pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn getservbyname(name: *const ::c_char, - proto: *const ::c_char) -> *mut servent; + pub fn getservbyname( + name: *const ::c_char, + proto: *const ::c_char, + ) -> *mut servent; pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; pub fn chroot(name: *const ::c_char) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "usleep$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "usleep$UNIX2003" + )] pub fn usleep(secs: ::c_uint) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "send$UNIX2003")] - pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, - flags: ::c_int) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "recv$UNIX2003")] - pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int) -> ::ssize_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "putenv$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "send$UNIX2003" + )] + pub fn send( + socket: ::c_int, + buf: *const ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "recv$UNIX2003" + )] + pub fn recv( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::ssize_t; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "putenv$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] pub fn putenv(string: *mut c_char) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "poll$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "poll$UNIX2003" + )] pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "select$1050")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "select$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "select$1050" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "select$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__select50")] - pub fn select(nfds: ::c_int, - readfs: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *mut timeval) -> ::c_int; + pub fn select( + nfds: ::c_int, + readfs: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *mut timeval, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] - pub fn setlocale(category: ::c_int, - locale: *const ::c_char) -> *mut ::c_char; + pub fn setlocale( + category: ::c_int, + locale: *const ::c_char, + ) -> *mut ::c_char; pub fn localeconv() -> *mut lconv; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sem_wait$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sem_wait$UNIX2003" + )] pub fn sem_wait(sem: *mut sem_t) -> ::c_int; pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; pub fn sem_post(sem: *mut sem_t) -> ::c_int; pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - pub fn readlink(path: *const c_char, - buf: *mut c_char, - bufsz: ::size_t) - -> ::ssize_t; + pub fn readlink( + path: *const c_char, + buf: *mut c_char, + bufsz: ::size_t, + ) -> ::ssize_t; #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; @@ -1031,10 +1344,11 @@ extern { pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] - pub fn sigprocmask(how: ::c_int, - set: *const sigset_t, - oldset: *mut sigset_t) - -> ::c_int; + pub fn sigprocmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] pub fn sigpending(set: *mut sigset_t) -> ::c_int; @@ -1045,32 +1359,44 @@ extern { pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "pselect$1050")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pselect$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86_64"), + link_name = "pselect$1050" + )] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pselect$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] - pub fn pselect(nfds: ::c_int, - readfs: *mut fd_set, - writefds: *mut fd_set, - errorfds: *mut fd_set, - timeout: *const timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn fseeko(stream: *mut ::FILE, - offset: ::off_t, - whence: ::c_int) -> ::c_int; + pub fn pselect( + nfds: ::c_int, + readfs: *mut fd_set, + writefds: *mut fd_set, + errorfds: *mut fd_set, + timeout: *const timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn fseeko( + stream: *mut ::FILE, + offset: ::off_t, + whence: ::c_int, + ) -> ::c_int; pub fn ftello(stream: *mut ::FILE) -> ::off_t; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "tcdrain$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "tcdrain$UNIX2003" + )] pub fn tcdrain(fd: ::c_int) -> ::c_int; pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, - optional_actions: ::c_int, - termios: *const ::termios) -> ::c_int; + pub fn tcsetattr( + fd: ::c_int, + optional_actions: ::c_int, + termios: *const ::termios, + ) -> ::c_int; pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; pub fn tcgetsid(fd: ::c_int) -> ::pid_t; @@ -1085,8 +1411,10 @@ extern { pub fn setlogmask(maskpri: ::c_int) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "nice$UNIX2003")] + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "nice$UNIX2003" + )] pub fn nice(incr: ::c_int) -> ::c_int; pub fn grantpt(fd: ::c_int) -> ::c_int; @@ -1095,8 +1423,11 @@ extern { pub fn unlockpt(fd: ::c_int) -> ::c_int; pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; - pub fn getline (lineptr: *mut *mut c_char, n: *mut size_t, - stream: *mut FILE) -> ssize_t; + pub fn getline( + lineptr: *mut *mut c_char, + n: *mut size_t, + stream: *mut FILE, + ) -> ssize_t; } cfg_if! { diff --git a/src/unix/newlib/align.rs b/src/unix/newlib/align.rs index c018fbcbb09d0..db9beb83523c2 100644 --- a/src/unix/newlib/align.rs +++ b/src/unix/newlib/align.rs @@ -57,5 +57,5 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T], } } - } + }; } diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 9e9fce746dde1..bd9a10798342d 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -571,20 +571,23 @@ f! { } } -extern { +extern "C" { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - #[cfg_attr(target_os = "linux", - link_name = "__xpg_strerror_r")] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; @@ -592,44 +595,67 @@ extern { pub fn rand() -> ::c_int; pub fn srand(seed: ::c_uint); - pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int; + pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) + -> ::c_int; pub fn closesocket(sockfd: ::c_int) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn recvfrom(fd: ::c_int, buf: *mut ::c_void, n: usize, flags: ::c_int, - addr: *mut sockaddr, addr_len: *mut socklen_t) -> isize; - pub fn getnameinfo(sa: *const sockaddr, salen: socklen_t, - host: *mut ::c_char, hostlen: socklen_t, - serv: *mut ::c_char, servlen: socklen_t, - flags: ::c_int) -> ::c_int; + pub fn recvfrom( + fd: ::c_int, + buf: *mut ::c_void, + n: usize, + flags: ::c_int, + addr: *mut sockaddr, + addr_len: *mut socklen_t, + ) -> isize; + pub fn getnameinfo( + sa: *const sockaddr, + salen: socklen_t, + host: *mut ::c_char, + hostlen: socklen_t, + serv: *mut ::c_char, + servlen: socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn fexecve(fd: ::c_int, argv: *const *const ::c_char, - envp: *const *const ::c_char) - -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; @@ -637,31 +663,39 @@ extern { pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; pub fn uname(buf: *mut ::utsname) -> ::c_int; } diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 02f5435d66f30..b00a191c9b955 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -40,7 +40,9 @@ pub type time_t = ::c_long; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s_no_extra_traits! { @@ -839,11 +841,14 @@ f! { } } -extern { +extern "C" { // errno.h pub fn __errno_location() -> *mut ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; // unistd.h pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; @@ -853,14 +858,14 @@ extern { // pthread.h pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; pub fn pthread_create( tid: *mut ::pthread_t, attr: *const ::pthread_attr_t, - start: extern fn(*mut ::c_void) -> *mut ::c_void, + start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, arg: *mut ::c_void, ) -> ::c_int; pub fn pthread_condattr_setclock( @@ -869,11 +874,13 @@ extern { ) -> ::c_int; // pwd.h - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; // signal.h pub fn pthread_sigmask( @@ -939,8 +946,7 @@ extern { pub fn uname(utsname: *mut utsname) -> ::c_int; // time.h - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; } diff --git a/src/unix/solarish/compat.rs b/src/unix/solarish/compat.rs index 8631d6018920c..a33645211ce37 100644 --- a/src/unix/solarish/compat.rs +++ b/src/unix/solarish/compat.rs @@ -5,14 +5,25 @@ use unix::solarish::*; pub unsafe fn cfmakeraw(termios: *mut ::termios) { let mut t = *termios as ::termios; - t.c_iflag &= !(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + t.c_iflag &= !(IMAXBEL + | IGNBRK + | BRKINT + | PARMRK + | ISTRIP + | INLCR + | IGNCR + | ICRNL + | IXON); t.c_oflag &= !OPOST; - t.c_lflag &= !(ECHO|ECHONL|ICANON|ISIG|IEXTEN); - t.c_cflag &= !(CSIZE|PARENB); + t.c_lflag &= !(ECHO | ECHONL | ICANON | ISIG | IEXTEN); + t.c_cflag &= !(CSIZE | PARENB); t.c_cflag |= CS8; } -pub unsafe fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { +pub unsafe fn cfsetspeed( + termios: *mut ::termios, + speed: ::speed_t, +) -> ::c_int { // Neither of these functions on illumos or Solaris actually ever // return an error ::cfsetispeed(termios, speed); diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 5582e271d6815..88cc45895028a 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -42,7 +42,9 @@ pub type door_id_t = ::c_ulonglong; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s! { @@ -714,11 +716,11 @@ pub const LC_COLLATE_MASK: ::c_int = (1 << LC_COLLATE); pub const LC_MONETARY_MASK: ::c_int = (1 << LC_MONETARY); pub const LC_MESSAGES_MASK: ::c_int = (1 << LC_MESSAGES); pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK - | LC_NUMERIC_MASK - | LC_TIME_MASK - | LC_COLLATE_MASK - | LC_MONETARY_MASK - | LC_MESSAGES_MASK; + | LC_NUMERIC_MASK + | LC_TIME_MASK + | LC_COLLATE_MASK + | LC_MONETARY_MASK + | LC_MESSAGES_MASK; pub const DAY_1: ::nl_item = 1; pub const DAY_2: ::nl_item = 2; @@ -815,7 +817,7 @@ pub const SIG_UNBLOCK: ::c_int = 2; pub const SIG_SETMASK: ::c_int = 3; pub const SIGEV_NONE: ::c_int = 1; -pub const SIGEV_SIGNAL: ::c_int =2; +pub const SIGEV_SIGNAL: ::c_int = 2; pub const SIGEV_THREAD: ::c_int = 3; pub const IPV6_UNICAST_HOPS: ::c_int = 0x5; @@ -1137,17 +1139,17 @@ pub const F_SETFL: ::c_int = 4; pub const SIGTRAP: ::c_int = 5; -pub const GLOB_APPEND : ::c_int = 32; -pub const GLOB_DOOFFS : ::c_int = 16; -pub const GLOB_ERR : ::c_int = 1; -pub const GLOB_MARK : ::c_int = 2; -pub const GLOB_NOCHECK : ::c_int = 8; -pub const GLOB_NOSORT : ::c_int = 4; +pub const GLOB_APPEND: ::c_int = 32; +pub const GLOB_DOOFFS: ::c_int = 16; +pub const GLOB_ERR: ::c_int = 1; +pub const GLOB_MARK: ::c_int = 2; +pub const GLOB_NOCHECK: ::c_int = 8; +pub const GLOB_NOSORT: ::c_int = 4; pub const GLOB_NOESCAPE: ::c_int = 64; -pub const GLOB_NOSPACE : ::c_int = -2; -pub const GLOB_ABORTED : ::c_int = -1; -pub const GLOB_NOMATCH : ::c_int = -3; +pub const GLOB_NOSPACE: ::c_int = -2; +pub const GLOB_ABORTED: ::c_int = -1; +pub const GLOB_NOMATCH: ::c_int = -3; pub const POLLIN: ::c_short = 0x1; pub const POLLPRI: ::c_short = 0x2; @@ -1199,10 +1201,7 @@ pub const RLIMIT_NOFILE: ::c_int = 5; pub const RLIMIT_VMEM: ::c_int = 6; pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM; -#[deprecated( - since = "0.2.64", - note = "Not stable across OS versions" -)] +#[deprecated(since = "0.2.64", note = "Not stable across OS versions")] pub const RLIM_NLIMITS: rlim_t = 7; pub const RLIM_INFINITY: rlim_t = 0x7fffffff; @@ -1321,13 +1320,13 @@ pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast -// Multicast using broadcst. add. + // Multicast using broadcst. add. pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts -// No address - just on-link subnet + // No address - just on-link subnet pub const IFF_NOLOCAL: ::c_int = 0x0000020000; pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf @@ -1342,7 +1341,7 @@ pub const IFF_FAILED: ::c_int = 0x0010000000; // Interface has failed pub const IFF_STANDBY: ::c_int = 0x0020000000; // Interface is a hot-spare pub const IFF_INACTIVE: ::c_int = 0x0040000000; // Functioning but not used pub const IFF_OFFLINE: ::c_int = 0x0080000000; // Interface is offline -// If CoS marking is supported + // If CoS marking is supported pub const IFF_COS_ENABLED: ::c_longlong = 0x0200000000; pub const IFF_PREFERRED: ::c_longlong = 0x0400000000; // Prefer as source addr. pub const IFF_TEMPORARY: ::c_longlong = 0x0800000000; // RFC3041 @@ -1552,8 +1551,8 @@ pub const _SC_IPV6: ::c_int = 762; pub const _SC_RAW_SOCKETS: ::c_int = 763; pub const _MUTEX_MAGIC: u16 = 0x4d58; // MX -pub const _COND_MAGIC: u16 = 0x4356; // CV -pub const _RWL_MAGIC: u16 = 0x5257; // RW +pub const _COND_MAGIC: u16 = 0x4356; // CV +pub const _RWL_MAGIC: u16 = 0x5257; // RW pub const NCCS: usize = 19; @@ -1566,13 +1565,13 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __pthread_mutex_type: PTHREAD_PROCESS_PRIVATE, __pthread_mutex_magic: _MUTEX_MAGIC, __pthread_mutex_lock: 0, - __pthread_mutex_data: 0 + __pthread_mutex_data: 0, }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { __pthread_cond_flag: [0; 4], __pthread_cond_type: PTHREAD_PROCESS_PRIVATE, __pthread_cond_magic: _COND_MAGIC, - __pthread_cond_data: 0 + __pthread_cond_data: 0, }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __pthread_rwlock_readers: 0, @@ -1580,7 +1579,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { __pthread_rwlock_magic: _RWL_MAGIC, __pthread_rwlock_mutex: PTHREAD_MUTEX_INITIALIZER, __pthread_rwlock_readercv: PTHREAD_COND_INITIALIZER, - __pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER + __pthread_rwlock_writercv: PTHREAD_COND_INITIALIZER, }; pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; @@ -1616,21 +1615,21 @@ pub const PORT_SOURCE_SIGNAL: ::c_int = 9; const _TIOC: ::c_int = ('T' as i32) << 8; const tIOC: ::c_int = ('t' as i32) << 8; -pub const TCGETA: ::c_int = (_TIOC|1); -pub const TCSETA: ::c_int = (_TIOC|2); -pub const TCSETAW: ::c_int = (_TIOC|3); -pub const TCSETAF: ::c_int = (_TIOC|4); -pub const TCSBRK: ::c_int = (_TIOC|5); -pub const TCXONC: ::c_int = (_TIOC|6); -pub const TCFLSH: ::c_int = (_TIOC|7); -pub const TCDSET: ::c_int = (_TIOC|32); -pub const TCGETS: ::c_int = (_TIOC|13); -pub const TCSETS: ::c_int = (_TIOC|14); -pub const TCSANOW: ::c_int = (_TIOC|14); -pub const TCSETSW: ::c_int = (_TIOC|15); -pub const TCSADRAIN: ::c_int = (_TIOC|15); -pub const TCSETSF: ::c_int = (_TIOC|16); -pub const TCSAFLUSH: ::c_int = (_TIOC|16); +pub const TCGETA: ::c_int = (_TIOC | 1); +pub const TCSETA: ::c_int = (_TIOC | 2); +pub const TCSETAW: ::c_int = (_TIOC | 3); +pub const TCSETAF: ::c_int = (_TIOC | 4); +pub const TCSBRK: ::c_int = (_TIOC | 5); +pub const TCXONC: ::c_int = (_TIOC | 6); +pub const TCFLSH: ::c_int = (_TIOC | 7); +pub const TCDSET: ::c_int = (_TIOC | 32); +pub const TCGETS: ::c_int = (_TIOC | 13); +pub const TCSETS: ::c_int = (_TIOC | 14); +pub const TCSANOW: ::c_int = (_TIOC | 14); +pub const TCSETSW: ::c_int = (_TIOC | 15); +pub const TCSADRAIN: ::c_int = (_TIOC | 15); +pub const TCSETSF: ::c_int = (_TIOC | 16); +pub const TCSAFLUSH: ::c_int = (_TIOC | 16); pub const TCIFLUSH: ::c_int = 0; pub const TCOFLUSH: ::c_int = 1; pub const TCIOFLUSH: ::c_int = 2; @@ -1639,55 +1638,55 @@ pub const TCOON: ::c_int = 1; pub const TCIOFF: ::c_int = 2; pub const TCION: ::c_int = 3; pub const TIOC: ::c_int = _TIOC; -pub const TIOCKBON: ::c_int = (_TIOC|8); -pub const TIOCKBOF: ::c_int = (_TIOC|9); -pub const TIOCGWINSZ: ::c_int = (_TIOC|104); -pub const TIOCSWINSZ: ::c_int = (_TIOC|103); -pub const TIOCGSOFTCAR: ::c_int = (_TIOC|105); -pub const TIOCSSOFTCAR: ::c_int = (_TIOC|106); -pub const TIOCSETLD: ::c_int = (_TIOC|123); -pub const TIOCGETLD: ::c_int = (_TIOC|124); -pub const TIOCGPPS: ::c_int = (_TIOC|125); -pub const TIOCSPPS: ::c_int = (_TIOC|126); -pub const TIOCGPPSEV: ::c_int = (_TIOC|127); -pub const TIOCGETD: ::c_int = (tIOC|0); -pub const TIOCSETD: ::c_int = (tIOC|1); -pub const TIOCHPCL: ::c_int = (tIOC|2); -pub const TIOCGETP: ::c_int = (tIOC|8); -pub const TIOCSETP: ::c_int = (tIOC|9); -pub const TIOCSETN: ::c_int = (tIOC|10); -pub const TIOCEXCL: ::c_int = (tIOC|13); -pub const TIOCNXCL: ::c_int = (tIOC|14); -pub const TIOCFLUSH: ::c_int = (tIOC|16); -pub const TIOCSETC: ::c_int = (tIOC|17); -pub const TIOCGETC: ::c_int = (tIOC|18); -pub const TIOCLBIS: ::c_int = (tIOC|127); -pub const TIOCLBIC: ::c_int = (tIOC|126); -pub const TIOCLSET: ::c_int = (tIOC|125); -pub const TIOCLGET: ::c_int = (tIOC|124); -pub const TIOCSBRK: ::c_int = (tIOC|123); -pub const TIOCCBRK: ::c_int = (tIOC|122); -pub const TIOCSDTR: ::c_int = (tIOC|121); -pub const TIOCCDTR: ::c_int = (tIOC|120); -pub const TIOCSLTC: ::c_int = (tIOC|117); -pub const TIOCGLTC: ::c_int = (tIOC|116); -pub const TIOCOUTQ: ::c_int = (tIOC|115); -pub const TIOCNOTTY: ::c_int = (tIOC|113); -pub const TIOCSCTTY: ::c_int = (tIOC|132); -pub const TIOCSTOP: ::c_int = (tIOC|111); -pub const TIOCSTART: ::c_int = (tIOC|110); -pub const TIOCSILOOP: ::c_int = (tIOC|109); -pub const TIOCCILOOP: ::c_int = (tIOC|108); -pub const TIOCGPGRP: ::c_int = (tIOC|20); -pub const TIOCSPGRP: ::c_int = (tIOC|21); -pub const TIOCGSID: ::c_int = (tIOC|22); -pub const TIOCSTI: ::c_int = (tIOC|23); -pub const TIOCMSET: ::c_int = (tIOC|26); -pub const TIOCMBIS: ::c_int = (tIOC|27); -pub const TIOCMBIC: ::c_int = (tIOC|28); -pub const TIOCMGET: ::c_int = (tIOC|29); -pub const TIOCREMOTE: ::c_int = (tIOC|30); -pub const TIOCSIGNAL: ::c_int = (tIOC|31); +pub const TIOCKBON: ::c_int = (_TIOC | 8); +pub const TIOCKBOF: ::c_int = (_TIOC | 9); +pub const TIOCGWINSZ: ::c_int = (_TIOC | 104); +pub const TIOCSWINSZ: ::c_int = (_TIOC | 103); +pub const TIOCGSOFTCAR: ::c_int = (_TIOC | 105); +pub const TIOCSSOFTCAR: ::c_int = (_TIOC | 106); +pub const TIOCSETLD: ::c_int = (_TIOC | 123); +pub const TIOCGETLD: ::c_int = (_TIOC | 124); +pub const TIOCGPPS: ::c_int = (_TIOC | 125); +pub const TIOCSPPS: ::c_int = (_TIOC | 126); +pub const TIOCGPPSEV: ::c_int = (_TIOC | 127); +pub const TIOCGETD: ::c_int = (tIOC | 0); +pub const TIOCSETD: ::c_int = (tIOC | 1); +pub const TIOCHPCL: ::c_int = (tIOC | 2); +pub const TIOCGETP: ::c_int = (tIOC | 8); +pub const TIOCSETP: ::c_int = (tIOC | 9); +pub const TIOCSETN: ::c_int = (tIOC | 10); +pub const TIOCEXCL: ::c_int = (tIOC | 13); +pub const TIOCNXCL: ::c_int = (tIOC | 14); +pub const TIOCFLUSH: ::c_int = (tIOC | 16); +pub const TIOCSETC: ::c_int = (tIOC | 17); +pub const TIOCGETC: ::c_int = (tIOC | 18); +pub const TIOCLBIS: ::c_int = (tIOC | 127); +pub const TIOCLBIC: ::c_int = (tIOC | 126); +pub const TIOCLSET: ::c_int = (tIOC | 125); +pub const TIOCLGET: ::c_int = (tIOC | 124); +pub const TIOCSBRK: ::c_int = (tIOC | 123); +pub const TIOCCBRK: ::c_int = (tIOC | 122); +pub const TIOCSDTR: ::c_int = (tIOC | 121); +pub const TIOCCDTR: ::c_int = (tIOC | 120); +pub const TIOCSLTC: ::c_int = (tIOC | 117); +pub const TIOCGLTC: ::c_int = (tIOC | 116); +pub const TIOCOUTQ: ::c_int = (tIOC | 115); +pub const TIOCNOTTY: ::c_int = (tIOC | 113); +pub const TIOCSCTTY: ::c_int = (tIOC | 132); +pub const TIOCSTOP: ::c_int = (tIOC | 111); +pub const TIOCSTART: ::c_int = (tIOC | 110); +pub const TIOCSILOOP: ::c_int = (tIOC | 109); +pub const TIOCCILOOP: ::c_int = (tIOC | 108); +pub const TIOCGPGRP: ::c_int = (tIOC | 20); +pub const TIOCSPGRP: ::c_int = (tIOC | 21); +pub const TIOCGSID: ::c_int = (tIOC | 22); +pub const TIOCSTI: ::c_int = (tIOC | 23); +pub const TIOCMSET: ::c_int = (tIOC | 26); +pub const TIOCMBIS: ::c_int = (tIOC | 27); +pub const TIOCMBIC: ::c_int = (tIOC | 28); +pub const TIOCMGET: ::c_int = (tIOC | 29); +pub const TIOCREMOTE: ::c_int = (tIOC | 30); +pub const TIOCSIGNAL: ::c_int = (tIOC | 31); pub const EPOLLIN: ::c_int = 0x1; pub const EPOLLPRI: ::c_int = 0x2; @@ -1862,18 +1861,22 @@ f! { } } -extern { +extern "C" { pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn acct(filename: *const ::c_char) -> ::c_int; @@ -1883,177 +1886,282 @@ extern { pub fn rand() -> ::c_int; pub fn srand(seed: ::c_uint); - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); pub fn stack_getbounds(sp: *mut ::stack_t) -> ::c_int; - pub fn mincore(addr: *const ::c_void, len: ::size_t, - vec: *mut c_char) -> ::c_int; + pub fn mincore( + addr: *const ::c_void, + len: ::size_t, + vec: *mut c_char, + ) -> ::c_int; pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; - pub fn setgroups(ngroups: ::c_int, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int; pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn mprotect( + addr: *const ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn ___errno() -> *mut ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_nanosleep(clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, - hostlen: ::socklen_t, - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; + pub fn getnameinfo( + sa: *const ::sockaddr, + salen: ::socklen_t, + host: *mut ::c_char, + hostlen: ::socklen_t, + serv: *mut ::c_char, + sevlen: ::socklen_t, + flags: ::c_int, + ) -> ::c_int; pub fn setpwent(); pub fn endpwent(); pub fn getpwent() -> *mut passwd; pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; pub fn getprogname() -> *const ::c_char; pub fn setprogname(name: *const ::c_char); pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int; pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) + -> ::c_int; + + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; - - pub fn glob(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; + + pub fn glob( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); - pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) - -> ::c_int; + pub fn posix_madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn shm_open( + name: *const ::c_char, + oflag: ::c_int, + mode: ::mode_t, + ) -> ::c_int; pub fn shm_unlink(name: *const ::c_char) -> ::c_int; pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn futimesat(fd: ::c_int, path: *const ::c_char, - times: *const ::timeval) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn futimesat( + fd: ::c_int, + path: *const ::c_char, + times: *const ::timeval, + ) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; #[cfg_attr(target_os = "illumos", link_name = "__xnet_bind")] - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendmsg")] - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; #[cfg_attr(target_os = "illumos", link_name = "__xnet_recvmsg")] - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_timedreceive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint, - abs_timeout: *const ::timespec) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; - pub fn mq_timedsend(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint, - abs_timeout: *const ::timespec) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_timedreceive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + ) -> ::c_int; + pub fn mq_timedsend( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + abs_timeout: *const ::timespec, + ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr, + ) -> ::c_int; pub fn port_create() -> ::c_int; - pub fn port_associate(port: ::c_int, source: ::c_int, object: ::uintptr_t, - events: ::c_int, user: *mut ::c_void) -> ::c_int; - pub fn port_dissociate(port: ::c_int, source: ::c_int, object: ::uintptr_t) - -> ::c_int; - pub fn port_get(port: ::c_int, pe: *mut port_event, - timeout: *mut ::timespec) -> ::c_int; - pub fn port_getn(port: ::c_int, pe_list: *mut port_event, max: ::c_uint, - nget: *mut ::c_uint, timeout: *mut ::timespec) - -> ::c_int; - pub fn fexecve(fd: ::c_int, argv: *const *const ::c_char, - envp: *const *const ::c_char) - -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn port_associate( + port: ::c_int, + source: ::c_int, + object: ::uintptr_t, + events: ::c_int, + user: *mut ::c_void, + ) -> ::c_int; + pub fn port_dissociate( + port: ::c_int, + source: ::c_int, + object: ::uintptr_t, + ) -> ::c_int; + pub fn port_get( + port: ::c_int, + pe: *mut port_event, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn port_getn( + port: ::c_int, + pe_list: *mut port_event, + max: ::c_uint, + nget: *mut ::c_uint, + timeout: *mut ::timespec, + ) -> ::c_int; + pub fn fexecve( + fd: ::c_int, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getgrgid_r" + )] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; @@ -2061,92 +2169,129 @@ extern { // there are things using epoll on illumos (built using the // x86_64-sun-solaris target) which would break until the illumos target is // present in rustc. - pub fn epoll_pwait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t) -> ::c_int; + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; pub fn epoll_create(size: ::c_int) -> ::c_int; pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; - - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event, + ) -> ::c_int; + + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getgrnam_r" + )] + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; pub fn sem_unlink(name: *const ::c_char) -> ::c_int; pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getpwent_r")] - pub fn getpwent_r(pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_getgrent_r")] - pub fn getgrent_r(grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(any(target_os = "solaris", target_os = "illumos"), - link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getpwnam_r" + )] + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getpwuid_r" + )] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getpwent_r" + )] + pub fn getpwent_r( + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_getgrent_r" + )] + pub fn getgrent_r( + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + any(target_os = "solaris", target_os = "illumos"), + link_name = "__posix_sigwait" + )] + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; pub fn setgrent(); pub fn endgrent(); pub fn getgrent() -> *mut ::group; - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; pub fn door_call(d: ::c_int, params: *const door_arg_t) -> ::c_int; - pub fn door_return(data_ptr: *const ::c_char, - data_size: ::size_t, - desc_ptr: *const door_desc_t, - num_desc: ::c_uint); - pub fn door_create(server_procedure: extern fn(cookie: *const ::c_void, - argp: *const ::c_char, - arg_size: ::size_t, - dp: *const door_desc_t, - n_desc: ::c_uint), - cookie: *const ::c_void, - attributes: door_attr_t) -> ::c_int; + pub fn door_return( + data_ptr: *const ::c_char, + data_size: ::size_t, + desc_ptr: *const door_desc_t, + num_desc: ::c_uint, + ); + pub fn door_create( + server_procedure: extern "C" fn( + cookie: *const ::c_void, + argp: *const ::c_char, + arg_size: ::size_t, + dp: *const door_desc_t, + n_desc: ::c_uint, + ), + cookie: *const ::c_void, + attributes: door_attr_t, + ) -> ::c_int; pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; } diff --git a/src/unix/uclibc/align.rs b/src/unix/uclibc/align.rs index 3307c9d169456..76b524d0c0829 100644 --- a/src/unix/uclibc/align.rs +++ b/src/unix/uclibc/align.rs @@ -62,5 +62,5 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } } - } + }; } diff --git a/src/unix/uclibc/arm/mod.rs b/src/unix/uclibc/arm/mod.rs index 7680dcf0071cc..41dd7100dfec5 100644 --- a/src/unix/uclibc/arm/mod.rs +++ b/src/unix/uclibc/arm/mod.rs @@ -1018,22 +1018,28 @@ f! { } -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn openpty(amaster: *mut ::c_int, - aslave: *mut ::c_int, - name: *mut ::c_char, - termp: *mut termios, - winp: *mut ::winsize) -> ::c_int; + pub fn openpty( + amaster: *mut ::c_int, + aslave: *mut ::c_int, + name: *mut ::c_char, + termp: *mut termios, + winp: *mut ::winsize, + ) -> ::c_int; pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int; - pub fn pwritev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; - pub fn preadv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int, - offset: ::off_t) -> ::ssize_t; + pub fn pwritev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; + pub fn preadv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + offset: ::off_t, + ) -> ::ssize_t; } cfg_if! { diff --git a/src/unix/uclibc/mips/mips32/mod.rs b/src/unix/uclibc/mips/mips32/mod.rs index 410ab70c440a1..31bca589ef2be 100644 --- a/src/unix/uclibc/mips/mips32/mod.rs +++ b/src/unix/uclibc/mips/mips32/mod.rs @@ -239,91 +239,91 @@ pub const SYS_close: ::c_long = 4000 + 6; pub const SYS_waitpid: ::c_long = 4000 + 7; pub const SYS_creat: ::c_long = 4000 + 8; pub const SYS_link: ::c_long = 4000 + 9; -pub const SYS_unlink: ::c_long = 4000 + 10; -pub const SYS_execve: ::c_long = 4000 + 11; -pub const SYS_chdir: ::c_long = 4000 + 12; -pub const SYS_time: ::c_long = 4000 + 13; -pub const SYS_mknod: ::c_long = 4000 + 14; -pub const SYS_chmod: ::c_long = 4000 + 15; -pub const SYS_lchown: ::c_long = 4000 + 16; -pub const SYS_break: ::c_long = 4000 + 17; -pub const SYS_lseek: ::c_long = 4000 + 19; -pub const SYS_getpid: ::c_long = 4000 + 20; -pub const SYS_mount: ::c_long = 4000 + 21; -pub const SYS_umount: ::c_long = 4000 + 22; -pub const SYS_setuid: ::c_long = 4000 + 23; -pub const SYS_getuid: ::c_long = 4000 + 24; -pub const SYS_stime: ::c_long = 4000 + 25; -pub const SYS_ptrace: ::c_long = 4000 + 26; -pub const SYS_alarm: ::c_long = 4000 + 27; -pub const SYS_pause: ::c_long = 4000 + 29; -pub const SYS_utime: ::c_long = 4000 + 30; -pub const SYS_stty: ::c_long = 4000 + 31; -pub const SYS_gtty: ::c_long = 4000 + 32; -pub const SYS_access: ::c_long = 4000 + 33; -pub const SYS_nice: ::c_long = 4000 + 34; -pub const SYS_ftime: ::c_long = 4000 + 35; -pub const SYS_sync: ::c_long = 4000 + 36; -pub const SYS_kill: ::c_long = 4000 + 37; -pub const SYS_rename: ::c_long = 4000 + 38; -pub const SYS_mkdir: ::c_long = 4000 + 39; -pub const SYS_rmdir: ::c_long = 4000 + 40; -pub const SYS_dup: ::c_long = 4000 + 41; -pub const SYS_pipe: ::c_long = 4000 + 42; -pub const SYS_times: ::c_long = 4000 + 43; -pub const SYS_prof: ::c_long = 4000 + 44; -pub const SYS_brk: ::c_long = 4000 + 45; -pub const SYS_setgid: ::c_long = 4000 + 46; -pub const SYS_getgid: ::c_long = 4000 + 47; -pub const SYS_signal: ::c_long = 4000 + 48; -pub const SYS_geteuid: ::c_long = 4000 + 49; -pub const SYS_getegid: ::c_long = 4000 + 50; -pub const SYS_acct: ::c_long = 4000 + 51; -pub const SYS_umount2: ::c_long = 4000 + 52; -pub const SYS_lock: ::c_long = 4000 + 53; -pub const SYS_ioctl: ::c_long = 4000 + 54; -pub const SYS_fcntl: ::c_long = 4000 + 55; -pub const SYS_mpx: ::c_long = 4000 + 56; -pub const SYS_setpgid: ::c_long = 4000 + 57; -pub const SYS_ulimit: ::c_long = 4000 + 58; -pub const SYS_umask: ::c_long = 4000 + 60; -pub const SYS_chroot: ::c_long = 4000 + 61; -pub const SYS_ustat: ::c_long = 4000 + 62; -pub const SYS_dup2: ::c_long = 4000 + 63; -pub const SYS_getppid: ::c_long = 4000 + 64; -pub const SYS_getpgrp: ::c_long = 4000 + 65; -pub const SYS_setsid: ::c_long = 4000 + 66; -pub const SYS_sigaction: ::c_long = 4000 + 67; -pub const SYS_sgetmask: ::c_long = 4000 + 68; -pub const SYS_ssetmask: ::c_long = 4000 + 69; -pub const SYS_setreuid: ::c_long = 4000 + 70; -pub const SYS_setregid: ::c_long = 4000 + 71; -pub const SYS_sigsuspend: ::c_long = 4000 + 72; -pub const SYS_sigpending: ::c_long = 4000 + 73; -pub const SYS_sethostname: ::c_long = 4000 + 74; -pub const SYS_setrlimit: ::c_long = 4000 + 75; -pub const SYS_getrlimit: ::c_long = 4000 + 76; -pub const SYS_getrusage: ::c_long = 4000 + 77; -pub const SYS_gettimeofday: ::c_long = 4000 + 78; -pub const SYS_settimeofday: ::c_long = 4000 + 79; -pub const SYS_getgroups: ::c_long = 4000 + 80; -pub const SYS_setgroups: ::c_long = 4000 + 81; -pub const SYS_symlink: ::c_long = 4000 + 83; -pub const SYS_readlink: ::c_long = 4000 + 85; -pub const SYS_uselib: ::c_long = 4000 + 86; -pub const SYS_swapon: ::c_long = 4000 + 87; -pub const SYS_reboot: ::c_long = 4000 + 88; -pub const SYS_readdir: ::c_long = 4000 + 89; -pub const SYS_mmap: ::c_long = 4000 + 90; -pub const SYS_munmap: ::c_long = 4000 + 91; -pub const SYS_truncate: ::c_long = 4000 + 92; -pub const SYS_ftruncate: ::c_long = 4000 + 93; -pub const SYS_fchmod: ::c_long = 4000 + 94; -pub const SYS_fchown: ::c_long = 4000 + 95; -pub const SYS_getpriority: ::c_long = 4000 + 96; -pub const SYS_setpriority: ::c_long = 4000 + 97; -pub const SYS_profil: ::c_long = 4000 + 98; -pub const SYS_statfs: ::c_long = 4000 + 99; +pub const SYS_unlink: ::c_long = 4000 + 10; +pub const SYS_execve: ::c_long = 4000 + 11; +pub const SYS_chdir: ::c_long = 4000 + 12; +pub const SYS_time: ::c_long = 4000 + 13; +pub const SYS_mknod: ::c_long = 4000 + 14; +pub const SYS_chmod: ::c_long = 4000 + 15; +pub const SYS_lchown: ::c_long = 4000 + 16; +pub const SYS_break: ::c_long = 4000 + 17; +pub const SYS_lseek: ::c_long = 4000 + 19; +pub const SYS_getpid: ::c_long = 4000 + 20; +pub const SYS_mount: ::c_long = 4000 + 21; +pub const SYS_umount: ::c_long = 4000 + 22; +pub const SYS_setuid: ::c_long = 4000 + 23; +pub const SYS_getuid: ::c_long = 4000 + 24; +pub const SYS_stime: ::c_long = 4000 + 25; +pub const SYS_ptrace: ::c_long = 4000 + 26; +pub const SYS_alarm: ::c_long = 4000 + 27; +pub const SYS_pause: ::c_long = 4000 + 29; +pub const SYS_utime: ::c_long = 4000 + 30; +pub const SYS_stty: ::c_long = 4000 + 31; +pub const SYS_gtty: ::c_long = 4000 + 32; +pub const SYS_access: ::c_long = 4000 + 33; +pub const SYS_nice: ::c_long = 4000 + 34; +pub const SYS_ftime: ::c_long = 4000 + 35; +pub const SYS_sync: ::c_long = 4000 + 36; +pub const SYS_kill: ::c_long = 4000 + 37; +pub const SYS_rename: ::c_long = 4000 + 38; +pub const SYS_mkdir: ::c_long = 4000 + 39; +pub const SYS_rmdir: ::c_long = 4000 + 40; +pub const SYS_dup: ::c_long = 4000 + 41; +pub const SYS_pipe: ::c_long = 4000 + 42; +pub const SYS_times: ::c_long = 4000 + 43; +pub const SYS_prof: ::c_long = 4000 + 44; +pub const SYS_brk: ::c_long = 4000 + 45; +pub const SYS_setgid: ::c_long = 4000 + 46; +pub const SYS_getgid: ::c_long = 4000 + 47; +pub const SYS_signal: ::c_long = 4000 + 48; +pub const SYS_geteuid: ::c_long = 4000 + 49; +pub const SYS_getegid: ::c_long = 4000 + 50; +pub const SYS_acct: ::c_long = 4000 + 51; +pub const SYS_umount2: ::c_long = 4000 + 52; +pub const SYS_lock: ::c_long = 4000 + 53; +pub const SYS_ioctl: ::c_long = 4000 + 54; +pub const SYS_fcntl: ::c_long = 4000 + 55; +pub const SYS_mpx: ::c_long = 4000 + 56; +pub const SYS_setpgid: ::c_long = 4000 + 57; +pub const SYS_ulimit: ::c_long = 4000 + 58; +pub const SYS_umask: ::c_long = 4000 + 60; +pub const SYS_chroot: ::c_long = 4000 + 61; +pub const SYS_ustat: ::c_long = 4000 + 62; +pub const SYS_dup2: ::c_long = 4000 + 63; +pub const SYS_getppid: ::c_long = 4000 + 64; +pub const SYS_getpgrp: ::c_long = 4000 + 65; +pub const SYS_setsid: ::c_long = 4000 + 66; +pub const SYS_sigaction: ::c_long = 4000 + 67; +pub const SYS_sgetmask: ::c_long = 4000 + 68; +pub const SYS_ssetmask: ::c_long = 4000 + 69; +pub const SYS_setreuid: ::c_long = 4000 + 70; +pub const SYS_setregid: ::c_long = 4000 + 71; +pub const SYS_sigsuspend: ::c_long = 4000 + 72; +pub const SYS_sigpending: ::c_long = 4000 + 73; +pub const SYS_sethostname: ::c_long = 4000 + 74; +pub const SYS_setrlimit: ::c_long = 4000 + 75; +pub const SYS_getrlimit: ::c_long = 4000 + 76; +pub const SYS_getrusage: ::c_long = 4000 + 77; +pub const SYS_gettimeofday: ::c_long = 4000 + 78; +pub const SYS_settimeofday: ::c_long = 4000 + 79; +pub const SYS_getgroups: ::c_long = 4000 + 80; +pub const SYS_setgroups: ::c_long = 4000 + 81; +pub const SYS_symlink: ::c_long = 4000 + 83; +pub const SYS_readlink: ::c_long = 4000 + 85; +pub const SYS_uselib: ::c_long = 4000 + 86; +pub const SYS_swapon: ::c_long = 4000 + 87; +pub const SYS_reboot: ::c_long = 4000 + 88; +pub const SYS_readdir: ::c_long = 4000 + 89; +pub const SYS_mmap: ::c_long = 4000 + 90; +pub const SYS_munmap: ::c_long = 4000 + 91; +pub const SYS_truncate: ::c_long = 4000 + 92; +pub const SYS_ftruncate: ::c_long = 4000 + 93; +pub const SYS_fchmod: ::c_long = 4000 + 94; +pub const SYS_fchown: ::c_long = 4000 + 95; +pub const SYS_getpriority: ::c_long = 4000 + 96; +pub const SYS_setpriority: ::c_long = 4000 + 97; +pub const SYS_profil: ::c_long = 4000 + 98; +pub const SYS_statfs: ::c_long = 4000 + 99; pub const SYS_fstatfs: ::c_long = 4000 + 100; pub const SYS_ioperm: ::c_long = 4000 + 101; pub const SYS_socketcall: ::c_long = 4000 + 102; @@ -589,31 +589,37 @@ pub const SYS_pkey_alloc: ::c_long = 4000 + 364; pub const SYS_pkey_free: ::c_long = 4000 + 365; #[link(name = "util")] -extern { - pub fn sysctl(name: *mut ::c_int, - namelen: ::c_int, - oldp: *mut ::c_void, - oldlenp: *mut ::size_t, - newp: *mut ::c_void, - newlen: ::size_t) - -> ::c_int; +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; - pub fn glob64(pattern: *const ::c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut glob64_t) -> ::c_int; + pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int; + pub fn glob64( + pattern: *const ::c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut glob64_t, + ) -> ::c_int; pub fn globfree64(pglob: *mut glob64_t); pub fn ptrace(request: ::c_uint, ...) -> ::c_long; - pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *mut ::cpu_set_t) -> ::c_int; - pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, - cpusetsize: ::size_t, - cpuset: *const ::cpu_set_t) -> ::c_int; + pub fn pthread_attr_getaffinity_np( + attr: *const ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *mut ::cpu_set_t, + ) -> ::c_int; + pub fn pthread_attr_setaffinity_np( + attr: *mut ::pthread_attr_t, + cpusetsize: ::size_t, + cpuset: *const ::cpu_set_t, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/uclibc/mips/mips64/mod.rs b/src/unix/uclibc/mips/mips64/mod.rs index d80762e6c0acb..735eb851ef7d4 100644 --- a/src/unix/uclibc/mips/mips64/mod.rs +++ b/src/unix/uclibc/mips/mips64/mod.rs @@ -195,10 +195,10 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; pub const RLIM_INFINITY: ::rlim_t = 0xffff_ffff_ffff_ffff; -pub const SYS_gettid: ::c_long = 5178; // Valid for n64 +pub const SYS_gettid: ::c_long = 5178; // Valid for n64 #[link(name = "util")] -extern { +extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; } diff --git a/src/unix/uclibc/mips/mips64/no_align.rs b/src/unix/uclibc/mips/mips64/no_align.rs index ee57ea88643db..8909114cdfa42 100644 --- a/src/unix/uclibc/mips/mips64/no_align.rs +++ b/src/unix/uclibc/mips/mips64/no_align.rs @@ -5,4 +5,3 @@ s! { __align: [::c_long; 0], } } - diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index e1eda9b84ee8b..7db97395061fb 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -26,14 +26,18 @@ pub type idtype_t = ::c_uint; pub enum fpos64_t {} // TODO: fill this out with a struct impl ::Copy for fpos64_t {} impl ::Clone for fpos64_t { - fn clone(&self) -> fpos64_t { *self } + fn clone(&self) -> fpos64_t { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } s! { @@ -738,14 +742,14 @@ pub const IFF_NOTRAILERS: ::c_int = 0x20; // Avoid use of trailers. pub const IFF_RUNNING: ::c_int = 0x40; // Resources allocated. pub const IFF_NOARP: ::c_int = 0x80; // No address resolution protocol. pub const IFF_PROMISC: ::c_int = 0x100; // Receive all packets. -// Not supported + // Not supported pub const IFF_ALLMULTI: ::c_int = 0x200; // Receive all multicast packets. pub const IFF_MASTER: ::c_int = 0x400; // Master of a load balancer. pub const IFF_SLAVE: ::c_int = 0x800; // Slave of a load balancer. pub const IFF_MULTICAST: ::c_int = 0x1000; // Supports multicast. pub const IFF_PORTSEL: ::c_int = 0x2000; // Can set media type. pub const IFF_AUTOMEDIA: ::c_int = 0x4000; // Auto media select active. -// Dialup device with changing addresses. + // Dialup device with changing addresses. pub const IFF_DYNAMIC: ::c_int = 0x8000; pub const SOL_IP: ::c_int = 0; @@ -940,13 +944,13 @@ pub const TCOON: ::c_int = 1; pub const TCIFLUSH: ::c_int = 0; pub const TCOFLUSH: ::c_int = 1; pub const TCIOFLUSH: ::c_int = 2; -pub const NL0: ::tcflag_t = 0x00000000; -pub const NL1: ::tcflag_t = 0x00000100; +pub const NL0: ::tcflag_t = 0x00000000; +pub const NL1: ::tcflag_t = 0x00000100; pub const TAB0: ::tcflag_t = 0x00000000; -pub const CR0: ::tcflag_t = 0x00000000; -pub const FF0: ::tcflag_t = 0x00000000; -pub const BS0: ::tcflag_t = 0x00000000; -pub const VT0: ::tcflag_t = 0x00000000; +pub const CR0: ::tcflag_t = 0x00000000; +pub const FF0: ::tcflag_t = 0x00000000; +pub const BS0: ::tcflag_t = 0x00000000; +pub const VT0: ::tcflag_t = 0x00000000; pub const VERASE: usize = 2; pub const VKILL: usize = 3; pub const VINTR: usize = 0; @@ -1571,17 +1575,20 @@ f! { } } -extern { - #[cfg_attr(target_os = "linux", - link_name = "__xpg_strerror_r")] - pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, - buflen: ::size_t) -> ::c_int; +extern "C" { + #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] + pub fn strerror_r( + errnum: ::c_int, + buf: *mut c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; - pub fn sem_init(sem: *mut sem_t, - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; + pub fn sem_init( + sem: *mut sem_t, + pshared: ::c_int, + value: ::c_uint, + ) -> ::c_int; pub fn abs(i: ::c_int) -> ::c_int; pub fn atof(s: *const ::c_char) -> ::c_double; @@ -1590,173 +1597,278 @@ extern { pub fn srand(seed: ::c_uint); pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::timezone) -> ::c_int; - pub fn mincore(addr: *mut ::c_void, len: ::size_t, - vec: *mut ::c_uchar) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn mincore( + addr: *mut ::c_void, + len: ::size_t, + vec: *mut ::c_uchar, + ) -> ::c_int; pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_nanosleep(clk_id: ::clockid_t, - flags: ::c_int, - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int; + pub fn clock_nanosleep( + clk_id: ::clockid_t, + flags: ::c_int, + rqtp: *const ::timespec, + rmtp: *mut ::timespec, + ) -> ::c_int; + pub fn clock_settime( + clk_id: ::clockid_t, + tp: *const ::timespec, + ) -> ::c_int; pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, - guardsize: *mut ::size_t) -> ::c_int; - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; + pub fn pthread_getattr_np( + native: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; - pub fn setgroups(ngroups: ::size_t, - ptr: *const ::gid_t) -> ::c_int; + pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int; pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; - pub fn sched_setscheduler(pid: ::pid_t, - policy: ::c_int, - param: *const ::sched_param) -> ::c_int; + pub fn sched_setscheduler( + pid: ::pid_t, + policy: ::c_int, + param: *const ::sched_param, + ) -> ::c_int; pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn epoll_create(size: ::c_int) -> ::c_int; pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event) -> ::c_int; - pub fn epoll_wait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int) -> ::c_int; + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event, + ) -> ::c_int; + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + ) -> ::c_int; pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - pub fn mount(src: *const ::c_char, - target: *const ::c_char, - fstype: *const ::c_char, - flags: ::c_ulong, - data: *const ::c_void) -> ::c_int; + pub fn mount( + src: *const ::c_char, + target: *const ::c_char, + fstype: *const ::c_char, + flags: ::c_ulong, + data: *const ::c_void, + ) -> ::c_int; pub fn umount(target: *const ::c_char) -> ::c_int; pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; - pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int, - child_stack: *mut ::c_void, - flags: ::c_int, - arg: *mut ::c_void, ...) -> ::c_int; + pub fn clone( + cb: extern "C" fn(*mut ::c_void) -> ::c_int, + child_stack: *mut ::c_void, + flags: ::c_int, + arg: *mut ::c_void, + ... + ) -> ::c_int; pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; - pub fn memrchr(cx: *const ::c_void, - c: ::c_int, - n: ::size_t) -> *mut ::c_void; + pub fn memrchr( + cx: *const ::c_void, + c: ::c_int, + n: ::size_t, + ) -> *mut ::c_void; pub fn syscall(num: ::c_long, ...) -> ::c_long; - pub fn sendfile(out_fd: ::c_int, - in_fd: ::c_int, - offset: *mut off_t, - count: ::size_t) -> ::ssize_t; - pub fn splice(fd_in: ::c_int, - off_in: *mut ::loff_t, - fd_out: ::c_int, - off_out: *mut ::loff_t, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn tee(fd_in: ::c_int, - fd_out: ::c_int, - len: ::size_t, - flags: ::c_uint) -> ::ssize_t; - pub fn vmsplice(fd: ::c_int, - iov: *const ::iovec, - nr_segs: ::size_t, - flags: ::c_uint) -> ::ssize_t; - - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, - advise: ::c_int) -> ::c_int; + pub fn sendfile( + out_fd: ::c_int, + in_fd: ::c_int, + offset: *mut off_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn splice( + fd_in: ::c_int, + off_in: *mut ::loff_t, + fd_out: ::c_int, + off_out: *mut ::loff_t, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn tee( + fd_in: ::c_int, + fd_out: ::c_int, + len: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + pub fn vmsplice( + fd: ::c_int, + iov: *const ::iovec, + nr_segs: ::size_t, + flags: ::c_uint, + ) -> ::ssize_t; + + pub fn posix_fadvise( + fd: ::c_int, + offset: ::off_t, + len: ::off_t, + advise: ::c_int, + ) -> ::c_int; pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; - pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, - times: *const ::timespec, flag: ::c_int) -> ::c_int; + pub fn utimensat( + dirfd: ::c_int, + path: *const ::c_char, + times: *const ::timespec, + flag: ::c_int, + ) -> ::c_int; pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn freelocale(loc: ::locale_t); - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; + pub fn newlocale( + mask: ::c_int, + locale: *const ::c_char, + base: ::locale_t, + ) -> ::locale_t; pub fn uselocale(loc: ::locale_t) -> ::locale_t; pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; - pub fn fstatat64(fildes: ::c_int, path: *const ::c_char, - buf: *mut stat64, flag: ::c_int) -> ::c_int; + pub fn fstatat64( + fildes: ::c_int, + path: *const ::c_char, + buf: *mut stat64, + flag: ::c_int, + ) -> ::c_int; pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; - pub fn mmap64(addr: *mut ::c_void, - len: ::size_t, - prot: ::c_int, - flags: ::c_int, - fd: ::c_int, - offset: off64_t) - -> *mut ::c_void; + pub fn mmap64( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + flags: ::c_int, + fd: ::c_int, + offset: off64_t, + ) -> *mut ::c_void; pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; - pub fn openat64(fd: ::c_int, - path: *const c_char, - oflag: ::c_int, ...) -> ::c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn pwrite64(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; + pub fn openat64( + fd: ::c_int, + path: *const c_char, + oflag: ::c_int, + ... + ) -> ::c_int; + pub fn pread64( + fd: ::c_int, + buf: *mut ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; + pub fn pwrite64( + fd: ::c_int, + buf: *const ::c_void, + count: ::size_t, + offset: off64_t, + ) -> ::ssize_t; pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir64_r(dirp: *mut ::DIR, entry: *mut ::dirent64, - result: *mut *mut ::dirent64) -> ::c_int; + pub fn readdir64_r( + dirp: *mut ::DIR, + entry: *mut ::dirent64, + result: *mut *mut ::dirent64, + ) -> ::c_int; pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; - pub fn ppoll(fds: *mut ::pollfd, - nfds: nfds_t, - timeout: *const ::timespec, - sigmask: *const sigset_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: ::clockid_t) -> ::c_int; - pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn sched_getaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *mut cpu_set_t) -> ::c_int; - pub fn sched_setaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *const cpu_set_t) -> ::c_int; + pub fn mknodat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + dev: dev_t, + ) -> ::c_int; + pub fn ppoll( + fds: *mut ::pollfd, + nfds: nfds_t, + timeout: *const ::timespec, + sigmask: *const sigset_t, + ) -> ::c_int; + pub fn pthread_condattr_getclock( + attr: *const pthread_condattr_t, + clock_id: *mut clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setclock( + attr: *mut pthread_condattr_t, + clock_id: ::clockid_t, + ) -> ::c_int; + pub fn pthread_condattr_setpshared( + attr: *mut pthread_condattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_condattr_getpshared( + attr: *const pthread_condattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn sched_getaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *mut cpu_set_t, + ) -> ::c_int; + pub fn sched_setaffinity( + pid: ::pid_t, + cpusetsize: ::size_t, + cpuset: *const cpu_set_t, + ) -> ::c_int; pub fn unshare(flags: ::c_int) -> ::c_int; - pub fn sem_timedwait(sem: *mut sem_t, - abstime: *const ::timespec) -> ::c_int; - pub fn sem_getvalue(sem: *mut sem_t, - sval: *mut ::c_int) -> ::c_int; - pub fn accept4(fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, - flg: ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; - pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, - pshared: ::c_int) -> ::c_int; - pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, - pshared: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getkind_np(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setkind_np(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, - val: *mut ::c_int) -> ::c_int; - pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, - val: ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, - buf: *mut ::c_char, - buflen: ::size_t) -> ::c_int; + pub fn sem_timedwait( + sem: *mut sem_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int; + pub fn accept4( + fd: ::c_int, + addr: *mut ::sockaddr, + len: *mut ::socklen_t, + flg: ::c_int, + ) -> ::c_int; + pub fn pthread_mutex_timedlock( + lock: *mut pthread_mutex_t, + abstime: *const ::timespec, + ) -> ::c_int; + pub fn pthread_mutexattr_setpshared( + attr: *mut pthread_mutexattr_t, + pshared: ::c_int, + ) -> ::c_int; + pub fn pthread_mutexattr_getpshared( + attr: *const pthread_mutexattr_t, + pshared: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getkind_np( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setkind_np( + attr: *mut pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_getpshared( + attr: *const pthread_rwlockattr_t, + val: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_rwlockattr_setpshared( + attr: *mut pthread_rwlockattr_t, + val: ::c_int, + ) -> ::c_int; + pub fn ptsname_r( + fd: ::c_int, + buf: *mut ::c_char, + buflen: ::size_t, + ) -> ::c_int; pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; + pub fn waitid( + idtype: idtype_t, + id: id_t, + infop: *mut ::siginfo_t, + options: ::c_int, + ) -> ::c_int; pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; @@ -1768,107 +1880,190 @@ extern { pub fn getspent() -> *mut spwd; pub fn getspnam(__name: *const ::c_char) -> *mut spwd; - pub fn shm_open(name: *const c_char, oflag: ::c_int, - mode: mode_t) -> ::c_int; + pub fn shm_open( + name: *const c_char, + oflag: ::c_int, + mode: mode_t, + ) -> ::c_int; // System V IPC pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; - pub fn shmat(shmid: ::c_int, - shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; - pub fn shmctl(shmid: ::c_int, - cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; + pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) + -> ::c_int; pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, - msgtyp: ::c_long, msgflg: ::c_int) -> ::ssize_t; - pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, - msgflg: ::c_int) -> ::c_int; - - pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; + pub fn msgrcv( + msqid: ::c_int, + msgp: *mut ::c_void, + msgsz: ::size_t, + msgtyp: ::c_long, + msgflg: ::c_int, + ) -> ::ssize_t; + pub fn msgsnd( + msqid: ::c_int, + msgp: *const ::c_void, + msgsz: ::size_t, + msgflg: ::c_int, + ) -> ::c_int; + + pub fn mprotect( + addr: *mut ::c_void, + len: ::size_t, + prot: ::c_int, + ) -> ::c_int; pub fn __errno_location() -> *mut ::c_int; - pub fn fopen64(filename: *const c_char, - mode: *const c_char) -> *mut ::FILE; - pub fn freopen64(filename: *const c_char, mode: *const c_char, - file: *mut ::FILE) -> *mut ::FILE; + pub fn fopen64( + filename: *const c_char, + mode: *const c_char, + ) -> *mut ::FILE; + pub fn freopen64( + filename: *const c_char, + mode: *const c_char, + file: *mut ::FILE, + ) -> *mut ::FILE; pub fn tmpfile64() -> *mut ::FILE; pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; - pub fn fseeko64(stream: *mut ::FILE, - offset: ::off64_t, - whence: ::c_int) -> ::c_int; + pub fn fseeko64( + stream: *mut ::FILE, + offset: ::off64_t, + whence: ::c_int, + ) -> ::c_int; pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; - pub fn readahead(fd: ::c_int, offset: ::off64_t, - count: ::size_t) -> ::ssize_t; - pub fn getxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn lgetxattr(path: *const c_char, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn fgetxattr(filedes: ::c_int, name: *const c_char, - value: *mut ::c_void, size: ::size_t) -> ::ssize_t; - pub fn setxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn lsetxattr(path: *const c_char, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn fsetxattr(filedes: ::c_int, name: *const c_char, - value: *const ::c_void, size: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn listxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn llistxattr(path: *const c_char, list: *mut c_char, - size: ::size_t) -> ::ssize_t; - pub fn flistxattr(filedes: ::c_int, list: *mut c_char, - size: ::size_t) -> ::ssize_t; + pub fn readahead( + fd: ::c_int, + offset: ::off64_t, + count: ::size_t, + ) -> ::ssize_t; + pub fn getxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn lgetxattr( + path: *const c_char, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn fgetxattr( + filedes: ::c_int, + name: *const c_char, + value: *mut ::c_void, + size: ::size_t, + ) -> ::ssize_t; + pub fn setxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn lsetxattr( + path: *const c_char, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn fsetxattr( + filedes: ::c_int, + name: *const c_char, + value: *const ::c_void, + size: ::size_t, + flags: ::c_int, + ) -> ::c_int; + pub fn listxattr( + path: *const c_char, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; + pub fn llistxattr( + path: *const c_char, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; + pub fn flistxattr( + filedes: ::c_int, + list: *mut c_char, + size: ::size_t, + ) -> ::ssize_t; pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; - pub fn signalfd(fd: ::c_int, - mask: *const ::sigset_t, - flags: ::c_int) -> ::c_int; - pub fn quotactl(cmd: ::c_int, - special: *const ::c_char, - id: ::c_int, - data: *mut ::c_char) -> ::c_int; + pub fn signalfd( + fd: ::c_int, + mask: *const ::sigset_t, + flags: ::c_int, + ) -> ::c_int; + pub fn quotactl( + cmd: ::c_int, + special: *const ::c_char, + id: ::c_int, + data: *mut ::c_char, + ) -> ::c_int; pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; pub fn mq_close(mqd: ::mqd_t) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; - pub fn mq_receive(mqd: ::mqd_t, - msg_ptr: *mut ::c_char, - msg_len: ::size_t, - msq_prio: *mut ::c_uint) -> ::ssize_t; - pub fn mq_send(mqd: ::mqd_t, - msg_ptr: *const ::c_char, - msg_len: ::size_t, - msq_prio: ::c_uint) -> ::c_int; + pub fn mq_receive( + mqd: ::mqd_t, + msg_ptr: *mut ::c_char, + msg_len: ::size_t, + msq_prio: *mut ::c_uint, + ) -> ::ssize_t; + pub fn mq_send( + mqd: ::mqd_t, + msg_ptr: *const ::c_char, + msg_len: ::size_t, + msq_prio: ::c_uint, + ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; - pub fn mq_setattr(mqd: ::mqd_t, - newattr: *const ::mq_attr, - oldattr: *mut ::mq_attr) -> ::c_int; - pub fn epoll_pwait(epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, - sigmask: *const ::sigset_t) -> ::c_int; + pub fn mq_setattr( + mqd: ::mqd_t, + newattr: *const ::mq_attr, + oldattr: *mut ::mq_attr, + ) -> ::c_int; + pub fn epoll_pwait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int, + sigmask: *const ::sigset_t, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn sigtimedwait(set: *const sigset_t, - info: *mut siginfo_t, - timeout: *const ::timespec) -> ::c_int; - pub fn sigwaitinfo(set: *const sigset_t, - info: *mut siginfo_t) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn prlimit(pid: ::pid_t, resource: ::c_int, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, - resource: ::c_int, - new_limit: *const ::rlimit64, - old_limit: *mut ::rlimit64) -> ::c_int; + pub fn sigtimedwait( + set: *const sigset_t, + info: *mut siginfo_t, + timeout: *const ::timespec, + ) -> ::c_int; + pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int; + pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) + -> *mut ::c_char; + pub fn prlimit( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit, + old_limit: *mut ::rlimit, + ) -> ::c_int; + pub fn prlimit64( + pid: ::pid_t, + resource: ::c_int, + new_limit: *const ::rlimit64, + old_limit: *mut ::rlimit64, + ) -> ::c_int; pub fn reboot(how_to: ::c_int) -> ::c_int; pub fn setfsgid(gid: ::gid_t) -> ::c_int; pub fn setfsuid(uid: ::uid_t) -> ::c_int; @@ -1876,26 +2071,38 @@ extern { pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; // Not available now on Android - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; + pub fn mkfifoat( + dirfd: ::c_int, + pathname: *const ::c_char, + mode: ::mode_t, + ) -> ::c_int; pub fn if_nameindex() -> *mut if_nameindex; pub fn if_freenameindex(ptr: *mut if_nameindex); - pub fn sync_file_range(fd: ::c_int, offset: ::off64_t, - nbytes: ::off64_t, flags: ::c_uint) -> ::c_int; + pub fn sync_file_range( + fd: ::c_int, + offset: ::off64_t, + nbytes: ::off64_t, + flags: ::c_uint, + ) -> ::c_int; pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); - pub fn mremap(addr: *mut ::c_void, - len: ::size_t, - new_len: ::size_t, - flags: ::c_int, - ...) -> *mut ::c_void; - - pub fn glob(pattern: *const c_char, - flags: ::c_int, - errfunc: ::Option ::c_int>, - pglob: *mut ::glob_t) -> ::c_int; + pub fn mremap( + addr: *mut ::c_void, + len: ::size_t, + new_len: ::size_t, + flags: ::c_int, + ... + ) -> *mut ::c_void; + + pub fn glob( + pattern: *const c_char, + flags: ::c_int, + errfunc: ::Option< + extern "C" fn(epath: *const c_char, errno: ::c_int) -> ::c_int, + >, + pglob: *mut ::glob_t, + ) -> ::c_int; pub fn globfree(pglob: *mut ::glob_t); pub fn shm_unlink(name: *const ::c_char) -> ::c_int; @@ -1905,54 +2112,88 @@ extern { pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; pub fn telldir(dirp: *mut ::DIR) -> ::c_long; - pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - - pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; - - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *mut ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; + pub fn madvise( + addr: *mut ::c_void, + len: ::size_t, + advice: ::c_int, + ) -> ::c_int; + + pub fn msync( + addr: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + ) -> ::c_int; + + pub fn recvfrom( + socket: ::c_int, + buf: *mut ::c_void, + len: ::size_t, + flags: ::c_int, + addr: *mut ::sockaddr, + addrlen: *mut ::socklen_t, + ) -> ::ssize_t; pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; - pub fn bind(socket: ::c_int, address: *const ::sockaddr, - address_len: ::socklen_t) -> ::c_int; - - pub fn writev(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - pub fn readv(fd: ::c_int, - iov: *const ::iovec, - iovcnt: ::c_int) -> ::ssize_t; - - pub fn sendmsg(fd: ::c_int, - msg: *const ::msghdr, - flags: ::c_int) -> ::ssize_t; - pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) - -> ::ssize_t; + pub fn bind( + socket: ::c_int, + address: *const ::sockaddr, + address_len: ::socklen_t, + ) -> ::c_int; + + pub fn writev( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + pub fn readv( + fd: ::c_int, + iov: *const ::iovec, + iovcnt: ::c_int, + ) -> ::ssize_t; + + pub fn sendmsg( + fd: ::c_int, + msg: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + pub fn recvmsg( + fd: ::c_int, + msg: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")] - pub fn getgrgid_r(gid: ::gid_t, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "sigaltstack$UNIX2003")] + pub fn getgrgid_r( + gid: ::gid_t, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigaltstack$UNIX2003" + )] #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")] - pub fn sigaltstack(ss: *const stack_t, - oss: *mut stack_t) -> ::c_int; + pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int; pub fn sem_close(sem: *mut sem_t) -> ::c_int; pub fn getdtablesize() -> ::c_int; #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")] - pub fn getgrnam_r(name: *const ::c_char, - grp: *mut ::group, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut ::group) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "pthread_sigmask$UNIX2003")] - pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, - oldset: *mut sigset_t) -> ::c_int; + pub fn getgrnam_r( + name: *const ::c_char, + grp: *mut ::group, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut ::group, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "pthread_sigmask$UNIX2003" + )] + pub fn pthread_sigmask( + how: ::c_int, + set: *const sigset_t, + oldset: *mut sigset_t, + ) -> ::c_int; pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t; pub fn getgrnam(name: *const ::c_char) -> *mut ::group; pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int; @@ -1960,35 +2201,45 @@ extern { pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; + pub fn getpwnam_r( + name: *const ::c_char, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")] #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, - buflen: ::size_t, - result: *mut *mut passwd) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] + pub fn getpwuid_r( + uid: ::uid_t, + pwd: *mut passwd, + buf: *mut ::c_char, + buflen: ::size_t, + result: *mut *mut passwd, + ) -> ::c_int; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "sigwait$UNIX2003" + )] #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - pub fn pthread_atfork(prepare: ::Option, - parent: ::Option, - child: ::Option) -> ::c_int; - pub fn pthread_create(native: *mut ::pthread_t, - attr: *const ::pthread_attr_t, - f: extern fn(*mut ::c_void) -> *mut ::c_void, - value: *mut ::c_void) -> ::c_int; + pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int; + pub fn pthread_atfork( + prepare: ::Option, + parent: ::Option, + child: ::Option, + ) -> ::c_int; + pub fn pthread_create( + native: *mut ::pthread_t, + attr: *const ::pthread_attr_t, + f: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + value: *mut ::c_void, + ) -> ::c_int; pub fn getgrgid(gid: ::gid_t) -> *mut ::group; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "popen$UNIX2003")] - pub fn popen(command: *const c_char, - mode: *const c_char) -> *mut ::FILE; + #[cfg_attr( + all(target_os = "macos", target_arch = "x86"), + link_name = "popen$UNIX2003" + )] + pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE; pub fn uname(buf: *mut ::utsname) -> ::c_int; } diff --git a/src/unix/uclibc/x86_64/align.rs b/src/unix/uclibc/x86_64/align.rs index 8d4bbd59b093d..583a278d66a0e 100644 --- a/src/unix/uclibc/x86_64/align.rs +++ b/src/unix/uclibc/x86_64/align.rs @@ -73,5 +73,5 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T], } } - } + }; } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index dd6e6f1cb5733..f96afc790448d 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -950,7 +950,7 @@ impl ::Clone for fpos_t { } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -1030,7 +1030,7 @@ extern { pub fn abort() -> !; pub fn exit(status: c_int) -> !; // pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; @@ -1089,7 +1089,7 @@ extern { pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; } -extern { +extern "C" { pub fn getpwnam(name: *const ::c_char) -> *mut passwd; pub fn getpwuid(uid: ::uid_t) -> *mut passwd; @@ -1352,7 +1352,7 @@ extern { pub fn _rtld_dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; } -extern { +extern "C" { // this is gonna be a big one // stdlib.h @@ -1432,7 +1432,7 @@ extern { pub fn pthread_create( pThread: *mut ::pthread_t, pAttr: *const ::pthread_attr_t, - start_routine: extern fn(*mut ::c_void) -> *mut ::c_void, + start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, value: *mut ::c_void, ) -> ::c_int; @@ -1444,9 +1444,9 @@ extern { // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; // stat.h pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -1575,7 +1575,7 @@ extern { // pthread.h pub fn pthread_key_create( key: *mut ::pthread_key_t, - dtor: ::Option, + dtor: ::Option, ) -> ::c_int; // pthread.h diff --git a/src/wasi.rs b/src/wasi.rs index c5f8c5eea05e1..2e0914dcadcb1 100644 --- a/src/wasi.rs +++ b/src/wasi.rs @@ -297,7 +297,7 @@ pub const EWOULDBLOCK: c_int = EAGAIN; feature = "rustc-dep-of-std", link(name = "c", cfg(not(target_feature = "crt-static"))) )] -extern { +extern "C" { pub fn _Exit(code: c_int) -> !; pub fn _exit(code: c_int) -> !; pub fn abort() -> !; @@ -358,8 +358,8 @@ extern { pub fn puts(a: *const c_char) -> c_int; pub fn perror(a: *const c_char); pub fn srand(a: c_uint); - pub fn atexit(a: extern fn()) -> c_int; - pub fn at_quick_exit(a: extern fn()) -> c_int; + pub fn atexit(a: extern "C" fn()) -> c_int; + pub fn at_quick_exit(a: extern "C" fn()) -> c_int; pub fn quick_exit(a: c_int) -> !; pub fn posix_memalign(a: *mut *mut c_void, b: size_t, c: size_t) -> c_int; pub fn rand_r(a: *mut c_uint) -> c_int; diff --git a/src/windows/gnu.rs b/src/windows/gnu.rs index 45e7ddaea4155..d6736d87c2ba4 100644 --- a/src/windows/gnu.rs +++ b/src/windows/gnu.rs @@ -6,8 +6,11 @@ pub const STDIN_FILENO: ::c_int = 0; pub const STDOUT_FILENO: ::c_int = 1; pub const STDERR_FILENO: ::c_int = 2; -extern { +extern "C" { pub fn strcasecmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; - pub fn strncasecmp(s1: *const ::c_char, s2: *const ::c_char, - n: ::size_t) -> ::c_int; + pub fn strncasecmp( + s1: *const ::c_char, + s2: *const ::c_char, + n: ::size_t, + ) -> ::c_int; } diff --git a/src/windows/mod.rs b/src/windows/mod.rs index be28b70f5664f..819b82c404c46 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -42,7 +42,9 @@ pub type ino_t = u16; pub enum timezone {} impl ::Copy for timezone {} impl ::Clone for timezone { - fn clone(&self) -> timezone { *self } + fn clone(&self) -> timezone { + *self + } } pub type time64_t = i64; @@ -195,22 +197,26 @@ pub const SIG_ERR: ::c_int = -1; #[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if " #[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] #[link(name = "libcmt", cfg(target_feature = "crt-static"))] -extern {} +extern "C" {} #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} impl ::Copy for FILE {} impl ::Clone for FILE { - fn clone(&self) -> FILE { *self } + fn clone(&self) -> FILE { + *self + } } #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum fpos_t {} // TODO: fill this out with a struct impl ::Copy for fpos_t {} impl ::Clone for fpos_t { - fn clone(&self) -> fpos_t { *self } + fn clone(&self) -> fpos_t { + *self + } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -225,28 +231,44 @@ extern { pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; - pub fn freopen(filename: *const c_char, mode: *const c_char, - file: *mut FILE) -> *mut FILE; + pub fn freopen( + filename: *const c_char, + mode: *const c_char, + file: *mut FILE, + ) -> *mut FILE; pub fn fflush(file: *mut FILE) -> c_int; pub fn fclose(file: *mut FILE) -> c_int; pub fn remove(filename: *const c_char) -> c_int; pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; pub fn tmpfile() -> *mut FILE; - pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, - size: size_t) -> c_int; + pub fn setvbuf( + stream: *mut FILE, + buffer: *mut c_char, + mode: c_int, + size: size_t, + ) -> c_int; pub fn setbuf(stream: *mut FILE, buf: *mut c_char); pub fn getchar() -> c_int; pub fn putchar(c: c_int) -> c_int; pub fn fgetc(stream: *mut FILE) -> c_int; - pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; + pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) + -> *mut c_char; pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; pub fn puts(s: *const c_char) -> c_int; pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; - pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; - pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, - stream: *mut FILE) -> size_t; + pub fn fread( + ptr: *mut c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; + pub fn fwrite( + ptr: *const c_void, + size: size_t, + nobj: size_t, + stream: *mut FILE, + ) -> size_t; pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; pub fn ftell(stream: *mut FILE) -> c_long; pub fn rewind(stream: *mut FILE); @@ -257,10 +279,16 @@ extern { pub fn perror(s: *const c_char); pub fn atoi(s: *const c_char) -> c_int; pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; - pub fn strtol(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_long; - pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, - base: c_int) -> c_ulong; + pub fn strtol( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_long; + pub fn strtoul( + s: *const c_char, + endp: *mut *mut c_char, + base: c_int, + ) -> c_ulong; pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; pub fn malloc(size: size_t) -> *mut c_void; pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; @@ -268,16 +296,22 @@ extern { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; - pub fn strncpy(dst: *mut c_char, src: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncpy( + dst: *mut c_char, + src: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; - pub fn strncat(s: *mut c_char, ct: *const c_char, - n: size_t) -> *mut c_char; + pub fn strncat( + s: *mut c_char, + ct: *const c_char, + n: size_t, + ) -> *mut c_char; pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; @@ -294,15 +328,24 @@ extern { pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; pub fn wcslen(buf: *const wchar_t) -> size_t; - pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, - n: size_t) -> ::size_t; + pub fn wcstombs( + dest: *mut c_char, + src: *const wchar_t, + n: size_t, + ) -> ::size_t; pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; - pub fn memcpy(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; - pub fn memmove(dest: *mut c_void, src: *const c_void, - n: size_t) -> *mut c_void; + pub fn memcpy( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; + pub fn memmove( + dest: *mut c_void, + src: *const c_void, + n: size_t, + ) -> *mut c_void; pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; pub fn abs(i: c_int) -> c_int; @@ -355,15 +398,24 @@ extern { #[link_name = "_dup2"] pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; #[link_name = "_execv"] - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; + pub fn execv( + prog: *const c_char, + argv: *const *const c_char, + ) -> ::intptr_t; #[link_name = "_execve"] - pub fn execve(prog: *const c_char, argv: *const *const c_char, - envp: *const *const c_char) -> ::c_int; + pub fn execve( + prog: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; #[link_name = "_execvp"] pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; #[link_name = "_execvpe"] - pub fn execvpe(c: *const c_char, argv: *const *const c_char, - envp: *const *const c_char) -> ::c_int; + pub fn execvpe( + c: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + ) -> ::c_int; #[link_name = "_getcwd"] pub fn getcwd(buf: *mut c_char, size: ::c_int) -> *mut c_char; #[link_name = "_getpid"] @@ -373,9 +425,11 @@ extern { #[link_name = "_lseek"] pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; #[link_name = "_pipe"] - pub fn pipe(fds: *mut ::c_int, - psize: ::c_uint, - textmode: ::c_int) -> ::c_int; + pub fn pipe( + fds: *mut ::c_int, + psize: ::c_uint, + textmode: ::c_int, + ) -> ::c_int; #[link_name = "_read"] pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::c_uint) -> ::c_int; #[link_name = "_rmdir"] @@ -383,7 +437,11 @@ extern { #[link_name = "_unlink"] pub fn unlink(c: *const c_char) -> ::c_int; #[link_name = "_write"] - pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::c_uint) -> ::c_int; + pub fn write( + fd: ::c_int, + buf: *const ::c_void, + count: ::c_uint, + ) -> ::c_int; #[link_name = "_commit"] pub fn commit(fd: ::c_int) -> ::c_int; #[link_name = "_get_osfhandle"] @@ -392,36 +450,74 @@ extern { pub fn open_osfhandle(osfhandle: ::intptr_t, flags: ::c_int) -> ::c_int; pub fn setlocale(category: ::c_int, locale: *const c_char) -> *mut c_char; #[link_name = "_wsetlocale"] - pub fn wsetlocale(category: ::c_int, - locale: *const wchar_t) -> *mut wchar_t; + pub fn wsetlocale( + category: ::c_int, + locale: *const wchar_t, + ) -> *mut wchar_t; } extern "system" { pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int; - pub fn accept(s: SOCKET, addr: *mut ::sockaddr, - addrlen: *mut ::c_int) -> SOCKET; - pub fn bind(s: SOCKET, name: *const ::sockaddr, - namelen: ::c_int) -> ::c_int; - pub fn connect(s: SOCKET, name: *const ::sockaddr, - namelen: ::c_int) -> ::c_int; - pub fn getpeername(s: SOCKET, name: *mut ::sockaddr, - nameln: *mut ::c_int) -> ::c_int; - pub fn getsockname(s: SOCKET, name: *mut ::sockaddr, - nameln: *mut ::c_int) -> ::c_int; - pub fn getsockopt(s: SOCKET, level: ::c_int, optname: ::c_int, - optval: *mut ::c_char, - optlen: *mut ::c_int) -> ::c_int; - pub fn recvfrom(s: SOCKET, buf: *mut ::c_char, len: ::c_int, - flags: ::c_int, from: *mut ::sockaddr, - fromlen: *mut ::c_int) -> ::c_int; - pub fn sendto(s: SOCKET, buf: *const ::c_char, len: ::c_int, - flags: ::c_int, to: *const ::sockaddr, - tolen: ::c_int) -> ::c_int; - pub fn setsockopt(s: SOCKET, level: ::c_int, optname: ::c_int, - optval: *const ::c_char, - optlen: ::c_int) -> ::c_int; - pub fn socket(af: ::c_int, socket_type: ::c_int, - protocol: ::c_int) -> SOCKET; + pub fn accept( + s: SOCKET, + addr: *mut ::sockaddr, + addrlen: *mut ::c_int, + ) -> SOCKET; + pub fn bind( + s: SOCKET, + name: *const ::sockaddr, + namelen: ::c_int, + ) -> ::c_int; + pub fn connect( + s: SOCKET, + name: *const ::sockaddr, + namelen: ::c_int, + ) -> ::c_int; + pub fn getpeername( + s: SOCKET, + name: *mut ::sockaddr, + nameln: *mut ::c_int, + ) -> ::c_int; + pub fn getsockname( + s: SOCKET, + name: *mut ::sockaddr, + nameln: *mut ::c_int, + ) -> ::c_int; + pub fn getsockopt( + s: SOCKET, + level: ::c_int, + optname: ::c_int, + optval: *mut ::c_char, + optlen: *mut ::c_int, + ) -> ::c_int; + pub fn recvfrom( + s: SOCKET, + buf: *mut ::c_char, + len: ::c_int, + flags: ::c_int, + from: *mut ::sockaddr, + fromlen: *mut ::c_int, + ) -> ::c_int; + pub fn sendto( + s: SOCKET, + buf: *const ::c_char, + len: ::c_int, + flags: ::c_int, + to: *const ::sockaddr, + tolen: ::c_int, + ) -> ::c_int; + pub fn setsockopt( + s: SOCKET, + level: ::c_int, + optname: ::c_int, + optval: *const ::c_char, + optlen: ::c_int, + ) -> ::c_int; + pub fn socket( + af: ::c_int, + socket_type: ::c_int, + protocol: ::c_int, + ) -> SOCKET; } cfg_if! { diff --git a/src/windows/msvc.rs b/src/windows/msvc.rs index 1ebfcadd16444..27333ae2ecd99 100644 --- a/src/windows/msvc.rs +++ b/src/windows/msvc.rs @@ -1,10 +1,13 @@ pub const L_tmpnam: ::c_uint = 260; pub const TMP_MAX: ::c_uint = 0x7fff_ffff; -extern { +extern "C" { #[link_name = "_stricmp"] pub fn stricmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; #[link_name = "_strnicmp"] - pub fn strnicmp(s1: *const ::c_char, s2: *const ::c_char, - n: ::size_t) -> ::c_int; + pub fn strnicmp( + s1: *const ::c_char, + s2: *const ::c_char, + n: ::size_t, + ) -> ::c_int; } From 005e64b663f2105d59392eef55ce1b4f5e7eb22c Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 12 Sep 2019 15:45:43 +0200 Subject: [PATCH 179/296] Do not require using extern instead of extern C --- ci/style.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ci/style.rs b/ci/style.rs index 70fc0a0814377..dcb3536ec30ba 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -17,7 +17,6 @@ //! * No trailing whitespace //! * No tabs //! * 80-character lines -//! * `extern` instead of `extern "C"` //! * Specific module layout: //! 1. use directives //! 2. typedefs @@ -126,9 +125,6 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { if line.len() > 80 { err.error(path, i, "line longer than 80 chars"); } - if line.contains("extern \"C\"") { - err.error(path, i, "use `extern` instead of `extern \"C\""); - } if line.contains("#[cfg(") && !line.contains(" if ") && !(line.contains("target_endian") || line.contains("target_arch")) From 9258ea17ec5b2b8cdeb490268eee5a2893e69305 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 12 Sep 2019 23:49:55 +0200 Subject: [PATCH 180/296] Fix line length --- src/unix/solarish/mod.rs | 9 +++++---- src/unix/uclibc/mod.rs | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 88cc45895028a..202e03691c134 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1319,14 +1319,15 @@ pub const IFF_NOARP: ::c_int = 0x0000000080; // No address res. protocol pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board -pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast - // Multicast using broadcst. add. +// Supports multicast Multicast using broadcst. add. +pub const IFF_MULTICAST: ::c_int = 0x0000000800; pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise -pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts - // No address - just on-link subnet +// Do not transmit pkts +// No address - just on-link subnet +pub const IFF_NOXMIT: ::c_int = 0x0000010000; pub const IFF_NOLOCAL: ::c_int = 0x0000020000; pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index 7db97395061fb..f4d499b2bb5d4 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -749,7 +749,7 @@ pub const IFF_SLAVE: ::c_int = 0x800; // Slave of a load balancer. pub const IFF_MULTICAST: ::c_int = 0x1000; // Supports multicast. pub const IFF_PORTSEL: ::c_int = 0x2000; // Can set media type. pub const IFF_AUTOMEDIA: ::c_int = 0x4000; // Auto media select active. - // Dialup device with changing addresses. +// Dialup device with changing addresses. pub const IFF_DYNAMIC: ::c_int = 0x8000; pub const SOL_IP: ::c_int = 0; From 423300242ab527c72d7316602e03712eec4a9621 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 13 Sep 2019 00:00:04 +0200 Subject: [PATCH 181/296] Fix formatting --- src/unix/solarish/mod.rs | 9 +++++---- src/unix/uclibc/mod.rs | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 202e03691c134..353f1c6aa1412 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1319,15 +1319,16 @@ pub const IFF_NOARP: ::c_int = 0x0000000080; // No address res. protocol pub const IFF_PROMISC: ::c_int = 0x0000000100; // Receive all packets pub const IFF_ALLMULTI: ::c_int = 0x0000000200; // Receive all multicast pkts pub const IFF_INTELLIGENT: ::c_int = 0x0000000400; // Protocol code on board -// Supports multicast Multicast using broadcst. add. -pub const IFF_MULTICAST: ::c_int = 0x0000000800; +pub const IFF_MULTICAST: ::c_int = 0x0000000800; // Supports multicast + +// Multicast using broadcst. add. pub const IFF_MULTI_BCAST: ::c_int = 0x0000001000; pub const IFF_UNNUMBERED: ::c_int = 0x0000002000; // Non-unique address pub const IFF_DHCPRUNNING: ::c_int = 0x0000004000; // DHCP controls interface pub const IFF_PRIVATE: ::c_int = 0x0000008000; // Do not advertise -// Do not transmit pkts +pub const IFF_NOXMIT: ::c_int = 0x0000010000; // Do not transmit pkts + // No address - just on-link subnet -pub const IFF_NOXMIT: ::c_int = 0x0000010000; pub const IFF_NOLOCAL: ::c_int = 0x0000020000; pub const IFF_DEPRECATED: ::c_int = 0x0000040000; // Address is deprecated pub const IFF_ADDRCONF: ::c_int = 0x0000080000; // Addr. from stateless addrconf diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index f4d499b2bb5d4..bf4d9772de588 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -742,13 +742,15 @@ pub const IFF_NOTRAILERS: ::c_int = 0x20; // Avoid use of trailers. pub const IFF_RUNNING: ::c_int = 0x40; // Resources allocated. pub const IFF_NOARP: ::c_int = 0x80; // No address resolution protocol. pub const IFF_PROMISC: ::c_int = 0x100; // Receive all packets. - // Not supported + +// Not supported pub const IFF_ALLMULTI: ::c_int = 0x200; // Receive all multicast packets. pub const IFF_MASTER: ::c_int = 0x400; // Master of a load balancer. pub const IFF_SLAVE: ::c_int = 0x800; // Slave of a load balancer. pub const IFF_MULTICAST: ::c_int = 0x1000; // Supports multicast. pub const IFF_PORTSEL: ::c_int = 0x2000; // Can set media type. pub const IFF_AUTOMEDIA: ::c_int = 0x4000; // Auto media select active. + // Dialup device with changing addresses. pub const IFF_DYNAMIC: ::c_int = 0x8000; From e9a2eb5630a4de8a9c0d176771e1ae730c61986b Mon Sep 17 00:00:00 2001 From: Salim Nasser Date: Wed, 28 Aug 2019 17:43:14 -0700 Subject: [PATCH 182/296] libc VxWorks cleanups and additions --- src/vxworks/mod.rs | 131 +++++++++++++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 47 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index f96afc790448d..6698a9ce7196c 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,3 +1,4 @@ +// Copyright (c) 2019 Wind River Systems, Inc. //! Interface to VxWorks C library use core::mem::size_of; @@ -12,6 +13,9 @@ impl ::Clone for DIR { } } +// Throughout we use usize / isize for types that are +// (unsigned) int in ILP32 and (unsigned) long in ILP64 + pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -80,9 +84,9 @@ pub type off64_t = ::c_longlong; pub type off_t64 = ::c_longlong; // From b_BOOL.h -pub type BOOL = ::c_int; // excuse me what +pub type BOOL = ::c_int; -//Straight from vxWind.h .. +// From vxWind.h .. pub type _Vx_OBJ_HANDLE = ::c_int; pub type _Vx_TASK_ID = ::_Vx_OBJ_HANDLE; pub type _Vx_MSG_Q_ID = ::_Vx_OBJ_HANDLE; @@ -100,8 +104,8 @@ pub type SD_ID = ::OBJ_HANDLE; pub type CONDVAR_ID = ::OBJ_HANDLE; // From vxTypes.h -pub type _Vx_usr_arg_t = ::ssize_t; // c_int for LP32 -pub type _Vx_exit_code_t = ::ssize_t; // c_int for LP32 +pub type _Vx_usr_arg_t = ::isize; +pub type _Vx_exit_code_t = ::isize; pub type _Vx_ticks_t = ::c_uint; pub type _Vx_ticks64_t = ::c_ulonglong; @@ -112,25 +116,7 @@ pub type sa_family_t = ::c_uchar; // structs that only exist in userspace s! { - // b_struct_vx_eventsResourceCb.h - pub struct _Vx_EVENTS_RSRC { - pub registered : ::c_uint, - pub taskId : ::c_int, - pub options : ::c_uchar, - pub pad : [::c_uchar; 3], - } - - // b_struct_vx_semaphore.h - pub struct _Vx_semaphore { - pub magic : ::c_uint, - pub semType: ::c_uint, - pub options: ::c_uint, - pub recurse: ::c_uint, - pub owned_k: ::c_uint, // owned_k is volatile - pub semId_k: ::_Vx_SEM_ID_KERNEL, - pub state : ::c_uint, //state is union of _Vx_UINT and _Vx_UINT - pub events : ::_Vx_EVENTS_RSRC, - } + pub struct _Vx_semaphore {} // b_pthread_condattr_t.h pub struct pthread_condattr_t { @@ -173,6 +159,11 @@ s! { } // socket.h + pub struct linger { + pub l_onoff: ::c_int, + pub l_linger: ::c_int, + } + pub struct sockaddr { pub sa_len : ::c_uchar, pub sa_family : sa_family_t, @@ -361,6 +352,19 @@ s! { pub tv_nsec: ::c_long, } + // time.h + pub struct tm { + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, + } + // in.h pub struct in_addr { pub s_addr: in_addr_t, @@ -476,7 +480,7 @@ pub const EAI_SYSTEM: ::c_int = 11; pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -//Clock Lib Stuff +// Clock Lib Stuff pub const CLOCK_REALTIME: ::c_int = 0x0; pub const CLOCK_MONOTONIC: ::c_int = 0x1; pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; @@ -508,7 +512,7 @@ pub const EEXIST: ::c_int = 17; pub const ENODEV: ::c_int = 19; pub const EINVAL: ::c_int = 22; pub const EPIPE: ::c_int = 32; -pub const ERANGE: ::c_int = 34; +pub const ERANGE: ::c_int = 38; // ERRNO STUFF pub const EPERM: ::c_int = 1; /* Not owner */ @@ -647,16 +651,25 @@ pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = M_nfsStat | nfsstat::NFSERR_JUKEBOX as ::c_int; -// IP Stuff? These are allll guesswork +// in.h pub const IPPROTO_IP: ::c_int = 0; -pub const IP_TTL: ::c_int = 4; // not sure if this is right -pub const IP_ADD_MEMBERSHIP: ::c_int = 11; -pub const IP_DROP_MEMBERSHIP: ::c_int = 12; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IP_MULTICAST_TTL: ::c_int = 33; -pub const IP_MULTICAST_LOOP: ::c_int = 34; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPPROTO_IPV6: ::c_int = 41; // or this one, for that matter +pub const IPPROTO_IPV6: ::c_int = 41; + +pub const IP_TTL: ::c_int = 4; +pub const IP_MULTICAST_IF: ::c_int = 9; +pub const IP_MULTICAST_TTL: ::c_int = 10; +pub const IP_MULTICAST_LOOP: ::c_int = 11; +pub const IP_ADD_MEMBERSHIP: ::c_int = 12; +pub const IP_DROP_MEMBERSHIP: ::c_int = 13; + +// in6.h +pub const IPV6_V6ONLY: ::c_int = 1; +pub const IPV6_UNICAST_HOPS: ::c_int = 4; +pub const IPV6_MULTICAST_IF: ::c_int = 9; +pub const IPV6_MULTICAST_HOPS: ::c_int = 10; +pub const IPV6_MULTICAST_LOOP: ::c_int = 11; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; // STAT Stuff pub const S_IFMT: ::c_int = 0xf000; @@ -685,21 +698,39 @@ pub const S_IWOTH: ::c_int = 0x0002; pub const S_IXOTH: ::c_int = 0x0001; pub const S_IRWXO: ::c_int = 0x0007; +// socket.h pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_BROADCAST: ::c_int = 0x001e; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_RCVTIMEO: ::c_int = 0x1006; + +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_RCVLOWAT: ::c_int = 0x0012; +pub const SO_SNDLOWAT: ::c_int = 0x0013; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_ACCEPTCONN: ::c_int = 0x001e; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_REUSEPORT: ::c_int = 0x0200; + +pub const SO_VLAN: ::c_int = 0x8000; + +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_BINDTODEVICE: ::c_int = 0x1010; +pub const SO_OOBINLINE: ::c_int = 0x1011; +pub const SO_CONNTIMEO: ::c_int = 0x100a; + pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; pub const SOCK_RAW: ::c_int = 3; pub const SOCK_RDM: ::c_int = 4; pub const SOCK_SEQPACKET: ::c_int = 5; pub const SOCK_PACKET: ::c_int = 10; -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_RCVLOWAT: ::c_int = 0x0012; pub const _SS_MAXSIZE: usize = 128; pub const _SS_ALIGNSIZE: usize = size_of::(); @@ -753,7 +784,6 @@ pub const TCP_NOPUSH: ::c_int = 3; pub const TCP_KEEPIDLE: ::c_int = 4; pub const TCP_KEEPINTVL: ::c_int = 5; pub const TCP_KEEPCNT: ::c_int = 6; -pub const SO_ERROR: ::c_int = 4; // IO Lib Definitions: @@ -772,7 +802,7 @@ pub const FIOWRITE: ::c_int = 12; pub const FIODISKCHANGE: ::c_int = 13; pub const FIOCANCEL: ::c_int = 14; pub const FIOSQUEEZE: ::c_int = 15; -pub const FIONBIO: ::c_int = -1878786032; // it goes on ... +pub const FIONBIO: ::c_int = 16; pub const _POSIX_PATH_MAX: ::c_int = 256; // Some poll stuff @@ -814,8 +844,6 @@ pub const DT_WHT: ::c_uchar = 0xE; // Other Random Stuff pub const VXSIM_EWOULDBLOCK: ::c_int = 70; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; pub const SIG_DFL: sighandler_t = 0 as sighandler_t; pub const SIG_IGN: sighandler_t = 1 as sighandler_t; @@ -1288,6 +1316,15 @@ extern "C" { ) -> *mut ::c_void; pub fn dlclose(handle: *mut ::c_void) -> ::c_int; pub fn res_init() -> ::c_int; + + // time.h + pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; + pub fn mktime(tm: *mut tm) -> time_t; + pub fn time(time: *mut time_t) -> time_t; + pub fn gmtime(time_p: *const time_t) -> *mut tm; + pub fn localtime(time_p: *const time_t) -> *mut tm; + pub fn timegm(tm: *mut tm) -> time_t; pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; pub fn mknod( @@ -1894,7 +1931,7 @@ extern "C" { pub fn closedir(ptr: *mut ::DIR) -> ::c_int; pub fn pwrite64( - fd: ::c_int, // if you want to use fd, you gotta fix these + fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off64_t, From d737592426e98e19e71e3b37133ff6d6024fd303 Mon Sep 17 00:00:00 2001 From: Salim Nasser Date: Thu, 29 Aug 2019 22:01:18 -0700 Subject: [PATCH 183/296] Fixed usage of isize --- src/vxworks/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 6698a9ce7196c..0423c2c474e6e 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -104,8 +104,8 @@ pub type SD_ID = ::OBJ_HANDLE; pub type CONDVAR_ID = ::OBJ_HANDLE; // From vxTypes.h -pub type _Vx_usr_arg_t = ::isize; -pub type _Vx_exit_code_t = ::isize; +pub type _Vx_usr_arg_t = isize; +pub type _Vx_exit_code_t = isize; pub type _Vx_ticks_t = ::c_uint; pub type _Vx_ticks64_t = ::c_ulonglong; From 6f7f9e313d3540b88096f2aef9a31ec4b176a1c3 Mon Sep 17 00:00:00 2001 From: Salim Nasser Date: Fri, 30 Aug 2019 17:50:54 -0700 Subject: [PATCH 184/296] VxWorks socket and epoll definitions needed by mio and related crates --- src/vxworks/mod.rs | 74 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 0423c2c474e6e..3cb7f62add2a8 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -187,6 +187,22 @@ s! { pub iov_len: ::size_t, } + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + // poll.h pub struct pollfd { pub fd : ::c_int, @@ -438,6 +454,13 @@ s! { pub pw_shell: *mut ::c_char, } + // epoll.h + + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + // rtpLibCommon.h pub struct RTP_DESC { pub status : ::c_int, @@ -805,6 +828,21 @@ pub const FIOSQUEEZE: ::c_int = 15; pub const FIONBIO: ::c_int = 16; pub const _POSIX_PATH_MAX: ::c_int = 256; +// epoll.h +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLONESHOT: ::c_int = 1 << 30; +pub const EPOLLET: ::c_int = 1 << 31; + + +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_DEL: ::c_int = 2; +pub const EPOLL_CTL_MOD: ::c_int = 3; + // Some poll stuff pub const POLLIN: ::c_short = 0x0001; pub const POLLPRI: ::c_short = 0x0002; @@ -1743,6 +1781,12 @@ extern "C" { pFromLen: *mut ::socklen_t, ) -> ::ssize_t; + pub fn recvmsg( + socket: ::c_int, + mp: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + // socket.h pub fn send( socket: ::c_int, @@ -1751,6 +1795,12 @@ extern "C" { flags: ::c_int, ) -> ::ssize_t; + pub fn sendmsg( + socket: ::c_int, + mp: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + // socket.h pub fn sendto( socket: ::c_int, @@ -2054,6 +2104,30 @@ extern "C" { iovcnt: ::c_int, ) -> ::ssize_t; + // epoll.h + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event + ) -> ::c_int; + + pub fn epoll_create_and_ctl( + num: ::c_int, + fds: *mut ::c_int, + event: *mut ::epoll_event + ) -> ::c_int; + + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int + ) -> ::c_int; + // randomNumGen.h pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int; From cc6ff3212bc69a2590f3d94e8430cacc5ebe3fb3 Mon Sep 17 00:00:00 2001 From: Salim Nasser Date: Fri, 30 Aug 2019 23:06:07 -0700 Subject: [PATCH 185/296] epoll only supported in VxWorks kernel; just provide stub definitions for user mode for now --- src/vxworks/mod.rs | 368 +++++++++++++++++++++------------------------ 1 file changed, 171 insertions(+), 197 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 3cb7f62add2a8..6e6bb3d0e0725 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1,4 +1,3 @@ -// Copyright (c) 2019 Wind River Systems, Inc. //! Interface to VxWorks C library use core::mem::size_of; @@ -37,25 +36,23 @@ pub type ssize_t = isize; pub type pid_t = i32; pub type in_addr_t = u32; -pub type in_port_t = u16; pub type sighandler_t = ::size_t; -pub type cc_t = ::c_uchar; +pub type cpuset_t = u32; pub type blkcnt_t = ::c_long; pub type blksize_t = ::c_long; pub type ino_t = ::c_ulong; -pub type ino32_t = u32; pub type off_t = ::c_longlong; -pub type rlim_t = ::c_ulonglong; +pub type rlim_t = ::c_ulong; pub type suseconds_t = ::c_long; pub type time_t = ::c_long; -pub type wchar_t = ::c_int; + pub type errno_t = ::c_int; pub type useconds_t = ::c_ulong; -pub type socklen_t = ::c_int; +pub type socklen_t = ::c_uint; pub type pthread_t = ::c_ulong; @@ -69,19 +66,14 @@ pub type uid_t = ::c_ushort; pub type gid_t = ::c_ushort; pub type sigset_t = ::c_ulonglong; pub type key_t = ::c_long; -pub type shmatt_t = ::c_ulong; - -pub type mqd_t = ::c_int; pub type nfds_t = ::c_uint; -pub type nl_item = ::c_int; pub type stat64 = ::stat; pub type pthread_key_t = ::c_ulong; // From b_off_t.h pub type off64_t = ::c_longlong; -pub type off_t64 = ::c_longlong; // From b_BOOL.h pub type BOOL = ::c_int; @@ -109,9 +101,6 @@ pub type _Vx_exit_code_t = isize; pub type _Vx_ticks_t = ::c_uint; pub type _Vx_ticks64_t = ::c_ulonglong; -// From vxTypesBase.h -pub type va_list = *mut ::c_char; - pub type sa_family_t = ::c_uchar; // structs that only exist in userspace @@ -122,7 +111,7 @@ s! { pub struct pthread_condattr_t { pub condAttrStatus: ::c_int, pub condAttrPshared: ::c_int, - pub _CondAttrClockId: ::clockid_t, + pub condAttrClockId: ::clockid_t, } // b_pthread_cond_t.h @@ -133,23 +122,25 @@ s! { pub condRefCount: ::c_int, pub condMutex: *mut ::pthread_mutex_t, pub condAttr: ::pthread_condattr_t, - pub condSemName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX] + pub condSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] } // b_pthread_rwlockattr_t.h pub struct pthread_rwlockattr_t { pub rwlockAttrStatus: ::c_int, + pub rwlockAttrPshared: ::c_int, pub rwlockAttrMaxReaders: ::c_uint, + pub rwlockAttrConformOpt: ::c_uint, } // b_pthread_rwlock_t.h pub struct pthread_rwlock_t { pub rwlockSemId: :: _Vx_SEM_ID, - pub rwlockReadersRefCount: ::c_int, + pub rwlockReadersRefCount: ::c_uint, pub rwlockValid: ::c_int, pub rwlockInitted: ::c_int, pub rwlockAttr: ::pthread_rwlockattr_t, - pub rwlockName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX] + pub rwlockSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX] } // b_struct_timeval.h @@ -176,11 +167,7 @@ s! { pub ss_family : ::sa_family_t, pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], pub __ss_align : i32, - // pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], - pub __ss_pad2 : [::c_char; 32], - pub __ss_pad3 : [::c_char; 32], - pub __ss_pad4 : [::c_char; 32], - pub __ss_pad5 : [::c_char; _SS_PAD2SIZE - 96], + pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], } pub struct iovec { pub iov_base: *mut ::c_void, @@ -202,7 +189,7 @@ s! { pub cmsg_level: ::c_int, pub cmsg_type: ::c_int, } - + // poll.h pub struct pollfd { pub fd : ::c_int, @@ -213,37 +200,13 @@ s! { // dirent.h pub struct dirent { pub d_ino : ::ino_t, - // pub d_name : [::c_char; (_PARM_NAME_MAX + 1)], - pub d_name : [::c_char; 32], - pub d_name1 : [::c_char; 32], - pub d_name2 : [::c_char; 32], - pub d_name3 : [::c_char; 32], - pub d_name4 : [::c_char; 32], - pub d_name5 : [::c_char; 32], - pub d_name6 : [::c_char; 32], - pub d_name7 : [::c_char; 32], + pub d_name : [::c_char; _PARM_NAME_MAX + 1], } - pub struct dirent64 { - pub d_ino : ::ino_t, - pub d_off : ::off64_t, - pub d_reclen : u16, - pub d_type : u8, - // pub d_name : [::c_char; 256], - pub d_name : [::c_char; 32], - pub d_name1 : [::c_char; 32], - pub d_name2 : [::c_char; 32], - pub d_name3 : [::c_char; 32], - pub d_name4 : [::c_char; 32], - pub d_name5 : [::c_char; 32], - pub d_name6 : [::c_char; 32], - pub d_name7 : [::c_char; 32], - } // Doesn't seem like it exists anymore - // resource.h pub struct rlimit { /* Is this really needed? Questionable ... */ - pub rlim_cur : ::size_t, - pub rlim_max : ::size_t, + pub rlim_cur : ::rlim_t, + pub rlim_max : ::rlim_t, } // stat.h @@ -323,21 +286,11 @@ s! { // This field is a union of int and void * in vxworks // The size has been set to the larger of the two pub si_value : ::size_t, - } - - pub struct ipc_perm { - pub __key : key_t, - pub uid : uid_t, - pub gid : gid_t, - pub cuid : uid_t, - pub cgid : gid_t, - pub mode : ::c_ushort, - pub __seq : ::c_ushort, - } - - pub struct shmid_ds { - pub shm_perm : ipc_perm, - pub shm_segsz : ::c_int, + pub si_errno : ::c_int, + pub si_status: ::c_int, + pub si_addr: *mut ::c_void, + pub si_uid: ::uid_t, + pub si_pid: ::pid_t, } // pthread.h (krnl) @@ -359,7 +312,7 @@ s! { pub mutexCondRefCount: ::c_int, pub mutexSavPriority: ::c_int, pub mutexAttr: ::pthread_mutexattr_t, - pub mutexSemName: [::c_char; PTHREAD_SHARED_SEM_NAME_MAX], + pub mutexSemName: [::c_char; _PTHREAD_SHARED_SEM_NAME_MAX], } // b_struct_timespec.h @@ -370,15 +323,15 @@ s! { // time.h pub struct tm { - pub tm_sec: ::c_int, - pub tm_min: ::c_int, - pub tm_hour: ::c_int, - pub tm_mday: ::c_int, - pub tm_mon: ::c_int, - pub tm_year: ::c_int, - pub tm_wday: ::c_int, - pub tm_yday: ::c_int, - pub tm_isdst: ::c_int, + pub tm_sec: ::c_int, + pub tm_min: ::c_int, + pub tm_hour: ::c_int, + pub tm_mday: ::c_int, + pub tm_mon: ::c_int, + pub tm_year: ::c_int, + pub tm_wday: ::c_int, + pub tm_yday: ::c_int, + pub tm_isdst: ::c_int, } // in.h @@ -393,6 +346,7 @@ s! { } // in6.h + #[repr(align(4))] pub struct in6_addr { pub s6_addr: [u8; 16], } @@ -438,12 +392,9 @@ s! { } pub struct sockaddr_un { + pub sun_len: u8, pub sun_family: sa_family_t, - //pub sun_path: [::c_char; 108] - pub sun_path: [::c_char; 32], - pub sun_path1: [::c_char; 32], - pub sun_path2: [::c_char; 32], - pub sun_path3: [::c_char; 12], + pub sun_path: [::c_char; 104] } pub struct passwd { @@ -455,12 +406,11 @@ s! { } // epoll.h - - pub struct epoll_event { + pub struct epoll_event { pub events: u32, pub u64: u64, } - + // rtpLibCommon.h pub struct RTP_DESC { pub status : ::c_int, @@ -468,16 +418,8 @@ s! { pub entrAddr : *mut ::c_void, pub initTaskId: ::TASK_ID, pub parentId : ::RTP_ID, - //pub pathName : [::c_char; (VX_RTP_NAME_LENGTH + 1)], - pub pathName : [::c_char; 32], - pub pathName1 : [::c_char; 32], - pub pathName2 : [::c_char; 32], - pub pathName3 : [::c_char; 32], - pub pathName4 : [::c_char; 32], - pub pathName5 : [::c_char; 32], - pub pathName6 : [::c_char; 32], - pub pathName7 : [::c_char; 32], - pub taskCnt : u32, + pub pathName : [::c_char; VX_RTP_NAME_LENGTH + 1], + pub taskCnt : ::c_int, pub textStart : *mut ::c_void, pub textEnd : *mut ::c_void, } @@ -503,7 +445,7 @@ pub const EAI_SYSTEM: ::c_int = 11; pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -// Clock Lib Stuff +//Clock Lib Stuff pub const CLOCK_REALTIME: ::c_int = 0x0; pub const CLOCK_MONOTONIC: ::c_int = 0x1; pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; @@ -527,7 +469,7 @@ pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1; pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2; pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; pub const PTHREAD_STACK_MIN: usize = 4096; -pub const PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; +pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; pub const EFAULT: ::c_int = 14; pub const EBUSY: ::c_int = 16; @@ -598,61 +540,61 @@ enum nfsstat { NFSERR_NOSPC = 28, NFSERR_ROFS = 30, NFSERR_MLINK = 31, - NFSERR_NAMETOOLONG = 63, - NFSERR_NOTEMPTY = 66, - NFSERR_DQUOT = 69, - NFSERR_STALE = 70, + NFSERR_NAMETOOLONG = 26, + NFSERR_NOTEMPTY = 15, + NFSERR_DQUOT = 83, + NFSERR_STALE = 88, NFSERR_REMOTE = 71, NFSERR_WFLUSH = 99, NFSERR_BADHANDLE = 10001, NFSERR_NOT_SYNC = 10002, NFSERR_BAD_COOKIE = 10003, - NFSERR_NOTSUPP = 10004, + NFSERR_NOTSUPP = 45, NFSERR_TOOSMALL = 10005, - NFSERR_SERVERFAULT = 10006, +// NFSERR_SERVERFAULT = 10006, NFSERR_BADTYPE = 10007, NFSERR_JUKEBOX = 10008, } -pub const S_nfsLib_NFS_OK: ::c_int = M_nfsStat | nfsstat::NFS_OK as ::c_int; +pub const S_nfsLib_NFS_OK: ::c_int = nfsstat::NFS_OK as ::c_int; pub const S_nfsLib_NFSERR_PERM: ::c_int = - M_nfsStat | nfsstat::NFSERR_PERM as ::c_int; + nfsstat::NFSERR_PERM as ::c_int; pub const S_nfsLib_NFSERR_NOENT: ::c_int = - M_nfsStat | nfsstat::NFSERR_NOENT as ::c_int; + nfsstat::NFSERR_NOENT as ::c_int; pub const S_nfsLib_NFSERR_IO: ::c_int = - M_nfsStat | nfsstat::NFSERR_IO as ::c_int; + nfsstat::NFSERR_IO as ::c_int; pub const S_nfsLib_NFSERR_NXIO: ::c_int = - M_nfsStat | nfsstat::NFSERR_NXIO as ::c_int; + nfsstat::NFSERR_NXIO as ::c_int; pub const S_nfsLib_NFSERR_ACCESS: ::c_int = - M_nfsStat | nfsstat::NFSERR_ACCESS as ::c_int; + nfsstat::NFSERR_ACCESS as ::c_int; pub const S_nfsLib_NFSERR_EXIST: ::c_int = - M_nfsStat | nfsstat::NFSERR_EXIST as ::c_int; + nfsstat::NFSERR_EXIST as ::c_int; pub const S_nfsLib_NFSERR_XDEV: ::c_int = M_nfsStat | nfsstat::NFSERR_XDEV as ::c_int; pub const S_nfsLib_NFSERR_NODEV: ::c_int = M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = - M_nfsStat | nfsstat::NFSERR_NOTDIR as ::c_int; + nfsstat::NFSERR_NOTDIR as ::c_int; pub const S_nfsLib_NFSERR_ISDIR: ::c_int = - M_nfsStat | nfsstat::NFSERR_ISDIR as ::c_int; + nfsstat::NFSERR_ISDIR as ::c_int; pub const S_nfsLib_NFSERR_INVAL: ::c_int = - M_nfsStat | nfsstat::NFSERR_INVAL as ::c_int; + nfsstat::NFSERR_INVAL as ::c_int; pub const S_nfsLib_NFSERR_FBIG: ::c_int = - M_nfsStat | nfsstat::NFSERR_FBIG as ::c_int; + nfsstat::NFSERR_FBIG as ::c_int; pub const S_nfsLib_NFSERR_NOSPC: ::c_int = - M_nfsStat | nfsstat::NFSERR_NOSPC as ::c_int; + nfsstat::NFSERR_NOSPC as ::c_int; pub const S_nfsLib_NFSERR_ROFS: ::c_int = - M_nfsStat | nfsstat::NFSERR_ROFS as ::c_int; + nfsstat::NFSERR_ROFS as ::c_int; pub const S_nfsLib_NFSERR_MLINK: ::c_int = M_nfsStat | nfsstat::NFSERR_MLINK as ::c_int; pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = - M_nfsStat | nfsstat::NFSERR_NAMETOOLONG as ::c_int; + nfsstat::NFSERR_NAMETOOLONG as ::c_int; pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = - M_nfsStat | nfsstat::NFSERR_NOTEMPTY as ::c_int; + nfsstat::NFSERR_NOTEMPTY as ::c_int; pub const S_nfsLib_NFSERR_DQUOT: ::c_int = - M_nfsStat | nfsstat::NFSERR_DQUOT as ::c_int; + nfsstat::NFSERR_DQUOT as ::c_int; pub const S_nfsLib_NFSERR_STALE: ::c_int = - M_nfsStat | nfsstat::NFSERR_STALE as ::c_int; + nfsstat::NFSERR_STALE as ::c_int; pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; pub const S_nfsLib_NFSERR_REMOTE: ::c_int = @@ -664,11 +606,11 @@ pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = - M_nfsStat | nfsstat::NFSERR_NOTSUPP as ::c_int; + nfsstat::NFSERR_NOTSUPP as ::c_int; pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = - M_nfsStat | nfsstat::NFSERR_SERVERFAULT as ::c_int; + nfsstat::NFSERR_IO as ::c_int; pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = @@ -794,7 +736,7 @@ pub const AF_SOCKDEV: ::c_int = 31; pub const AF_TIPC: ::c_int = 33; pub const AF_MIPC: ::c_int = 34; pub const AF_MIPC_SAFE: ::c_int = 35; -pub const AF_MAX: ::c_int = 36; +pub const AF_MAX: ::c_int = 37; pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; @@ -838,7 +780,6 @@ pub const EPOLLRDHUP: ::c_int = 0x2000; pub const EPOLLONESHOT: ::c_int = 1 << 30; pub const EPOLLET: ::c_int = 1 << 31; - pub const EPOLL_CTL_ADD: ::c_int = 1; pub const EPOLL_CTL_DEL: ::c_int = 2; pub const EPOLL_CTL_MOD: ::c_int = 3; @@ -851,7 +792,7 @@ pub const POLLRDNORM: ::c_short = 0x0040; pub const POLLWRNORM: ::c_short = POLLOUT; pub const POLLRDBAND: ::c_short = 0x0080; pub const POLLWRBAND: ::c_short = 0x0100; -pub const POLLER: ::c_short = 0x0008; +pub const POLLERR: ::c_short = 0x0008; pub const POLLHUP: ::c_short = 0x0010; pub const POLLNVAL: ::c_short = 0x0020; @@ -869,23 +810,12 @@ pub const F_SETLK: ::c_int = 8; pub const F_SETLKW: ::c_int = 9; pub const F_DUPFD_CLOEXEC: ::c_int = 14; -//Some Dirent.h stuff -pub const DT_UNKNOWN: ::c_uchar = 0x0; -pub const DT_FIFO: ::c_uchar = 0x1; -pub const DT_CHR: ::c_uchar = 0x2; -pub const DT_DIR: ::c_uchar = 0x4; -pub const DT_BLK: ::c_uchar = 0x6; -pub const DT_REG: ::c_uchar = 0x8; -pub const DT_LNK: ::c_uchar = 0xA; -pub const DT_SOCK: ::c_uchar = 0xC; -pub const DT_WHT: ::c_uchar = 0xE; - // Other Random Stuff pub const VXSIM_EWOULDBLOCK: ::c_int = 70; -pub const SIG_DFL: sighandler_t = 0 as sighandler_t; -pub const SIG_IGN: sighandler_t = 1 as sighandler_t; -pub const SIG_ERR: sighandler_t = !0 as sighandler_t; +pub const SIG_DFL: c_int = 0; +pub const SIG_IGN: c_int = 1; +pub const SIG_ERR: c_int = !0; pub const SIGHUP: ::c_int = 1; pub const SIGINT: ::c_int = 2; @@ -944,15 +874,15 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { mutexValid: PTHREAD_VALID_OBJ, mutexInitted: PTHREAD_UNUSED_YET_OBJ, mutexCondRefCount: 0, - mutexSavPriority: 0, + mutexSavPriority: -1, mutexAttr: PTHREAD_MUTEXATTR_INITIALIZER, - mutexSemName: [0; PTHREAD_SHARED_SEM_NAME_MAX], + mutexSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], }; const PTHREAD_CONDATTR_INITIALIZER: pthread_condattr_t = pthread_condattr_t { - condAttrStatus: 0, - condAttrPshared: 0, - _CondAttrClockId: CLOCK_REALTIME, + condAttrStatus: 0xf70990ef, + condAttrPshared: 1, + condAttrClockId: CLOCK_REALTIME, }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { condSemId: null_mut(), @@ -961,13 +891,15 @@ pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { condRefCount: 0, condMutex: null_mut(), condAttr: PTHREAD_CONDATTR_INITIALIZER, - condSemName: [0; PTHREAD_SHARED_SEM_NAME_MAX], + condSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], }; const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = pthread_rwlockattr_t { rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, + rwlockAttrPshared: 1, rwlockAttrMaxReaders: 0, + rwlockAttrConformOpt:1, }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { rwlockSemId: null_mut(), @@ -975,7 +907,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { rwlockValid: PTHREAD_VALID_OBJ, rwlockInitted: PTHREAD_UNUSED_YET_OBJ, rwlockAttr: PTHREAD_RWLOCKATTR_INITIALIZER, - rwlockName: [0; PTHREAD_SHARED_SEM_NAME_MAX], + rwlockSemName: [0; _PTHREAD_SHARED_SEM_NAME_MAX], }; pub const SEEK_SET: ::c_int = 0; @@ -985,19 +917,19 @@ pub const SEEK_END: ::c_int = 2; // rtpLibCommon.h pub const VX_RTP_NAME_LENGTH: usize = 255; -//Some unsupported stuff -pub const _SC_GETPW_R_SIZE_MAX: ::c_int = -1; // Via unistd.h -pub const _SC_PAGESIZE: ::c_int = 64; +// h/public/unistd.h +pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h +pub const _SC_PAGESIZE: ::c_int = 39; pub const O_ACCMODE: ::c_int = 3; pub const O_CLOEXEC: ::c_int = 0x100000; // fcntlcom pub const O_EXCL: ::c_int = 0x0800; pub const O_CREAT: ::c_int = 0x0200; pub const O_TRUNC: ::c_int = 0x0400; pub const O_APPEND: ::c_int = 0x0008; -pub const O_RDWR: ::c_int = 2; -pub const O_WRONLY: ::c_int = 1; +pub const O_RDWR: ::c_int = 0x0002; +pub const O_WRONLY: ::c_int = 0x0001; pub const O_RDONLY: ::c_int = 0; -pub const O_NONBLOCK: ::c_int = 0x4; +pub const O_NONBLOCK: ::c_int = 0x4000; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum FILE {} @@ -1016,7 +948,49 @@ impl ::Clone for fpos_t { } } -extern "C" { +f! { + pub fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } + + pub fn CMSG_NXTHDR(mhdr: *const msghdr, + cmsg: *const cmsghdr) -> *mut cmsghdr { + let next = cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize) + + CMSG_ALIGN(::mem::size_of::<::cmsghdr>()); + let max = (*mhdr).msg_control as usize + + (*mhdr).msg_controllen as usize; + if next <= max { + (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) + as *mut ::cmsghdr + } else { + 0 as *mut ::cmsghdr + } + } + + pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen as usize > 0 { + (*mhdr).msg_control as *mut cmsghdr + } else { + 0 as *mut cmsghdr + } + } + + pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar { + (cmsg as *mut ::c_uchar) + .offset(CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) + } + + pub fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) + as ::c_uint + } + + pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint { + CMSG_ALIGN(::mem::size_of::()) as ::c_uint + length + } +} + +extern { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -1095,8 +1069,7 @@ extern "C" { pub fn free(p: *mut c_void); pub fn abort() -> !; pub fn exit(status: c_int) -> !; - // pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn atexit(cb: extern fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; @@ -1129,7 +1102,6 @@ extern "C" { n: size_t, ) -> c_int; pub fn strlen(cs: *const c_char) -> size_t; - pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; pub fn strerror(n: c_int) -> *mut c_char; pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; @@ -1155,7 +1127,7 @@ extern "C" { pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; } -extern "C" { +extern { pub fn getpwnam(name: *const ::c_char) -> *mut passwd; pub fn getpwuid(uid: ::uid_t) -> *mut passwd; @@ -1372,7 +1344,7 @@ extern "C" { ) -> ::c_int; pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn chroot(name: *const ::c_char) -> ::c_int; - pub fn usleep(secs: ::c_uint) -> ::c_int; + pub fn usleep(secs: ::useconds_t) -> ::c_int; pub fn putenv(string: *mut c_char) -> ::c_int; pub fn setlocale( category: ::c_int, @@ -1427,11 +1399,8 @@ extern "C" { pub fn _rtld_dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; } -extern "C" { - // this is gonna be a big one - +extern { // stdlib.h - // This function may not be defined for armv7 pub fn memalign(block_size: ::size_t, size_arg: ::size_t) -> *mut ::c_void; @@ -1443,7 +1412,6 @@ extern "C" { // pthread.h pub fn pthread_mutexattr_init( - /* PTHREAD STUFF */ attr: *mut pthread_mutexattr_t, ) -> ::c_int; @@ -1507,7 +1475,7 @@ extern "C" { pub fn pthread_create( pThread: *mut ::pthread_t, pAttr: *const ::pthread_attr_t, - start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, + start_routine: extern fn(*mut ::c_void) -> *mut ::c_void, value: *mut ::c_void, ) -> ::c_int; @@ -1519,9 +1487,9 @@ extern "C" { // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; // stat.h pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -1650,7 +1618,7 @@ extern "C" { // pthread.h pub fn pthread_key_create( key: *mut ::pthread_key_t, - dtor: ::Option, + dtor: ::Option, ) -> ::c_int; // pthread.h @@ -1786,7 +1754,7 @@ extern "C" { mp: *mut ::msghdr, flags: ::c_int, ) -> ::ssize_t; - + // socket.h pub fn send( socket: ::c_int, @@ -1800,7 +1768,7 @@ extern "C" { mp: *const ::msghdr, flags: ::c_int, ) -> ::ssize_t; - + // socket.h pub fn sendto( socket: ::c_int, @@ -2104,30 +2072,6 @@ extern "C" { iovcnt: ::c_int, ) -> ::ssize_t; - // epoll.h - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - - pub fn epoll_ctl( - epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event - ) -> ::c_int; - - pub fn epoll_create_and_ctl( - num: ::c_int, - fds: *mut ::c_int, - event: *mut ::epoll_event - ) -> ::c_int; - - pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int - ) -> ::c_int; - // randomNumGen.h pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int; @@ -2205,6 +2149,39 @@ pub fn posix_memalign( } } +// epoll.h +// Unfortunately epoll is currently only supported in the VxWorks kernel +#[allow(unused_variables)] +pub fn epoll_create(size: ::c_int) -> ::c_int { -1 } +#[allow(unused_variables)] +pub fn epoll_create1(flags: ::c_int) -> ::c_int { -1 } +#[allow(unused_variables)] +pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event + ) -> ::c_int { + -1 +} +#[allow(unused_variables)] +pub fn epoll_create_and_ctl( + num: ::c_int, + fds: *mut ::c_int, + event: *mut ::epoll_event +) -> ::c_int { + -1 +} +#[allow(unused_variables)] +pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int +) -> ::c_int { + -1 +} + // From sysconf.c -> doesn't seem to be supported? pub fn getpwuid_r( _uid: ::uid_t, @@ -2264,9 +2241,6 @@ cfg_if! { } else if #[cfg(any(target_arch = "arm"))] { mod arm; pub use self::arm::*; - } else if #[cfg(any(target_arch = "armv7"))] { - mod armv7; - pub use self::armv7::*; } else if #[cfg(any(target_arch = "x86"))] { mod x86; pub use self::x86::*; From b3dba4237331e7b81aee72378dd5401455492395 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Wed, 11 Sep 2019 20:10:48 -0700 Subject: [PATCH 186/296] fix problems found in testing --- src/vxworks/aarch64.rs | 1 + src/vxworks/arm.rs | 1 + src/vxworks/armv7.rs | 2 -- src/vxworks/powerpc.rs | 1 + src/vxworks/powerpc64.rs | 1 + src/vxworks/x86.rs | 1 + src/vxworks/x86_64.rs | 3 ++- 7 files changed, 7 insertions(+), 3 deletions(-) delete mode 100644 src/vxworks/armv7.rs diff --git a/src/vxworks/aarch64.rs b/src/vxworks/aarch64.rs index 577c8bef16b72..4032488b6c0d5 100644 --- a/src/vxworks/aarch64.rs +++ b/src/vxworks/aarch64.rs @@ -1,3 +1,4 @@ pub type c_char = u8; +pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/vxworks/arm.rs b/src/vxworks/arm.rs index cfdce825a0b86..55240068aa08e 100644 --- a/src/vxworks/arm.rs +++ b/src/vxworks/arm.rs @@ -1,3 +1,4 @@ pub type c_char = u8; +pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/armv7.rs b/src/vxworks/armv7.rs deleted file mode 100644 index 9b0b338b91e5b..0000000000000 --- a/src/vxworks/armv7.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type c_long = i32; -pub type c_ulong = u32; diff --git a/src/vxworks/powerpc.rs b/src/vxworks/powerpc.rs index cfdce825a0b86..55240068aa08e 100644 --- a/src/vxworks/powerpc.rs +++ b/src/vxworks/powerpc.rs @@ -1,3 +1,4 @@ pub type c_char = u8; +pub type wchar_t = u32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/powerpc64.rs b/src/vxworks/powerpc64.rs index 577c8bef16b72..4032488b6c0d5 100644 --- a/src/vxworks/powerpc64.rs +++ b/src/vxworks/powerpc64.rs @@ -1,3 +1,4 @@ pub type c_char = u8; +pub type wchar_t = u32; pub type c_long = i64; pub type c_ulong = u64; diff --git a/src/vxworks/x86.rs b/src/vxworks/x86.rs index 81ba14588b146..e617bb83c6ce3 100644 --- a/src/vxworks/x86.rs +++ b/src/vxworks/x86.rs @@ -1,3 +1,4 @@ pub type c_char = i8; +pub type wchar_t = i32; pub type c_long = i32; pub type c_ulong = u32; diff --git a/src/vxworks/x86_64.rs b/src/vxworks/x86_64.rs index 27b94126688fb..5e95ea2567ddf 100644 --- a/src/vxworks/x86_64.rs +++ b/src/vxworks/x86_64.rs @@ -1,3 +1,4 @@ +pub type c_char = i8; +pub type wchar_t = i32; pub type c_long = i64; pub type c_ulong = u64; -pub type c_char = i8; From f35970f5c74080a82ad9a15c160e3c2dac27cb0a Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Fri, 13 Sep 2019 16:52:27 -0700 Subject: [PATCH 187/296] fix errors reported by rustfmt --- src/vxworks/mod.rs | 134 ++++++++++++++++++++------------------------- 1 file changed, 60 insertions(+), 74 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 6e6bb3d0e0725..f96457a524323 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -551,50 +551,35 @@ enum nfsstat { NFSERR_BAD_COOKIE = 10003, NFSERR_NOTSUPP = 45, NFSERR_TOOSMALL = 10005, -// NFSERR_SERVERFAULT = 10006, NFSERR_BADTYPE = 10007, NFSERR_JUKEBOX = 10008, } pub const S_nfsLib_NFS_OK: ::c_int = nfsstat::NFS_OK as ::c_int; -pub const S_nfsLib_NFSERR_PERM: ::c_int = - nfsstat::NFSERR_PERM as ::c_int; -pub const S_nfsLib_NFSERR_NOENT: ::c_int = - nfsstat::NFSERR_NOENT as ::c_int; -pub const S_nfsLib_NFSERR_IO: ::c_int = - nfsstat::NFSERR_IO as ::c_int; -pub const S_nfsLib_NFSERR_NXIO: ::c_int = - nfsstat::NFSERR_NXIO as ::c_int; -pub const S_nfsLib_NFSERR_ACCESS: ::c_int = - nfsstat::NFSERR_ACCESS as ::c_int; -pub const S_nfsLib_NFSERR_EXIST: ::c_int = - nfsstat::NFSERR_EXIST as ::c_int; +pub const S_nfsLib_NFSERR_PERM: ::c_int = nfsstat::NFSERR_PERM as ::c_int; +pub const S_nfsLib_NFSERR_NOENT: ::c_int = nfsstat::NFSERR_NOENT as ::c_int; +pub const S_nfsLib_NFSERR_IO: ::c_int = nfsstat::NFSERR_IO as ::c_int; +pub const S_nfsLib_NFSERR_NXIO: ::c_int = nfsstat::NFSERR_NXIO as ::c_int; +pub const S_nfsLib_NFSERR_ACCESS: ::c_int = nfsstat::NFSERR_ACCESS as ::c_int; +pub const S_nfsLib_NFSERR_EXIST: ::c_int = nfsstat::NFSERR_EXIST as ::c_int; pub const S_nfsLib_NFSERR_XDEV: ::c_int = M_nfsStat | nfsstat::NFSERR_XDEV as ::c_int; pub const S_nfsLib_NFSERR_NODEV: ::c_int = M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; -pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = - nfsstat::NFSERR_NOTDIR as ::c_int; -pub const S_nfsLib_NFSERR_ISDIR: ::c_int = - nfsstat::NFSERR_ISDIR as ::c_int; -pub const S_nfsLib_NFSERR_INVAL: ::c_int = - nfsstat::NFSERR_INVAL as ::c_int; -pub const S_nfsLib_NFSERR_FBIG: ::c_int = - nfsstat::NFSERR_FBIG as ::c_int; -pub const S_nfsLib_NFSERR_NOSPC: ::c_int = - nfsstat::NFSERR_NOSPC as ::c_int; -pub const S_nfsLib_NFSERR_ROFS: ::c_int = - nfsstat::NFSERR_ROFS as ::c_int; +pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = nfsstat::NFSERR_NOTDIR as ::c_int; +pub const S_nfsLib_NFSERR_ISDIR: ::c_int = nfsstat::NFSERR_ISDIR as ::c_int; +pub const S_nfsLib_NFSERR_INVAL: ::c_int = nfsstat::NFSERR_INVAL as ::c_int; +pub const S_nfsLib_NFSERR_FBIG: ::c_int = nfsstat::NFSERR_FBIG as ::c_int; +pub const S_nfsLib_NFSERR_NOSPC: ::c_int = nfsstat::NFSERR_NOSPC as ::c_int; +pub const S_nfsLib_NFSERR_ROFS: ::c_int = nfsstat::NFSERR_ROFS as ::c_int; pub const S_nfsLib_NFSERR_MLINK: ::c_int = M_nfsStat | nfsstat::NFSERR_MLINK as ::c_int; pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = nfsstat::NFSERR_NAMETOOLONG as ::c_int; pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = nfsstat::NFSERR_NOTEMPTY as ::c_int; -pub const S_nfsLib_NFSERR_DQUOT: ::c_int = - nfsstat::NFSERR_DQUOT as ::c_int; -pub const S_nfsLib_NFSERR_STALE: ::c_int = - nfsstat::NFSERR_STALE as ::c_int; +pub const S_nfsLib_NFSERR_DQUOT: ::c_int = nfsstat::NFSERR_DQUOT as ::c_int; +pub const S_nfsLib_NFSERR_STALE: ::c_int = nfsstat::NFSERR_STALE as ::c_int; pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; pub const S_nfsLib_NFSERR_REMOTE: ::c_int = @@ -609,8 +594,7 @@ pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = nfsstat::NFSERR_NOTSUPP as ::c_int; pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; -pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = - nfsstat::NFSERR_IO as ::c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = nfsstat::NFSERR_IO as ::c_int; pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = @@ -666,29 +650,29 @@ pub const S_IRWXO: ::c_int = 0x0007; // socket.h pub const SOL_SOCKET: ::c_int = 0xffff; -pub const SO_DEBUG: ::c_int = 0x0001; -pub const SO_REUSEADDR: ::c_int = 0x0004; -pub const SO_KEEPALIVE: ::c_int = 0x0008; -pub const SO_DONTROUTE: ::c_int = 0x0010; -pub const SO_RCVLOWAT: ::c_int = 0x0012; -pub const SO_SNDLOWAT: ::c_int = 0x0013; -pub const SO_SNDTIMEO: ::c_int = 0x1005; -pub const SO_ACCEPTCONN: ::c_int = 0x001e; -pub const SO_BROADCAST: ::c_int = 0x0020; -pub const SO_USELOOPBACK: ::c_int = 0x0040; -pub const SO_LINGER: ::c_int = 0x0080; -pub const SO_REUSEPORT: ::c_int = 0x0200; - -pub const SO_VLAN: ::c_int = 0x8000; - -pub const SO_SNDBUF: ::c_int = 0x1001; -pub const SO_RCVBUF: ::c_int = 0x1002; -pub const SO_RCVTIMEO: ::c_int = 0x1006; -pub const SO_ERROR: ::c_int = 0x1007; -pub const SO_TYPE: ::c_int = 0x1008; -pub const SO_BINDTODEVICE: ::c_int = 0x1010; -pub const SO_OOBINLINE: ::c_int = 0x1011; -pub const SO_CONNTIMEO: ::c_int = 0x100a; +pub const SO_DEBUG: ::c_int = 0x0001; +pub const SO_REUSEADDR: ::c_int = 0x0004; +pub const SO_KEEPALIVE: ::c_int = 0x0008; +pub const SO_DONTROUTE: ::c_int = 0x0010; +pub const SO_RCVLOWAT: ::c_int = 0x0012; +pub const SO_SNDLOWAT: ::c_int = 0x0013; +pub const SO_SNDTIMEO: ::c_int = 0x1005; +pub const SO_ACCEPTCONN: ::c_int = 0x001e; +pub const SO_BROADCAST: ::c_int = 0x0020; +pub const SO_USELOOPBACK: ::c_int = 0x0040; +pub const SO_LINGER: ::c_int = 0x0080; +pub const SO_REUSEPORT: ::c_int = 0x0200; + +pub const SO_VLAN: ::c_int = 0x8000; + +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_RCVTIMEO: ::c_int = 0x1006; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_BINDTODEVICE: ::c_int = 0x1010; +pub const SO_OOBINLINE: ::c_int = 0x1011; +pub const SO_CONNTIMEO: ::c_int = 0x100a; pub const SOCK_STREAM: ::c_int = 1; pub const SOCK_DGRAM: ::c_int = 2; @@ -899,7 +883,7 @@ const PTHREAD_RWLOCKATTR_INITIALIZER: pthread_rwlockattr_t = rwlockAttrStatus: PTHREAD_INITIALIZED_OBJ, rwlockAttrPshared: 1, rwlockAttrMaxReaders: 0, - rwlockAttrConformOpt:1, + rwlockAttrConformOpt: 1, }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { rwlockSemId: null_mut(), @@ -990,7 +974,7 @@ f! { } } -extern { +extern "C" { pub fn isalnum(c: c_int) -> c_int; pub fn isalpha(c: c_int) -> c_int; pub fn iscntrl(c: c_int) -> c_int; @@ -1069,7 +1053,7 @@ extern { pub fn free(p: *mut c_void); pub fn abort() -> !; pub fn exit(status: c_int) -> !; - pub fn atexit(cb: extern fn()) -> c_int; + pub fn atexit(cb: extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; @@ -1127,7 +1111,7 @@ extern { pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; } -extern { +extern "C" { pub fn getpwnam(name: *const ::c_char) -> *mut passwd; pub fn getpwuid(uid: ::uid_t) -> *mut passwd; @@ -1399,7 +1383,7 @@ extern { pub fn _rtld_dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; } -extern { +extern "C" { // stdlib.h pub fn memalign(block_size: ::size_t, size_arg: ::size_t) -> *mut ::c_void; @@ -1411,9 +1395,7 @@ extern { pub fn chdir(attr: *const ::c_char) -> ::c_int; // pthread.h - pub fn pthread_mutexattr_init( - attr: *mut pthread_mutexattr_t, - ) -> ::c_int; + pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; // pthread.h pub fn pthread_mutexattr_destroy( @@ -1475,7 +1457,7 @@ extern { pub fn pthread_create( pThread: *mut ::pthread_t, pAttr: *const ::pthread_attr_t, - start_routine: extern fn(*mut ::c_void) -> *mut ::c_void, + start_routine: extern "C" fn(*mut ::c_void) -> *mut ::c_void, value: *mut ::c_void, ) -> ::c_int; @@ -1487,9 +1469,9 @@ extern { // int pthread_atfork (void (*)(void), void (*)(void), void (*)(void)); pub fn pthread_atfork( - prepare: ::Option, - parent: ::Option, - child: ::Option, + prepare: ::Option, + parent: ::Option, + child: ::Option, ) -> ::c_int; // stat.h pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -1618,7 +1600,7 @@ extern { // pthread.h pub fn pthread_key_create( key: *mut ::pthread_key_t, - dtor: ::Option, + dtor: ::Option, ) -> ::c_int; // pthread.h @@ -2152,23 +2134,27 @@ pub fn posix_memalign( // epoll.h // Unfortunately epoll is currently only supported in the VxWorks kernel #[allow(unused_variables)] -pub fn epoll_create(size: ::c_int) -> ::c_int { -1 } +pub fn epoll_create(size: ::c_int) -> ::c_int { + -1 +} #[allow(unused_variables)] -pub fn epoll_create1(flags: ::c_int) -> ::c_int { -1 } +pub fn epoll_create1(flags: ::c_int) -> ::c_int { + -1 +} #[allow(unused_variables)] pub fn epoll_ctl( epfd: ::c_int, op: ::c_int, fd: ::c_int, - event: *mut ::epoll_event - ) -> ::c_int { + event: *mut ::epoll_event, +) -> ::c_int { -1 } #[allow(unused_variables)] pub fn epoll_create_and_ctl( num: ::c_int, fds: *mut ::c_int, - event: *mut ::epoll_event + event: *mut ::epoll_event, ) -> ::c_int { -1 } @@ -2177,9 +2163,9 @@ pub fn epoll_wait( epfd: ::c_int, events: *mut ::epoll_event, maxevents: ::c_int, - timeout: ::c_int + timeout: ::c_int, ) -> ::c_int { - -1 + -1 } // From sysconf.c -> doesn't seem to be supported? From e7f11345d189223828598b27f5ccf8b389dac13d Mon Sep 17 00:00:00 2001 From: Magnus Ulimoen Date: Thu, 12 Sep 2019 18:05:46 +0200 Subject: [PATCH 188/296] add isblank --- src/cloudabi/mod.rs | 1 + src/fuchsia/mod.rs | 1 + src/unix/mod.rs | 1 + src/vxworks/mod.rs | 1 + src/windows/mod.rs | 1 + 5 files changed, 5 insertions(+) diff --git a/src/cloudabi/mod.rs b/src/cloudabi/mod.rs index 0d8696210947e..228740c2811a7 100644 --- a/src/cloudabi/mod.rs +++ b/src/cloudabi/mod.rs @@ -136,6 +136,7 @@ extern { pub fn isspace(c: c_int) -> c_int; pub fn isupper(c: c_int) -> c_int; pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 0756866f51e29..9136f36baca4e 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3282,6 +3282,7 @@ extern { pub fn isspace(c: c_int) -> c_int; pub fn isupper(c: c_int) -> c_int; pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 721d241164a1d..8ed1040b087c3 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -379,6 +379,7 @@ extern { pub fn isspace(c: c_int) -> c_int; pub fn isupper(c: c_int) -> c_int; pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; #[cfg_attr( diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index dd6e6f1cb5733..92c5d6326825c 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -962,6 +962,7 @@ extern { pub fn isspace(c: c_int) -> c_int; pub fn isupper(c: c_int) -> c_int; pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index be28b70f5664f..0d549a0aabb4f 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -222,6 +222,7 @@ extern { pub fn isspace(c: c_int) -> c_int; pub fn isupper(c: c_int) -> c_int; pub fn isxdigit(c: c_int) -> c_int; + pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; From 3843c7dba14529204eee5b64c5a44f792531d033 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sun, 25 Aug 2019 00:23:40 +0200 Subject: [PATCH 189/296] Add FreeBSD10 support This adds libc-test support for Freebsd10 and a CI build job that tests FreeBSD10 with LIBC_CI only. --- .cirrus.yml | 14 +++++ build.rs | 7 ++- libc-test/build.rs | 77 +++++++++++++++++++++++-- src/unix/bsd/freebsdlike/freebsd/mod.rs | 2 +- src/unix/bsd/freebsdlike/mod.rs | 4 +- src/unix/bsd/mod.rs | 4 +- src/unix/mod.rs | 14 ++--- 7 files changed, 105 insertions(+), 17 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index e3f777b52907f..4fb29f518069b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,3 +1,17 @@ +task: + name: nightly x86_64-unknown-freebsd-10 + freebsd_instance: + image: freebsd-10-4-release-amd64 + setup_script: + - pkg install -y curl + - curl https://sh.rustup.rs -sSf --output rustup.sh + - sh rustup.sh --default-toolchain nightly -y + - . $HOME/.cargo/env + - rustup default nightly + test_script: + - . $HOME/.cargo/env + - LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd + task: name: stable x86_64-unknown-freebsd-11 freebsd_instance: diff --git a/build.rs b/build.rs index d9d23ca2ac9a8..d5bcb5253a4c8 100644 --- a/build.rs +++ b/build.rs @@ -16,11 +16,15 @@ fn main() { ); } - // The ABI of libc is backward compatible with FreeBSD 11. + // The ABI of libc used by libstd is backward compatible with FreeBSD 10. + // The ABI of libc from crates.io is backward compatible with FreeBSD 11. // // On CI, we detect the actual FreeBSD version and match its ABI exactly, // running tests to ensure that the ABI is correct. match which_freebsd() { + Some(10) if libc_ci || rustc_dep_of_std => { + println!("cargo:rustc-cfg=freebsd10") + } Some(11) if libc_ci => println!("cargo:rustc-cfg=freebsd11"), Some(12) if libc_ci => println!("cargo:rustc-cfg=freebsd12"), Some(13) if libc_ci => println!("cargo:rustc-cfg=freebsd13"), @@ -109,6 +113,7 @@ fn which_freebsd() -> Option { let stdout = stdout.unwrap(); match &stdout { + s if s.starts_with("10") => Some(10), s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), s if s.starts_with("13") => Some(13), diff --git a/libc-test/build.rs b/libc-test/build.rs index 002ece011b99b..9fa11704962fd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1457,6 +1457,7 @@ fn test_freebsd(target: &str) { let freebsd_ver = which_freebsd(); match freebsd_ver { + Some(10) => cfg.cfg("freebsd10", None), Some(11) => cfg.cfg("freebsd11", None), Some(12) => cfg.cfg("freebsd12", None), Some(13) => cfg.cfg("freebsd13", None), @@ -1466,7 +1467,10 @@ fn test_freebsd(target: &str) { // Required for `getline`: cfg.define("_WITH_GETLINE", None); // Required for making freebsd11_stat available in the headers - cfg.define("_WANT_FREEBSD11_STAT", None); + match freebsd_ver { + Some(10) => &mut cfg, + _ => cfg.define("_WANT_FREEBSD11_STAT", None), + }; headers! { cfg: "aio.h", @@ -1594,6 +1598,34 @@ fn test_freebsd(target: &str) { true } + // These constants were introduced in FreeBSD 11: + "SF_USER_READAHEAD" + | "SF_NOCACHE" + | "RLIMIT_KQUEUES" + | "RLIMIT_UMTXP" + | "EVFILT_PROCDESC" + | "EVFILT_SENDFILE" + | "EVFILT_EMPTY" + | "SO_REUSEPORT_LB" + | "TCP_CCALGOOPT" + | "TCP_PCAP_OUT" + | "TCP_PCAP_IN" + | "IP_BINDMULTI" + | "IP_ORIGDSTADDR" + | "IP_RECVORIGDSTADDR" + | "IPV6_ORIGDSTADDR" + | "IPV6_RECVORIGDSTADDR" + | "PD_CLOEXEC" + | "PD_ALLOWED_AT_FORK" + | "IP_RSS_LISTEN_BUCKET" + if Some(10) == freebsd_ver => + { + true + } + + // FIXME: This constant has a different value in FreeBSD 10: + "RLIM_NLIMITS" if Some(10) == freebsd_ver => true, + // FIXME: There are deprecated - remove in a couple of releases. // These constants were removed in FreeBSD 11 (svn r273250) but will // still be accepted and ignored at runtime. @@ -1609,12 +1641,32 @@ fn test_freebsd(target: &str) { } }); + cfg.skip_struct(move |ty| { + match ty { + // `mmsghdr` is not available in FreeBSD 10 + "mmsghdr" if Some(10) == freebsd_ver => true, + + _ => false, + } + }); + cfg.skip_fn(move |name| { // skip those that are manually verified match name { // FIXME: https://github.com/rust-lang/libc/issues/1272 "execv" | "execve" | "execvp" | "execvpe" | "fexecve" => true, + // These functions were added in FreeBSD 11: + "fdatasync" | "mq_getfd_np" | "sendmmsg" | "recvmmsg" + if Some(10) == freebsd_ver => + { + true + } + + // This function changed its return type from `int` in FreeBSD10 to + // `ssize_t` in FreeBSD11: + "aio_waitcomplete" if Some(10) == freebsd_ver => true, + // The `uname` function in the `utsname.h` FreeBSD header is a C // inline function (has no symbol) that calls the `__xuname` symbol. // Therefore the function pointer comparison does not make sense for it. @@ -1630,6 +1682,14 @@ fn test_freebsd(target: &str) { } }); + cfg.skip_signededness(move |c| { + match c { + // FIXME: has a different sign in FreeBSD10 + "blksize_t" if Some(10) == freebsd_ver => true, + _ => false, + } + }); + cfg.volatile_item(|i| { use ctest::VolatileItemKind::*; match i { @@ -1643,9 +1703,17 @@ fn test_freebsd(target: &str) { }); cfg.skip_field(move |struct_, field| { - // FIXME: `sa_sigaction` has type `sighandler_t` but that type is - // incorrect, see: https://github.com/rust-lang/libc/issues/1359 - (struct_ == "sigaction" && field == "sa_sigaction") + match (struct_, field) { + // FIXME: `sa_sigaction` has type `sighandler_t` but that type is + // incorrect, see: https://github.com/rust-lang/libc/issues/1359 + ("sigaction", "sa_sigaction") => true, + + // FIXME: in FreeBSD10 this field has type `char*` instead of + // `void*`: + ("stack_t", "ss_sp") if Some(10) == freebsd_ver => true, + + _ => false, + } }); cfg.skip_roundtrip(move |s| match s { @@ -2473,6 +2541,7 @@ fn which_freebsd() -> Option { let stdout = String::from_utf8(output.stdout).ok()?; match &stdout { + s if s.starts_with("10") => Some(10), s if s.starts_with("11") => Some(11), s if s.starts_with("12") => Some(12), s if s.starts_with("13") => Some(13), diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 9acc3fcc33fac..980caf225765d 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -1456,7 +1456,7 @@ cfg_if! { } else if #[cfg(freebsd13)] { mod freebsd12; pub use self::freebsd12::*; - } else if #[cfg(freebsd11)] { + } else if #[cfg(any(freebsd10, freebsd11))] { mod freebsd11; pub use self::freebsd11::*; } else { diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index c1128952f2a64..9ddb6014d39e9 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1193,7 +1193,7 @@ extern "C" { pub fn getutxline(ut: *const utmpx) -> *mut utmpx; pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "kevent@FBSD_1.0" )] pub fn kevent( @@ -1223,7 +1223,7 @@ extern "C" { mode: ::mode_t, ) -> ::c_int; #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknodat@FBSD_1.1" )] pub fn mknodat( diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs index 6cb40a0d804f8..cf9f59e9b3c02 100644 --- a/src/unix/bsd/mod.rs +++ b/src/unix/bsd/mod.rs @@ -558,7 +558,7 @@ extern "C" { #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "glob@FBSD_1.0" )] pub fn glob( @@ -571,7 +571,7 @@ extern "C" { ) -> ::c_int; #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "globfree@FBSD_1.0" )] pub fn globfree(pglob: *mut ::glob_t); diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 5fc0f9bf36f5f..b0b26be09a82e 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -668,7 +668,7 @@ extern "C" { #[cfg_attr(target_os = "macos", link_name = "fstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstat@FBSD_1.0" )] pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; @@ -678,7 +678,7 @@ extern "C" { #[cfg_attr(target_os = "macos", link_name = "stat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "stat@FBSD_1.0" )] pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -721,7 +721,7 @@ extern "C" { #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir@FBSD_1.0" )] pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; @@ -756,7 +756,7 @@ extern "C" { ) -> ::c_int; #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "fstatat@FBSD_1.1" )] pub fn fstatat( @@ -988,7 +988,7 @@ extern "C" { #[cfg_attr(target_os = "macos", link_name = "lstat$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "lstat@FBSD_1.0" )] pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; @@ -1241,7 +1241,7 @@ extern "C" { #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "mknod@FBSD_1.0" )] pub fn mknod( @@ -1457,7 +1457,7 @@ cfg_if! { #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] #[cfg_attr( - all(target_os = "freebsd", freebsd11), + all(target_os = "freebsd", any(freebsd11, freebsd10)), link_name = "readdir_r@FBSD_1.0" )] /// The 64-bit libc on Solaris and illumos only has readdir_r. If a From 676d9fb4201877f90875c8943defc23146c926e2 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Sat, 14 Sep 2019 16:56:13 -0700 Subject: [PATCH 190/296] 1. use s_no_extra_traits! for structs with big size(>32 bytes) arrary 2. implement Debug for big size array 3. remove code related to epoll 4. use 'pub enum' for _Vx_semaphore --- src/vxworks/mod.rs | 196 ++++++++++++++++++++++++--------------------- 1 file changed, 105 insertions(+), 91 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index f96457a524323..b0058444d4679 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -12,9 +12,6 @@ impl ::Clone for DIR { } } -// Throughout we use usize / isize for types that are -// (unsigned) int in ILP32 and (unsigned) long in ILP64 - pub type c_schar = i8; pub type c_uchar = u8; pub type c_short = i16; @@ -28,11 +25,23 @@ pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; -pub type size_t = usize; -pub type ptrdiff_t = isize; -pub type intptr_t = isize; -pub type uintptr_t = usize; -pub type ssize_t = isize; +cfg_if! { + if #[cfg(target_pointer_width = "32")] { + pub type size_t = c_uint; + pub type ssize_t = c_int; + pub type ptrdiff_t = c_int; + pub type intptr_t = c_int; + pub type uintptr_t = c_uint; + } else if #[cfg(target_pointer_width = "64")] { + pub type size_t = c_ulonglong; + pub type ssize_t = c_longlong; + pub type ptrdiff_t = c_longlong; + pub type intptr_t = c_longlong; + pub type uintptr_t = c_ulonglong; + } else { + // Unknown target_pointer_width + } +} pub type pid_t = i32; pub type in_addr_t = u32; @@ -103,10 +112,17 @@ pub type _Vx_ticks64_t = ::c_ulonglong; pub type sa_family_t = ::c_uchar; +#[cfg_attr(feature = "extra_traits", derive(Debug))] +pub enum _Vx_semaphore {} +impl ::Copy for _Vx_semaphore {} +impl ::Clone for _Vx_semaphore { + fn clone(&self) -> _Vx_semaphore { + *self + } +} + // structs that only exist in userspace s! { - pub struct _Vx_semaphore {} - // b_pthread_condattr_t.h pub struct pthread_condattr_t { pub condAttrStatus: ::c_int, @@ -161,14 +177,6 @@ s! { pub sa_data : [::c_char; 14], } - // socket.h - pub struct sockaddr_storage { - pub ss_len : ::c_uchar, - pub ss_family : ::sa_family_t, - pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], - pub __ss_align : i32, - pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], - } pub struct iovec { pub iov_base: *mut ::c_void, pub iov_len: ::size_t, @@ -197,12 +205,6 @@ s! { pub revents : ::c_short, } - // dirent.h - pub struct dirent { - pub d_ino : ::ino_t, - pub d_name : [::c_char; _PARM_NAME_MAX + 1], - } - // resource.h pub struct rlimit { /* Is this really needed? Questionable ... */ pub rlim_cur : ::rlim_t, @@ -391,12 +393,6 @@ s! { pub sin6_scope_id: u32, } - pub struct sockaddr_un { - pub sun_len: u8, - pub sun_family: sa_family_t, - pub sun_path: [::c_char; 104] - } - pub struct passwd { pub pw_name: *mut ::c_char, pub pw_uid: ::uid_t, @@ -405,10 +401,25 @@ s! { pub pw_shell: *mut ::c_char, } - // epoll.h - pub struct epoll_event { - pub events: u32, - pub u64: u64, + pub struct Dl_info { + pub dli_fname: *const ::c_char, + pub dli_fbase: *mut ::c_void, + pub dli_sname: *const ::c_char, + pub dli_saddr: *mut ::c_void, + } +} + +s_no_extra_traits! { + // dirent.h + pub struct dirent { + pub d_ino : ::ino_t, + pub d_name : [::c_char; _PARM_NAME_MAX + 1], + } + + pub struct sockaddr_un { + pub sun_len: u8, + pub sun_family: sa_family_t, + pub sun_path: [::c_char; 104] } // rtpLibCommon.h @@ -423,12 +434,64 @@ s! { pub textStart : *mut ::c_void, pub textEnd : *mut ::c_void, } + // socket.h + pub struct sockaddr_storage { + pub ss_len : ::c_uchar, + pub ss_family : ::sa_family_t, + pub __ss_pad1 : [::c_char; _SS_PAD1SIZE], + pub __ss_align : i32, + pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], + } - pub struct Dl_info { - pub dli_fname: *const ::c_char, - pub dli_fbase: *mut ::c_void, - pub dli_sname: *const ::c_char, - pub dli_saddr: *mut ::c_void, +} + +cfg_if! { + if #[cfg(feature = "extra_traits")] { + impl ::fmt::Debug for dirent { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("dirent") + .field("d_ino", &self.d_ino) + .field("d_name", &&self.d_name[..]) + .finish() + } + } + + impl ::fmt::Debug for sockaddr_un { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_un") + .field("sun_len", &self.sun_len) + .field("sun_family", &self.sun_family) + .field("sun_path", &&self.sun_path[..]) + .finish() + } + } + + impl ::fmt::Debug for RTP_DESC { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("RTP_DESC") + .field("status", &self.status) + .field("options", &self.options) + .field("entrAddr", &self.entrAddr) + .field("initTaskId", &self.initTaskId) + .field("parentId", &self.parentId) + .field("pathName", &&self.pathName[..]) + .field("taskCnt", &self.taskCnt) + .field("textStart", &self.textStart) + .field("textEnd", &self.textEnd) + .finish() + } + } + impl ::fmt::Debug for sockaddr_storage { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sockaddr_storage") + .field("ss_len", &self.ss_len) + .field("ss_family", &self.ss_family) + .field("__ss_pad1", &&self.__ss_pad1[..]) + .field("__ss_align", &self.__ss_align) + .field("__ss_pad2", &&self.__ss_pad2[..]) + .finish() + } + } } } @@ -754,20 +817,6 @@ pub const FIOSQUEEZE: ::c_int = 15; pub const FIONBIO: ::c_int = 16; pub const _POSIX_PATH_MAX: ::c_int = 256; -// epoll.h -pub const EPOLLIN: ::c_int = 0x1; -pub const EPOLLPRI: ::c_int = 0x2; -pub const EPOLLOUT: ::c_int = 0x4; -pub const EPOLLERR: ::c_int = 0x8; -pub const EPOLLHUP: ::c_int = 0x10; -pub const EPOLLRDHUP: ::c_int = 0x2000; -pub const EPOLLONESHOT: ::c_int = 1 << 30; -pub const EPOLLET: ::c_int = 1 << 31; - -pub const EPOLL_CTL_ADD: ::c_int = 1; -pub const EPOLL_CTL_DEL: ::c_int = 2; -pub const EPOLL_CTL_MOD: ::c_int = 3; - // Some poll stuff pub const POLLIN: ::c_short = 0x0001; pub const POLLPRI: ::c_short = 0x0002; @@ -2111,7 +2160,9 @@ pub fn posix_memalign( ) -> ::c_int { // check to see if align is a power of 2 and if align is a multiple // of sizeof(void *) - if (align & align - 1 != 0) || (align % size_of::<::size_t>() != 0) { + if (align & align - 1 != 0) + || (align as usize % size_of::<::size_t>() != 0) + { return ::EINVAL; } @@ -2131,43 +2182,6 @@ pub fn posix_memalign( } } -// epoll.h -// Unfortunately epoll is currently only supported in the VxWorks kernel -#[allow(unused_variables)] -pub fn epoll_create(size: ::c_int) -> ::c_int { - -1 -} -#[allow(unused_variables)] -pub fn epoll_create1(flags: ::c_int) -> ::c_int { - -1 -} -#[allow(unused_variables)] -pub fn epoll_ctl( - epfd: ::c_int, - op: ::c_int, - fd: ::c_int, - event: *mut ::epoll_event, -) -> ::c_int { - -1 -} -#[allow(unused_variables)] -pub fn epoll_create_and_ctl( - num: ::c_int, - fds: *mut ::c_int, - event: *mut ::epoll_event, -) -> ::c_int { - -1 -} -#[allow(unused_variables)] -pub fn epoll_wait( - epfd: ::c_int, - events: *mut ::epoll_event, - maxevents: ::c_int, - timeout: ::c_int, -) -> ::c_int { - -1 -} - // From sysconf.c -> doesn't seem to be supported? pub fn getpwuid_r( _uid: ::uid_t, From ea0a512079782cea977cedd483cae79c51ed15cc Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Tue, 17 Sep 2019 10:36:53 -0700 Subject: [PATCH 191/296] defining uintptr_t = usize and intptr_t/ptrdiff_t = isize, and using uintptr_t to define size_t, and intptr_t to define ssize_t. --- src/vxworks/mod.rs | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 0cc107b14a165..a25b1d598f4c6 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -25,23 +25,11 @@ pub type c_ulonglong = u64; pub type intmax_t = i64; pub type uintmax_t = u64; -cfg_if! { - if #[cfg(target_pointer_width = "32")] { - pub type size_t = c_uint; - pub type ssize_t = c_int; - pub type ptrdiff_t = c_int; - pub type intptr_t = c_int; - pub type uintptr_t = c_uint; - } else if #[cfg(target_pointer_width = "64")] { - pub type size_t = c_ulonglong; - pub type ssize_t = c_longlong; - pub type ptrdiff_t = c_longlong; - pub type intptr_t = c_longlong; - pub type uintptr_t = c_ulonglong; - } else { - // Unknown target_pointer_width - } -} +pub type uintptr_t = usize; +pub type intptr_t = isize; +pub type ptrdiff_t = isize; +pub type size_t = ::uintptr_t; +pub type ssize_t = ::intptr_t; pub type pid_t = i32; pub type in_addr_t = u32; From 165161bec33eda2e0b614ca464cacb2a4079b1b3 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Wed, 18 Sep 2019 23:29:34 +0200 Subject: [PATCH 192/296] fix argument names in the mq_* family of functions It's *msg_prio* in both manpages and posix. --- src/unix/bsd/freebsdlike/mod.rs | 8 ++++---- src/unix/bsd/netbsdlike/netbsd/mod.rs | 8 ++++---- src/unix/linux_like/linux/mod.rs | 8 ++++---- src/unix/solarish/mod.rs | 8 ++++---- src/unix/uclibc/mod.rs | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index c1128952f2a64..07bb3aef8569c 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1241,13 +1241,13 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, ) -> ::ssize_t; pub fn mq_send( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, ) -> ::c_int; pub fn mq_setattr( mqd: ::mqd_t, @@ -1258,14 +1258,14 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, abs_timeout: *const ::timespec, ) -> ::ssize_t; pub fn mq_timedsend( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 5e3f0467ffe2b..ba28bce19e2da 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1627,13 +1627,13 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, ) -> ::ssize_t; pub fn mq_send( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, ) -> ::c_int; pub fn mq_setattr( mqd: ::mqd_t, @@ -1645,7 +1645,7 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, abs_timeout: *const ::timespec, ) -> ::ssize_t; #[link_name = "__mq_timedsend50"] @@ -1653,7 +1653,7 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_unlink(name: *const ::c_char) -> ::c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 87730a56aaecc..8e8223cda2933 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2535,26 +2535,26 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, ) -> ::ssize_t; pub fn mq_timedreceive( mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, abs_timeout: *const ::timespec, ) -> ::ssize_t; pub fn mq_send( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, ) -> ::c_int; pub fn mq_timedsend( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 353f1c6aa1412..eaa43fe900160 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2094,26 +2094,26 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, ) -> ::ssize_t; pub fn mq_timedreceive( mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, abs_timeout: *const ::timespec, ) -> ::ssize_t; pub fn mq_send( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, ) -> ::c_int; pub fn mq_timedsend( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, abs_timeout: *const ::timespec, ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index bf4d9772de588..986b05ca0b527 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -2024,13 +2024,13 @@ extern "C" { mqd: ::mqd_t, msg_ptr: *mut ::c_char, msg_len: ::size_t, - msq_prio: *mut ::c_uint, + msg_prio: *mut ::c_uint, ) -> ::ssize_t; pub fn mq_send( mqd: ::mqd_t, msg_ptr: *const ::c_char, msg_len: ::size_t, - msq_prio: ::c_uint, + msg_prio: ::c_uint, ) -> ::c_int; pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; pub fn mq_setattr( From 9a09cb4ff31afc8ff857780be321273f240a3da5 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Thu, 12 Sep 2019 11:33:57 +0200 Subject: [PATCH 193/296] update example path Signed-off-by: Philipp Gesang --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c22c08622530..052777f41617b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ Consequently, this indicates where an API should be added! Adding an API at a particular level in the hierarchy means that it is supported on all the child platforms of that level. For example, when adding a Unix API it should be added to `src/unix/mod.rs`, but when adding a Linux-only API it should be added to -`src/unix/notbsd/linux/mod.rs`. +`src/unix/linux_like/linux/mod.rs`. If you're not 100% sure at what level of the hierarchy an API should be added at, fear not! This crate has CI support which tests any binding against all From e7bcb7aff2fdf18b696302f78d2972ae11a518e6 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 18 Sep 2019 12:21:00 +0200 Subject: [PATCH 194/296] Re-enable all roundtrip tests --- libc-test/build.rs | 54 +++++----------------------------------------- 1 file changed, 5 insertions(+), 49 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 002ece011b99b..9eb83e85e17b5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -225,12 +225,6 @@ fn test_apple(target: &str) { } }); - cfg.skip_roundtrip(move |s| match s { - // FIXME: TODO - "utsname" | "statfs" | "dirent" | "utmpx" => true, - _ => false, - }); - cfg.generate("../src/lib.rs", "main.rs"); } @@ -370,11 +364,6 @@ fn test_openbsd(target: &str) { (struct_ == "siginfo_t" && field == "si_addr") }); - cfg.skip_roundtrip(move |s| match s { - "dirent" | "utsname" | "utmp" => true, - _ => false, - }); - cfg.generate("../src/lib.rs", "main.rs"); } @@ -479,11 +468,6 @@ fn test_windows(target: &str) { } }); - cfg.skip_roundtrip(move |s| match s { - "dirent" | "statfs" | "utsname" | "utmpx" => true, - _ => false, - }); - cfg.generate("../src/lib.rs", "main.rs"); } @@ -1438,13 +1422,6 @@ fn test_android(target: &str) { field == "ssi_arch")) }); - let bit64 = target.contains("64"); - cfg.skip_roundtrip(move |s| match s { - "utsname" | "dirent" | "dirent64" => true, - "utmp" if bit64 => true, - _ => false, - }); - cfg.generate("../src/lib.rs", "main.rs"); test_linux_like_apis(target); @@ -1648,11 +1625,6 @@ fn test_freebsd(target: &str) { (struct_ == "sigaction" && field == "sa_sigaction") }); - cfg.skip_roundtrip(move |s| match s { - "dirent" | "statfs" | "utsname" | "utmpx" => true, - _ => false, - }); - cfg.generate("../src/lib.rs", "main.rs"); } @@ -1857,15 +1829,6 @@ fn test_emscripten(target: &str) { field == "ssi_arch")) }); - cfg.skip_roundtrip(move |s| match s { - "pthread_mutexattr_t" - | "utsname" - | "dirent" - | "dirent64" - | "sysinfo" => true, - _ => false, - }); - // FIXME: test linux like cfg.generate("../src/lib.rs", "main.rs"); } @@ -2291,17 +2254,11 @@ fn test_linux(target: &str) { }); cfg.skip_roundtrip(move |s| match s { - // FIXME: TODO - "_libc_fpstate" | "user_fpregs_struct" if x86_64 => true, - "utsname" - | "statx" - | "dirent" - | "dirent64" - | "utmpx" - | "user" - | "user_fpxregs_struct" => true, - "sysinfo" if musl => true, - "ucontext_t" if x86_64 && musl => true, + // FIXME: + "utsname" if mips32 || mips64 => true, + // FIXME: + "mcontext_t" if s390x => true, + "sockaddr_un" | "sembuf" | "ff_constant_effect" if mips32 && (gnu || musl) => { @@ -2328,7 +2285,6 @@ fn test_linux(target: &str) { { true } - "mcontext_t" if s390x => true, _ => false, }); From e51a79f3d345504439a09d33edee6b023b581290 Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 20 Sep 2019 06:13:48 +0000 Subject: [PATCH 195/296] pthread_exit fix --- src/unix/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 8d78cea7269d3..15656de95fd92 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1048,7 +1048,7 @@ extern "C" { native: ::pthread_t, value: *mut *mut ::c_void, ) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void); + pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_setstacksize( From d0ffed6fd5bfe79e0f8f136ee22a5beacb8e9c6f Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 20 Sep 2019 06:15:34 +0000 Subject: [PATCH 196/296] vxworks --- src/vxworks/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index a25b1d598f4c6..0325c5402b086 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1318,7 +1318,7 @@ extern "C" { pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void); + pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_setdetachstate( attr: *mut ::pthread_attr_t, state: ::c_int, From 7d1907eaae83b9946f5e6c5ee79ce6650a3b9a75 Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 20 Sep 2019 06:16:08 +0000 Subject: [PATCH 197/296] fuchsia --- src/fuchsia/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5d302aaf8840d..7d23e67106f3e 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3732,7 +3732,7 @@ extern "C" { native: ::pthread_t, value: *mut *mut ::c_void, ) -> ::c_int; - pub fn pthread_exit(value: *mut ::c_void); + pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; pub fn pthread_attr_setstacksize( From 974f550e1cb4569871bcf2ff361a1159c1c24d24 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Tue, 17 Sep 2019 11:50:05 +0200 Subject: [PATCH 198/296] Implement max_align_t --- ci/azure.yml | 2 +- libc-test/build.rs | 74 +++++++++++++------ src/unix/bsd/apple/b32/align.rs | 3 + src/unix/bsd/apple/{b32.rs => b32/mod.rs} | 7 ++ src/unix/bsd/apple/b64/align.rs | 3 + src/unix/bsd/apple/{b64.rs => b64/mod.rs} | 7 ++ .../bsd/freebsdlike/freebsd/x86_64/align.rs | 3 + .../freebsd/{x86_64.rs => x86_64/mod.rs} | 7 ++ src/unix/linux_like/android/b32/x86/align.rs | 3 + .../android/b32/{x86.rs => x86/mod.rs} | 7 ++ .../linux_like/android/b64/aarch64/align.rs | 3 + .../b64/{aarch64.rs => aarch64/mod.rs} | 7 ++ .../linux_like/android/b64/x86_64/align.rs | 3 + .../android/b64/{x86_64.rs => x86_64/mod.rs} | 7 ++ src/unix/linux_like/emscripten/align.rs | 4 + .../linux_like/linux/gnu/b32/arm/align.rs | 3 + .../linux/gnu/b32/{arm.rs => arm/mod.rs} | 7 ++ .../linux_like/linux/gnu/b32/mips/align.rs | 3 + .../linux/gnu/b32/{mips.rs => mips/mod.rs} | 7 ++ .../linux_like/linux/gnu/b32/x86/align.rs | 3 + .../linux/gnu/b32/{x86.rs => x86/mod.rs} | 7 ++ .../linux_like/linux/gnu/b64/aarch64/align.rs | 3 + .../gnu/b64/{aarch64.rs => aarch64/mod.rs} | 7 ++ .../linux_like/linux/gnu/b64/mips64/align.rs | 3 + .../gnu/b64/{mips64.rs => mips64/mod.rs} | 7 ++ .../linux/gnu/b64/powerpc64/align.rs | 3 + .../b64/{powerpc64.rs => powerpc64/mod.rs} | 7 ++ .../linux_like/linux/gnu/b64/sparc64/align.rs | 3 + .../gnu/b64/{sparc64.rs => sparc64/mod.rs} | 7 ++ .../linux_like/linux/gnu/b64/x86_64/align.rs | 3 + .../linux_like/linux/gnu/b64/x86_64/mod.rs | 7 ++ .../linux_like/linux/musl/b32/arm/align.rs | 3 + .../linux/musl/b32/{arm.rs => arm/mod.rs} | 7 ++ .../linux_like/linux/musl/b32/mips/align.rs | 3 + .../linux/musl/b32/{mips.rs => mips/mod.rs} | 7 ++ .../linux_like/linux/musl/b32/x86/align.rs | 3 + .../linux/musl/b32/{x86.rs => x86/mod.rs} | 7 ++ .../linux/musl/b64/aarch64/align.rs | 3 + .../musl/b64/{aarch64.rs => aarch64/mod.rs} | 7 ++ .../linux_like/linux/musl/b64/x86_64/align.rs | 3 + .../musl/b64/{x86_64.rs => x86_64/mod.rs} | 7 ++ src/windows/gnu/align.rs | 9 +++ src/windows/{gnu.rs => gnu/mod.rs} | 7 ++ 43 files changed, 262 insertions(+), 24 deletions(-) create mode 100644 src/unix/bsd/apple/b32/align.rs rename src/unix/bsd/apple/{b32.rs => b32/mod.rs} (96%) create mode 100644 src/unix/bsd/apple/b64/align.rs rename src/unix/bsd/apple/{b64.rs => b64/mod.rs} (97%) create mode 100644 src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs rename src/unix/bsd/freebsdlike/freebsd/{x86_64.rs => x86_64/mod.rs} (82%) create mode 100644 src/unix/linux_like/android/b32/x86/align.rs rename src/unix/linux_like/android/b32/{x86.rs => x86/mod.rs} (99%) create mode 100644 src/unix/linux_like/android/b64/aarch64/align.rs rename src/unix/linux_like/android/b64/{aarch64.rs => aarch64/mod.rs} (99%) create mode 100644 src/unix/linux_like/android/b64/x86_64/align.rs rename src/unix/linux_like/android/b64/{x86_64.rs => x86_64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b32/arm/align.rs rename src/unix/linux_like/linux/gnu/b32/{arm.rs => arm/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b32/mips/align.rs rename src/unix/linux_like/linux/gnu/b32/{mips.rs => mips/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b32/x86/align.rs rename src/unix/linux_like/linux/gnu/b32/{x86.rs => x86/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b64/aarch64/align.rs rename src/unix/linux_like/linux/gnu/b64/{aarch64.rs => aarch64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b64/mips64/align.rs rename src/unix/linux_like/linux/gnu/b64/{mips64.rs => mips64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs rename src/unix/linux_like/linux/gnu/b64/{powerpc64.rs => powerpc64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b64/sparc64/align.rs rename src/unix/linux_like/linux/gnu/b64/{sparc64.rs => sparc64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/gnu/b64/x86_64/align.rs create mode 100644 src/unix/linux_like/linux/musl/b32/arm/align.rs rename src/unix/linux_like/linux/musl/b32/{arm.rs => arm/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/musl/b32/mips/align.rs rename src/unix/linux_like/linux/musl/b32/{mips.rs => mips/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/musl/b32/x86/align.rs rename src/unix/linux_like/linux/musl/b32/{x86.rs => x86/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/musl/b64/aarch64/align.rs rename src/unix/linux_like/linux/musl/b64/{aarch64.rs => aarch64/mod.rs} (99%) create mode 100644 src/unix/linux_like/linux/musl/b64/x86_64/align.rs rename src/unix/linux_like/linux/musl/b64/{x86_64.rs => x86_64/mod.rs} (99%) create mode 100644 src/windows/gnu/align.rs rename src/windows/{gnu.rs => gnu/mod.rs} (81%) diff --git a/ci/azure.yml b/ci/azure.yml index 456ac7f74f05c..97f13c9da3579 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -25,7 +25,7 @@ jobs: TARGET: x86_64-unknown-linux-gnu - job: DockerLinuxTier2 - dependsOn: DockerLinuxTier1 + #dependsOn: DockerLinuxTier1 pool: vmImage: ubuntu-16.04 steps: diff --git a/libc-test/build.rs b/libc-test/build.rs index 9eb83e85e17b5..861fc21b093f2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -31,6 +31,23 @@ fn do_ctest() { } } +fn ctest_cfg() -> ctest::TestGenerator { + let mut cfg = ctest::TestGenerator::new(); + let libc_cfgs = [ + "libc_priv_mod_use", + "libc_union", + "libc_const_size_of", + "libc_align", + "libc_core_cvoid", + "libc_packedN", + "libc_thread_local", + ]; + for f in &libc_cfgs { + cfg.cfg(f, None); + } + cfg +} + fn main() { do_cc(); do_ctest(); @@ -59,8 +76,9 @@ macro_rules! headers { fn test_apple(target: &str) { assert!(target.contains("apple")); let x86_64 = target.contains("x86_64"); + let i686 = target.contains("i686"); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("__APPLE_USE_RFC_3542", None); @@ -225,13 +243,18 @@ fn test_apple(target: &str) { } }); + cfg.skip_roundtrip(move |s| match s { + // FIXME: this type has the wrong ABI + "max_align_t" if i686 => true, + _ => false, + }); cfg.generate("../src/lib.rs", "main.rs"); } fn test_openbsd(target: &str) { assert!(target.contains("openbsd")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { cfg: @@ -371,7 +394,7 @@ fn test_windows(target: &str) { assert!(target.contains("windows")); let gnu = target.contains("gnu"); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.define("_WIN32_WINNT", Some("0x8000")); headers! { cfg: @@ -474,7 +497,7 @@ fn test_windows(target: &str) { fn test_redox(target: &str) { assert!(target.contains("redox")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -540,7 +563,7 @@ fn test_redox(target: &str) { fn test_cloudabi(target: &str) { assert!(target.contains("cloudabi")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -611,7 +634,7 @@ fn test_cloudabi(target: &str) { fn test_solaris(target: &str) { assert!(target.contains("solaris")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_XOPEN_SOURCE", Some("700")); @@ -722,7 +745,7 @@ fn test_solaris(target: &str) { fn test_netbsd(target: &str) { assert!(target.contains("netbsd")); let rumprun = target.contains("rumprun"); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); cfg.define("_NETBSD_SOURCE", Some("1")); @@ -922,7 +945,7 @@ fn test_netbsd(target: &str) { fn test_dragonflybsd(target: &str) { assert!(target.contains("dragonfly")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.flag("-Wno-deprecated-declarations"); headers! { @@ -1127,7 +1150,7 @@ fn test_dragonflybsd(target: &str) { fn test_wasi(target: &str) { assert!(target.contains("wasi")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -1204,7 +1227,7 @@ fn test_android(target: &str) { }; let x86 = target.contains("i686") || target.contains("x86_64"); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); headers! { cfg: @@ -1429,7 +1452,7 @@ fn test_android(target: &str) { fn test_freebsd(target: &str) { assert!(target.contains("freebsd")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); let freebsd_ver = which_freebsd(); @@ -1631,7 +1654,7 @@ fn test_freebsd(target: &str) { fn test_emscripten(target: &str) { assert!(target.contains("emscripten")); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); // FIXME: ?? headers! { cfg: @@ -1852,17 +1875,19 @@ fn test_linux(target: &str) { } let arm = target.contains("arm"); - let x86_64 = target.contains("x86_64"); - let x86_32 = target.contains("i686"); - let x32 = target.contains("x32"); + let i686 = target.contains("i686"); let mips = target.contains("mips"); let mips32 = mips && !target.contains("64"); - let mips64 = mips && target.contains("64"); let mips32_musl = mips32 && musl; - let sparc64 = target.contains("sparc64"); + let mips64 = mips && target.contains("64"); + let ppc64 = target.contains("powerpc64"); let s390x = target.contains("s390x"); + let sparc64 = target.contains("sparc64"); + let x32 = target.contains("x32"); + let x86_32 = target.contains("i686"); + let x86_64 = target.contains("x86_64"); - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); // This macro re-deifnes fscanf,scanf,sscanf to link to the symbols that are // deprecated since glibc >= 2.29. This allows Rust binaries to link against @@ -2286,6 +2311,9 @@ fn test_linux(target: &str) { true } + // FIXME: the call ABI of max_align_t is incorrect on these platforms: + "max_align_t" if i686 || mips64 || ppc64 => true, + _ => false, }); @@ -2305,7 +2333,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test strerror_r from the `string.h` header - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.skip_type(|_| true).skip_static(|_| true); headers! { cfg: "string.h" } @@ -2321,7 +2349,7 @@ fn test_linux_like_apis(target: &str) { if linux || android || emscripten { // test fcntl - see: // http://man7.org/linux/man-pages/man2/fcntl.2.html - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); if musl { cfg.header("fcntl.h"); @@ -2351,7 +2379,7 @@ fn test_linux_like_apis(target: &str) { if linux || android { // test termios - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.header("asm/termbits.h"); cfg.skip_type(|_| true) .skip_static(|_| true) @@ -2368,7 +2396,7 @@ fn test_linux_like_apis(target: &str) { if linux || android { // test IPV6_ constants: - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); headers! { cfg: "linux/in6.h" @@ -2399,7 +2427,7 @@ fn test_linux_like_apis(target: &str) { // These types have a field called `p_type`, but including // "resolve.h" defines a `p_type` macro that expands to `__p_type` // making the tests for these fails when both are included. - let mut cfg = ctest::TestGenerator::new(); + let mut cfg = ctest_cfg(); cfg.header("elf.h"); cfg.skip_fn(|_| true) .skip_static(|_| true) diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs new file mode 100644 index 0000000000000..ba9bc3ab3e28e --- /dev/null +++ b/src/unix/bsd/apple/b32/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 2]); diff --git a/src/unix/bsd/apple/b32.rs b/src/unix/bsd/apple/b32/mod.rs similarity index 96% rename from src/unix/bsd/apple/b32.rs rename to src/unix/bsd/apple/b32/mod.rs index eacb0307cc106..9248e3adf2853 100644 --- a/src/unix/bsd/apple/b32.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -106,3 +106,10 @@ extern "C" { options: ::c_ulong, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs new file mode 100644 index 0000000000000..ba9bc3ab3e28e --- /dev/null +++ b/src/unix/bsd/apple/b64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 2]); diff --git a/src/unix/bsd/apple/b64.rs b/src/unix/bsd/apple/b64/mod.rs similarity index 97% rename from src/unix/bsd/apple/b64.rs rename to src/unix/bsd/apple/b64/mod.rs index 9019babc7c1ed..7f7008387b81d 100644 --- a/src/unix/bsd/apple/b64.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -111,3 +111,10 @@ extern "C" { options: ::c_uint, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs new file mode 100644 index 0000000000000..7fffedbf9620d --- /dev/null +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 4]); diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs similarity index 82% rename from src/unix/bsd/freebsdlike/freebsd/x86_64.rs rename to src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs index 5220cde915b78..0769a22f88c7e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs @@ -15,3 +15,10 @@ cfg_if! { } } pub const MAP_32BIT: ::c_int = 0x00080000; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs new file mode 100644 index 0000000000000..ca2085497c169 --- /dev/null +++ b/src/unix/linux_like/android/b32/x86/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t([f64; 2]); diff --git a/src/unix/linux_like/android/b32/x86.rs b/src/unix/linux_like/android/b32/x86/mod.rs similarity index 99% rename from src/unix/linux_like/android/b32/x86.rs rename to src/unix/linux_like/android/b32/x86/mod.rs index a56fa004542cc..101bf2d51a2d2 100644 --- a/src/unix/linux_like/android/b32/x86.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -413,3 +413,10 @@ pub const CS: ::c_int = 13; pub const EFL: ::c_int = 14; pub const UESP: ::c_int = 15; pub const SS: ::c_int = 16; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs new file mode 100644 index 0000000000000..a71235ab299c0 --- /dev/null +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f32; 8]); diff --git a/src/unix/linux_like/android/b64/aarch64.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs similarity index 99% rename from src/unix/linux_like/android/b64/aarch64.rs rename to src/unix/linux_like/android/b64/aarch64/mod.rs index cb1c81b260579..b2b91889a2b2a 100644 --- a/src/unix/linux_like/android/b64/aarch64.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -323,3 +323,10 @@ pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; pub const SYS_syscalls: ::c_long = 292; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs new file mode 100644 index 0000000000000..7fffedbf9620d --- /dev/null +++ b/src/unix/linux_like/android/b64/x86_64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 4]); diff --git a/src/unix/linux_like/android/b64/x86_64.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs similarity index 99% rename from src/unix/linux_like/android/b64/x86_64.rs rename to src/unix/linux_like/android/b64/x86_64/mod.rs index 2ab6080a6d63f..f5b8b16ea32b5 100644 --- a/src/unix/linux_like/android/b64/x86_64.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -418,3 +418,10 @@ pub const DS: ::c_int = 23; pub const ES: ::c_int = 24; pub const FS: ::c_int = 25; pub const GS: ::c_int = 26; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index 8019b7c3bb708..8fa2186fc924c 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -1,5 +1,9 @@ macro_rules! expand_align { () => { + #[derive(Copy, Clone, Debug, PartialEq)] + #[repr(C, align(8))] + pub struct max_align_t([f64; 2]); + s! { #[repr(align(4))] pub struct pthread_mutex_t { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs new file mode 100644 index 0000000000000..cd887aca9d5cf --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t([i64; 2]); diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b32/arm.rs rename to src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 73af4b8116b06..f74b41e315671 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -859,3 +859,10 @@ pub const SYS_pkey_mprotect: ::c_long = 394; pub const SYS_pkey_alloc: ::c_long = 395; pub const SYS_pkey_free: ::c_long = 396; pub const SYS_statx: ::c_long = 397; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs new file mode 100644 index 0000000000000..a6e238d77846b --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t([f32; 4]); diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b32/mips.rs rename to src/unix/linux_like/linux/gnu/b32/mips/mod.rs index cfe8ef6927051..23b0160bffa01 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -891,3 +891,10 @@ pub const TIOCM_RNG: ::c_int = 0x200; pub const TIOCM_DSR: ::c_int = 0x400; pub const EHWPOISON: ::c_int = 168; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs new file mode 100644 index 0000000000000..c9ab8b97841d2 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 6]); diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b32/x86.rs rename to src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 67b80b28f7f9c..05e876067dd89 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -1147,3 +1147,10 @@ extern "C" { ucp: *const ucontext_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs new file mode 100644 index 0000000000000..a71235ab299c0 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f32; 8]); diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b64/aarch64.rs rename to src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 4769e74e7b325..b980a11b19110 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -936,3 +936,10 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs new file mode 100644 index 0000000000000..7fffedbf9620d --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 4]); diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b64/mips64.rs rename to src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index a9b49f3c31019..5b3da3cb2dc90 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -999,3 +999,10 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs new file mode 100644 index 0000000000000..86a5f28f1f520 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([i64; 4]); diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b64/powerpc64.rs rename to src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 212062b32af12..bd9089543afdf 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -1035,3 +1035,10 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs new file mode 100644 index 0000000000000..86a5f28f1f520 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([i64; 4]); diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/gnu/b64/sparc64.rs rename to src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 32489bc33a8b1..93b1fa5349179 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -970,3 +970,10 @@ extern "C" { newlen: ::size_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs new file mode 100644 index 0000000000000..7fffedbf9620d --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 4]); diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 2ff0969b0a143..d1a2294380961 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -906,3 +906,10 @@ cfg_if! { pub use self::not_x32::*; } } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs new file mode 100644 index 0000000000000..6b5d11820132d --- /dev/null +++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t(i64, i64); diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs similarity index 99% rename from src/unix/linux_like/linux/musl/b32/arm.rs rename to src/unix/linux_like/linux/musl/b32/arm/mod.rs index 12e977a64e0af..fd1e259fc3b5f 100644 --- a/src/unix/linux_like/linux/musl/b32/arm.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -835,3 +835,10 @@ extern "C" { flags: ::c_uint, ) -> ::ssize_t; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs new file mode 100644 index 0000000000000..a6e238d77846b --- /dev/null +++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t([f32; 4]); diff --git a/src/unix/linux_like/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs similarity index 99% rename from src/unix/linux_like/linux/musl/b32/mips.rs rename to src/unix/linux_like/linux/musl/b32/mips/mod.rs index f574223f9bd1a..7fdd121a7ac4b 100644 --- a/src/unix/linux_like/linux/musl/b32/mips.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -836,3 +836,10 @@ pub const SYS_mlock2: ::c_long = 4000 + 359; pub const SYS_copy_file_range: ::c_long = 4000 + 360; pub const SYS_preadv2: ::c_long = 4000 + 361; pub const SYS_pwritev2: ::c_long = 4000 + 362; + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs new file mode 100644 index 0000000000000..b203d7e8c8740 --- /dev/null +++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(8))] +pub struct max_align_t([f64; 3]); diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs similarity index 99% rename from src/unix/linux_like/linux/musl/b32/x86.rs rename to src/unix/linux_like/linux/musl/b32/x86/mod.rs index de73b3ebc68ab..fb5569200c2d7 100644 --- a/src/unix/linux_like/linux/musl/b32/x86.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -943,3 +943,10 @@ extern "C" { flags: ::c_uint, ) -> ::ssize_t; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs new file mode 100644 index 0000000000000..a71235ab299c0 --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f32; 8]); diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/musl/b64/aarch64.rs rename to src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index caf49ff4ad96e..8c286d83ccd21 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -645,3 +645,10 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG; extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs new file mode 100644 index 0000000000000..7fffedbf9620d --- /dev/null +++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -0,0 +1,3 @@ +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(C, align(16))] +pub struct max_align_t([f64; 4]); diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs similarity index 99% rename from src/unix/linux_like/linux/musl/b64/x86_64.rs rename to src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 9e5a8bf1e95d4..e4741a3a19830 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -917,3 +917,10 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG; extern "C" { pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs new file mode 100644 index 0000000000000..dd3a3f72d30d0 --- /dev/null +++ b/src/windows/gnu/align.rs @@ -0,0 +1,9 @@ +cfg_if! { + if #[cfg(target_pointer_width = "64")] { + #[derive(Copy, Clone, Debug, PartialEq)] + #[repr(C, align(16))] pub struct max_align_t([f64; 4]); + } else if #[cfg(target_pointer_width = "32")] { + #[derive(Copy, Clone, Debug, PartialEq)] + #[repr(C, align(16))] pub struct max_align_t([i64; 6]); + } +} diff --git a/src/windows/gnu.rs b/src/windows/gnu/mod.rs similarity index 81% rename from src/windows/gnu.rs rename to src/windows/gnu/mod.rs index d6736d87c2ba4..e74628b981e2f 100644 --- a/src/windows/gnu.rs +++ b/src/windows/gnu/mod.rs @@ -14,3 +14,10 @@ extern "C" { n: ::size_t, ) -> ::c_int; } + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} From 4fed980263cc26acf3faa0f13a4194f2380f7ec5 Mon Sep 17 00:00:00 2001 From: Salim Nasser Date: Fri, 20 Sep 2019 09:01:27 -0700 Subject: [PATCH 199/296] VxWorks libc cleanups and fixes for some libc-test issues --- src/vxworks/mod.rs | 195 +++++++++++---------------------------------- 1 file changed, 46 insertions(+), 149 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index a25b1d598f4c6..3f9930b0baaae 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -31,7 +31,7 @@ pub type ptrdiff_t = isize; pub type size_t = ::uintptr_t; pub type ssize_t = ::intptr_t; -pub type pid_t = i32; +pub type pid_t = ::c_int; pub type in_addr_t = u32; pub type sighandler_t = ::size_t; pub type cpuset_t = u32; @@ -39,7 +39,6 @@ pub type cpuset_t = u32; pub type blkcnt_t = ::c_long; pub type blksize_t = ::c_long; pub type ino_t = ::c_ulong; -pub type off_t = ::c_longlong; pub type rlim_t = ::c_ulong; pub type suseconds_t = ::c_long; @@ -70,7 +69,8 @@ pub type stat64 = ::stat; pub type pthread_key_t = ::c_ulong; // From b_off_t.h -pub type off64_t = ::c_longlong; +pub type off_t = ::c_longlong; +pub type off64_t = off_t; // From b_BOOL.h pub type BOOL = ::c_int; @@ -109,7 +109,6 @@ impl ::Clone for _Vx_semaphore { } } -// structs that only exist in userspace s! { // b_pthread_condattr_t.h pub struct pthread_condattr_t { @@ -194,7 +193,7 @@ s! { } // resource.h - pub struct rlimit { /* Is this really needed? Questionable ... */ + pub struct rlimit { pub rlim_cur : ::rlim_t, pub rlim_max : ::rlim_t, } @@ -208,7 +207,7 @@ s! { pub st_uid : ::uid_t, pub st_gid : ::gid_t, pub st_rdev : ::dev_t, - pub st_size : ::off64_t, + pub st_size : ::off_t, pub st_atime : ::time_t, pub st_mtime : ::time_t, pub st_ctime : ::time_t, @@ -253,11 +252,8 @@ s! { } // signal.h - pub struct sigaction { // pulled from kernel side, - pub sa_u : ::size_t, - // This is a union of two function pointers. - // Under the assumption that function pointers are the same - // size as other pointers, we can replace the union with size_t + pub struct sigaction { + pub sa_u : ::size_t, // actually union of two function pointers pub sa_mask : ::sigset_t, pub sa_flags : ::c_int, } @@ -273,9 +269,7 @@ s! { pub struct siginfo_t { pub si_signo : ::c_int, pub si_code : ::c_int, - // This field is a union of int and void * in vxworks - // The size has been set to the larger of the two - pub si_value : ::size_t, + pub si_value : ::size_t, // actually union of int and void * pub si_errno : ::c_int, pub si_status: ::c_int, pub si_addr: *mut ::c_void, @@ -369,9 +363,6 @@ s! { } // in6.h - // There is a different implementation in ipv6.h in - // krnl directory, but this seems to only happen - // when the VSB is built for ipv6 only. pub struct sockaddr_in6 { pub sin6_len : u8, pub sin6_family : u8, @@ -381,14 +372,6 @@ s! { pub sin6_scope_id: u32, } - pub struct passwd { - pub pw_name: *mut ::c_char, - pub pw_uid: ::uid_t, - pub pw_gid: ::gid_t, - pub pw_dir: *mut ::c_char, - pub pw_shell: *mut ::c_char, - } - pub struct Dl_info { pub dli_fname: *const ::c_char, pub dli_fbase: *mut ::c_void, @@ -785,9 +768,8 @@ pub const TCP_KEEPIDLE: ::c_int = 4; pub const TCP_KEEPINTVL: ::c_int = 5; pub const TCP_KEEPCNT: ::c_int = 6; -// IO Lib Definitions: - -pub const FIONREAD: ::c_int = 1; +// ioLib.h +pub const FIONREAD: ::c_int = 0x40040001; pub const FIOFLUSH: ::c_int = 2; pub const FIOOPTIONS: ::c_int = 3; pub const FIOBAUDRATE: ::c_int = 4; @@ -798,11 +780,11 @@ pub const FIOWHERE: ::c_int = 8; pub const FIODIRENTRY: ::c_int = 9; pub const FIORENAME: ::c_int = 10; pub const FIOREADYCHANGE: ::c_int = 11; -pub const FIOWRITE: ::c_int = 12; pub const FIODISKCHANGE: ::c_int = 13; pub const FIOCANCEL: ::c_int = 14; pub const FIOSQUEEZE: ::c_int = 15; -pub const FIONBIO: ::c_int = 16; +pub const FIONBIO: ::c_int = 0x90040010; + pub const _POSIX_PATH_MAX: ::c_int = 256; // Some poll stuff @@ -817,7 +799,7 @@ pub const POLLERR: ::c_short = 0x0008; pub const POLLHUP: ::c_short = 0x0010; pub const POLLNVAL: ::c_short = 0x0020; -//Some Fcntlcom Stuff (look at fcntlcom.h to find definitions) +// fnctlcom.h pub const FD_CLOEXEC: ::c_int = 1; pub const F_DUPFD: ::c_int = 0; pub const F_GETFD: ::c_int = 1; @@ -831,12 +813,10 @@ pub const F_SETLK: ::c_int = 8; pub const F_SETLKW: ::c_int = 9; pub const F_DUPFD_CLOEXEC: ::c_int = 14; -// Other Random Stuff -pub const VXSIM_EWOULDBLOCK: ::c_int = 70; - -pub const SIG_DFL: c_int = 0; -pub const SIG_IGN: c_int = 1; -pub const SIG_ERR: c_int = !0; +// signal.h +pub const SIG_DFL: sighandler_t = 0 as sighandler_t; +pub const SIG_IGN: sighandler_t = 1 as sighandler_t; +pub const SIG_ERR: sighandler_t = -1 as isize as sighandler_t; pub const SIGHUP: ::c_int = 1; pub const SIGINT: ::c_int = 2; @@ -1150,9 +1130,6 @@ extern "C" { } extern "C" { - pub fn getpwnam(name: *const ::c_char) -> *mut passwd; - pub fn getpwuid(uid: ::uid_t) -> *mut passwd; - pub fn fprintf( stream: *mut ::FILE, format: *const ::c_char, @@ -1262,11 +1239,6 @@ extern "C" { argv: *const *const c_char, envp: *const *const c_char, ) -> ::c_int; - /* - pub fn execvp(c: *const c_char, - argv: *const *const c_char) -> ::c_int; - */ - // pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; @@ -1313,8 +1285,6 @@ extern "C" { pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn getrlimit(resource: ::c_int, rlim: *mut rlimit) -> ::c_int; - pub fn setrlimit(resource: ::c_int, rlim: *const rlimit) -> ::c_int; pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; @@ -1340,13 +1310,25 @@ extern "C" { filename: *const ::c_char, times: *const ::timeval, ) -> ::c_int; + + #[link_name = "_rtld_dlopen"] pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; + + #[link_name = "_rtld_dlerror"] pub fn dlerror() -> *mut ::c_char; + + #[link_name = "_rtld_dlsym"] pub fn dlsym( handle: *mut ::c_void, symbol: *const ::c_char, ) -> *mut ::c_void; + + #[link_name = "_rtld_dlclose"] pub fn dlclose(handle: *mut ::c_void) -> ::c_int; + + #[link_name = "_rtld_dladdr"] + pub fn dladdr(addr: *mut ::c_void, info: *mut Dl_info) -> ::c_int; + pub fn res_init() -> ::c_int; // time.h @@ -1418,7 +1400,6 @@ extern "C" { stream: *mut FILE, ) -> ssize_t; - pub fn _rtld_dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; } extern "C" { @@ -1532,12 +1513,7 @@ extern "C" { // fcntl.h or // ioLib.h - pub fn open( - // this might be hacked - path: *const ::c_char, - oflag: ::c_int, - ... - ) -> ::c_int; + pub fn open(path: *const ::c_char, oflag: ::c_int, ...) -> ::c_int; // poll.h pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; @@ -1842,12 +1818,8 @@ extern "C" { // ioLib.h or // unistd.h - pub fn read( - // Since this is from FD< big errors might happen - fd: ::c_int, - buf: *mut ::c_void, - count: ::size_t, - ) -> ::ssize_t; + pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) + -> ::ssize_t; // ioLib.h or // unistd.h @@ -1893,33 +1865,21 @@ extern "C" { pub fn freeaddrinfo(res: *mut addrinfo); // signal.h - pub fn signal( - // Probably wrong ... - signum: ::c_int, - handler: sighandler_t, - ) -> sighandler_t; + pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; // unistd.h - pub fn getpid() -> ::c_int; //should be pid_t, but is being dodged + pub fn getpid() -> pid_t; // unistd.h - pub fn getppid() -> ::c_int; + pub fn getppid() -> pid_t; // wait.h - pub fn waitpid( - pid: ::c_int, //should be pid_t, but is being dodged - status: *mut ::c_int, - optons: ::c_int, - ) -> ::c_int; //should be pid_t, but is being dodged + pub fn waitpid(pid: pid_t, status: *mut ::c_int, optons: ::c_int) + -> pid_t; // unistd.h pub fn sysconf(attr: ::c_int) -> ::c_long; - // unistd.h - // For user space, return value is static inline int - // For kernel space, exactly how it should be - pub fn getpagesize() -> ::c_int; - // stdlib.h pub fn setenv( // setenv.c @@ -1934,6 +1894,12 @@ extern "C" { envVarName: *const ::c_char, ) -> ::c_int; + // stdlib.h + pub fn realpath( + fileName: *const ::c_char, + resolvedName: *mut ::c_char, + ) -> *mut ::c_char; + // unistd.h pub fn link(src: *const ::c_char, dst: *const ::c_char) -> ::c_int; @@ -1968,20 +1934,6 @@ extern "C" { // dirent.h pub fn closedir(ptr: *mut ::DIR) -> ::c_int; - pub fn pwrite64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; - - pub fn pread64( - fd: ::c_int, - buf: *const ::c_void, - count: ::size_t, - offset: off64_t, - ) -> ::ssize_t; - // sched.h pub fn sched_yield() -> ::c_int; @@ -1991,9 +1943,6 @@ extern "C" { // errnoLib.h pub fn errnoGet() -> ::c_int; - pub fn fork(// Does not exist at all - ) -> ::c_int; - // unistd.h pub fn _exit(status: ::c_int) -> !; @@ -2009,12 +1958,6 @@ extern "C" { // unistd.h pub fn getuid() -> ::uid_t; - pub fn setgroups( - // Does not exist at all - ngroups: ::c_int, - grouplist: *const ::gid_t, - ) -> ::c_int; - // signal.h pub fn sigemptyset(__set: *mut sigset_t) -> ::c_int; @@ -2026,21 +1969,12 @@ extern "C" { __oset: *mut sigset_t, ) -> ::c_int; - pub fn execvp( - // Does not exist at all - c: *const ::c_char, - argv: *const *const ::c_char, - ) -> ::c_int; - // signal.h for user - pub fn kill( - __pid: ::c_int, //should be pid_t, but is being dodged - __signo: ::c_int, - ) -> ::c_int; + pub fn kill(__pid: pid_t, __signo: ::c_int) -> ::c_int; // signal.h for user pub fn sigqueue( - __pid: ::c_int, //should be pid_t, but is being dodged + __pid: pid_t, __signo: ::c_int, __value: ::size_t, // Actual type is const union sigval value, // which is a union of int and void * @@ -2056,12 +1990,11 @@ extern "C" { ) -> ::c_int; // signal.h - // It seems like for kernel space, this function doesn't actually exist, - // it just macros to kill pub fn taskKill(taskId: ::TASK_ID, signo: ::c_int) -> ::c_int; // signal.h pub fn raise(__signo: ::c_int) -> ::c_int; + // taskLibCommon.h pub fn taskIdSelf() -> ::TASK_ID; pub fn taskDelay(ticks: ::_Vx_ticks_t) -> ::c_int; @@ -2099,10 +2032,6 @@ extern "C" { pub fn randSecure() -> c_int; } -pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int { - unsafe { _rtld_dladdr(addr, info) } -} - //Dummy functions, these don't really exist in VxWorks. // wait.h macros @@ -2171,38 +2100,6 @@ pub fn posix_memalign( } } -// From sysconf.c -> doesn't seem to be supported? -pub fn getpwuid_r( - _uid: ::uid_t, - _pwd: *mut passwd, - _buf: *mut ::c_char, - _buflen: ::size_t, - _result: *mut *mut passwd, -) -> ::c_int { - 0 -} - -// VxWorks requires that resolvedName be allocated in userspace -pub fn realpath( - fileName: *const ::c_char, - resolvedName: *mut ::c_char, -) -> *mut ::c_char { - unsafe { - if resolvedName == null_mut::<::c_char>() { - let emptyResolvedName = - super::malloc(::_POSIX_PATH_MAX as _) as *mut ::c_char; - let r = _realpath(fileName, emptyResolvedName); - - if r == null_mut::<::c_char>() { - super::free(emptyResolvedName as *mut _); - } - r - } else { - _realpath(fileName, resolvedName) - } - } -} - cfg_if! { if #[cfg(libc_core_cvoid)] { pub use ::ffi::c_void; From 9b97095acc13ba52164eb1d00a0c044ec28d9978 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Sat, 21 Sep 2019 14:45:07 +0200 Subject: [PATCH 200/296] Skip max_align_t in FreeBSD10 --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 73ac02decb85f..d6982fc9525d8 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1646,6 +1646,9 @@ fn test_freebsd(target: &str) { // `mmsghdr` is not available in FreeBSD 10 "mmsghdr" if Some(10) == freebsd_ver => true, + // `max_align_t` is not available in FreeBSD 10 + "max_align_t" if Some(10) == freebsd_ver => true, + _ => false, } }); From c6c664525ad6124df5a8cfd5b9df24f551795efc Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Fri, 20 Sep 2019 16:47:38 -0700 Subject: [PATCH 201/296] use FILTER to select which target(s) to run --- ci/build.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index 3ce10deb32ca4..64ff06d7a9560 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -2,6 +2,8 @@ # Checks that libc builds properly for all supported targets on a particular # Rust version: +# The FILTER environment variable can be used to select which target(s) to build. +# For example: set FILTER to vxworks to select the targets that has vxworks in name set -ex @@ -176,7 +178,9 @@ case "${OS}" in esac for TARGET in $TARGETS; do - test_target build "$TARGET" + if echo "$TARGET"|grep -q "$FILTER";then + test_target build "$TARGET" + fi done # FIXME: https://github.com/rust-lang/rust/issues/58564 @@ -237,7 +241,9 @@ powerpc64-wrs-vxworks \ if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then for TARGET in $RUST_LINUX_NO_CORE_TARGETS; do - test_target xbuild "$TARGET" 1 + if echo "$TARGET"|grep -q "$FILTER";then + test_target xbuild "$TARGET" 1 + fi done # Nintendo switch From 95b1e24db9ccfb144574b65cb22611d31ebcdd29 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Mon, 23 Sep 2019 10:59:16 -0700 Subject: [PATCH 202/296] use union for unions --- src/vxworks/mod.rs | 61 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 3f9930b0baaae..6fb79c1db05d0 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -252,8 +252,9 @@ s! { } // signal.h + pub struct sigaction { - pub sa_u : ::size_t, // actually union of two function pointers + pub sa_u : ::sa_u_t, pub sa_mask : ::sigset_t, pub sa_flags : ::c_int, } @@ -269,7 +270,7 @@ s! { pub struct siginfo_t { pub si_signo : ::c_int, pub si_code : ::c_int, - pub si_value : ::size_t, // actually union of int and void * + pub si_value : ::sigval, pub si_errno : ::c_int, pub si_status: ::c_int, pub si_addr: *mut ::c_void, @@ -414,6 +415,16 @@ s_no_extra_traits! { pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], } + pub union sa_u_t { + pub sa_handler : extern "C" fn(::c_int) -> !, + pub sa_sigaction: extern "C" fn(::c_int, *mut ::siginfo_t, + *mut ::c_void) -> !, + } + + pub union sigval { + pub sival_int : ::c_int, + pub sival_ptr : *mut ::c_void, + } } cfg_if! { @@ -463,6 +474,46 @@ cfg_if! { .finish() } } + + impl PartialEq for sa_u_t { + fn eq(&self, other: &sa_u_t) -> bool { + unsafe { self.sa_handler == other.sa_handler } + } + } + impl Eq for sa_u_t {} + impl ::fmt::Debug for sa_u_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sa_u_t") + .field("sa_handler", unsafe { &self.sa_handler }) + .field("sa_sigaction", unsafe { &self.sa_sigaction }) + .finish() + } + } + impl ::hash::Hash for sa_u_t { + fn hash(&self, state: &mut H) { + unsafe { self.sa_handler.hash(state) }; + } + } + + impl PartialEq for sigval { + fn eq(&self, other: &sigval) -> bool { + unsafe { self.sival_ptr == other.sival_ptr } + } + } + impl Eq for sigval {} + impl ::fmt::Debug for sigval { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigval") + .field("sival_int", unsafe { &self.sival_int}) + .field("sival_ptr", unsafe { &self.sival_ptr }) + .finish() + } + } + impl ::hash::Hash for sigval { + fn hash(&self, state: &mut H) { + unsafe { self.sival_ptr.hash(state) }; + } + } } } @@ -1976,16 +2027,14 @@ extern "C" { pub fn sigqueue( __pid: pid_t, __signo: ::c_int, - __value: ::size_t, // Actual type is const union sigval value, - // which is a union of int and void * + __value: ::sigval, ) -> ::c_int; // signal.h for user pub fn _sigqueue( rtpId: ::RTP_ID, signo: ::c_int, - pValue: *mut ::size_t, // Actual type is const union * sigval value, - // which is a union of int and void * + pValue: *const ::sigval, sigCode: ::c_int, ) -> ::c_int; From d751f237125d96147cb5eb1d074113a5e5cf8d10 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Mon, 23 Sep 2019 14:53:41 -0700 Subject: [PATCH 203/296] move rtpSpawn from libstd to libc --- src/vxworks/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 6fb79c1db05d0..f17773dae7628 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -2050,6 +2050,15 @@ extern "C" { // rtpLibCommon.h pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; + pub fn rtpSpawn( + pubrtpFileName: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + priority: ::c_int, + uStackSize: ::size_t, + options: ::c_int, + taskOptions: ::c_int, + ) -> RTP_ID; // ioLib.h pub fn _realpath( From 97f6c6751c2e240386dd53b7a804d9372eca3411 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Mon, 23 Sep 2019 14:53:41 -0700 Subject: [PATCH 204/296] move rtpSpawn and RTP_ID_ERROR from libstd to libc --- src/vxworks/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 6fb79c1db05d0..77d8955936d0c 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -968,6 +968,7 @@ pub const SEEK_END: ::c_int = 2; // rtpLibCommon.h pub const VX_RTP_NAME_LENGTH: usize = 255; +pub const RTP_ID_ERROR: ::RTP_ID = -1; // h/public/unistd.h pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h @@ -2050,6 +2051,15 @@ extern "C" { // rtpLibCommon.h pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; + pub fn rtpSpawn( + pubrtpFileName: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + priority: ::c_int, + uStackSize: ::size_t, + options: ::c_int, + taskOptions: ::c_int, + ) -> RTP_ID; // ioLib.h pub fn _realpath( From b4f42d540114b88e2ac36ecf48e48a1bba062281 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Mon, 23 Sep 2019 10:59:16 -0700 Subject: [PATCH 205/296] use union for unions --- src/vxworks/mod.rs | 82 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 6 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 3f9930b0baaae..9307f36131ca6 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -252,8 +252,9 @@ s! { } // signal.h + pub struct sigaction { - pub sa_u : ::size_t, // actually union of two function pointers + pub sa_u : ::sa_u_t, pub sa_mask : ::sigset_t, pub sa_flags : ::c_int, } @@ -269,7 +270,7 @@ s! { pub struct siginfo_t { pub si_signo : ::c_int, pub si_code : ::c_int, - pub si_value : ::size_t, // actually union of int and void * + pub si_value : ::sigval, pub si_errno : ::c_int, pub si_status: ::c_int, pub si_addr: *mut ::c_void, @@ -414,6 +415,16 @@ s_no_extra_traits! { pub __ss_pad2 : [::c_char; _SS_PAD2SIZE], } + pub union sa_u_t { + pub sa_handler : Option !>, + pub sa_sigaction: Option !>, + } + + pub union sigval { + pub sival_int : ::c_int, + pub sival_ptr : *mut ::c_void, + } } cfg_if! { @@ -463,6 +474,67 @@ cfg_if! { .finish() } } + + impl PartialEq for sa_u_t { + fn eq(&self, other: &sa_u_t) -> bool { + unsafe { + let h1 = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + let h2 = match other.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + h1 == h2 + } + } + } + impl Eq for sa_u_t {} + impl ::fmt::Debug for sa_u_t { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + unsafe { + let h = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + + f.debug_struct("sa_u_t") + .field("sa_handler", &h) + .finish() + } + } + } + impl ::hash::Hash for sa_u_t { + fn hash(&self, state: &mut H) { + unsafe { + let h = match self.sa_handler { + Some(handler) => handler as usize, + None => 0 as usize, + }; + h.hash(state) + } + } + } + + impl PartialEq for sigval { + fn eq(&self, other: &sigval) -> bool { + unsafe { self.sival_ptr as usize == other.sival_ptr as usize } + } + } + impl Eq for sigval {} + impl ::fmt::Debug for sigval { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("sigval") + .field("sival_ptr", unsafe { &(self.sival_ptr as usize) }) + .finish() + } + } + impl ::hash::Hash for sigval { + fn hash(&self, state: &mut H) { + unsafe { (self.sival_ptr as usize).hash(state) }; + } + } } } @@ -1976,16 +2048,14 @@ extern "C" { pub fn sigqueue( __pid: pid_t, __signo: ::c_int, - __value: ::size_t, // Actual type is const union sigval value, - // which is a union of int and void * + __value: ::sigval, ) -> ::c_int; // signal.h for user pub fn _sigqueue( rtpId: ::RTP_ID, signo: ::c_int, - pValue: *mut ::size_t, // Actual type is const union * sigval value, - // which is a union of int and void * + pValue: *const ::sigval, sigCode: ::c_int, ) -> ::c_int; From 8d839010207a0e17fd374e00b725b142d0ac7cc0 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Mon, 23 Sep 2019 14:53:41 -0700 Subject: [PATCH 206/296] move rtpSpawn and RTP_ID_ERROR from libstd to libc --- src/vxworks/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 9307f36131ca6..f1aff9d4bd553 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -989,6 +989,7 @@ pub const SEEK_END: ::c_int = 2; // rtpLibCommon.h pub const VX_RTP_NAME_LENGTH: usize = 255; +pub const RTP_ID_ERROR: ::RTP_ID = -1; // h/public/unistd.h pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 21; // Via unistd.h @@ -2071,6 +2072,15 @@ extern "C" { // rtpLibCommon.h pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; + pub fn rtpSpawn( + pubrtpFileName: *const ::c_char, + argv: *const *const ::c_char, + envp: *const *const ::c_char, + priority: ::c_int, + uStackSize: ::size_t, + options: ::c_int, + taskOptions: ::c_int, + ) -> RTP_ID; // ioLib.h pub fn _realpath( From fe67d7d9f967ec5bd9271bfbd0b0b7609a5c451e Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 25 Sep 2019 19:36:04 +0200 Subject: [PATCH 207/296] Fix max_align_t --- src/unix/bsd/apple/b32/align.rs | 7 ++++--- src/unix/bsd/apple/b64/align.rs | 7 ++++--- src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs | 7 ++++--- src/unix/linux_like/android/b32/x86/align.rs | 7 ++++--- src/unix/linux_like/android/b64/aarch64/align.rs | 7 ++++--- src/unix/linux_like/android/b64/x86_64/align.rs | 7 ++++--- src/unix/linux_like/emscripten/align.rs | 7 +++---- src/unix/linux_like/linux/gnu/b32/arm/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b32/mips/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b32/x86/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b64/aarch64/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b64/mips64/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b64/sparc64/align.rs | 7 ++++--- src/unix/linux_like/linux/gnu/b64/x86_64/align.rs | 7 ++++--- src/unix/linux_like/linux/musl/b32/arm/align.rs | 7 ++++--- src/unix/linux_like/linux/musl/b32/mips/align.rs | 7 ++++--- src/unix/linux_like/linux/musl/b32/x86/align.rs | 7 ++++--- src/unix/linux_like/linux/musl/b64/aarch64/align.rs | 7 ++++--- src/unix/linux_like/linux/musl/b64/x86_64/align.rs | 7 ++++--- src/windows/gnu/align.rs | 10 ++++++---- 21 files changed, 85 insertions(+), 65 deletions(-) diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs index ba9bc3ab3e28e..374a994b82258 100644 --- a/src/unix/bsd/apple/b32/align.rs +++ b/src/unix/bsd/apple/b32/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 2]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 2]); +} diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs index ba9bc3ab3e28e..374a994b82258 100644 --- a/src/unix/bsd/apple/b64/align.rs +++ b/src/unix/bsd/apple/b64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 2]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 2]); +} diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs index 7fffedbf9620d..33a0bc5daffce 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 4]); +} diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs index ca2085497c169..b3abe679aedba 100644 --- a/src/unix/linux_like/android/b32/x86/align.rs +++ b/src/unix/linux_like/android/b32/x86/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t([f64; 2]); +s! { + #[repr(align(8))] + pub struct max_align_t([f64; 2]); +} diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs index a71235ab299c0..9531ca4f8beed 100644 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f32; 8]); +s! { + #[repr(align(16))] + pub struct max_align_t([f32; 8]); +} diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs index 7fffedbf9620d..33a0bc5daffce 100644 --- a/src/unix/linux_like/android/b64/x86_64/align.rs +++ b/src/unix/linux_like/android/b64/x86_64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 4]); +} diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index 8fa2186fc924c..e024ce08c83bb 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -1,10 +1,9 @@ macro_rules! expand_align { () => { - #[derive(Copy, Clone, Debug, PartialEq)] - #[repr(C, align(8))] - pub struct max_align_t([f64; 2]); - s! { + #[repr(align(8))] + pub struct max_align_t([f64; 2]); + #[repr(align(4))] pub struct pthread_mutex_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs index cd887aca9d5cf..3817254bff448 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t([i64; 2]); +s! { + #[repr(align(8))] + pub struct max_align_t([i64; 2]); +} diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs index a6e238d77846b..8a5f872f5c0fb 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t([f32; 4]); +s! { + #[repr(align(8))] + pub struct max_align_t([f32; 4]); +} diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs index c9ab8b97841d2..afd65bac7d527 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 6]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 6]); +} diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs index a71235ab299c0..9531ca4f8beed 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f32; 8]); +s! { + #[repr(align(16))] + pub struct max_align_t([f32; 8]); +} diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs index 7fffedbf9620d..33a0bc5daffce 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 4]); +} diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs index 86a5f28f1f520..56681afce2f3c 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([i64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([i64; 4]); +} diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs index 86a5f28f1f520..56681afce2f3c 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([i64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([i64; 4]); +} diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs index 7fffedbf9620d..33a0bc5daffce 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 4]); +} diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs index 6b5d11820132d..6b2a39c96f0b2 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t(i64, i64); +s! { + #[repr(align(8))] + pub struct max_align_t(i64, i64); +} diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs index a6e238d77846b..8a5f872f5c0fb 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t([f32; 4]); +s! { + #[repr(align(8))] + pub struct max_align_t([f32; 4]); +} diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs index b203d7e8c8740..707d113cf75dd 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(8))] -pub struct max_align_t([f64; 3]); +s! { + #[repr(align(8))] + pub struct max_align_t([f64; 3]); +} diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs index a71235ab299c0..9531ca4f8beed 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f32; 8]); +s! { + #[repr(align(16))] + pub struct max_align_t([f32; 8]); +} diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs index 7fffedbf9620d..33a0bc5daffce 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -1,3 +1,4 @@ -#[derive(Copy, Clone, Debug, PartialEq)] -#[repr(C, align(16))] -pub struct max_align_t([f64; 4]); +s! { + #[repr(align(16))] + pub struct max_align_t([f64; 4]); +} diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs index dd3a3f72d30d0..5459791ab3393 100644 --- a/src/windows/gnu/align.rs +++ b/src/windows/gnu/align.rs @@ -1,9 +1,11 @@ cfg_if! { if #[cfg(target_pointer_width = "64")] { - #[derive(Copy, Clone, Debug, PartialEq)] - #[repr(C, align(16))] pub struct max_align_t([f64; 4]); + s! { + #[repr(align(16))] pub struct max_align_t([f64; 4]); + } } else if #[cfg(target_pointer_width = "32")] { - #[derive(Copy, Clone, Debug, PartialEq)] - #[repr(C, align(16))] pub struct max_align_t([i64; 6]); + s! { + #[repr(align(16))] pub struct max_align_t([i64; 6]); + } } } From db8785d0e2b0910d7a55db59fcf3925c53bdea68 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 25 Sep 2019 19:46:43 +0200 Subject: [PATCH 208/296] Do not use tuple structs --- src/unix/bsd/apple/b32/align.rs | 4 +++- src/unix/bsd/apple/b64/align.rs | 4 +++- src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs | 4 +++- src/unix/linux_like/android/b32/x86/align.rs | 4 +++- src/unix/linux_like/android/b64/aarch64/align.rs | 4 +++- src/unix/linux_like/android/b64/x86_64/align.rs | 4 +++- src/unix/linux_like/emscripten/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b32/arm/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b32/mips/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b32/x86/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b64/aarch64/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b64/mips64/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b64/sparc64/align.rs | 4 +++- src/unix/linux_like/linux/gnu/b64/x86_64/align.rs | 4 +++- src/unix/linux_like/linux/musl/b32/arm/align.rs | 4 +++- src/unix/linux_like/linux/musl/b32/mips/align.rs | 4 +++- src/unix/linux_like/linux/musl/b32/x86/align.rs | 4 +++- src/unix/linux_like/linux/musl/b64/aarch64/align.rs | 4 +++- src/unix/linux_like/linux/musl/b64/x86_64/align.rs | 4 +++- src/windows/gnu/align.rs | 10 ++++++++-- 21 files changed, 68 insertions(+), 22 deletions(-) diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs index 374a994b82258..3750130a1fb46 100644 --- a/src/unix/bsd/apple/b32/align.rs +++ b/src/unix/bsd/apple/b32/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 2]); + pub struct max_align_t { + priv_: [f64; 2] + } } diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs index 374a994b82258..3750130a1fb46 100644 --- a/src/unix/bsd/apple/b64/align.rs +++ b/src/unix/bsd/apple/b64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 2]); + pub struct max_align_t { + priv_: [f64; 2] + } } diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs index 33a0bc5daffce..340ad79821862 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 4]); + pub struct max_align_t { + priv_: [f64; 4] + } } diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs index b3abe679aedba..50c79983739f5 100644 --- a/src/unix/linux_like/android/b32/x86/align.rs +++ b/src/unix/linux_like/android/b32/x86/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t([f64; 2]); + pub struct max_align_t { + priv_: [f64; 2] + } } diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs index 9531ca4f8beed..265118d83c4c8 100644 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f32; 8]); + pub struct max_align_t { + priv_: [f32; 8] + } } diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs index 33a0bc5daffce..340ad79821862 100644 --- a/src/unix/linux_like/android/b64/x86_64/align.rs +++ b/src/unix/linux_like/android/b64/x86_64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 4]); + pub struct max_align_t { + priv_: [f64; 4] + } } diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index e024ce08c83bb..c00a6fbd05091 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -2,7 +2,9 @@ macro_rules! expand_align { () => { s! { #[repr(align(8))] - pub struct max_align_t([f64; 2]); + pub struct max_align_t { + priv_: f64; 2] + } #[repr(align(4))] pub struct pthread_mutex_t { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs index 3817254bff448..52fffb7bc71e5 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t([i64; 2]); + pub struct max_align_t { + priv_: [i64; 2] + } } diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs index 8a5f872f5c0fb..7bf5665c2f0cc 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t([f32; 4]); + pub struct max_align_t { + priv_: [f32; 4] + } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs index afd65bac7d527..a1afce4c96bc9 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 6]); + pub struct max_align_t { + priv_: [f64; 6] + } } diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs index 9531ca4f8beed..265118d83c4c8 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f32; 8]); + pub struct max_align_t { + priv_: [f32; 8] + } } diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs index 33a0bc5daffce..340ad79821862 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 4]); + pub struct max_align_t { + priv_: [f64; 4] + } } diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs index 56681afce2f3c..67e0f07817638 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([i64; 4]); + pub struct max_align_t { + priv_: [i64; 4] + } } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs index 56681afce2f3c..67e0f07817638 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([i64; 4]); + pub struct max_align_t { + priv_: [i64; 4] + } } diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs index 33a0bc5daffce..340ad79821862 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 4]); + pub struct max_align_t { + priv_: [f64; 4] + } } diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs index 6b2a39c96f0b2..cb1ab5d22a396 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t(i64, i64); + pub struct max_align_t { + priv_: (i64, i64) + } } diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs index 8a5f872f5c0fb..7bf5665c2f0cc 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t([f32; 4]); + pub struct max_align_t { + priv_: [f32; 4] + } } diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs index 707d113cf75dd..6caf90b391d0b 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(8))] - pub struct max_align_t([f64; 3]); + pub struct max_align_t { + priv_: [f64; 3] + } } diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs index 9531ca4f8beed..265118d83c4c8 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f32; 8]); + pub struct max_align_t { + priv_: [f32; 8] + } } diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs index 33a0bc5daffce..340ad79821862 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -1,4 +1,6 @@ s! { #[repr(align(16))] - pub struct max_align_t([f64; 4]); + pub struct max_align_t { + priv_: [f64; 4] + } } diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs index 5459791ab3393..d519b181beb91 100644 --- a/src/windows/gnu/align.rs +++ b/src/windows/gnu/align.rs @@ -1,11 +1,17 @@ cfg_if! { if #[cfg(target_pointer_width = "64")] { s! { - #[repr(align(16))] pub struct max_align_t([f64; 4]); + #[repr(align(16))] + pub struct max_align_t { + priv_: [f64; 4] + } } } else if #[cfg(target_pointer_width = "32")] { s! { - #[repr(align(16))] pub struct max_align_t([i64; 6]); + #[repr(align(16))] + pub struct max_align_t { + priv_: [i64; 6] + } } } } From dbc89082d9d80176f25b8717156bf7c7a724a3d3 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 25 Sep 2019 20:11:51 +0200 Subject: [PATCH 209/296] use no-extra-traits --- src/unix/bsd/apple/b32/align.rs | 2 +- src/unix/bsd/apple/b64/align.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs | 2 +- src/unix/linux_like/android/b32/x86/align.rs | 2 +- src/unix/linux_like/android/b64/aarch64/align.rs | 2 +- src/unix/linux_like/android/b64/x86_64/align.rs | 2 +- src/unix/linux_like/emscripten/align.rs | 11 ++++++----- src/unix/linux_like/linux/gnu/b32/arm/align.rs | 2 +- src/unix/linux_like/linux/gnu/b32/mips/align.rs | 2 +- src/unix/linux_like/linux/gnu/b32/x86/align.rs | 2 +- src/unix/linux_like/linux/gnu/b64/aarch64/align.rs | 2 +- src/unix/linux_like/linux/gnu/b64/mips64/align.rs | 2 +- src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs | 2 +- src/unix/linux_like/linux/gnu/b64/sparc64/align.rs | 2 +- src/unix/linux_like/linux/gnu/b64/x86_64/align.rs | 2 +- src/unix/linux_like/linux/musl/b32/arm/align.rs | 2 +- src/unix/linux_like/linux/musl/b32/mips/align.rs | 2 +- src/unix/linux_like/linux/musl/b32/x86/align.rs | 2 +- src/unix/linux_like/linux/musl/b64/aarch64/align.rs | 2 +- src/unix/linux_like/linux/musl/b64/x86_64/align.rs | 2 +- src/windows/gnu/align.rs | 4 ++-- 21 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs index 3750130a1fb46..903806659d2be 100644 --- a/src/unix/bsd/apple/b32/align.rs +++ b/src/unix/bsd/apple/b32/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs index 3750130a1fb46..903806659d2be 100644 --- a/src/unix/bsd/apple/b64/align.rs +++ b/src/unix/bsd/apple/b64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs index 340ad79821862..6570c75354e86 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs index 50c79983739f5..3835f14fc96a9 100644 --- a/src/unix/linux_like/android/b32/x86/align.rs +++ b/src/unix/linux_like/android/b32/x86/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs index 265118d83c4c8..0b39c4b29e028 100644 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs index 340ad79821862..6570c75354e86 100644 --- a/src/unix/linux_like/android/b64/x86_64/align.rs +++ b/src/unix/linux_like/android/b64/x86_64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index c00a6fbd05091..07fe9d7957455 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -1,11 +1,6 @@ macro_rules! expand_align { () => { s! { - #[repr(align(8))] - pub struct max_align_t { - priv_: f64; 2] - } - #[repr(align(4))] pub struct pthread_mutex_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], @@ -40,6 +35,12 @@ macro_rules! expand_align { pub struct pthread_cond_t { size: [u8; ::__SIZEOF_PTHREAD_COND_T], } + + #[repr(align(8))] + pub struct max_align_t { + priv_: f64; 2] + } + } cfg_if! { diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs index 52fffb7bc71e5..95873dcf665fc 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [i64; 2] diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs index 7bf5665c2f0cc..69e17c529c34e 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4] diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs index a1afce4c96bc9..a36312f355869 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 6] diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs index 265118d83c4c8..0b39c4b29e028 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs index 340ad79821862..6570c75354e86 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs index 67e0f07817638..bee1157061219 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs index 67e0f07817638..bee1157061219 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs index 340ad79821862..6570c75354e86 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs index cb1ab5d22a396..45daecde4e84f 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: (i64, i64) diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs index 7bf5665c2f0cc..69e17c529c34e 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4] diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs index 6caf90b391d0b..c59299dbc3090 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3] diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs index 265118d83c4c8..0b39c4b29e028 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs index 340ad79821862..6570c75354e86 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -1,4 +1,4 @@ -s! { +s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs index d519b181beb91..3635f20f09c84 100644 --- a/src/windows/gnu/align.rs +++ b/src/windows/gnu/align.rs @@ -1,13 +1,13 @@ cfg_if! { if #[cfg(target_pointer_width = "64")] { - s! { + s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] } } } else if #[cfg(target_pointer_width = "32")] { - s! { + s_no_extra_traits! { #[repr(align(16))] pub struct max_align_t { priv_: [i64; 6] From 16ddbc26f50ebcf8a471c9b2d60e364200c9b330 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 25 Sep 2019 20:19:52 +0200 Subject: [PATCH 210/296] max_align_t does not need Debug --- src/unix/bsd/apple/b32/align.rs | 1 + src/unix/bsd/apple/b64/align.rs | 1 + src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs | 1 + src/unix/linux_like/android/b32/x86/align.rs | 1 + src/unix/linux_like/android/b64/aarch64/align.rs | 1 + src/unix/linux_like/android/b64/x86_64/align.rs | 1 + src/unix/linux_like/emscripten/align.rs | 1 + src/unix/linux_like/linux/gnu/b32/arm/align.rs | 1 + src/unix/linux_like/linux/gnu/b32/mips/align.rs | 1 + src/unix/linux_like/linux/gnu/b32/x86/align.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64/align.rs | 1 + src/unix/linux_like/linux/gnu/b64/mips64/align.rs | 1 + src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs | 1 + src/unix/linux_like/linux/gnu/b64/sparc64/align.rs | 1 + src/unix/linux_like/linux/gnu/b64/x86_64/align.rs | 1 + src/unix/linux_like/linux/musl/b32/arm/align.rs | 1 + src/unix/linux_like/linux/musl/b32/mips/align.rs | 1 + src/unix/linux_like/linux/musl/b32/x86/align.rs | 1 + src/unix/linux_like/linux/musl/b64/aarch64/align.rs | 1 + src/unix/linux_like/linux/musl/b64/x86_64/align.rs | 1 + src/windows/gnu/align.rs | 2 ++ 21 files changed, 22 insertions(+) diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs index 903806659d2be..ca1fe1ce29944 100644 --- a/src/unix/bsd/apple/b32/align.rs +++ b/src/unix/bsd/apple/b32/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs index 903806659d2be..ca1fe1ce29944 100644 --- a/src/unix/bsd/apple/b64/align.rs +++ b/src/unix/bsd/apple/b64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs index 6570c75354e86..7ca870fd02b71 100644 --- a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs +++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs index 3835f14fc96a9..04df4a05d19b7 100644 --- a/src/unix/linux_like/android/b32/x86/align.rs +++ b/src/unix/linux_like/android/b32/x86/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 2] diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs index 0b39c4b29e028..8e949963a637f 100644 --- a/src/unix/linux_like/android/b64/aarch64/align.rs +++ b/src/unix/linux_like/android/b64/aarch64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs index 6570c75354e86..7ca870fd02b71 100644 --- a/src/unix/linux_like/android/b64/x86_64/align.rs +++ b/src/unix/linux_like/android/b64/x86_64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index 07fe9d7957455..d5723bd73608e 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -1,6 +1,7 @@ macro_rules! expand_align { () => { s! { + #[allow(missing_debug_implementations)] #[repr(align(4))] pub struct pthread_mutex_t { size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T], diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs index 95873dcf665fc..825546be90a91 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [i64; 2] diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs index 69e17c529c34e..8c228ebab72ce 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4] diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs index a36312f355869..96634749f53b2 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/align.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 6] diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs index 0b39c4b29e028..8e949963a637f 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs index 6570c75354e86..7ca870fd02b71 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs index bee1157061219..29d1e1c7b8a55 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs index bee1157061219..29d1e1c7b8a55 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 4] diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs index 6570c75354e86..7ca870fd02b71 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs index 45daecde4e84f..aedbf7a99eb1b 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/align.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: (i64, i64) diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs index 69e17c529c34e..8c228ebab72ce 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/align.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f32; 4] diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs index c59299dbc3090..79544176a88c9 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/align.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 3] diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs index 0b39c4b29e028..8e949963a637f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f32; 8] diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs index 6570c75354e86..7ca870fd02b71 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs @@ -1,4 +1,5 @@ s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs index 3635f20f09c84..3af99e3ca149b 100644 --- a/src/windows/gnu/align.rs +++ b/src/windows/gnu/align.rs @@ -1,6 +1,7 @@ cfg_if! { if #[cfg(target_pointer_width = "64")] { s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [f64; 4] @@ -8,6 +9,7 @@ cfg_if! { } } else if #[cfg(target_pointer_width = "32")] { s_no_extra_traits! { + #[allow(missing_debug_implementations)] #[repr(align(16))] pub struct max_align_t { priv_: [i64; 6] From 92658ffe04165bd923afda60eca3774923a450a5 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 25 Sep 2019 22:38:05 +0200 Subject: [PATCH 211/296] Fix typo --- src/unix/linux_like/emscripten/align.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index d5723bd73608e..ea0f002a10de5 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -39,7 +39,7 @@ macro_rules! expand_align { #[repr(align(8))] pub struct max_align_t { - priv_: f64; 2] + priv_: [f64; 2] } } From 56d46471e7c8f10554d2551569ff3d3ef42eccf4 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 26 Sep 2019 00:11:36 +0200 Subject: [PATCH 212/296] Allow missing debug impls in emscripten --- src/unix/linux_like/emscripten/align.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs index ea0f002a10de5..141570f88ffb9 100644 --- a/src/unix/linux_like/emscripten/align.rs +++ b/src/unix/linux_like/emscripten/align.rs @@ -37,6 +37,7 @@ macro_rules! expand_align { size: [u8; ::__SIZEOF_PTHREAD_COND_T], } + #[allow(missing_debug_implementations)] #[repr(align(8))] pub struct max_align_t { priv_: [f64; 2] From fc80bbbf98f5f5abc6401fa363cc13f8dbabd3ef Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Wed, 25 Sep 2019 17:03:57 -0700 Subject: [PATCH 213/296] update rtpSpawn prototype --- src/vxworks/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 8745cd1653be5..bb931b713f169 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -2074,8 +2074,8 @@ extern "C" { pub fn rtpInfoGet(rtpId: ::RTP_ID, rtpStruct: *mut ::RTP_DESC) -> ::c_int; pub fn rtpSpawn( pubrtpFileName: *const ::c_char, - argv: *const *const ::c_char, - envp: *const *const ::c_char, + argv: *mut *const ::c_char, + envp: *mut *const ::c_char, priority: ::c_int, uStackSize: ::size_t, options: ::c_int, From 740ac0c2d0987a7556e1273d5d25e4e7a5ca15e8 Mon Sep 17 00:00:00 2001 From: Baoshan Pang Date: Wed, 25 Sep 2019 17:19:40 -0700 Subject: [PATCH 214/296] Using 'Option' with :: --- src/vxworks/mod.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index bb931b713f169..cc7525c31ccf8 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -416,9 +416,10 @@ s_no_extra_traits! { } pub union sa_u_t { - pub sa_handler : Option !>, - pub sa_sigaction: Option !>, + pub sa_handler : ::Option !>, + pub sa_sigaction: ::Option !>, } pub union sigval { From 36a92d5278fa1b908632ea3bcaafec7b2ef0a102 Mon Sep 17 00:00:00 2001 From: Murarth Date: Fri, 27 Sep 2019 15:25:36 -0700 Subject: [PATCH 215/296] Add `pthread_main_np` to FreeBSD-like and `_lwp_self` to NetBSD --- src/unix/bsd/freebsdlike/mod.rs | 1 + src/unix/bsd/netbsdlike/netbsd/mod.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index cfb8a4e169735..1b7804cb27962 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1323,6 +1323,7 @@ extern "C" { attr: *mut pthread_condattr_t, pshared: ::c_int, ) -> ::c_int; + pub fn pthread_main_np() -> ::c_int; pub fn pthread_mutex_timedlock( lock: *mut pthread_mutex_t, abstime: *const ::timespec, diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index ba28bce19e2da..97e2634ad8ecc 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -8,6 +8,7 @@ pub type idtype_t = ::c_int; pub type mqd_t = ::c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; pub type vm_size_t = ::uintptr_t; +pub type lwpid_t = ::c_uint; impl siginfo_t { pub unsafe fn si_value(&self) -> ::sigval { @@ -1714,6 +1715,8 @@ extern "C" { flags: ::c_int, timeout: *mut ::timespec, ) -> ::c_int; + + pub fn _lwp_self() -> lwpid_t; } #[link(name = "util")] From abddbd3d2413f8163e3a70a82af0e1f7866791ee Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Fri, 4 Oct 2019 11:42:57 +0100 Subject: [PATCH 216/296] Haiku: Fix constants for S_IFIFO and S_IFCHR --- src/unix/haiku/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index fb206c9a9ea08..d704a0b636634 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -570,8 +570,8 @@ pub const O_NOFOLLOW: ::c_int = 0x00080000; pub const O_NOCACHE: ::c_int = 0x00100000; pub const O_DIRECTORY: ::c_int = 0x00200000; -pub const S_IFIFO: ::mode_t = 61440; -pub const S_IFCHR: ::mode_t = 49152; +pub const S_IFIFO: ::mode_t = 4096; +pub const S_IFCHR: ::mode_t = 8192; pub const S_IFBLK: ::mode_t = 24576; pub const S_IFDIR: ::mode_t = 16384; pub const S_IFREG: ::mode_t = 32768; From 6caa8ea9a5ca0ced0c3676ec5c5ededbf43a1bf2 Mon Sep 17 00:00:00 2001 From: Brandon Cheng Date: Sun, 6 Oct 2019 13:25:56 -0400 Subject: [PATCH 217/296] Add IFLA_INFO_ consts See https://github.com/torvalds/linux/blob/54ecb8f7/include/uapi/linux/if_link.h#L354-L362 --- src/unix/linux_like/linux/mod.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 8e8223cda2933..04d19ea08a680 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1128,6 +1128,13 @@ pub const IFLA_LINK: ::c_ushort = 5; pub const IFLA_QDISC: ::c_ushort = 6; pub const IFLA_STATS: ::c_ushort = 7; +pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; +pub const IFLA_INFO_KIND: ::c_ushort = 1; +pub const IFLA_INFO_DATA: ::c_ushort = 2; +pub const IFLA_INFO_XSTATS: ::c_ushort = 3; +pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4; +pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5; + // linux/if_tun.h pub const IFF_TUN: ::c_int = 0x0001; pub const IFF_TAP: ::c_int = 0x0002; From 3166091b00204c773e7c515c2cdfe0f0172e559d Mon Sep 17 00:00:00 2001 From: Edward Shin Date: Sun, 6 Oct 2019 18:30:22 -0400 Subject: [PATCH 218/296] Add `RLIM_INFINITY` definition for Android --- src/unix/linux_like/android/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 74c64e5ec73c6..4c4a29669b730 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1099,6 +1099,8 @@ pub const RLIMIT_MSGQUEUE: ::c_int = 12; pub const RLIMIT_NICE: ::c_int = 13; pub const RLIMIT_RTPRIO: ::c_int = 14; +pub const RLIM_INFINITY: ::rlim_t = !0; + pub const TCGETS: ::c_int = 0x5401; pub const TCSETS: ::c_int = 0x5402; pub const TCSETSW: ::c_int = 0x5403; From d07850a4359f52105d3709c01723eb015397d74f Mon Sep 17 00:00:00 2001 From: BaoshanPang Date: Mon, 7 Oct 2019 16:45:25 -0700 Subject: [PATCH 219/296] adding FIOGETNAME which is used by ioctl() to get file path adding PATH_MAX use type c_int for _PARM_NAME_MAX and _PARM_PATH_MAX --- src/vxworks/mod.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index cc7525c31ccf8..cbf93b3ccdeab 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -385,7 +385,7 @@ s_no_extra_traits! { // dirent.h pub struct dirent { pub d_ino : ::ino_t, - pub d_name : [::c_char; _PARM_NAME_MAX + 1], + pub d_name : [::c_char; _PARM_NAME_MAX as usize + 1], } pub struct sockaddr_un { @@ -401,7 +401,7 @@ s_no_extra_traits! { pub entrAddr : *mut ::c_void, pub initTaskId: ::TASK_ID, pub parentId : ::RTP_ID, - pub pathName : [::c_char; VX_RTP_NAME_LENGTH + 1], + pub pathName : [::c_char; VX_RTP_NAME_LENGTH as usize + 1], pub taskCnt : ::c_int, pub textStart : *mut ::c_void, pub textEnd : *mut ::c_void, @@ -856,8 +856,11 @@ pub const FIOREADYCHANGE: ::c_int = 11; pub const FIODISKCHANGE: ::c_int = 13; pub const FIOCANCEL: ::c_int = 14; pub const FIOSQUEEZE: ::c_int = 15; +pub const FIOGETNAME: ::c_int = 18; pub const FIONBIO: ::c_int = 0x90040010; +// limits.h +pub const PATH_MAX: ::c_int = _PARM_PATH_MAX; pub const _POSIX_PATH_MAX: ::c_int = 256; // Some poll stuff @@ -928,8 +931,8 @@ pub const SI_CHILD: ::c_int = -6; pub const SI_KILL: ::c_int = SI_USER; // vxParams.h definitions -pub const _PARM_NAME_MAX: usize = 255; -pub const _PARM_PATH_MAX: usize = 1024; +pub const _PARM_NAME_MAX: ::c_int = 255; +pub const _PARM_PATH_MAX: ::c_int = 1024; // WAIT STUFF pub const WNOHANG: ::c_int = 0x01; @@ -989,7 +992,7 @@ pub const SEEK_CUR: ::c_int = 1; pub const SEEK_END: ::c_int = 2; // rtpLibCommon.h -pub const VX_RTP_NAME_LENGTH: usize = 255; +pub const VX_RTP_NAME_LENGTH: ::c_int = 255; pub const RTP_ID_ERROR: ::RTP_ID = -1; // h/public/unistd.h From d1a37cbcd6b43f4a0ef1bcd95555a80bff8cfcdc Mon Sep 17 00:00:00 2001 From: BaoshanPang Date: Tue, 8 Oct 2019 13:17:27 -0700 Subject: [PATCH 220/296] Support vxWorks in libc-test --- libc-test/build.rs | 110 +++++++++++++++++++++ src/vxworks/mod.rs | 239 +++++++++------------------------------------ 2 files changed, 158 insertions(+), 191 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index d6982fc9525d8..b2512b85d6a9d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -27,6 +27,7 @@ fn do_ctest() { t if t.contains("solaris") => return test_solaris(t), t if t.contains("wasi") => return test_wasi(t), t if t.contains("windows") => return test_windows(t), + t if t.contains("vxworks") => return test_vxworks(t), t => panic!("unknown target {}", t), } } @@ -1927,6 +1928,115 @@ fn test_emscripten(target: &str) { cfg.generate("../src/lib.rs", "main.rs"); } +fn test_vxworks(target: &str) { + assert!(target.contains("vxworks")); + + let mut cfg = ctest::TestGenerator::new(); + headers! { cfg: + "vxWorks.h", + "yvals.h", + "nfs/nfsCommon.h", + "rtpLibCommon.h", + "randomNumGen.h", + "taskLib.h", + "sysLib.h", + "ioLib.h", + "inetLib.h", + "socket.h", + "errnoLib.h", + "ctype.h", + "dirent.h", + "dlfcn.h", + "elf.h", + "fcntl.h", + "grp.h", + "sys/poll.h", + "ifaddrs.h", + "langinfo.h", + "limits.h", + "link.h", + "locale.h", + "sys/stat.h", + "netdb.h", + "pthread.h", + "pwd.h", + "sched.h", + "semaphore.h", + "signal.h", + "stddef.h", + "stdint.h", + "stdio.h", + "stdlib.h", + "string.h", + "sys/file.h", + "sys/ioctl.h", + "sys/socket.h", + "sys/time.h", + "sys/times.h", + "sys/types.h", + "sys/uio.h", + "sys/un.h", + "sys/utsname.h", + "sys/wait.h", + "netinet/tcp.h", + "syslog.h", + "termios.h", + "time.h", + "ucontext.h", + "unistd.h", + "utime.h", + "wchar.h", + "errno.h", + "sys/mman.h", + "pathLib.h", + } + /* Fix me */ + cfg.skip_const(move |name| match name { + // sighandler_t weirdness + "SIG_DFL" | "SIG_ERR" | "SIG_IGN" + // This is not defined in vxWorks + | "RTLD_DEFAULT" => true, + _ => false, + }); + /* Fix me */ + cfg.skip_type(move |ty| match ty { + "stat64" | "sighandler_t" | "off64_t" => true, + _ => false, + }); + + cfg.skip_field_type(move |struct_, field| match (struct_, field) { + ("siginfo_t", "si_value") + | ("stat", "st_size") + | ("sigaction", "sa_u") => true, + _ => false, + }); + + cfg.skip_roundtrip(move |s| match s { + _ => false, + }); + + cfg.type_name(move |ty, is_struct, is_union| match ty { + "DIR" | "FILE" | "Dl_info" | "RTP_DESC" => ty.to_string(), + t if is_union => format!("union {}", t), + t if t.ends_with("_t") => t.to_string(), + t if is_struct => format!("struct {}", t), + t => t.to_string(), + }); + + /* Fix me */ + cfg.skip_fn(move |name| match name { + /* sigval */ + "sigqueue" | "_sigqueue" + /* sighandler_t*/ + | "signal" + /* not used in static linking by default */ + | "dlerror" => true, + _ => false, + }); + + cfg.generate("../src/lib.rs", "main.rs"); +} + fn test_linux(target: &str) { assert!(target.contains("linux")); diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index cc7525c31ccf8..32190bed8ab67 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -550,6 +550,8 @@ pub const EAI_SERVICE: ::c_int = 9; pub const EAI_SOCKTYPE: ::c_int = 10; pub const EAI_SYSTEM: ::c_int = 11; +// This is not defined in vxWorks, but we have to define it here +// to make the building pass for getrandom and libstd, FIXME pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; //Clock Lib Stuff @@ -558,7 +560,7 @@ pub const CLOCK_MONOTONIC: ::c_int = 0x1; pub const CLOCK_PROCESS_CPUTIME_ID: ::c_int = 0x2; pub const CLOCK_THREAD_CPUTIME_ID: ::c_int = 0x3; pub const TIMER_ABSTIME: ::c_int = 0x1; -pub const TIME_RELTIME: ::c_int = 0xFFFFFFFE; +pub const TIMER_RELTIME: ::c_int = 0x0; // PTHREAD STUFF pub const PTHREAD_INITIALIZED_OBJ: ::c_int = 0xF70990EF; @@ -578,33 +580,36 @@ pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; pub const PTHREAD_STACK_MIN: usize = 4096; pub const _PTHREAD_SHARED_SEM_NAME_MAX: usize = 30; -pub const EFAULT: ::c_int = 14; -pub const EBUSY: ::c_int = 16; -pub const EEXIST: ::c_int = 17; -pub const ENODEV: ::c_int = 19; -pub const EINVAL: ::c_int = 22; -pub const EPIPE: ::c_int = 32; -pub const ERANGE: ::c_int = 38; - // ERRNO STUFF +pub const OK: ::c_int = 0; pub const EPERM: ::c_int = 1; /* Not owner */ pub const ENOENT: ::c_int = 2; /* No such file or directory */ pub const ESRCH: ::c_int = 3; /* No such process */ pub const EINTR: ::c_int = 4; /* Interrupted system call */ -pub const EIOA: ::c_int = 5; /* I/O error */ +pub const EIO: ::c_int = 5; /* I/O error */ pub const ENXIO: ::c_int = 6; /* No such device or address */ pub const E2BIG: ::c_int = 7; /* Arg list too long */ pub const ENOEXEC: ::c_int = 8; /* Exec format error */ pub const EBADF: ::c_int = 9; /* Bad file number */ -pub const CHILD: ::c_int = 10; /* No children */ +pub const ECHILD: ::c_int = 10; /* No children */ pub const EAGAIN: ::c_int = 11; /* No more processes */ pub const ENOMEM: ::c_int = 12; /* Not enough core */ pub const EACCES: ::c_int = 13; /* Permission denied */ +pub const EFAULT: ::c_int = 14; +pub const ENOTEMPTY: ::c_int = 15; +pub const EBUSY: ::c_int = 16; +pub const EEXIST: ::c_int = 17; +pub const ENODEV: ::c_int = 19; +pub const ENOTDIR: ::c_int = 20; +pub const EISDIR: ::c_int = 21; +pub const EINVAL: ::c_int = 22; +pub const ENAMETOOLONG: ::c_int = 26; +pub const EFBIG: ::c_int = 27; +pub const ENOSPC: ::c_int = 28; +pub const EROFS: ::c_int = 30; +pub const EPIPE: ::c_int = 32; pub const EDEADLK: ::c_int = 33; -pub const EINPROGRESS: ::c_int = 68; -pub const EALREADY: ::c_int = 69; -pub const EWOULDBLOCK: ::c_int = 70; -pub const ENOSYS: ::c_int = 71; +pub const ERANGE: ::c_int = 38; pub const EDESTADDRREQ: ::c_int = 40; pub const EPROTOTYPE: ::c_int = 41; pub const ENOPROTOOPT: ::c_int = 42; @@ -627,66 +632,44 @@ pub const ESHUTDOWN: ::c_int = 58; pub const ETOOMANYREFS: ::c_int = 59; pub const ETIMEDOUT: ::c_int = 60; pub const ECONNREFUSED: ::c_int = 61; +pub const EINPROGRESS: ::c_int = 68; +pub const EALREADY: ::c_int = 69; +pub const EWOULDBLOCK: ::c_int = 70; +pub const ENOSYS: ::c_int = 71; +pub const EDQUOT: ::c_int = 83; +pub const ESTALE: ::c_int = 88; // NFS errnos: Refer to pkgs_v2/storage/fs/nfs/h/nfs/nfsCommon.h const M_nfsStat: ::c_int = 48 << 16; enum nfsstat { - NFS_OK = 0, - NFSERR_PERM = 1, - NFSERR_NOENT = 2, - NFSERR_IO = 5, - NFSERR_NXIO = 6, - NFSERR_ACCESS = 13, - NFSERR_EXIST = 17, - NFSERR_XDEV = 18, - NFSERR_NODEV = 19, - NFSERR_NOTDIR = 20, - NFSERR_ISDIR = 21, - NFSERR_INVAL = 22, - NFSERR_FBIG = 27, - NFSERR_NOSPC = 28, - NFSERR_ROFS = 30, - NFSERR_MLINK = 31, - NFSERR_NAMETOOLONG = 26, - NFSERR_NOTEMPTY = 15, - NFSERR_DQUOT = 83, - NFSERR_STALE = 88, NFSERR_REMOTE = 71, NFSERR_WFLUSH = 99, NFSERR_BADHANDLE = 10001, NFSERR_NOT_SYNC = 10002, NFSERR_BAD_COOKIE = 10003, - NFSERR_NOTSUPP = 45, NFSERR_TOOSMALL = 10005, NFSERR_BADTYPE = 10007, NFSERR_JUKEBOX = 10008, } -pub const S_nfsLib_NFS_OK: ::c_int = nfsstat::NFS_OK as ::c_int; -pub const S_nfsLib_NFSERR_PERM: ::c_int = nfsstat::NFSERR_PERM as ::c_int; -pub const S_nfsLib_NFSERR_NOENT: ::c_int = nfsstat::NFSERR_NOENT as ::c_int; -pub const S_nfsLib_NFSERR_IO: ::c_int = nfsstat::NFSERR_IO as ::c_int; -pub const S_nfsLib_NFSERR_NXIO: ::c_int = nfsstat::NFSERR_NXIO as ::c_int; -pub const S_nfsLib_NFSERR_ACCESS: ::c_int = nfsstat::NFSERR_ACCESS as ::c_int; -pub const S_nfsLib_NFSERR_EXIST: ::c_int = nfsstat::NFSERR_EXIST as ::c_int; -pub const S_nfsLib_NFSERR_XDEV: ::c_int = - M_nfsStat | nfsstat::NFSERR_XDEV as ::c_int; -pub const S_nfsLib_NFSERR_NODEV: ::c_int = - M_nfsStat | nfsstat::NFSERR_NODEV as ::c_int; -pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = nfsstat::NFSERR_NOTDIR as ::c_int; -pub const S_nfsLib_NFSERR_ISDIR: ::c_int = nfsstat::NFSERR_ISDIR as ::c_int; -pub const S_nfsLib_NFSERR_INVAL: ::c_int = nfsstat::NFSERR_INVAL as ::c_int; -pub const S_nfsLib_NFSERR_FBIG: ::c_int = nfsstat::NFSERR_FBIG as ::c_int; -pub const S_nfsLib_NFSERR_NOSPC: ::c_int = nfsstat::NFSERR_NOSPC as ::c_int; -pub const S_nfsLib_NFSERR_ROFS: ::c_int = nfsstat::NFSERR_ROFS as ::c_int; -pub const S_nfsLib_NFSERR_MLINK: ::c_int = - M_nfsStat | nfsstat::NFSERR_MLINK as ::c_int; -pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = - nfsstat::NFSERR_NAMETOOLONG as ::c_int; -pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = - nfsstat::NFSERR_NOTEMPTY as ::c_int; -pub const S_nfsLib_NFSERR_DQUOT: ::c_int = nfsstat::NFSERR_DQUOT as ::c_int; -pub const S_nfsLib_NFSERR_STALE: ::c_int = nfsstat::NFSERR_STALE as ::c_int; +pub const S_nfsLib_NFS_OK: ::c_int = OK; +pub const S_nfsLib_NFSERR_PERM: ::c_int = EPERM; +pub const S_nfsLib_NFSERR_NOENT: ::c_int = ENOENT; +pub const S_nfsLib_NFSERR_IO: ::c_int = EIO; +pub const S_nfsLib_NFSERR_NXIO: ::c_int = ENXIO; +pub const S_nfsLib_NFSERR_ACCESS: ::c_int = EACCES; +pub const S_nfsLib_NFSERR_EXIST: ::c_int = EEXIST; +pub const S_nfsLib_NFSERR_ENODEV: ::c_int = ENODEV; +pub const S_nfsLib_NFSERR_NOTDIR: ::c_int = ENOTDIR; +pub const S_nfsLib_NFSERR_ISDIR: ::c_int = EISDIR; +pub const S_nfsLib_NFSERR_INVAL: ::c_int = EINVAL; +pub const S_nfsLib_NFSERR_FBIG: ::c_int = EFBIG; +pub const S_nfsLib_NFSERR_NOSPC: ::c_int = ENOSPC; +pub const S_nfsLib_NFSERR_ROFS: ::c_int = EROFS; +pub const S_nfsLib_NFSERR_NAMETOOLONG: ::c_int = ENAMETOOLONG; +pub const S_nfsLib_NFSERR_NOTEMPTY: ::c_int = ENOTEMPTY; +pub const S_nfsLib_NFSERR_DQUOT: ::c_int = EDQUOT; +pub const S_nfsLib_NFSERR_STALE: ::c_int = ESTALE; pub const S_nfsLib_NFSERR_WFLUSH: ::c_int = M_nfsStat | nfsstat::NFSERR_WFLUSH as ::c_int; pub const S_nfsLib_NFSERR_REMOTE: ::c_int = @@ -697,11 +680,10 @@ pub const S_nfsLib_NFSERR_NOT_SYNC: ::c_int = M_nfsStat | nfsstat::NFSERR_NOT_SYNC as ::c_int; pub const S_nfsLib_NFSERR_BAD_COOKIE: ::c_int = M_nfsStat | nfsstat::NFSERR_BAD_COOKIE as ::c_int; -pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = - nfsstat::NFSERR_NOTSUPP as ::c_int; +pub const S_nfsLib_NFSERR_NOTSUPP: ::c_int = EOPNOTSUPP; pub const S_nfsLib_NFSERR_TOOSMALL: ::c_int = M_nfsStat | nfsstat::NFSERR_TOOSMALL as ::c_int; -pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = nfsstat::NFSERR_IO as ::c_int; +pub const S_nfsLib_NFSERR_SERVERFAULT: ::c_int = EIO; pub const S_nfsLib_NFSERR_BADTYPE: ::c_int = M_nfsStat | nfsstat::NFSERR_BADTYPE as ::c_int; pub const S_nfsLib_NFSERR_JUKEBOX: ::c_int = @@ -736,7 +718,6 @@ pub const S_IFBLK: ::c_int = 0x6000; pub const S_IFREG: ::c_int = 0x8000; pub const S_IFLNK: ::c_int = 0xa000; pub const S_IFSHM: ::c_int = 0xb000; -pub const S_IFDEVMEM: ::c_int = 0xd000; pub const S_IFSOCK: ::c_int = 0xc000; pub const S_ISUID: ::c_int = 0x0800; pub const S_ISGID: ::c_int = 0x0400; @@ -1228,91 +1209,15 @@ extern "C" { pub fn getchar_unlocked() -> ::c_int; pub fn putchar_unlocked(c: ::c_int) -> ::c_int; pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; - pub fn pclose(stream: *mut ::FILE) -> ::c_int; pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; pub fn fileno(stream: *mut ::FILE) -> ::c_int; pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; - pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; pub fn rewinddir(dirp: *mut ::DIR); - - pub fn openat( - dirfd: ::c_int, - pathname: *const ::c_char, - flags: ::c_int, - ... - ) -> ::c_int; - pub fn fchmodat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - flags: ::c_int, - ) -> ::c_int; pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; - pub fn fchownat( - dirfd: ::c_int, - pathname: *const ::c_char, - owner: ::uid_t, - group: ::gid_t, - flags: ::c_int, - ) -> ::c_int; - pub fn fstatat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut stat, - flags: ::c_int, - ) -> ::c_int; - pub fn linkat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - flags: ::c_int, - ) -> ::c_int; - pub fn mkdirat( - dirfd: ::c_int, - pathname: *const ::c_char, - mode: ::mode_t, - ) -> ::c_int; - pub fn readlinkat( - dirfd: ::c_int, - pathname: *const ::c_char, - buf: *mut ::c_char, - bufsiz: ::size_t, - ) -> ::ssize_t; - pub fn renameat( - olddirfd: ::c_int, - oldpath: *const ::c_char, - newdirfd: ::c_int, - newpath: *const ::c_char, - ) -> ::c_int; - pub fn symlinkat( - target: *const ::c_char, - newdirfd: ::c_int, - linkpath: *const ::c_char, - ) -> ::c_int; - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; pub fn alarm(seconds: ::c_uint) -> ::c_uint; pub fn fchdir(dirfd: ::c_int) -> ::c_int; pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; - pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; - pub fn execle( - path: *const ::c_char, - arg0: *const ::c_char, - ... - ) -> ::c_int; - pub fn execlp( - file: *const ::c_char, - arg0: *const ::c_char, - ... - ) -> ::c_int; - pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; - pub fn execve( - prog: *const c_char, - argv: *const *const c_char, - envp: *const *const c_char, - ) -> ::c_int; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getegid() -> gid_t; pub fn geteuid() -> uid_t; @@ -1327,17 +1232,11 @@ extern "C" { pub fn pause() -> ::c_int; pub fn seteuid(uid: uid_t) -> ::c_int; pub fn setegid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; - pub fn setsid() -> pid_t; pub fn sleep(secs: ::c_uint) -> ::c_uint; - pub fn tcgetpgrp(fd: ::c_int) -> pid_t; - pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; pub fn ttyname(fd: ::c_int) -> *mut c_char; pub fn wait(status: *mut ::c_int) -> pid_t; pub fn umask(mask: mode_t) -> mode_t; - pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; - pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; pub fn mlockall(flags: ::c_int) -> ::c_int; pub fn munlockall() -> ::c_int; @@ -1350,17 +1249,8 @@ extern "C" { offset: off_t, ) -> *mut ::c_void; pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; - - pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; - pub fn if_indextoname( - ifindex: ::c_uint, - ifname: *mut ::c_char, - ) -> *mut ::c_char; - pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; - pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; - pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn pthread_exit(value: *mut ::c_void) -> !; pub fn pthread_attr_setdetachstate( @@ -1403,8 +1293,6 @@ extern "C" { #[link_name = "_rtld_dladdr"] pub fn dladdr(addr: *mut ::c_void, info: *mut Dl_info) -> ::c_int; - pub fn res_init() -> ::c_int; - // time.h pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; @@ -1414,14 +1302,7 @@ extern "C" { pub fn localtime(time_p: *const time_t) -> *mut tm; pub fn timegm(tm: *mut tm) -> time_t; pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; - - pub fn mknod( - pathname: *const ::c_char, - mode: ::mode_t, - dev: ::dev_t, - ) -> ::c_int; pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; - pub fn chroot(name: *const ::c_char) -> ::c_int; pub fn usleep(secs: ::useconds_t) -> ::c_int; pub fn putenv(string: *mut c_char) -> ::c_int; pub fn setlocale( @@ -1436,8 +1317,6 @@ extern "C" { ) -> ::c_int; pub fn sigpending(set: *mut sigset_t) -> ::c_int; - pub fn getsid(pid: pid_t) -> pid_t; - pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; pub fn fseeko( @@ -1446,13 +1325,7 @@ extern "C" { whence: ::c_int, ) -> ::c_int; pub fn ftello(stream: *mut ::FILE) -> ::off_t; - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcgetsid(fd: ::c_int) -> ::pid_t; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; pub fn mkstemp(template: *mut ::c_char) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; @@ -1460,14 +1333,6 @@ extern "C" { pub fn closelog(); pub fn setlogmask(maskpri: ::c_int) -> ::c_int; pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); - pub fn nice(incr: ::c_int) -> ::c_int; - - pub fn grantpt(fd: ::c_int) -> ::c_int; - pub fn posix_openpt(flags: ::c_int) -> ::c_int; - pub fn ptsname(fd: ::c_int) -> *mut ::c_char; - pub fn unlockpt(fd: ::c_int) -> ::c_int; - - pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; pub fn getline( lineptr: *mut *mut c_char, n: *mut size_t, @@ -1868,14 +1733,6 @@ extern "C" { protocol: ::c_int, ) -> ::c_int; - pub fn socketpair( - // Doesn't exist - domain: ::c_int, - type_: ::c_int, - protocol: ::c_int, - socket_vector: *mut ::c_int, - ) -> ::c_int; - // icotl.h pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; @@ -2092,8 +1949,8 @@ extern "C" { // pathLib.h pub fn _pathIsAbsolute( filepath: *const ::c_char, - pNameTail: *const *const ::c_char, - ) -> bool; + pNameTail: *mut *const ::c_char, + ) -> BOOL; pub fn writev( fd: ::c_int, From b97166f68fdde5f3e9aff74c2943968ffe322788 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Sun, 13 Oct 2019 15:08:59 -0300 Subject: [PATCH 221/296] Add settimeofday for openbsd --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index d82c3273e67ed..1e698b47138ec 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1374,6 +1374,7 @@ f! { extern "C" { pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int; pub fn accept4( s: ::c_int, addr: *mut ::sockaddr, From fb06358b5f0ed49aec219480621fc0037ce9850f Mon Sep 17 00:00:00 2001 From: GrayJack Date: Sun, 13 Oct 2019 15:25:25 -0300 Subject: [PATCH 222/296] Add settimeofday for solaris/illumos --- src/unix/solarish/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index eaa43fe900160..49a18367e7e69 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1889,6 +1889,7 @@ extern "C" { pub fn srand(seed: ::c_uint); pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; + pub fn settimeofday(tp: *const ::timeval, tz: *const ::c_void) -> ::c_int; pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); From f5ff9d9a718ea16a6293db4cccb3051b3324e697 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Sun, 13 Oct 2019 16:10:47 -0300 Subject: [PATCH 223/296] Format settimeofday on openbsd --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 1e698b47138ec..6a4bec95ad0dc 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1374,7 +1374,10 @@ f! { extern "C" { pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; - pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int; + pub fn settimeofday( + tp: *const ::timeval, + tz: *const ::timezone + ) -> ::c_int; pub fn accept4( s: ::c_int, addr: *mut ::sockaddr, From f6d9f0230d8c6d7ce00c82a95cf5ac680337b98f Mon Sep 17 00:00:00 2001 From: GrayJack Date: Sun, 13 Oct 2019 17:13:06 -0300 Subject: [PATCH 224/296] Format settimeday on openbsd --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index 6a4bec95ad0dc..f70fddf59ceb5 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1376,7 +1376,7 @@ extern "C" { pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; pub fn settimeofday( tp: *const ::timeval, - tz: *const ::timezone + tz: *const ::timezone, ) -> ::c_int; pub fn accept4( s: ::c_int, From 792a9a15c5084703ba5d89d8e12967502d5049f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Tue, 15 Oct 2019 15:41:34 +0200 Subject: [PATCH 225/296] Use minimal profile for rustup --- .cirrus.yml | 6 +++--- ci/azure-install-rust.yml | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 4fb29f518069b..28830438ac457 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -5,7 +5,7 @@ task: setup_script: - pkg install -y curl - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh --default-toolchain nightly -y + - sh rustup.sh --default-toolchain nightly -y --profile=minimal - . $HOME/.cargo/env - rustup default nightly test_script: @@ -19,7 +19,7 @@ task: setup_script: - pkg install -y curl - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh -y + - sh rustup.sh -y --profile=minimal - . $HOME/.cargo/env - rustup default stable test_script: @@ -34,7 +34,7 @@ task: setup_script: - pkg install -y curl - curl https://sh.rustup.rs -sSf --output rustup.sh - - sh rustup.sh --default-toolchain nightly -y + - sh rustup.sh --default-toolchain nightly -y --profile=minimal - . $HOME/.cargo/env - rustup default nightly test_script: diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index 87a41ec57d5f1..e78fe32faf6d0 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -6,10 +6,12 @@ steps: toolchain=nightly fi if command -v rustup; then + # Uncomment when rustup on Azure is updated + #rustup set profile minimal rustup update $toolchain rustup default $toolchain else - curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain + curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain --profile=minimal echo "##vso[task.prependpath]$HOME/.cargo/bin" fi displayName: Install rust (unix) @@ -17,6 +19,8 @@ steps: - script: | @echo on if not defined TOOLCHAIN set TOOLCHAIN=nightly + :: Uncomment when rustup on Azure is updated + ::rustup set profile minimal rustup update --no-self-update %TOOLCHAIN%-%TARGET% rustup default %TOOLCHAIN%-%TARGET% displayName: Install rust (windows) From 01992c085ee7c787420b64026f29b1f40b170470 Mon Sep 17 00:00:00 2001 From: Stefano Probst Date: Tue, 15 Oct 2019 16:33:02 +0200 Subject: [PATCH 226/296] Add networking and futex constants for uclibc --- src/unix/uclibc/arm/mod.rs | 4 ---- src/unix/uclibc/mod.rs | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/unix/uclibc/arm/mod.rs b/src/unix/uclibc/arm/mod.rs index 41dd7100dfec5..613a11fbab79d 100644 --- a/src/unix/uclibc/arm/mod.rs +++ b/src/unix/uclibc/arm/mod.rs @@ -408,10 +408,6 @@ pub const F_SETLKW: ::c_int = 0x7; pub const HUPCL: ::tcflag_t = 0x400; pub const ICANON: ::tcflag_t = 0x2; pub const IEXTEN: ::tcflag_t = 0x8000; -pub const IPV6_MULTICAST_HOPS: ::c_int = 0x12; -pub const IPV6_MULTICAST_IF: ::c_int = 0x11; -pub const IPV6_UNICAST_HOPS: ::c_int = 0x10; -pub const IP_MULTICAST_IF: ::c_int = 0x20; pub const ISIG: ::tcflag_t = 0x1; pub const IUTF8: ::tcflag_t = 0x4000; pub const IXOFF: ::tcflag_t = 0x1000; diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index 986b05ca0b527..c479f40016e8b 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -891,6 +891,22 @@ pub const TCP_INFO: ::c_int = 11; pub const TCP_QUICKACK: ::c_int = 12; pub const TCP_CONGESTION: ::c_int = 13; +// Source: +// https://github.com/kraj/uClibc/blob/ca1c74d67dd115d059a875150e10b8560a9c35a8 +// /libc/sysdeps/linux/common/bits/in.h +// Same for all architectures +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IP_MULTICAST_IF: ::c_int = 32; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; + +// Source: +// https://github.com/kraj/uClibc/tree/ca1c74d67dd115d059a875150e10b8560a9c35a8 +// Same for all architectures +pub const FUTEX_WAIT: ::c_int = 0; +pub const FUTEX_PRIVATE_FLAG: ::c_int = 128; +pub const FUTEX_WAKE: ::c_int = 1; + pub const IPV6_MULTICAST_LOOP: ::c_int = 19; pub const IPV6_V6ONLY: ::c_int = 26; From a94417f033388e942d84d884e6855c99a98ae573 Mon Sep 17 00:00:00 2001 From: Garrett Squire Date: Tue, 15 Oct 2019 15:20:35 -0700 Subject: [PATCH 227/296] add pthread_attr_get_np for NetBSD --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 97e2634ad8ecc..efd0405912b64 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1669,6 +1669,10 @@ extern "C" { name: *const ::c_char, arg: *mut ::c_void, ) -> ::c_int; + pub fn pthread_attr_get_np( + thread: ::pthread_t, + attr: *mut ::pthread_attr_t, + ) -> ::c_int; pub fn pthread_getattr_np( native: ::pthread_t, attr: *mut ::pthread_attr_t, From 216d8008b661d9a13aa0ccc31f44e35e4ac857b5 Mon Sep 17 00:00:00 2001 From: Nicolas Mattia Date: Wed, 16 Oct 2019 15:35:16 +0200 Subject: [PATCH 228/296] Refine definition of mcontext_t on x86_64-unknown-linux-musl --- .../linux_like/linux/musl/b64/x86_64/mod.rs | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index e4741a3a19830..7ad4db47dfa9f 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -3,6 +3,7 @@ pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = ::c_long; pub type __u64 = ::c_ulonglong; +pub type greg_t = i64; s! { pub struct stat { @@ -99,8 +100,10 @@ s! { pub u_debugreg: [::c_ulong; 8], } + // https://github.com/ifduyue/musl/blob/b4b1e10364c8737a632be61582e05a8d3acf5690/arch/x86_64/bits/signal.h#L80-L84 pub struct mcontext_t { - __private: [u64; 32], + pub gregs: [greg_t; 23], + __private: [u64; 9], } pub struct ipc_perm { @@ -603,6 +606,32 @@ pub const ES: ::c_int = 24; pub const FS: ::c_int = 25; pub const GS: ::c_int = 26; +// offsets in mcontext_t.gregs from bits/signal.h +// https://github.com/ifduyue/musl/blob/b4b1e10364c8737a632be61582e05a8d3acf5690/arch/x86_64/bits/signal.h#L9-L56 +pub const REG_R8: ::c_int = 0; +pub const REG_R9: ::c_int = 1; +pub const REG_R10: ::c_int = 2; +pub const REG_R11: ::c_int = 3; +pub const REG_R12: ::c_int = 4; +pub const REG_R13: ::c_int = 5; +pub const REG_R14: ::c_int = 6; +pub const REG_R15: ::c_int = 7; +pub const REG_RDI: ::c_int = 8; +pub const REG_RSI: ::c_int = 9; +pub const REG_RBP: ::c_int = 10; +pub const REG_RBX: ::c_int = 11; +pub const REG_RDX: ::c_int = 12; +pub const REG_RAX: ::c_int = 13; +pub const REG_RCX: ::c_int = 14; +pub const REG_RSP: ::c_int = 15; +pub const REG_RIP: ::c_int = 16; +pub const REG_EFL: ::c_int = 17; +pub const REG_CSGSFS: ::c_int = 18; +pub const REG_ERR: ::c_int = 19; +pub const REG_TRAPNO: ::c_int = 20; +pub const REG_OLDMASK: ::c_int = 21; +pub const REG_CR2: ::c_int = 22; + pub const MADV_SOFT_OFFLINE: ::c_int = 101; pub const MAP_32BIT: ::c_int = 0x0040; pub const O_APPEND: ::c_int = 1024; From e691d9490e73a45a990d07588378d419be5fa852 Mon Sep 17 00:00:00 2001 From: Nicolas Mattia Date: Wed, 16 Oct 2019 16:31:37 +0200 Subject: [PATCH 229/296] Ensure comments are no longer than 80 chars --- src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 7ad4db47dfa9f..84f615e2fa2e5 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -100,7 +100,9 @@ s! { pub u_debugreg: [::c_ulong; 8], } - // https://github.com/ifduyue/musl/blob/b4b1e10364c8737a632be61582e05a8d3acf5690/arch/x86_64/bits/signal.h#L80-L84 + // GitHub repo: ifduyue/musl/ + // commit: b4b1e10364c8737a632be61582e05a8d3acf5690 + // file: arch/x86_64/bits/signal.h#L80-L84 pub struct mcontext_t { pub gregs: [greg_t; 23], __private: [u64; 9], @@ -607,7 +609,9 @@ pub const FS: ::c_int = 25; pub const GS: ::c_int = 26; // offsets in mcontext_t.gregs from bits/signal.h -// https://github.com/ifduyue/musl/blob/b4b1e10364c8737a632be61582e05a8d3acf5690/arch/x86_64/bits/signal.h#L9-L56 +// GitHub repo: ifduyue/musl/ +// commit: b4b1e10364c8737a632be61582e05a8d3acf5690 +// file: arch/x86_64/bits/signal.h#L9-L56 pub const REG_R8: ::c_int = 0; pub const REG_R9: ::c_int = 1; pub const REG_R10: ::c_int = 2; From 5747422855ce3b12490007377322747e8f6421aa Mon Sep 17 00:00:00 2001 From: Stefano Probst Date: Wed, 16 Oct 2019 20:57:53 +0200 Subject: [PATCH 230/296] Sort targets in documentation. Fixes #1524. Should be a simple but effective fix for #1524. Assume `sort` command is available. --- ci/dox.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/dox.sh b/ci/dox.sh index febe18b35b836..0c89a2e17b1e9 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -25,7 +25,7 @@ cargo +nightly install cargo-xbuild -Z install-upgrade # shellcheck disable=SC1003 grep '[\d|\w|-]* \\' ci/build.sh > targets sed -i.bak 's/ \\//g' targets -grep '^[_a-zA-Z0-9-]*$' targets > tmp && mv tmp targets +grep '^[_a-zA-Z0-9-]*$' targets | sort > tmp && mv tmp targets # Create a markdown list of supported platforms in $PLATFORM_SUPPORT rm $PLATFORM_SUPPORT || true From 39decff1f6eccdaee226ae91c303f16503a83bf6 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 17 Oct 2019 14:52:35 +0200 Subject: [PATCH 231/296] Add job on master that publishes the website --- ci/azure-master.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ci/azure-master.yml diff --git a/ci/azure-master.yml b/ci/azure-master.yml new file mode 100644 index 0000000000000..d6925e6e61a92 --- /dev/null +++ b/ci/azure-master.yml @@ -0,0 +1,24 @@ +variables: + - group: secrets +resources: + repositories: + - repository: rustinfra + type: github + name: rust-lang/simpleinfra + endpoint: gnzlbg +trigger: ["master"] +pr: ["master"] + +jobs: + - job: StyleAndDocs + pool: + vmImage: ubuntu-16.04 + steps: + - template: azure-install-rust.yml + - script: sh ci/style.sh + displayName: Check style + - script: LIBC_CI=1 sh ci/dox.sh + displayName: Generate documentation + - template: azure-configs/static-websites.yml@rustinfra + parameters: + deploy_dir: target/doc From 504105347a959947babbfaceaaca9dad6de4568f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 17 Oct 2019 14:57:39 +0200 Subject: [PATCH 232/296] Do not run style checks on master --- ci/azure-master.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ci/azure-master.yml b/ci/azure-master.yml index d6925e6e61a92..d7bcb7c617e80 100644 --- a/ci/azure-master.yml +++ b/ci/azure-master.yml @@ -15,8 +15,6 @@ jobs: vmImage: ubuntu-16.04 steps: - template: azure-install-rust.yml - - script: sh ci/style.sh - displayName: Check style - script: LIBC_CI=1 sh ci/dox.sh displayName: Generate documentation - template: azure-configs/static-websites.yml@rustinfra From 07d1f7a4957802e0c80be564fd4e4e470e4781e2 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 17 Oct 2019 15:38:54 +0200 Subject: [PATCH 233/296] Remove broken link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b860238bc11e..5371916acfec3 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ newer Rust features are only available on newer Rust toolchains: See [`ci/build.sh`](https://github.com/rust-lang/libc/blob/master/ci/build.sh) for the platforms on which `libc` is guaranteed to build for each Rust -toolchain. The test-matrix at [Travis-CI], [Appveyor], and [Cirrus-CI] show the +toolchain. The test-matrix at [Azure] and [Cirrus-CI] show the platforms in which `libc` tests are run.
From 8823376ffa246d79b5dc020d7f92047ab18e2d3f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 17 Oct 2019 15:58:48 +0200 Subject: [PATCH 234/296] Remove duplicate target --- ci/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index 64ff06d7a9560..a970b0e9c970a 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -92,7 +92,6 @@ mips-unknown-linux-musl \ mips64-unknown-linux-gnuabi64 \ mips64el-unknown-linux-gnuabi64 \ mipsel-unknown-linux-gnu \ -mipsel-unknown-linux-gnu \ mipsel-unknown-linux-musl \ powerpc-unknown-linux-gnu \ powerpc64-unknown-linux-gnu \ From 44b90221d709e5f0bac876829073cdc30bb8e5a5 Mon Sep 17 00:00:00 2001 From: Nick Carter Date: Wed, 16 Oct 2019 17:04:46 +0100 Subject: [PATCH 235/296] Add struct ip_mreqn: ip multicast req with intf id The ip_mreqn struct has an additional interface id parameter. This allows programming IPv4 multicast groups using the interface id alongside the src IPv4 address. Linux has supported the ip_mreqn struct since Linux 2.2 ref: man ip.7 [Adding to linux x86_64 only as adding to linux_like/mod.rs caused failures in the sparc64 and mips64 C regression tests] --- src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index d1a2294380961..74e2688c8ce5c 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -261,6 +261,12 @@ s! { pub c_ispeed: ::speed_t, pub c_ospeed: ::speed_t, } + + pub struct ip_mreqn { + pub imr_multiaddr: ::in_addr, + pub imr_address: ::in_addr, + pub imr_ifindex: ::c_int, + } } s_no_extra_traits! { From 284184d140afd58f093bbe0d23cd50a620b43e4b Mon Sep 17 00:00:00 2001 From: Alex Touchet Date: Thu, 17 Oct 2019 20:03:51 -0700 Subject: [PATCH 236/296] Readme updates --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5371916acfec3..ed313ae617d08 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Azure Status]][Azure] [![Cirrus-CI Status]][Cirrus-CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] +[![Azure Status]][Azure] [![Cirrus CI Status]][Cirrus CI] [![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License] libc - Raw FFI bindings to platforms' system libraries ==== @@ -47,9 +47,9 @@ newer Rust features are only available on newer Rust toolchains: | `union` | 1.19.0 | | `const mem::size_of` | 1.24.0 | | `repr(align)` | 1.25.0 | -| `extra_traits` | 1.25.0 | +| `extra_traits` | 1.25.0 | | `core::ffi::c_void` | 1.30.0 | -| `repr(packed(N))` | 1.33.0 | +| `repr(packed(N))` | 1.33.0 | ## Platform support @@ -58,7 +58,7 @@ newer Rust features are only available on newer Rust toolchains: See [`ci/build.sh`](https://github.com/rust-lang/libc/blob/master/ci/build.sh) for the platforms on which `libc` is guaranteed to build for each Rust -toolchain. The test-matrix at [Azure] and [Cirrus-CI] show the +toolchain. The test-matrix at [Azure] and [Cirrus CI] show the platforms in which `libc` tests are run.
@@ -67,10 +67,10 @@ platforms in which `libc` tests are run. This project is licensed under either of -* [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) +* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([LICENSE-APACHE](LICENSE-APACHE)) -* [MIT License](http://opensource.org/licenses/MIT) +* [MIT License](https://opensource.org/licenses/MIT) ([LICENSE-MIT](LICENSE-MIT)) at your option. @@ -85,7 +85,7 @@ instructions] for more information. Contributions in any form (issues, pull requests, etc.) to this project must adhere to Rust's [Code of Conduct]. -[Code of Conduct]: https://www.rust-lang.org/en-US/conduct.html +[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in `libc` by you, as defined in the Apache-2.0 license, shall be @@ -93,8 +93,8 @@ dual licensed as above, without any additional terms or conditions. [Azure Status]: https://dev.azure.com/rust-lang2/libc/_apis/build/status/rust-lang.libc?branchName=master [Azure]: https://dev.azure.com/rust-lang2/libc/_build/latest?definitionId=1&branchName=master -[Cirrus-CI]: https://cirrus-ci.com/github/rust-lang/libc -[Cirrus-CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg +[Cirrus CI]: https://cirrus-ci.com/github/rust-lang/libc +[Cirrus CI Status]: https://api.cirrus-ci.com/github/rust-lang/libc.svg [crates.io]: https://crates.io/crates/libc [Latest Version]: https://img.shields.io/crates/v/libc.svg [Documentation]: https://docs.rs/libc/badge.svg From 13d4a5da2eafd82d3ebb2acb729d8b8c9148fb1f Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 18 Oct 2019 10:16:58 +0200 Subject: [PATCH 237/296] Bump patch version to 0.2.65 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e48a34cdfe9a2..bd73e7b0fd646 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.64" +version = "0.2.65" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" From 5df4b8d01c457335356e9b01bf8835903ea45dde Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Tue, 22 Oct 2019 13:20:54 +0200 Subject: [PATCH 238/296] ci: switch mirrors to use our CDN We recently added a CDN in front of our CI mirrors as it's faster and cheaper for us. This switches libc's CI to use it instead of accessing the underlying bucket directly. --- ci/docker/mips-unknown-linux-musl/Dockerfile | 2 +- ci/docker/mipsel-unknown-linux-musl/Dockerfile | 2 +- ci/run.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/docker/mips-unknown-linux-musl/Dockerfile b/ci/docker/mips-unknown-linux-musl/Dockerfile index 50da684ae7b08..f1a1076cb5a15 100644 --- a/ci/docker/mips-unknown-linux-musl/Dockerfile +++ b/ci/docker/mips-unknown-linux-musl/Dockerfile @@ -8,7 +8,7 @@ RUN mkdir /toolchain # Note that this originally came from: # https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 -RUN curl --retry 5 -L https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ +RUN curl --retry 5 -L https://ci-mirrors.rust-lang.org/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ tar xjf - -C /toolchain --strip-components=1 ENV PATH=$PATH:/rust/bin:/toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15/bin \ diff --git a/ci/docker/mipsel-unknown-linux-musl/Dockerfile b/ci/docker/mipsel-unknown-linux-musl/Dockerfile index 91c00c250cab0..1221eb230d5f2 100644 --- a/ci/docker/mipsel-unknown-linux-musl/Dockerfile +++ b/ci/docker/mipsel-unknown-linux-musl/Dockerfile @@ -8,7 +8,7 @@ RUN mkdir /toolchain # Note that this originally came from: # https://downloads.openwrt.org/snapshots/trunk/malta/generic/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 -RUN curl --retry 5 -L https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ +RUN curl --retry 5 -L https://ci-mirrors.rust-lang.org/libc/OpenWrt-Toolchain-malta-le_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ tar xjf - -C /toolchain --strip-components=2 ENV PATH=$PATH:/rust/bin:/toolchain/bin \ diff --git a/ci/run.sh b/ci/run.sh index e863085d9a15e..b435122c252c9 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -5,7 +5,7 @@ set -ex -MIRRORS_URL="https://rust-lang-ci-mirrors.s3-us-west-1.amazonaws.com/libc" +MIRRORS_URL="https://ci-mirrors.rust-lang.org/libc" TARGET="${1}" From 785a60c4d221611b832df6c1a0357543f0e45b77 Mon Sep 17 00:00:00 2001 From: mikehoyle Date: Wed, 23 Oct 2019 14:18:27 -0700 Subject: [PATCH 239/296] Add a few functions & POSIX error codes to Windows API --- src/windows/mod.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/windows/mod.rs b/src/windows/mod.rs index ba80e0ca0f6c8..9dafb43ac9f97 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -183,6 +183,49 @@ pub const ENOTEMPTY: ::c_int = 41; pub const EILSEQ: ::c_int = 42; pub const STRUNCATE: ::c_int = 80; +// POSIX Supplement (from errno.h) +pub const EADDRINUSE: ::c_int = 100; +pub const EADDRNOTAVAIL: ::c_int = 101; +pub const EAFNOSUPPORT: ::c_int = 102; +pub const EALREADY: ::c_int = 103; +pub const EBADMSG: ::c_int = 104; +pub const ECANCELED: ::c_int = 105; +pub const ECONNABORTED: ::c_int = 106; +pub const ECONNREFUSED: ::c_int = 107; +pub const ECONNRESET: ::c_int = 108; +pub const EDESTADDRREQ: ::c_int = 109; +pub const EHOSTUNREACH: ::c_int = 110; +pub const EIDRM: ::c_int = 111; +pub const EINPROGRESS: ::c_int = 112; +pub const EISCONN: ::c_int = 113; +pub const ELOOP: ::c_int = 114; +pub const EMSGSIZE: ::c_int = 115; +pub const ENETDOWN: ::c_int = 116; +pub const ENETRESET: ::c_int = 117; +pub const ENETUNREACH: ::c_int = 118; +pub const ENOBUFS: ::c_int = 119; +pub const ENODATA: ::c_int = 120; +pub const ENOLINK: ::c_int = 121; +pub const ENOMSG: ::c_int = 122; +pub const ENOPROTOOPT: ::c_int = 123; +pub const ENOSR: ::c_int = 124; +pub const ENOSTR: ::c_int = 125; +pub const ENOTCONN: ::c_int = 126; +pub const ENOTRECOVERABLE: ::c_int = 127; +pub const ENOTSOCK: ::c_int = 128; +pub const ENOTSUP: ::c_int = 129; +pub const EOPNOTSUPP: ::c_int = 130; +pub const EOTHER: ::c_int = 131; +pub const EOVERFLOW: ::c_int = 132; +pub const EOWNERDEAD: ::c_int = 133; +pub const EPROTO: ::c_int = 134; +pub const EPROTONOSUPPORT: ::c_int = 135; +pub const EPROTOTYPE: ::c_int = 136; +pub const ETIME: ::c_int = 137; +pub const ETIMEDOUT: ::c_int = 138; +pub const ETXTBSY: ::c_int = 139; +pub const EWOULDBLOCK: ::c_int = 140; + // signal codes pub const SIGINT: ::c_int = 2; pub const SIGILL: ::c_int = 4; @@ -335,6 +378,8 @@ extern "C" { n: size_t, ) -> ::size_t; + pub fn time(destTime: *mut time_t) -> time_t; + pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; pub fn memcpy( @@ -425,6 +470,9 @@ extern "C" { pub fn isatty(fd: ::c_int) -> ::c_int; #[link_name = "_lseek"] pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; + #[link_name = "_lseeki64"] + pub fn lseek64(fd: ::c_int, offset: c_longlong, origin: ::c_int) + -> c_longlong; #[link_name = "_pipe"] pub fn pipe( fds: *mut ::c_int, From 3ecdafbde86fc01cd3f37c9327497ed0da8ab743 Mon Sep 17 00:00:00 2001 From: mikehoyle Date: Thu, 24 Oct 2019 13:59:53 -0700 Subject: [PATCH 240/296] Updating for formatting _time64, and gnu test failures --- src/windows/mod.rs | 12 +++++++----- src/windows/msvc.rs | 4 ++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 9dafb43ac9f97..a83babaed661d 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -215,7 +215,6 @@ pub const ENOTRECOVERABLE: ::c_int = 127; pub const ENOTSOCK: ::c_int = 128; pub const ENOTSUP: ::c_int = 129; pub const EOPNOTSUPP: ::c_int = 130; -pub const EOTHER: ::c_int = 131; pub const EOVERFLOW: ::c_int = 132; pub const EOWNERDEAD: ::c_int = 133; pub const EPROTO: ::c_int = 134; @@ -378,8 +377,6 @@ extern "C" { n: size_t, ) -> ::size_t; - pub fn time(destTime: *mut time_t) -> time_t; - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; pub fn memcpy( @@ -403,6 +400,8 @@ extern "C" { pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; pub fn raise(signum: c_int) -> c_int; + #[link_name = "_time64"] + pub fn time(destTime: *mut time_t) -> time_t; #[link_name = "_chmod"] pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int; #[link_name = "_wchmod"] @@ -471,8 +470,11 @@ extern "C" { #[link_name = "_lseek"] pub fn lseek(fd: ::c_int, offset: c_long, origin: ::c_int) -> c_long; #[link_name = "_lseeki64"] - pub fn lseek64(fd: ::c_int, offset: c_longlong, origin: ::c_int) - -> c_longlong; + pub fn lseek64( + fd: ::c_int, + offset: c_longlong, + origin: ::c_int, + ) -> c_longlong; #[link_name = "_pipe"] pub fn pipe( fds: *mut ::c_int, diff --git a/src/windows/msvc.rs b/src/windows/msvc.rs index 27333ae2ecd99..8f20deb5dfb55 100644 --- a/src/windows/msvc.rs +++ b/src/windows/msvc.rs @@ -1,6 +1,10 @@ pub const L_tmpnam: ::c_uint = 260; pub const TMP_MAX: ::c_uint = 0x7fff_ffff; +// POSIX Supplement (from errno.h) +// This particular error code is only currently available in msvc toolchain +pub const EOTHER: ::c_int = 131; + extern "C" { #[link_name = "_stricmp"] pub fn stricmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int; From f66774e673c9bf721f88e3d6b7d865d027eff0d2 Mon Sep 17 00:00:00 2001 From: Laurence Tratt Date: Fri, 25 Oct 2019 16:02:57 +0100 Subject: [PATCH 241/296] Add two missing pthread calls to the OpenBSD support. --- src/unix/bsd/netbsdlike/openbsd/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index f70fddf59ceb5..5fa5dfbabeed5 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -1431,6 +1431,15 @@ extern "C" { len: ::size_t, prot: ::c_int, ) -> ::c_int; + pub fn pthread_attr_getguardsize( + attr: *const ::pthread_attr_t, + guardsize: *mut ::size_t, + ) -> ::c_int; + pub fn pthread_attr_getstack( + attr: *const ::pthread_attr_t, + stackaddr: *mut *mut ::c_void, + stacksize: *mut ::size_t, + ) -> ::c_int; pub fn pthread_main_np() -> ::c_int; pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); pub fn pthread_stackseg_np( From 5dfc2c82854eede618f35c4511e941506f0e76d0 Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Mon, 30 Sep 2019 16:02:01 -0400 Subject: [PATCH 242/296] Add support for declaring 'const fn' Add a new feature to enable this, since `const extern fn` support is unstable --- Cargo.toml | 1 + README.md | 3 ++ src/lib.rs | 1 + src/macros.rs | 98 ++++++++++++++++++++++++++++++++++---- src/unix/linux_like/mod.rs | 8 ++-- 5 files changed, 99 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e48a34cdfe9a2..a0658132492b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,7 @@ std = [] align = [] rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] extra_traits = [] +const-extern-fn = [] # use_std is deprecated, use `std` instead use_std = [ 'std' ] diff --git a/README.md b/README.md index 5371916acfec3..dc1d6d05de029 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,9 @@ libc = "0.2" * `extra_traits`: all `struct`s implemented in `libc` are `Copy` and `Clone`. This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. +* `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. + This features requires a nightly rustc + * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. ## Rust version support diff --git a/src/lib.rs b/src/lib.rs index 3255303e5a9b0..40625ac98dc69 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,6 +34,7 @@ #![no_std] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] #![cfg_attr(target_os = "redox", feature(static_nobundle))] +#![cfg_attr(feature = "const-extern-fn", feature(const_extern_fn))] #[macro_use] mod macros; diff --git a/src/macros.rs b/src/macros.rs index 14a28046640c6..da39270633274 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -121,16 +121,96 @@ macro_rules! s_no_extra_traits { ); } -#[allow(unused_macros)] -macro_rules! f { - ($(pub fn $i:ident($($arg:ident: $argty:ty),*) -> $ret:ty { - $($body:stmt);* - })*) => ($( - #[inline] - pub unsafe extern fn $i($($arg: $argty),*) -> $ret { - $($body);* +// This is a pretty horrible hack to allow us to conditionally mark +// some functions as 'const', without requiring users of this macro +// to care about the "const-extern-fn" feature. +// +// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword +// in the expanded function. +// +// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'. +// Note that the expression matched by the macro is exactly the same - this allows +// users of this macro to work whether or not 'const-extern-fn' is enabled +// +// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks. +// This is because 'const unsafe extern fn' won't even parse on older compilers, +// so we need to avoid emitting it at all of 'const-extern-fn'. +// +// Specifically, moving the 'cfg_if' into the macro body will *not* work. +// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emiited +// into user code. The 'cfg' gate will not stop Rust from trying to parse the +// 'pub const unsafe extern fn', so users would get a compiler error even when +// the 'const-extern-fn' feature is disabled +// +// Note that users of this macro need to place 'const' in a weird position +// (after the closing ')' for the arguments, but before the return type). +// This was the only way I could satisfy the following two requirements: +// 1. Avoid ambuguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn' +// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same +// 'f!' block +cfg_if! { + if #[cfg(feature = "const-extern-fn")] { + #[allow(unused_macros)] + macro_rules! f { + ($(pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + pub $($constness)* unsafe extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) } - )*) + + #[allow(unused_macros)] + macro_rules! const_fn { + ($($({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + $($constness)* fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + } else { + #[allow(unused_macros)] + macro_rules! f { + ($(pub $({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + pub unsafe extern fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + + #[allow(unused_macros)] + macro_rules! const_fn { + ($($({$constness:ident})* fn $i:ident( + $($arg:ident: $argty:ty),* + ) -> $ret:ty { + $($body:stmt);* + })*) => ($( + #[inline] + fn $i($($arg: $argty),* + ) -> $ret { + $($body);* + } + )*) + } + } } #[allow(unused_macros)] diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1568e4f8369f1..a6ec553eeeb87 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1165,8 +1165,10 @@ pub const ARPHRD_IEEE802154: u16 = 804; pub const ARPHRD_VOID: u16 = 0xFFFF; pub const ARPHRD_NONE: u16 = 0xFFFE; -fn CMSG_ALIGN(len: usize) -> usize { - len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) +const_fn! { + {const} fn CMSG_ALIGN(len: usize) -> usize { + len + ::mem::size_of::() - 1 & !(::mem::size_of::() - 1) + } } f! { @@ -1182,7 +1184,7 @@ f! { cmsg.offset(1) as *mut ::c_uchar } - pub fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { + pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::())) as ::c_uint } From fcd94cc6030afbfe99b7bec510dfa04549fbecff Mon Sep 17 00:00:00 2001 From: Michal 'vorner' Vaner Date: Mon, 28 Oct 2019 09:32:35 +0100 Subject: [PATCH 243/296] nfnetfilter & nfnetfilter_log constants --- src/unix/linux_like/linux/mod.rs | 75 ++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 04d19ea08a680..8bd9cc536856a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1664,6 +1664,81 @@ pub const NLMSG_DONE: ::c_int = 0x3; pub const NLMSG_OVERRUN: ::c_int = 0x4; pub const NLMSG_MIN_TYPE: ::c_int = 0x10; +// linux/netfilter/nfnetlink.h +pub const NFNLGRP_NONE: ::c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; +pub const NFNLGRP_NFTABLES: ::c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; +pub const NFNLGRP_NFTRACE: ::c_int = 9; + +pub const NFNETLINK_V0: ::c_int = 0; + +pub const NFNL_SUBSYS_NONE: ::c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; +pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; +pub const NFNL_SUBSYS_ULOG: ::c_int = 4; +pub const NFNL_SUBSYS_OSF: ::c_int = 5; +pub const NFNL_SUBSYS_IPSET: ::c_int = 6; +pub const NFNL_SUBSYS_ACCT: ::c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; +pub const NFNL_SUBSYS_COUNT: ::c_int = 12; + +// linux/netfilter/nfnetlink_log.h +pub const NFULNL_MSG_PACKET: ::c_int = 0; +pub const NFULNL_MSG_CONFIG: ::c_int = 1; + +pub const NFULA_UNSPEC: ::c_int = 0; +pub const NFULA_PACKET_HDR: ::c_int = 1; +pub const NFULA_MARK: ::c_int = 2; +pub const NFULA_TIMESTAMP: ::c_int = 3; +pub const NFULA_IFINDEX_INDEV: ::c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; +pub const NFULA_HWADDR: ::c_int = 8; +pub const NFULA_PAYLOAD: ::c_int = 9; +pub const NFULA_PREFIX: ::c_int = 10; +pub const NFULA_UID: ::c_int = 11; +pub const NFULA_SEQ: ::c_int = 12; +pub const NFULA_SEQ_GLOBAL: ::c_int = 13; +pub const NFULA_GID: ::c_int = 14; +pub const NFULA_HWTYPE: ::c_int = 15; +pub const NFULA_HWHEADER: ::c_int = 16; +pub const NFULA_HWLEN: ::c_int = 17; +pub const NFULA_CT: ::c_int = 18; +pub const NFULA_CT_INFO: ::c_int = 19; + +pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFULA_CFG_UNSPEC: ::c_int = 0; +pub const NFULA_CFG_CMD: ::c_int = 1; +pub const NFULA_CFG_MODE: ::c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; +pub const NFULA_CFG_TIMEOUT: ::c_int = 4; +pub const NFULA_CFG_QTHRESH: ::c_int = 5; +pub const NFULA_CFG_FLAGS: ::c_int = 6; + +pub const NFULNL_COPY_NONE: ::c_int = 0x00; +pub const NFULNL_COPY_META: ::c_int = 0x01; +pub const NFULNL_COPY_PACKET: ::c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; + pub const GENL_NAMSIZ: ::c_int = 16; pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; From 2216488714c3aa40198178e2dc5a057279aa8d83 Mon Sep 17 00:00:00 2001 From: Michal 'vorner' Vaner Date: Mon, 28 Oct 2019 09:58:03 +0100 Subject: [PATCH 244/296] nfnetlink & nfnetlink_log constants First batch for #1562 --- libc-test/build.rs | 4 ++ src/unix/linux_like/android/mod.rs | 81 ++++++++++++++++++++++++++++++ src/unix/linux_like/linux/mod.rs | 6 +++ 3 files changed, 91 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index b2512b85d6a9d..a42fec5f3cbe2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1253,6 +1253,8 @@ fn test_android(target: &str) { "linux/memfd.h", "linux/module.h", "linux/net_tstamp.h", + "linux/netfilter/nfnetlink.h", + "linux/netfilter/nfnetlink_log.h", "linux/netfilter/nf_tables.h", "linux/netfilter_ipv4.h", "linux/netfilter_ipv6.h", @@ -2196,6 +2198,8 @@ fn test_linux(target: &str) { "linux/memfd.h", "linux/module.h", "linux/net_tstamp.h", + "linux/netfilter/nfnetlink.h", + "linux/netfilter/nfnetlink_log.h", "linux/netfilter/nf_tables.h", "linux/netfilter_ipv4.h", "linux/netfilter_ipv6.h", diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 4c4a29669b730..fc515dc870a25 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1309,6 +1309,87 @@ pub const NLMSG_DONE: ::c_int = 0x3; pub const NLMSG_OVERRUN: ::c_int = 0x4; pub const NLMSG_MIN_TYPE: ::c_int = 0x10; +// linux/netfilter/nfnetlink.h +pub const NFNLGRP_NONE: ::c_int = 0; +pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1; +pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2; +pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3; +pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4; +pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; +pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; +pub const NFNLGRP_NFTABLES: ::c_int = 7; +pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; +pub const NFNLGRP_NFTRACE: ::c_int = 9; + +pub const NFNETLINK_V0: ::c_int = 0; + +pub const NFNL_SUBSYS_NONE: ::c_int = 0; +pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1; +pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2; +pub const NFNL_SUBSYS_QUEUE: ::c_int = 3; +pub const NFNL_SUBSYS_ULOG: ::c_int = 4; +pub const NFNL_SUBSYS_OSF: ::c_int = 5; +pub const NFNL_SUBSYS_IPSET: ::c_int = 6; +pub const NFNL_SUBSYS_ACCT: ::c_int = 7; +pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8; +pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9; +pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; +pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; +pub const NFNL_SUBSYS_COUNT: ::c_int = 12; + +pub const NFNL_BATCH_UNSPEC: ::c_int = 0; +pub const NFNL_BATCH_GENID: ::c_int = 1; + +pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; + +// linux/netfilter/nfnetlink_log.h +pub const NFULNL_MSG_PACKET: ::c_int = 0; +pub const NFULNL_MSG_CONFIG: ::c_int = 1; + +pub const NFULA_UNSPEC: ::c_int = 0; +pub const NFULA_PACKET_HDR: ::c_int = 1; +pub const NFULA_MARK: ::c_int = 2; +pub const NFULA_TIMESTAMP: ::c_int = 3; +pub const NFULA_IFINDEX_INDEV: ::c_int = 4; +pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5; +pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6; +pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7; +pub const NFULA_HWADDR: ::c_int = 8; +pub const NFULA_PAYLOAD: ::c_int = 9; +pub const NFULA_PREFIX: ::c_int = 10; +pub const NFULA_UID: ::c_int = 11; +pub const NFULA_SEQ: ::c_int = 12; +pub const NFULA_SEQ_GLOBAL: ::c_int = 13; +pub const NFULA_GID: ::c_int = 14; +pub const NFULA_HWTYPE: ::c_int = 15; +pub const NFULA_HWHEADER: ::c_int = 16; +pub const NFULA_HWLEN: ::c_int = 17; +pub const NFULA_CT: ::c_int = 18; +pub const NFULA_CT_INFO: ::c_int = 19; + +pub const NFULNL_CFG_CMD_NONE: ::c_int = 0; +pub const NFULNL_CFG_CMD_BIND: ::c_int = 1; +pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2; +pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3; +pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4; + +pub const NFULA_CFG_UNSPEC: ::c_int = 0; +pub const NFULA_CFG_CMD: ::c_int = 1; +pub const NFULA_CFG_MODE: ::c_int = 2; +pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3; +pub const NFULA_CFG_TIMEOUT: ::c_int = 4; +pub const NFULA_CFG_QTHRESH: ::c_int = 5; +pub const NFULA_CFG_FLAGS: ::c_int = 6; + +pub const NFULNL_COPY_NONE: ::c_int = 0x00; +pub const NFULNL_COPY_META: ::c_int = 0x01; +pub const NFULNL_COPY_PACKET: ::c_int = 0x02; + +pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001; +pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002; +pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004; + pub const GENL_NAMSIZ: ::c_int = 16; pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 8bd9cc536856a..144d7beee63c3 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1692,6 +1692,12 @@ pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; pub const NFNL_SUBSYS_COUNT: ::c_int = 12; +pub const NFNL_BATCH_UNSPEC: ::c_int = 0; +pub const NFNL_BATCH_GENID: ::c_int = 1; + +pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; +pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; + // linux/netfilter/nfnetlink_log.h pub const NFULNL_MSG_PACKET: ::c_int = 0; pub const NFULNL_MSG_CONFIG: ::c_int = 1; From add284a294bacf80f6f39988aa9b3c13a4140908 Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Mon, 28 Oct 2019 20:12:47 -0400 Subject: [PATCH 245/296] Test 'const-extern-fn' on nightly --- ci/build.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ci/build.sh b/ci/build.sh index a970b0e9c970a..cde46cb451b8d 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -67,6 +67,13 @@ test_target() { cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --no-default-features --target "${TARGET}" \ --features extra_traits + # Test the 'const-extern-fn' feature on nightly + if [ "${RUST}" = "nightly" ]; then + cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --no-default-features --target "${TARGET}" \ + --features const-extern-fn + fi + + # Also test that it builds with `extra_traits` and default features: if [ "$NO_STD" != "1" ]; then cargo "+${RUST}" "${BUILD_CMD}" -vv $opt --target "${TARGET}" \ From 457d65439610ae70b38e05ac83dde1419670727a Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Mon, 28 Oct 2019 20:14:12 -0400 Subject: [PATCH 246/296] Fix feature name Co-Authored-By: gnzlbg --- src/lib.rs | 2 +- src/macros.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 40625ac98dc69..0b1496af1d6c0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,7 +34,7 @@ #![no_std] #![cfg_attr(feature = "rustc-dep-of-std", no_core)] #![cfg_attr(target_os = "redox", feature(static_nobundle))] -#![cfg_attr(feature = "const-extern-fn", feature(const_extern_fn))] +#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))] #[macro_use] mod macros; diff --git a/src/macros.rs b/src/macros.rs index da39270633274..f14bbf5522137 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -149,7 +149,7 @@ macro_rules! s_no_extra_traits { // 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same // 'f!' block cfg_if! { - if #[cfg(feature = "const-extern-fn")] { + if #[cfg(libc_const_extern_fn)] { #[allow(unused_macros)] macro_rules! f { ($(pub $({$constness:ident})* fn $i:ident( From b0ba2de7676af63ba4c13d7184b3f630735e7e7b Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Mon, 28 Oct 2019 21:09:30 -0400 Subject: [PATCH 247/296] Add Linux test --- build.rs | 5 +++++ tests/const_fn.rs | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 tests/const_fn.rs diff --git a/build.rs b/build.rs index d5bcb5253a4c8..fb1aae9be42e8 100644 --- a/build.rs +++ b/build.rs @@ -7,6 +7,7 @@ fn main() { rustc_minor_version().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); + let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); if env::var("CARGO_FEATURE_USE_STD").is_ok() { @@ -72,6 +73,10 @@ fn main() { if rustc_dep_of_std { println!("cargo:rustc-cfg=libc_thread_local"); } + + if const_extern_fn_cargo_feature { + println!("cargo:rustc-cfg=libc_const_extern_fn"); + } } fn rustc_minor_version() -> Option { diff --git a/tests/const_fn.rs b/tests/const_fn.rs new file mode 100644 index 0000000000000..4c413c90e8faa --- /dev/null +++ b/tests/const_fn.rs @@ -0,0 +1,5 @@ +#![cfg(libc_const_extern_fn)] // If this does not hold, the file is empty + +#[cfg(target_os = "linux")] +const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; +//^ if CMSG_SPACE is not const, this will fail to compile From 476b6759762514c353b8f3d6375d86d747084340 Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Tue, 29 Oct 2019 08:25:59 -0400 Subject: [PATCH 248/296] Panic if const-extern-fn is not used on nightly --- build.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/build.rs b/build.rs index fb1aae9be42e8..dddc029e221a0 100644 --- a/build.rs +++ b/build.rs @@ -3,8 +3,8 @@ use std::process::Command; use std::str; fn main() { - let rustc_minor_ver = - rustc_minor_version().expect("Failed to get rustc version"); + let (rustc_minor_ver, is_nightly) = + rustc_minor_nightly().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); @@ -75,11 +75,14 @@ fn main() { } if const_extern_fn_cargo_feature { + if !is_nightly || rustc_minor_ver < 40 { + panic!("const-extern-fn requires a nightly compiler >= 1.40") + } println!("cargo:rustc-cfg=libc_const_extern_fn"); } } -fn rustc_minor_version() -> Option { +fn rustc_minor_nightly() -> Option<(u32, bool)> { macro_rules! otry { ($e:expr) => { match $e { @@ -98,7 +101,12 @@ fn rustc_minor_version() -> Option { return None; } - otry!(pieces.next()).parse().ok() + let minor = pieces.next(); + let nightly_raw = otry!(otry!(pieces.next()).split('-').nth(1)); + let nightly = nightly_raw.starts_with("dev") || nightly_raw.starts_with("nightly"); + let minor = otry!(otry!(minor).parse().ok()); + + Some((minor, nightly)) } fn which_freebsd() -> Option { From ca2d53e281fa287dfa4f6bfe8768b20c9705c44f Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Tue, 29 Oct 2019 09:51:44 -0400 Subject: [PATCH 249/296] Run 'cargo fmt' --- build.rs | 6 ++++-- tests/const_fn.rs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index dddc029e221a0..420e15965121b 100644 --- a/build.rs +++ b/build.rs @@ -7,7 +7,8 @@ fn main() { rustc_minor_nightly().expect("Failed to get rustc version"); let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok(); let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok(); - let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); + let const_extern_fn_cargo_feature = + env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok(); let libc_ci = env::var("LIBC_CI").is_ok(); if env::var("CARGO_FEATURE_USE_STD").is_ok() { @@ -103,7 +104,8 @@ fn rustc_minor_nightly() -> Option<(u32, bool)> { let minor = pieces.next(); let nightly_raw = otry!(otry!(pieces.next()).split('-').nth(1)); - let nightly = nightly_raw.starts_with("dev") || nightly_raw.starts_with("nightly"); + let nightly = + nightly_raw.starts_with("dev") || nightly_raw.starts_with("nightly"); let minor = otry!(otry!(minor).parse().ok()); Some((minor, nightly)) diff --git a/tests/const_fn.rs b/tests/const_fn.rs index 4c413c90e8faa..0e7e1864b9f85 100644 --- a/tests/const_fn.rs +++ b/tests/const_fn.rs @@ -1,5 +1,5 @@ #![cfg(libc_const_extern_fn)] // If this does not hold, the file is empty #[cfg(target_os = "linux")] -const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; +const _FOO: libc::c_uint = unsafe { libc::CMSG_SPACE(1) }; //^ if CMSG_SPACE is not const, this will fail to compile From e8106bd4de072a8578a36686c8e892b7f00d38f2 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Thu, 31 Oct 2019 05:04:04 -0300 Subject: [PATCH 250/296] Implement utmpx.h itens --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 158 ++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index efd0405912b64..c1e64ee20eb99 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -281,9 +281,36 @@ s! { pub msg_hdr: ::msghdr, pub msg_len: ::c_uint, } + + pub struct __exit_status { + pub e_termination: u16, + pub e_exit: u16, + } } s_no_extra_traits! { + + pub struct utmpx { + pub ut_name: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_host: [::c_char; _UTX_HOSTSIZE], + pub ut_session: u16, + pub ut_type: u16, + pub ut_pid: ::pid_t, + pub ut_exit: __exit_status, + pub ut_ss: sockaddr_storage, + pub ut_tv: ::timeval, + pub ut_pad: [u8; _UTX_PADSIZE], + } + + pub struct lastlogx { + pub ll_tv: ::timeval, + pub ll_line: [::c_char; _UTX_LINESIZE], + pub ll_host: [::c_char; _UTX_HOSTSIZE], + pub ll_ss: sockaddr_storage, + } + pub struct in_pktinfo { pub ipi_addr: ::in_addr, pub ipi_ifindex: ::c_uint, @@ -377,6 +404,93 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_name == other.ut_name + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_ss == other.ut_ss + && self.ut_pad == other.ut_pad + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_name", &self.ut_name) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_host", &self.ut_host) + .field("ut_session", &self.ut_session) + .field("ut_type", &self.ut_type) + .field("ut_pid", &self.ut_pid) + .field("ut_exit", &self.ut_exit) + .field("ut_ss", &self.ut_ss) + .field("ut_tv", &self.ut_tv) + .field("ut_pad", &self.ut_pad) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_name.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_ss.hash(state); + self.ut_pad.hash(state); + } + } + + impl PartialEq for lastlogx { + fn eq(&self, other: &lastlogx) -> bool { + self.ll_tv == other.ll_tv + && self.ll_line == other.ll_line + && self.ll_host == other.ll_host + && self.ll_ss == other.ll_ss + } + } + + impl Eq for lastlogx {} + + impl ::fmt::Debug for lastlogx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("lastlogx") + .field("ll_tv", &self.ll_tv) + .field("ll_line", &self.ll_line) + .field("ll_host", &self.ll_host) + .field("ll_ss", &self.ll_ss) + .finish() + } + } + + impl ::hash::Hash for lastlogx { + fn hash(&self, state: &mut H) { + self.ll_tv.hash(state); + self.ll_line.hash(state); + self.ll_host.hash(state); + self.ll_ss.hash(state); + } + } + impl PartialEq for in_pktinfo { fn eq(&self, other: &in_pktinfo) -> bool { self.ipi_addr == other.ipi_addr @@ -1378,6 +1492,28 @@ pub const ONLRET: ::tcflag_t = 0x40; pub const CDTRCTS: ::tcflag_t = 0x00020000; pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; +// pub const _PATH_UTMPX: &[::c_char; 14] = b"/var/run/utmpx"; +// pub const _PATH_WTMPX: &[::c_char; 14] = b"/var/log/wtmpx"; +// pub const _PATH_LASTLOGX: &[::c_char; 17] = b"/var/log/lastlogx"; +// pub const _PATH_UTMP_UPDATE: &[::c_char; 24] = b"/usr/libexec/utmp_update"; +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_PADSIZE: usize = 40; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 256; +pub const EMPTY: u16 = 0; +pub const RUN_LVL: u16 = 1; +pub const BOOT_TIME: u16 = 2; +pub const OLD_TIME: u16 = 3; +pub const NEW_TIME: u16 = 4; +pub const INIT_PROCESS: u16 = 5; +pub const LOGIN_PROCESS: u16 = 6; +pub const USER_PROCESS: u16 = 7; +pub const DEAD_PROCESS: u16 = 8; +pub const ACCOUNTING: u16 = 9; +pub const SIGNATURE: u16 = 10; +pub const DOWN_TIME: u16 = 11; + pub const SOCK_CLOEXEC: ::c_int = 0x10000000; pub const SOCK_NONBLOCK: ::c_int = 0x20000000; @@ -1738,6 +1874,28 @@ extern "C" { buflen: ::size_t, result: *mut *mut ::group, ) -> ::c_int; + + pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn getlastlogx( + fname: *const ::c_char, + uid: ::uid_t, + ll: *mut lastlogx, + ) -> *mut lastlogx; + pub fn updlastlogx( + fname: *const ::c_char, + uid: ::uid_t, + ll: *mut lastlogx, + ) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + // TODO: uncomment after utmp implementation + // pub fn getutmp(ux: *const utmpx, u: *mut utmp); + // pub fn getutmpx(u: *const utmp, ux: *mut utmpx); } cfg_if! { From 919ba61a0239dc85aa2620c7a4e4a894181b5400 Mon Sep 17 00:00:00 2001 From: patrick felt Date: Thu, 31 Oct 2019 11:32:29 -0600 Subject: [PATCH 251/296] - add ssm struct and setsockopt constants Signed-off-by: patrick felt --- src/unix/linux_like/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1568e4f8369f1..1107538d642cf 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -24,6 +24,12 @@ s! { pub imr_interface: in_addr, } + pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + pub imr_sourceaddr: in_addr, + } + pub struct sockaddr { pub sa_family: sa_family_t, pub sa_data: [::c_char; 14], @@ -810,6 +816,8 @@ pub const IP_RECVTOS: ::c_int = 13; pub const IP_RECVERR: ::c_int = 11; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; +pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39; +pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40; pub const IP_TRANSPARENT: ::c_int = 19; pub const IPV6_UNICAST_HOPS: ::c_int = 16; pub const IPV6_MULTICAST_IF: ::c_int = 17; From 98fd3188e7d46db84d321475344f2f82d958b0c7 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Fri, 1 Nov 2019 08:05:13 -0300 Subject: [PATCH 252/296] Implement utmpx to solaris/illumos --- src/unix/solarish/mod.rs | 107 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 49a18367e7e69..cfa92690daf2e 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -348,6 +348,11 @@ s! { pub d_descriptor: ::c_int, pub d_id: ::door_id_t } + + pub struct exit_status { + e_termination: ::c_short, + e_exit: ::c_short, + } } s_no_extra_traits! { @@ -357,6 +362,20 @@ s_no_extra_traits! { pub u64: u64, } + pub struct utmpx { + pub ut_user: [::c_char; _UTX_USERSIZE], + pub ut_id: [::c_char; _UTX_IDSIZE], + pub ut_line: [::c_char; _UTX_LINESIZE], + pub ut_pid: ::pid_t, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_tv: ::timeval, + pub ut_session: ::c_int, + pub ut_pad: [::c_int; _UTX_PADSIZE], + pub ut_syslen: ::c_short, + pub ut_host: [::c_char; _UTX_HOSTSIZE], + } + pub struct sockaddr_un { pub sun_family: sa_family_t, pub sun_path: [c_char; 108] @@ -434,6 +453,62 @@ s_no_extra_traits! { cfg_if! { if #[cfg(feature = "extra_traits")] { + impl PartialEq for utmpx { + fn eq(&self, other: &utmpx) -> bool { + self.ut_type == other.ut_type + && self.ut_pid == other.ut_pid + && self.ut_user == other.ut_user + && self.ut_line == other.ut_line + && self.ut_id == other.ut_id + && self.ut_exit == other.ut_exit + && self.ut_session == other.ut_session + && self.ut_tv == other.ut_tv + && self.ut_syslen == other.ut_syslen + && self.ut_pad == other.ut_pad + && self + .ut_host + .iter() + .zip(other.ut_host.iter()) + .all(|(a,b)| a == b) + } + } + + impl Eq for utmpx {} + + impl ::fmt::Debug for utmpx { + fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { + f.debug_struct("utmpx") + .field("ut_user", &self.ut_user) + .field("ut_id", &self.ut_id) + .field("ut_line", &self.ut_line) + .field("ut_pid", &self.ut_pid) + .field("ut_type", &self.ut_type) + .field("ut_exit", &self.ut_exit) + .field("ut_tv", &self.ut_tv) + .field("ut_session", &self.ut_session) + .field("ut_pad", &self.ut_pad) + .field("ut_syslen", &self.ut_syslen) + .field("ut_host", &self.ut_host) + .finish() + } + } + + impl ::hash::Hash for utmpx { + fn hash(&self, state: &mut H) { + self.ut_user.hash(state); + self.ut_type.hash(state); + self.ut_pid.hash(state); + self.ut_line.hash(state); + self.ut_id.hash(state); + self.ut_host.hash(state); + self.ut_exit.hash(state); + self.ut_session.hash(state); + self.ut_tv.hash(state); + self.ut_syslen.hash(state); + self.ut_pad.hash(state); + } + } + impl PartialEq for epoll_event { fn eq(&self, other: &epoll_event) -> bool { self.events == other.events @@ -1615,6 +1690,23 @@ pub const PORT_SOURCE_FILE: ::c_int = 7; pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; pub const PORT_SOURCE_SIGNAL: ::c_int = 9; +pub const _UTX_USERSIZE: usize = 32; +pub const _UTX_LINESIZE: usize = 32; +pub const _UTX_PADSIZE: usize = 5; +pub const _UTX_IDSIZE: usize = 4; +pub const _UTX_HOSTSIZE: usize = 257; +pub const EMPTY: ::c_short = 0; +pub const RUN_LVL: ::c_short = 1; +pub const BOOT_TIME: ::c_short = 2; +pub const OLD_TIME: ::c_short = 3; +pub const NEW_TIME: ::c_short = 4; +pub const INIT_PROCESS: ::c_short = 5; +pub const LOGIN_PROCESS: ::c_short = 6; +pub const USER_PROCESS: ::c_short = 7; +pub const DEAD_PROCESS: ::c_short = 8; +pub const ACCOUNTING: ::c_short = 9; +pub const DOWN_TIME: ::c_short = 10; + const _TIOC: ::c_int = ('T' as i32) << 8; const tIOC: ::c_int = ('t' as i32) << 8; pub const TCGETA: ::c_int = (_TIOC | 1); @@ -2296,6 +2388,21 @@ extern "C" { attributes: door_attr_t, ) -> ::c_int; pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; + + pub fn makeutx(ux: *const utmpx) -> *mut utmpx; + pub fn modutx(ux: *const utmpx) -> *mut utmpx; + pub fn updwtmpx(file: *const ::c_char, ut: *const utmpx) -> ::c_int; + pub fn utmpxname(file: *const ::c_char) -> ::c_int; + pub fn getutxent() -> *mut utmpx; + pub fn getutxid(ut: *const utmpx) -> *mut utmpx; + pub fn getutxline(ut: *const utmpx) -> *mut utmpx; + pub fn pututxline(ut: *const utmpx) -> *mut utmpx; + pub fn setutxent(); + pub fn endutxent(); + // TODO: uncomment after utmp implementation + // pub fn getutmp(ux: *const utmpx, u: *mut utmp); + // pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + // pub fn updwtmp(file: *const ::c_char, u: *mut utmp); } mod compat; From 8aa66cf6d6650513e41b5355f25022f09f0b71af Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Sun, 3 Nov 2019 20:17:15 -0800 Subject: [PATCH 253/296] adds IPV6_ consts for linux --- libc-test/build.rs | 26 ++++++++++++++++++++++++++ src/unix/linux_like/android/mod.rs | 28 +++++++++++++++++++++++++++- src/unix/linux_like/linux/mod.rs | 28 +++++++++++++++++++++++++++- 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index b2512b85d6a9d..894b8714b1834 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2325,6 +2325,32 @@ fn test_linux(target: &str) { | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" | "IPV6_FLOWINFO_PRIORITY" + + | "IPV6_ADDRFORM" + | "IPV6_2292PKTINFO" + | "IPV6_2292HOPOPTS" + | "IPV6_2292DSTOPTS" + | "IPV6_2292RTHDR" + | "IPV6_2292PKTOPTIONS" + | "IPV6_CHECKSUM" + | "IPV6_2292HOPLIMIT" + | "IPV6_NEXTHOP" + | "IPV6_UNICAST_HOPS" + | "IPV6_MULTICAST_IF" + | "IPV6_MULTICAST_HOPS" + | "IPV6_MULTICAST_LOOP" + | "IPV6_ADD_MEMBERSHIP" + | "IPV6_DROP_MEMBERSHIP" + | "IPV6_ROUTER_ALERT" + | "IPV6_MTU_DISCOVER" + | "IPV6_MTU" + | "IPV6_RECVERR" + | "IPV6_V6ONLY" + | "IPV6_JOIN_ANYCAST" + | "IPV6_LEAVE_ANYCAST" + | "IPV6_MULTICAST_ALL" + | "IPV6_ROUTER_ALERT_ISOLATE" + // The F_ fnctl constants are tested in the `linux_fnctl.rs` tests: | "F_CANCELLK" | "F_ADD_SEALS" diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 4c4a29669b730..f584782e4f73f 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1403,11 +1403,37 @@ pub const IP_ORIGDSTADDR: ::c_int = 20; pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; pub const IPV6_ORIGDSTADDR: ::c_int = 74; pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; -pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; pub const IPV6_FLOWINFO_SEND: ::c_int = 33; pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; + +pub const IPV6_ADDRFORM: ::c_int = 1; +pub const IPV6_2292PKTINFO: ::c_int = 2; +pub const IPV6_2292HOPOPTS: ::c_int = 3; +pub const IPV6_2292DSTOPTS: ::c_int = 4; +pub const IPV6_2292RTHDR: ::c_int = 5; +pub const IPV6_2292PKTOPTIONS: ::c_int = 6; +pub const IPV6_CHECKSUM: ::c_int = 7; +pub const IPV6_2292HOPLIMIT: ::c_int = 8; +pub const IPV6_NEXTHOP: ::c_int = 9; +pub const IPV6_FLOWINFO: ::c_int = 11; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_ROUTER_ALERT: ::c_int = 22; +pub const IPV6_MTU_DISCOVER: ::c_int = 23; +pub const IPV6_MTU: ::c_int = 24; +pub const IPV6_RECVERR: ::c_int = 25; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_JOIN_ANYCAST: ::c_int = 27; +pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; +pub const IPV6_MULTICAST_ALL: ::c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; + pub const IUTF8: ::tcflag_t = 0x00004000; pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 04d19ea08a680..31e310934121b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1530,11 +1530,37 @@ pub const IP_ORIGDSTADDR: ::c_int = 20; pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; pub const IPV6_ORIGDSTADDR: ::c_int = 74; pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; -pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_FLOWLABEL_MGR: ::c_int = 32; pub const IPV6_FLOWINFO_SEND: ::c_int = 33; pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; + +pub const IPV6_ADDRFORM: ::c_int = 1; +pub const IPV6_2292PKTINFO: ::c_int = 2; +pub const IPV6_2292HOPOPTS: ::c_int = 3; +pub const IPV6_2292DSTOPTS: ::c_int = 4; +pub const IPV6_2292RTHDR: ::c_int = 5; +pub const IPV6_2292PKTOPTIONS: ::c_int = 6; +pub const IPV6_CHECKSUM: ::c_int = 7; +pub const IPV6_2292HOPLIMIT: ::c_int = 8; +pub const IPV6_NEXTHOP: ::c_int = 9; +pub const IPV6_FLOWINFO: ::c_int = 11; +pub const IPV6_UNICAST_HOPS: ::c_int = 16; +pub const IPV6_MULTICAST_IF: ::c_int = 17; +pub const IPV6_MULTICAST_HOPS: ::c_int = 18; +pub const IPV6_MULTICAST_LOOP: ::c_int = 19; +pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; +pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_ROUTER_ALERT: ::c_int = 22; +pub const IPV6_MTU_DISCOVER: ::c_int = 23; +pub const IPV6_MTU: ::c_int = 24; +pub const IPV6_RECVERR: ::c_int = 25; +pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_JOIN_ANYCAST: ::c_int = 27; +pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; +pub const IPV6_MULTICAST_ALL: ::c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; + pub const IUTF8: ::tcflag_t = 0x00004000; pub const CMSPAR: ::tcflag_t = 0o10000000000; From d4521cd53f28a5f3a24b49bc3a1eb9d394366129 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Mon, 4 Nov 2019 06:25:53 -0800 Subject: [PATCH 254/296] fixup tests for IPV6_ --- libc-test/build.rs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 894b8714b1834..00f3bf70dff57 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2325,7 +2325,6 @@ fn test_linux(target: &str) { | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" | "IPV6_FLOWINFO_PRIORITY" - | "IPV6_ADDRFORM" | "IPV6_2292PKTINFO" | "IPV6_2292HOPOPTS" @@ -2618,7 +2617,31 @@ fn test_linux_like_apis(target: &str) { | "IPV6_FLOWLABEL_MGR" | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" - | "IPV6_FLOWINFO_PRIORITY" => false, + | "IPV6_FLOWINFO_PRIORITY" + | "IPV6_ADDRFORM" + | "IPV6_2292PKTINFO" + | "IPV6_2292HOPOPTS" + | "IPV6_2292DSTOPTS" + | "IPV6_2292RTHDR" + | "IPV6_2292PKTOPTIONS" + | "IPV6_CHECKSUM" + | "IPV6_2292HOPLIMIT" + | "IPV6_NEXTHOP" + | "IPV6_UNICAST_HOPS" + | "IPV6_MULTICAST_IF" + | "IPV6_MULTICAST_HOPS" + | "IPV6_MULTICAST_LOOP" + | "IPV6_ADD_MEMBERSHIP" + | "IPV6_DROP_MEMBERSHIP" + | "IPV6_ROUTER_ALERT" + | "IPV6_MTU_DISCOVER" + | "IPV6_MTU" + | "IPV6_RECVERR" + | "IPV6_V6ONLY" + | "IPV6_JOIN_ANYCAST" + | "IPV6_LEAVE_ANYCAST" + | "IPV6_MULTICAST_ALL" + | "IPV6_ROUTER_ALERT_ISOLATE" => false, _ => true, }) .type_name(move |ty, is_struct, is_union| match ty { From d5cdb38ebb2f8d096a4c2914f736a1e02f087174 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Tue, 5 Nov 2019 17:41:34 +0000 Subject: [PATCH 255/296] IPV6 consts are shared between android and linux Signed-off-by: Arthur Gautier --- libc-test/build.rs | 3 +-- src/unix/linux_like/android/mod.rs | 26 -------------------------- src/unix/linux_like/linux/mod.rs | 26 -------------------------- src/unix/linux_like/mod.rs | 18 ++++++++++++++++++ 4 files changed, 19 insertions(+), 54 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 00f3bf70dff57..21dd7e4435336 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2640,8 +2640,7 @@ fn test_linux_like_apis(target: &str) { | "IPV6_V6ONLY" | "IPV6_JOIN_ANYCAST" | "IPV6_LEAVE_ANYCAST" - | "IPV6_MULTICAST_ALL" - | "IPV6_ROUTER_ALERT_ISOLATE" => false, + | "IPV6_MULTICAST_ALL" => false, _ => true, }) .type_name(move |ty, is_struct, is_union| match ty { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index f584782e4f73f..d340468464475 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1408,32 +1408,6 @@ pub const IPV6_FLOWINFO_SEND: ::c_int = 33; pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; -pub const IPV6_ADDRFORM: ::c_int = 1; -pub const IPV6_2292PKTINFO: ::c_int = 2; -pub const IPV6_2292HOPOPTS: ::c_int = 3; -pub const IPV6_2292DSTOPTS: ::c_int = 4; -pub const IPV6_2292RTHDR: ::c_int = 5; -pub const IPV6_2292PKTOPTIONS: ::c_int = 6; -pub const IPV6_CHECKSUM: ::c_int = 7; -pub const IPV6_2292HOPLIMIT: ::c_int = 8; -pub const IPV6_NEXTHOP: ::c_int = 9; -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_ROUTER_ALERT: ::c_int = 22; -pub const IPV6_MTU_DISCOVER: ::c_int = 23; -pub const IPV6_MTU: ::c_int = 24; -pub const IPV6_RECVERR: ::c_int = 25; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_JOIN_ANYCAST: ::c_int = 27; -pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; - pub const IUTF8: ::tcflag_t = 0x00004000; pub const CMSPAR: ::tcflag_t = 0o10000000000; pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 31e310934121b..e7473d417a745 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1535,32 +1535,6 @@ pub const IPV6_FLOWINFO_SEND: ::c_int = 33; pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff; pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000; -pub const IPV6_ADDRFORM: ::c_int = 1; -pub const IPV6_2292PKTINFO: ::c_int = 2; -pub const IPV6_2292HOPOPTS: ::c_int = 3; -pub const IPV6_2292DSTOPTS: ::c_int = 4; -pub const IPV6_2292RTHDR: ::c_int = 5; -pub const IPV6_2292PKTOPTIONS: ::c_int = 6; -pub const IPV6_CHECKSUM: ::c_int = 7; -pub const IPV6_2292HOPLIMIT: ::c_int = 8; -pub const IPV6_NEXTHOP: ::c_int = 9; -pub const IPV6_FLOWINFO: ::c_int = 11; -pub const IPV6_UNICAST_HOPS: ::c_int = 16; -pub const IPV6_MULTICAST_IF: ::c_int = 17; -pub const IPV6_MULTICAST_HOPS: ::c_int = 18; -pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; -pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; -pub const IPV6_ROUTER_ALERT: ::c_int = 22; -pub const IPV6_MTU_DISCOVER: ::c_int = 23; -pub const IPV6_MTU: ::c_int = 24; -pub const IPV6_RECVERR: ::c_int = 25; -pub const IPV6_V6ONLY: ::c_int = 26; -pub const IPV6_JOIN_ANYCAST: ::c_int = 27; -pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; - pub const IUTF8: ::tcflag_t = 0x00004000; pub const CMSPAR: ::tcflag_t = 0o10000000000; diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1568e4f8369f1..2b8107da17a2d 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -811,13 +811,31 @@ pub const IP_RECVERR: ::c_int = 11; pub const IP_ADD_MEMBERSHIP: ::c_int = 35; pub const IP_DROP_MEMBERSHIP: ::c_int = 36; pub const IP_TRANSPARENT: ::c_int = 19; +pub const IPV6_ADDRFORM: ::c_int = 1; +pub const IPV6_2292PKTINFO: ::c_int = 2; +pub const IPV6_2292HOPOPTS: ::c_int = 3; +pub const IPV6_2292DSTOPTS: ::c_int = 4; +pub const IPV6_2292RTHDR: ::c_int = 5; +pub const IPV6_2292PKTOPTIONS: ::c_int = 6; +pub const IPV6_CHECKSUM: ::c_int = 7; +pub const IPV6_2292HOPLIMIT: ::c_int = 8; +pub const IPV6_NEXTHOP: ::c_int = 9; +pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_UNICAST_HOPS: ::c_int = 16; pub const IPV6_MULTICAST_IF: ::c_int = 17; pub const IPV6_MULTICAST_HOPS: ::c_int = 18; pub const IPV6_MULTICAST_LOOP: ::c_int = 19; pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20; pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21; +pub const IPV6_ROUTER_ALERT: ::c_int = 22; +pub const IPV6_MTU_DISCOVER: ::c_int = 23; +pub const IPV6_MTU: ::c_int = 24; +pub const IPV6_RECVERR: ::c_int = 25; pub const IPV6_V6ONLY: ::c_int = 26; +pub const IPV6_JOIN_ANYCAST: ::c_int = 27; +pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; +pub const IPV6_MULTICAST_ALL: ::c_int = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; pub const IPV6_RECVPKTINFO: ::c_int = 49; pub const IPV6_PKTINFO: ::c_int = 50; pub const IPV6_RECVTCLASS: ::c_int = 66; From 5e9c38f1f8230209518409da2bf289df933dc109 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Tue, 5 Nov 2019 19:12:39 +0000 Subject: [PATCH 256/296] no need for new tests Signed-off-by: Arthur Gautier --- libc-test/build.rs | 50 +--------------------------------------------- 1 file changed, 1 insertion(+), 49 deletions(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 21dd7e4435336..b2512b85d6a9d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2325,31 +2325,6 @@ fn test_linux(target: &str) { | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" | "IPV6_FLOWINFO_PRIORITY" - | "IPV6_ADDRFORM" - | "IPV6_2292PKTINFO" - | "IPV6_2292HOPOPTS" - | "IPV6_2292DSTOPTS" - | "IPV6_2292RTHDR" - | "IPV6_2292PKTOPTIONS" - | "IPV6_CHECKSUM" - | "IPV6_2292HOPLIMIT" - | "IPV6_NEXTHOP" - | "IPV6_UNICAST_HOPS" - | "IPV6_MULTICAST_IF" - | "IPV6_MULTICAST_HOPS" - | "IPV6_MULTICAST_LOOP" - | "IPV6_ADD_MEMBERSHIP" - | "IPV6_DROP_MEMBERSHIP" - | "IPV6_ROUTER_ALERT" - | "IPV6_MTU_DISCOVER" - | "IPV6_MTU" - | "IPV6_RECVERR" - | "IPV6_V6ONLY" - | "IPV6_JOIN_ANYCAST" - | "IPV6_LEAVE_ANYCAST" - | "IPV6_MULTICAST_ALL" - | "IPV6_ROUTER_ALERT_ISOLATE" - // The F_ fnctl constants are tested in the `linux_fnctl.rs` tests: | "F_CANCELLK" | "F_ADD_SEALS" @@ -2617,30 +2592,7 @@ fn test_linux_like_apis(target: &str) { | "IPV6_FLOWLABEL_MGR" | "IPV6_FLOWINFO_SEND" | "IPV6_FLOWINFO_FLOWLABEL" - | "IPV6_FLOWINFO_PRIORITY" - | "IPV6_ADDRFORM" - | "IPV6_2292PKTINFO" - | "IPV6_2292HOPOPTS" - | "IPV6_2292DSTOPTS" - | "IPV6_2292RTHDR" - | "IPV6_2292PKTOPTIONS" - | "IPV6_CHECKSUM" - | "IPV6_2292HOPLIMIT" - | "IPV6_NEXTHOP" - | "IPV6_UNICAST_HOPS" - | "IPV6_MULTICAST_IF" - | "IPV6_MULTICAST_HOPS" - | "IPV6_MULTICAST_LOOP" - | "IPV6_ADD_MEMBERSHIP" - | "IPV6_DROP_MEMBERSHIP" - | "IPV6_ROUTER_ALERT" - | "IPV6_MTU_DISCOVER" - | "IPV6_MTU" - | "IPV6_RECVERR" - | "IPV6_V6ONLY" - | "IPV6_JOIN_ANYCAST" - | "IPV6_LEAVE_ANYCAST" - | "IPV6_MULTICAST_ALL" => false, + | "IPV6_FLOWINFO_PRIORITY" => false, _ => true, }) .type_name(move |ty, is_struct, is_union| match ty { From f3064f37845c7d3da8d99678851e2f5243b09bc2 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Tue, 5 Nov 2019 20:08:18 +0000 Subject: [PATCH 257/296] IPV6_ROUTER_ALERT_ISOLATE looks too recent for test env Signed-off-by: Arthur Gautier --- src/unix/linux_like/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 2b8107da17a2d..b5c029e79696d 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -835,7 +835,6 @@ pub const IPV6_V6ONLY: ::c_int = 26; pub const IPV6_JOIN_ANYCAST: ::c_int = 27; pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; pub const IPV6_MULTICAST_ALL: ::c_int = 29; -pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30; pub const IPV6_RECVPKTINFO: ::c_int = 49; pub const IPV6_PKTINFO: ::c_int = 50; pub const IPV6_RECVTCLASS: ::c_int = 66; From 44b7a20329ef9cc6b7d33b64d88de45b67acc520 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Tue, 5 Nov 2019 21:29:44 +0000 Subject: [PATCH 258/296] IPV6_MULTICAST_ALL is too recent for aarch64 test env Signed-off-by: Arthur Gautier --- src/unix/linux_like/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index b5c029e79696d..1fca7c419ce62 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -834,7 +834,6 @@ pub const IPV6_RECVERR: ::c_int = 25; pub const IPV6_V6ONLY: ::c_int = 26; pub const IPV6_JOIN_ANYCAST: ::c_int = 27; pub const IPV6_LEAVE_ANYCAST: ::c_int = 28; -pub const IPV6_MULTICAST_ALL: ::c_int = 29; pub const IPV6_RECVPKTINFO: ::c_int = 49; pub const IPV6_PKTINFO: ::c_int = 50; pub const IPV6_RECVTCLASS: ::c_int = 66; From 6ff2e8f12dcfa75c3ce24c275cb2f2426f1ae259 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Tue, 5 Nov 2019 21:32:27 +0000 Subject: [PATCH 259/296] IPV6_FLOWINFO does not work with asmjs Signed-off-by: Arthur Gautier --- src/unix/linux_like/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1fca7c419ce62..545c05304b2a9 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -820,7 +820,6 @@ pub const IPV6_2292PKTOPTIONS: ::c_int = 6; pub const IPV6_CHECKSUM: ::c_int = 7; pub const IPV6_2292HOPLIMIT: ::c_int = 8; pub const IPV6_NEXTHOP: ::c_int = 9; -pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_UNICAST_HOPS: ::c_int = 16; pub const IPV6_MULTICAST_IF: ::c_int = 17; pub const IPV6_MULTICAST_HOPS: ::c_int = 18; From 53ce57eae741ac0db7c315ea0b4353f18d3067fa Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Wed, 6 Nov 2019 10:42:51 +0100 Subject: [PATCH 260/296] Add support for shared memory operations for solaris/illumos This is needed because Firefox now uses slice-deque rust crate. --- src/unix/solarish/mod.rs | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 49a18367e7e69..578a5270f7dac 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -34,6 +34,7 @@ pub type nl_item = ::c_int; pub type mqd_t = *mut ::c_void; pub type id_t = ::c_int; pub type idtype_t = ::c_uint; +pub type shmatt_t = ::c_ulong; pub type door_attr_t = ::c_uint; pub type door_id_t = ::c_ulonglong; @@ -57,6 +58,16 @@ s! { pub imr_interface: in_addr, } + pub struct ipc_perm { + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub mode: ::mode_t, + pub seq: ::c_uint, + pub key: ::key_t, + } + pub struct sockaddr { pub sa_family: sa_family_t, pub sa_data: [::c_char; 14], @@ -206,6 +217,24 @@ s! { pub ai_next: *mut addrinfo, } + pub struct shmid_ds { + pub shm_perm: ipc_perm, + pub shm_segsz: ::size_t, + pub shm_flags: ::uintptr_t, + pub shm_lkcnt: ::c_ushort, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_cnattch: ::c_ulong, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + pub shm_amp: *mut ::c_void, + pub shm_gransize: u64, + pub shm_allocated: u64, + pub shm_pad4: [i64; 1], + } + pub struct sigset_t { bits: [u32; 4], } @@ -1352,6 +1381,16 @@ pub const IFF_VIRTUAL: ::c_longlong = 0x2000000000; // Cannot send/receive pkts pub const IFF_DUPLICATE: ::c_longlong = 0x4000000000; // Local address in use pub const IFF_IPMP: ::c_longlong = 0x8000000000; // IPMP IP interface +// sys/ipc.h: +pub const IPC_ALLOC: ::c_int = 0x8000; +pub const IPC_CREAT: ::c_int = 0x200; +pub const IPC_EXCL: ::c_int = 0x400; +pub const IPC_NOWAIT: ::c_int = 0x800; +pub const IPC_PRIVATE: key_t = 0; +pub const IPC_RMID: ::c_int = 10; +pub const IPC_SET: ::c_int = 11; +pub const IPC_SEAT: ::c_int = 12; + pub const SHUT_RD: ::c_int = 0; pub const SHUT_WR: ::c_int = 1; pub const SHUT_RDWR: ::c_int = 2; @@ -2011,6 +2050,16 @@ extern "C" { advice: ::c_int, ) -> ::c_int; + pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, + shmflg: ::c_int) -> *mut ::c_void; + + pub fn shmctl(shmid: ::c_int, cmd: ::c_int, + buf: *mut ::shmid_ds) -> ::c_int; + + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + + pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shm_open( name: *const ::c_char, oflag: ::c_int, From a7c0dcf5dac9efac0a25f4b253b12109b4980f04 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Wed, 6 Nov 2019 11:25:58 +0100 Subject: [PATCH 261/296] Add missing MAP_ANONYMOUS for Solaris --- src/unix/solarish/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 578a5270f7dac..d0611d9eba7a9 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1010,6 +1010,7 @@ pub const MAP_PRIVATE: ::c_int = 0x0002; pub const MAP_FIXED: ::c_int = 0x0010; pub const MAP_NORESERVE: ::c_int = 0x40; pub const MAP_ANON: ::c_int = 0x0100; +pub const MAP_ANONYMOUS: ::c_int = 0x0100; pub const MAP_RENAME: ::c_int = 0x20; pub const MAP_ALIGN: ::c_int = 0x200; pub const MAP_TEXT: ::c_int = 0x400; From 487b454d9f8c73b6a611d85d1e7d6820fece9938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Marie?= Date: Thu, 7 Nov 2019 08:25:22 +0100 Subject: [PATCH 262/296] add shm support for NetBSD and OpenBSD initial work from @landryb for OpenBSD, various fixes and NetBSD support from me. Fixes #1585 --- libc-test/build.rs | 2 ++ src/unix/bsd/netbsdlike/mod.rs | 35 ++++++++++++++++++++++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 13 ++++++++++ src/unix/bsd/netbsdlike/openbsd/mod.rs | 15 +++++++++++ 4 files changed, 65 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index b2512b85d6a9d..4ca79d72c1dc9 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -322,6 +322,7 @@ fn test_openbsd(target: &str) { "ufs/ufs/quota.h", "pthread_np.h", "sys/syscall.h", + "sys/shm.h", } cfg.skip_struct(move |ty| { @@ -818,6 +819,7 @@ fn test_netbsd(target: &str) { "netinet/dccp.h", "sys/event.h", "sys/quota.h", + "sys/shm.h", } cfg.type_name(move |ty, is_struct, is_union| { diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 5ce68e2c17fa6..970cb233a191a 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -10,6 +10,7 @@ pub type nl_item = c_long; pub type clockid_t = ::c_int; pub type id_t = u32; pub type sem_t = *mut sem; +pub type key_t = c_long; #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum timezone {} @@ -63,6 +64,16 @@ s! { pub l_type: ::c_short, pub l_whence: ::c_short, } + + pub struct ipc_perm { + pub cuid: ::uid_t, + pub cgid: ::gid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub mode: ::mode_t, + pub seq: ::c_ushort, + pub key: ::key_t, + } } pub const D_T_FMT: ::nl_item = 0; @@ -199,9 +210,20 @@ pub const MAP_SHARED: ::c_int = 0x0001; pub const MAP_PRIVATE: ::c_int = 0x0002; pub const MAP_FIXED: ::c_int = 0x0010; pub const MAP_ANON: ::c_int = 0x1000; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; +pub const IPC_CREAT: ::c_int = 0o001000; +pub const IPC_EXCL: ::c_int = 0o002000; +pub const IPC_NOWAIT: ::c_int = 0o004000; + +pub const IPC_PRIVATE: ::key_t = 0; + +pub const IPC_RMID: ::c_int = 0; +pub const IPC_SET: ::c_int = 1; +pub const IPC_STAT: ::c_int = 2; + pub const MCL_CURRENT: ::c_int = 0x0001; pub const MCL_FUTURE: ::c_int = 0x0002; @@ -715,6 +737,19 @@ extern "C" { pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn uname(buf: *mut ::utsname) -> ::c_int; + + pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; + pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; } cfg_if! { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index efd0405912b64..a5a2fc61d507d 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -9,6 +9,7 @@ pub type mqd_t = ::c_int; type __pthread_spin_t = __cpu_simple_lock_nv_t; pub type vm_size_t = ::uintptr_t; pub type lwpid_t = ::c_uint; +pub type shmatt_t = ::c_uint; impl siginfo_t { pub unsafe fn si_value(&self) -> ::sigval { @@ -281,6 +282,18 @@ s! { pub msg_hdr: ::msghdr, pub msg_len: ::c_uint, } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + pub shm_atime: ::time_t, + pub shm_dtime: ::time_t, + pub shm_ctime: ::time_t, + _shm_internal: *mut ::c_void, + } } s_no_extra_traits! { diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index f70fddf59ceb5..0f9dd04f23fb9 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -306,6 +306,21 @@ s! { pub ar_pln: u8, pub ar_op: u16, } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::c_int, + pub shm_lpid: ::pid_t, + pub shm_cpid: ::pid_t, + pub shm_nattch: ::c_short, + pub shm_atime: ::time_t, + __shm_atimensec: c_long, + pub shm_dtime: ::time_t, + __shm_dtimensec: c_long, + pub shm_ctime: ::time_t, + __shm_ctimensec: c_long, + pub shm_internal: *mut ::c_void, + } } impl siginfo_t { From 0910f3b2fcdf7745494e561cfbd679c724b60964 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Wed, 13 Nov 2019 11:11:26 +0100 Subject: [PATCH 263/296] Disable broken targets --- ci/azure.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ci/azure.yml b/ci/azure.yml index 97f13c9da3579..da25a268db622 100644 --- a/ci/azure.yml +++ b/ci/azure.yml @@ -46,8 +46,10 @@ jobs: TARGET: arm-unknown-linux-gnueabihf arm-unknown-linux-musleabihf: TARGET: arm-unknown-linux-musleabihf - asmjs-unknown-emscripten: - TARGET: asmjs-unknown-emscripten + # Disabled because currently broken, see: + # https://github.com/rust-lang/libc/issues/1591 + # asmjs-unknown-emscripten: + # TARGET: asmjs-unknown-emscripten i686-linux-android: TARGET: i686-linux-android i686-unknown-linux-musl: @@ -74,8 +76,10 @@ jobs: # TARGET: wasm32-wasi sparc64-unknown-linux-gnu: TARGET: sparc64-unknown-linux-gnu - wasm32-unknown-emscripten: - TARGET: wasm32-unknown-emscripten + # Disabled because currently broken, see: + # https://github.com/rust-lang/libc/issues/1591 + # wasm32-unknown-emscripten: + # TARGET: wasm32-unknown-emscripten x86_64-linux-android: TARGET: x86_64-linux-android x86_64-unknown-linux-gnux32: @@ -122,10 +126,12 @@ jobs: ARCH: x86_64 x86_64-pc-windows-msvc: TARGET: x86_64-pc-windows-msvc - i686-pc-windows-gnu: - TARGET: i686-pc-windows-gnu - ARCH_BITS: 32 - ARCH: i686 + # Disabled because broken: + # https://github.com/rust-lang/libc/issues/1592 + #i686-pc-windows-gnu: + # TARGET: i686-pc-windows-gnu + # ARCH_BITS: 32 + # ARCH: i686 i686-pc-windows-msvc: TARGET: i686-pc-windows-msvc From e6a7fb663779c14f553428a432a419c194af1a93 Mon Sep 17 00:00:00 2001 From: Mike Zeller Date: Thu, 14 Nov 2019 20:46:05 +0000 Subject: [PATCH 264/296] Add illumos 3socket flags --- src/unix/solarish/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 49a18367e7e69..d7aebc1ed51d3 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -1803,6 +1803,11 @@ pub const VLNEXT: usize = 15; pub const VSTATUS: usize = 16; pub const VERASE2: usize = 17; +// 3SOCKET flags +pub const SOCK_CLOEXEC: ::c_int = 0x080000; +pub const SOCK_NONBLOCK: ::c_int = 0x100000; +pub const SOCK_NDELAY: ::c_int = 0x200000; + f! { pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8; From 60a2167702a6780d6e63d571f6861a2af38889dc Mon Sep 17 00:00:00 2001 From: Brandon Cheng Date: Sun, 6 Oct 2019 13:19:49 -0400 Subject: [PATCH 265/296] Add extended IFLA_ consts Only Netlink interface link attributes up IFLA_STATS are currently available. This commit adds IFLA_COST to IFLA_PROTO_DOWN. See https://github.com/torvalds/linux/blob/54ecb8f7/include/uapi/linux/if_link.h#L106 --- src/unix/linux_like/linux/mod.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 04d19ea08a680..053f16efa46eb 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1127,6 +1127,38 @@ pub const IFLA_MTU: ::c_ushort = 4; pub const IFLA_LINK: ::c_ushort = 5; pub const IFLA_QDISC: ::c_ushort = 6; pub const IFLA_STATS: ::c_ushort = 7; +pub const IFLA_COST: ::c_ushort = 8; +pub const IFLA_PRIORITY: ::c_ushort = 9; +pub const IFLA_MASTER: ::c_ushort = 10; +pub const IFLA_WIRELESS: ::c_ushort = 11; +pub const IFLA_PROTINFO: ::c_ushort = 12; +pub const IFLA_TXQLEN: ::c_ushort = 13; +pub const IFLA_MAP: ::c_ushort = 14; +pub const IFLA_WEIGHT: ::c_ushort = 15; +pub const IFLA_OPERSTATE: ::c_ushort = 16; +pub const IFLA_LINKMODE: ::c_ushort = 17; +pub const IFLA_LINKINFO: ::c_ushort = 18; +pub const IFLA_NET_NS_PID: ::c_ushort = 19; +pub const IFLA_IFALIAS: ::c_ushort = 20; +pub const IFLA_NUM_VF: ::c_ushort = 21; +pub const IFLA_VFINFO_LIST: ::c_ushort = 22; +pub const IFLA_STATS64: ::c_ushort = 23; +pub const IFLA_VF_PORTS: ::c_ushort = 24; +pub const IFLA_PORT_SELF: ::c_ushort = 25; +pub const IFLA_AF_SPEC: ::c_ushort = 26; +pub const IFLA_GROUP: ::c_ushort = 27; +pub const IFLA_NET_NS_FD: ::c_ushort = 28; +pub const IFLA_EXT_MASK: ::c_ushort = 29; +pub const IFLA_PROMISCUITY: ::c_ushort = 30; +pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31; +pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32; +pub const IFLA_CARRIER: ::c_ushort = 33; +pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34; +pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35; +pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36; +pub const IFLA_LINK_NETNSID: ::c_ushort = 37; +pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38; +pub const IFLA_PROTO_DOWN: ::c_ushort = 39; pub const IFLA_INFO_UNSPEC: ::c_ushort = 0; pub const IFLA_INFO_KIND: ::c_ushort = 1; From 1f7352ca3dc3dd4717d24267ec56cca85def0a40 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Tue, 29 Oct 2019 00:56:52 +0000 Subject: [PATCH 266/296] Deprecate vfork --- src/unix/linux_like/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 1568e4f8369f1..f673408edb4cd 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1458,6 +1458,10 @@ extern "C" { pub fn acct(filename: *const ::c_char) -> ::c_int; pub fn brk(addr: *mut ::c_void) -> ::c_int; pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; + #[deprecated( + since = "0.2.66", + note = "causes memory corruption, see rust-lang/libc#1596" + )] pub fn vfork() -> ::pid_t; pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; From e7936addfb5fb06abc030595bd1388d347c728a4 Mon Sep 17 00:00:00 2001 From: Michal 'vorner' Vaner Date: Sun, 17 Nov 2019 21:16:54 +0100 Subject: [PATCH 267/296] fixup! nfnetlink & nfnetlink_log constants --- src/unix/linux_like/android/mod.rs | 4 ---- src/unix/linux_like/linux/mod.rs | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index fc515dc870a25..09a934cca7d6a 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1319,7 +1319,6 @@ pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; pub const NFNLGRP_NFTABLES: ::c_int = 7; pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; -pub const NFNLGRP_NFTRACE: ::c_int = 9; pub const NFNETLINK_V0: ::c_int = 0; @@ -1337,9 +1336,6 @@ pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; pub const NFNL_SUBSYS_COUNT: ::c_int = 12; -pub const NFNL_BATCH_UNSPEC: ::c_int = 0; -pub const NFNL_BATCH_GENID: ::c_int = 1; - pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 144d7beee63c3..3488c5bb186f9 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1674,7 +1674,6 @@ pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5; pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6; pub const NFNLGRP_NFTABLES: ::c_int = 7; pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8; -pub const NFNLGRP_NFTRACE: ::c_int = 9; pub const NFNETLINK_V0: ::c_int = 0; @@ -1692,9 +1691,6 @@ pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10; pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11; pub const NFNL_SUBSYS_COUNT: ::c_int = 12; -pub const NFNL_BATCH_UNSPEC: ::c_int = 0; -pub const NFNL_BATCH_GENID: ::c_int = 1; - pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE; pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1; From 9f1cbfa88a149a9e0142e536289c71954bac7a38 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Tue, 19 Nov 2019 00:28:16 -0300 Subject: [PATCH 268/296] Run rustfmt --- src/unix/solarish/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index cfa92690daf2e..9df92b7788747 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2399,10 +2399,10 @@ extern "C" { pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); - // TODO: uncomment after utmp implementation - // pub fn getutmp(ux: *const utmpx, u: *mut utmp); - // pub fn getutmpx(u: *const utmp, ux: *mut utmpx); - // pub fn updwtmp(file: *const ::c_char, u: *mut utmp); +// TODO: uncomment after utmp implementation +// pub fn getutmp(ux: *const utmpx, u: *mut utmp); +// pub fn getutmpx(u: *const utmp, ux: *mut utmpx); +// pub fn updwtmp(file: *const ::c_char, u: *mut utmp); } mod compat; From b14e947de37335b49cc12e4b51faf30cf455743b Mon Sep 17 00:00:00 2001 From: oxalica Date: Sun, 10 Nov 2019 20:08:22 +0800 Subject: [PATCH 269/296] Upgrade to musl 1.1.24 in CI --- ci/docker/mips-unknown-linux-musl/Dockerfile | 25 ++++++++++------ .../mipsel-unknown-linux-musl/Dockerfile | 27 ++++++++++------- ci/install-musl.sh | 2 +- ci/sysinfo_guard.patch | 10 +++++++ libc-test/build.rs | 29 ++++++++++--------- 5 files changed, 59 insertions(+), 34 deletions(-) create mode 100644 ci/sysinfo_guard.patch diff --git a/ci/docker/mips-unknown-linux-musl/Dockerfile b/ci/docker/mips-unknown-linux-musl/Dockerfile index f1a1076cb5a15..a1ec7ff94650c 100644 --- a/ci/docker/mips-unknown-linux-musl/Dockerfile +++ b/ci/docker/mips-unknown-linux-musl/Dockerfile @@ -2,16 +2,23 @@ FROM ubuntu:19.04 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc libc6-dev qemu-user ca-certificates qemu-system-mips curl \ - bzip2 + xz-utils patch RUN mkdir /toolchain -# Note that this originally came from: -# https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 -RUN curl --retry 5 -L https://ci-mirrors.rust-lang.org/libc/OpenWrt-SDK-ar71xx-generic_gcc-5.3.0_musl-1.1.15.Linux-x86_64.tar.bz2 | \ - tar xjf - -C /toolchain --strip-components=1 +# Linux kernel version: 4.14.151 +# See build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.14.151 +# Musl version: 1.1.24 +# See staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/info.mk +RUN curl --retry 5 -L https://downloads.openwrt.org/releases/19.07.0-rc1/targets/ar71xx/generic/openwrt-sdk-19.07.0-rc1-ar71xx-generic_gcc-7.4.0_musl.Linux-x86_64.tar.xz | \ + tar xJf - -C /toolchain --strip-components=1 -ENV PATH=$PATH:/rust/bin:/toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15/bin \ - CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc \ - CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_LINKER=mips-openwrt-linux-gcc \ - CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_RUNNER="qemu-mips -L /toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15" +# See https://lkml.org/lkml/2014/3/14/269 +COPY sysinfo_guard.patch /toolchain +RUN patch /toolchain/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/include/linux/kernel.h ++#endif + + /* + * 'kernel.h' contains some often-used function prototypes etc diff --git a/libc-test/build.rs b/libc-test/build.rs index 4ca79d72c1dc9..e943b9960c3a1 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2061,7 +2061,6 @@ fn test_linux(target: &str) { let i686 = target.contains("i686"); let mips = target.contains("mips"); let mips32 = mips && !target.contains("64"); - let mips32_musl = mips32 && musl; let mips64 = mips && target.contains("64"); let ppc64 = target.contains("powerpc64"); let s390x = target.contains("s390x"); @@ -2069,6 +2068,7 @@ fn test_linux(target: &str) { let x32 = target.contains("x32"); let x86_32 = target.contains("i686"); let x86_64 = target.contains("x86_64"); + let aarch64_musl = target.contains("aarch64") && musl; let mut cfg = ctest_cfg(); cfg.define("_GNU_SOURCE", None); @@ -2132,8 +2132,7 @@ fn test_linux(target: &str) { "sys/prctl.h", "sys/ptrace.h", "sys/quota.h", - // FIXME: the mips-musl CI build jobs use ancient musl 1.0.15: - [!mips32_musl]: "sys/random.h", + "sys/random.h", "sys/reboot.h", "sys/resource.h", "sys/sem.h", @@ -2187,8 +2186,7 @@ fn test_linux(target: &str) { "linux/fs.h", "linux/futex.h", "linux/genetlink.h", - // FIXME: musl version 1.0.15 used by mips build jobs is ancient - [!mips32_musl]: "linux/if.h", + "linux/if.h", "linux/if_addr.h", "linux/if_alg.h", "linux/if_ether.h", @@ -2303,9 +2301,6 @@ fn test_linux(target: &str) { // structs. "termios2" => true, - // FIXME: musl version using by mips build jobs 1.0.15 is ancient: - "ifmap" | "ifreq" | "ifconf" if mips32_musl => true, - // FIXME: remove once Ubuntu 20.04 LTS is released, somewhere in 2020. // ucontext_t added a new field as of glibc 2.28; our struct definition is // conservative and omits the field, but that means the size doesn't match for newer @@ -2349,7 +2344,7 @@ fn test_linux(target: &str) { // Require Linux kernel 5.1: "F_SEAL_FUTURE_WRITE" => true, - // The musl version 1.0.22 used in CI does not + // The musl version 1.1.24 used in CI does not // contain these glibc constants yet: | "RLIMIT_RTTIME" // should be in `resource.h` | "TCP_COOKIE_TRANSACTIONS" // should be in the `netinet/tcp.h` header @@ -2371,10 +2366,6 @@ fn test_linux(target: &str) { // - these constants are used by the glibc implementation. n if musl && n.contains("__SIZEOF_PTHREAD") => true, - // FIXME: musl version 1.0.15 used by mips build jobs is ancient - t if mips32_musl && t.starts_with("IFF") => true, - "MFD_HUGETLB" | "AF_XDP" | "PF_XDP" if mips32_musl => true, - _ => false, } }); @@ -2458,7 +2449,17 @@ fn test_linux(target: &str) { field == "_pad2" || field == "ssi_syscall" || field == "ssi_call_addr" || - field == "ssi_arch")) + field == "ssi_arch")) || + // FIXME: After musl 1.1.24, it have only one field `sched_priority`, + // while other fields become reserved. + (struct_ == "sched_param" && [ + "sched_ss_low_priority", + "sched_ss_repl_period", + "sched_ss_init_budget", + "sched_ss_max_repl", + ].contains(&field) && musl) || + // FIXME: After musl 1.1.24, the type becomes `int` instead of `unsigned short`. + (struct_ == "ipc_perm" && field == "__seq" && aarch64_musl) }); cfg.skip_roundtrip(move |s| match s { From 863e106543128dfaf6812e5554eb6089851f8ec2 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Tue, 19 Nov 2019 03:22:08 -0300 Subject: [PATCH 270/296] Run rustfmt --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index b03cfdd9fbd39..2f48aac5511f2 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1907,9 +1907,9 @@ extern "C" { pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); - // TODO: uncomment after utmp implementation - // pub fn getutmp(ux: *const utmpx, u: *mut utmp); - // pub fn getutmpx(u: *const utmp, ux: *mut utmpx); +// TODO: uncomment after utmp implementation +// pub fn getutmp(ux: *const utmpx, u: *mut utmp); +// pub fn getutmpx(u: *const utmp, ux: *mut utmpx); } cfg_if! { From 7022df3dbf22ead59a0fa315aed2a72e82dedebc Mon Sep 17 00:00:00 2001 From: Yang Keao Date: Tue, 19 Nov 2019 15:29:31 +0800 Subject: [PATCH 271/296] add pthread_getname_np for mac os Signed-off-by: Yang Keao --- src/unix/bsd/apple/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index fa3ba81b0bd9f..aa3cc1ca1c73d 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -3237,6 +3237,11 @@ extern "C" { #[allow(deprecated)] pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int; pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; + pub fn pthread_getname_np( + thread: ::pthread_t, + name: *mut ::c_char, + len: ::size_t, + ) -> ::c_int; pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void; pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t; pub fn pthread_condattr_setpshared( From 40f9253fc995620f038572a90941b82c290f138d Mon Sep 17 00:00:00 2001 From: GrayJack Date: Tue, 19 Nov 2019 06:10:36 -0300 Subject: [PATCH 272/296] Fix style error that `cargo fmt` didn't got --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 2f48aac5511f2..000ce4431006e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -283,7 +283,6 @@ s! { pub msg_len: ::c_uint, } - pub struct __exit_status { pub e_termination: u16, pub e_exit: u16, From 5d3c5b9d40ff6bcb125ab4334f201c00cad178c1 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Wed, 20 Nov 2019 12:38:29 -0300 Subject: [PATCH 273/296] Fix the PartialEq utmpx impl --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 000ce4431006e..69c1efbbcd1ac 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -428,7 +428,11 @@ cfg_if! { && self.ut_session == other.ut_session && self.ut_tv == other.ut_tv && self.ut_ss == other.ut_ss - && self.ut_pad == other.ut_pad + && self + .ut_pad + .iter() + .zip(other.ut_pad.iter()) + .all(|(a,b)| a == b) && self .ut_host .iter() From f10ee11f7043cb38fff02d9085b26009f2fc66aa Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Wed, 20 Nov 2019 13:08:27 -0500 Subject: [PATCH 274/296] Fix build.rs failing with a rustc built from a tarball Fixes #1601 --- build.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/build.rs b/build.rs index 420e15965121b..f447c0ef9cd44 100644 --- a/build.rs +++ b/build.rs @@ -103,9 +103,16 @@ fn rustc_minor_nightly() -> Option<(u32, bool)> { } let minor = pieces.next(); - let nightly_raw = otry!(otry!(pieces.next()).split('-').nth(1)); - let nightly = - nightly_raw.starts_with("dev") || nightly_raw.starts_with("nightly"); + + // If `rustc` was built from a tarball, its version string + // will have neither a git hash nor a commit date + // (e.g. "rustc 1.39.0"). Treat this case as non-nightly, + // since a nightly build should either come from CI + // or a git checkout + let nightly_raw = otry!(pieces.next()).split('-').nth(1); + let nightly = nightly_raw + .map(|raw| raw.starts_with("dev") || raw.starts_with("nightly")) + .unwrap_or(false); let minor = otry!(otry!(minor).parse().ok()); Some((minor, nightly)) From c70634e4866f668a77260997c8bd7716b8905cdd Mon Sep 17 00:00:00 2001 From: Elichai Turkel Date: Fri, 18 Oct 2019 15:46:38 +0300 Subject: [PATCH 275/296] Add flock64 to linux_like platforms --- src/unix/linux_like/android/mod.rs | 10 ++++++++++ src/unix/linux_like/emscripten/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b32/arm/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b32/powerpc.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b32/x86/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b64/s390x.rs | 8 ++++++++ src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs | 9 +++++++++ src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs | 8 ++++++++ src/unix/linux_like/linux/musl/mod.rs | 2 ++ 12 files changed, 93 insertions(+) diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 4c4a29669b730..356fec29c8db3 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -22,6 +22,8 @@ pub type ino_t = ::c_ulong; pub type __CPU_BITTYPE = ::c_ulong; pub type idtype_t = ::c_int; pub type loff_t = ::c_longlong; +pub type __kernel_loff_t = ::c_longlong; +pub type __kernel_pid_t = ::c_int; s! { pub struct stack_t { @@ -78,6 +80,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::__kernel_loff_t, + pub l_len: ::__kernel_loff_t, + pub l_pid: ::__kernel_pid_t, + } + pub struct cpu_set_t { #[cfg(target_pointer_width = "64")] __bits: [__CPU_BITTYPE; 16], diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index d062b98f41c47..3fc47bb5ebab3 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -223,6 +223,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct pthread_attr_t { __size: [u32; 11] } diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index f74b41e315671..0a5fc8567b570 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -33,6 +33,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct ipc_perm { pub __key: ::key_t, pub uid: ::uid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index 92e52333cad18..7644428014f1a 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -33,6 +33,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct ipc_perm { __key: ::key_t, pub uid: ::uid_t, diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 05e876067dd89..f5f7cac4c5ac4 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -34,6 +34,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct _libc_fpreg { pub significand: [u16; 4], pub exponent: u16, diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index b980a11b19110..13d9aaf05a6c6 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -45,6 +45,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 5b3da3cb2dc90..2b77aa4b3db52 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -57,6 +57,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct stat64 { pub st_dev: ::c_ulong, st_pad1: [::c_long; 2], diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index bd9089543afdf..22507d72f3267 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -45,6 +45,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct stat { pub st_dev: ::dev_t, pub st_ino: ::ino_t, diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index ac3170416024d..403e4578d99b3 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -44,6 +44,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct siginfo_t { pub si_signo: ::c_int, pub si_errno: ::c_int, diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index 93b1fa5349179..651ada376eecc 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -60,6 +60,15 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + __reserved: ::c_short, + } + pub struct stack_t { pub ss_sp: *mut ::c_void, pub ss_flags: ::c_int, diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index d1a2294380961..124f0926df3a2 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -42,6 +42,14 @@ s! { pub l_pid: ::pid_t, } + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + } + pub struct siginfo_t { pub si_signo: ::c_int, pub si_errno: ::c_int, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 7f10a0b39fb09..2c5d375a1aa59 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -13,6 +13,8 @@ pub type fsblkcnt_t = ::c_ulonglong; pub type fsfilcnt_t = ::c_ulonglong; pub type rlim_t = ::c_ulonglong; +pub type flock64 = flock; + impl siginfo_t { pub unsafe fn si_addr(&self) -> *mut ::c_void { #[repr(C)] From 66529ed3759cfd2994148b117984cddb15ddb4a6 Mon Sep 17 00:00:00 2001 From: Elichai Turkel Date: Wed, 20 Nov 2019 14:54:57 +0200 Subject: [PATCH 276/296] Add a rule for flock64 in libc-test build script --- libc-test/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index b2512b85d6a9d..977d444a46398 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2230,6 +2230,9 @@ fn test_linux(target: &str) { t if t.ends_with("_t") => t.to_string(), + // This is either a struct or a typedef to a struct + "flock64" if musl => format!("struct {}", ty), + // put `struct` in front of all structs:. t if is_struct => format!("struct {}", t), From 2cb9eec1310474e06cbbee8bd38c2ac97951bc26 Mon Sep 17 00:00:00 2001 From: patrick felt Date: Thu, 21 Nov 2019 17:02:26 -0700 Subject: [PATCH 277/296] - skip the roundtrip c check due to alignment Signed-off-by: patrick felt --- libc-test/build.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index b2512b85d6a9d..bdecc66fe2dfb 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2471,6 +2471,7 @@ fn test_linux(target: &str) { true } "ipv6_mreq" + | "ip_mreq_source" | "sockaddr_in6" | "sockaddr_ll" | "in_pktinfo" From 54283f9e984e0f8736c69e7df9b2bcbb387e8e10 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Thu, 21 Nov 2019 21:18:19 -0300 Subject: [PATCH 278/296] Implement utmp for solarish targets --- src/unix/solarish/mod.rs | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 0ad132e840ad5..c8cca192d94a1 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -353,6 +353,16 @@ s! { e_termination: ::c_short, e_exit: ::c_short, } + + pub struct utmp { + pub ut_user: [::c_char; 8], + pub ut_id: [::c_char; 4], + pub ut_line: [::c_char; 12], + pub ut_pid: ::c_short, + pub ut_type: ::c_short, + pub ut_exit: exit_status, + pub ut_time: ::time_t, + } } s_no_extra_traits! { @@ -1690,6 +1700,7 @@ pub const PORT_SOURCE_FILE: ::c_int = 7; pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; pub const PORT_SOURCE_SIGNAL: ::c_int = 9; +pub const NONROOT_USR: ::c_short = 2; pub const _UTX_USERSIZE: usize = 32; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_PADSIZE: usize = 5; @@ -2404,10 +2415,18 @@ extern "C" { pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); -// TODO: uncomment after utmp implementation -// pub fn getutmp(ux: *const utmpx, u: *mut utmp); -// pub fn getutmpx(u: *const utmp, ux: *mut utmpx); -// pub fn updwtmp(file: *const ::c_char, u: *mut utmp); + + pub fn endutent(); + pub fn getutent() -> *mut utmp; + pub fn getutid(u: *const utmp) -> *mut utmp; + pub fn getutline(u: *const utmp) -> *mut utmp; + pub fn pututline(u: *const utmp) -> *mut utmp; + pub fn setutent(); + pub fn utmpname(file: *const ::c_char) -> ::c_int; + + pub fn getutmp(ux: *const utmpx, u: *mut utmp); + pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + pub fn updwtmp(file: *const ::c_char, u: *mut utmp); } mod compat; From ea00e8b9118c314d1b83d6268e8d3efdb9cdbc51 Mon Sep 17 00:00:00 2001 From: oxalica Date: Thu, 31 Oct 2019 21:01:11 +0800 Subject: [PATCH 279/296] Provide SYS_statx for more arch --- src/unix/linux_like/linux/gnu/b32/mips/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/mips64/mod.rs | 1 + src/unix/linux_like/linux/gnu/b64/s390x.rs | 1 + src/unix/linux_like/linux/musl/b32/arm/mod.rs | 1 + src/unix/linux_like/linux/musl/b32/hexagon.rs | 1 + src/unix/linux_like/linux/musl/b32/mips/mod.rs | 4 ++++ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 1 + src/unix/linux_like/linux/musl/b64/mips64.rs | 1 + src/unix/linux_like/linux/musl/b64/powerpc64.rs | 1 + src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 1 + 12 files changed, 15 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 23b0160bffa01..4a3b600aaf6b4 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -526,6 +526,7 @@ pub const SYS_pwritev2: ::c_long = 4000 + 362; pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; pub const SYS_pkey_alloc: ::c_long = 4000 + 364; pub const SYS_pkey_free: ::c_long = 4000 + 365; +pub const SYS_statx: ::c_long = 4000 + 366; pub const O_DIRECT: ::c_int = 0x8000; pub const O_DIRECTORY: ::c_int = 0x10000; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index b980a11b19110..1a0e2f9904bf6 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -924,6 +924,7 @@ pub const SYS_pwritev2: ::c_long = 287; pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; #[link(name = "util")] extern "C" { diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index 5b3da3cb2dc90..c895f1da6d764 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -568,6 +568,7 @@ pub const SYS_pwritev2: ::c_long = 5000 + 322; pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; pub const SYS_pkey_alloc: ::c_long = 5000 + 324; pub const SYS_pkey_free: ::c_long = 5000 + 325; +pub const SYS_statx: ::c_long = 5000 + 326; pub const SFD_CLOEXEC: ::c_int = 0x080000; diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index ac3170416024d..25d226158457c 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -993,6 +993,7 @@ pub const SYS_chown: ::c_long = 212; pub const SYS_setfsuid: ::c_long = 215; pub const SYS_setfsgid: ::c_long = 216; pub const SYS_newfstatat: ::c_long = 293; +pub const SYS_statx: ::c_long = 379; #[link(name = "util")] extern "C" { diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index fd1e259fc3b5f..ff23688734721 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -827,6 +827,7 @@ pub const SYS_pwritev2: ::c_long = 393; pub const SYS_pkey_mprotect: ::c_long = 394; pub const SYS_pkey_alloc: ::c_long = 395; pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_statx: ::c_long = 397; extern "C" { pub fn getrandom( diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 0e6cc148fab34..23406955727bc 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -710,6 +710,7 @@ pub const SYS_wait4: ::c_int = 260; pub const SYS_waitid: ::c_int = 95; pub const SYS_write: ::c_int = 64; pub const SYS_writev: ::c_int = 66; +pub const SYS_statx: ::c_int = 291; pub const TCFLSH: ::c_int = 21515; pub const TCGETA: ::c_int = 21509; pub const TCGETS: ::c_int = 21505; diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 7fdd121a7ac4b..be11341683f15 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -836,6 +836,10 @@ pub const SYS_mlock2: ::c_long = 4000 + 359; pub const SYS_copy_file_range: ::c_long = 4000 + 360; pub const SYS_preadv2: ::c_long = 4000 + 361; pub const SYS_pwritev2: ::c_long = 4000 + 362; +pub const SYS_pkey_mprotect: ::c_long = 4000 + 363; +pub const SYS_pkey_alloc: ::c_long = 4000 + 364; +pub const SYS_pkey_free: ::c_long = 4000 + 365; +pub const SYS_statx: ::c_long = 4000 + 366; cfg_if! { if #[cfg(libc_align)] { diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index fb5569200c2d7..78309045fa2ec 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -916,6 +916,7 @@ pub const SYS_preadv2: ::c_long = 378; pub const SYS_pwritev2: ::c_long = 379; // FIXME syscalls 380-382 have been added in musl 1.16 // See discussion https://github.com/rust-lang/libc/pull/699 +pub const SYS_statx: ::c_long = 383; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 8c286d83ccd21..876ff3c8d746f 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -506,6 +506,7 @@ pub const SYS_pwritev2: ::c_long = 287; pub const SYS_pkey_mprotect: ::c_long = 288; pub const SYS_pkey_alloc: ::c_long = 289; pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; pub const RLIMIT_NLIMITS: ::c_int = 15; pub const TIOCINQ: ::c_int = ::FIONREAD; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index bbdc0105fbf97..2c410509fa76e 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -424,6 +424,7 @@ pub const SYS_pwritev2: ::c_long = 5000 + 322; pub const SYS_pkey_mprotect: ::c_long = 5000 + 323; pub const SYS_pkey_alloc: ::c_long = 5000 + 324; pub const SYS_pkey_free: ::c_long = 5000 + 325; +pub const SYS_statx: ::c_long = 5000 + 326; pub const O_DIRECT: ::c_int = 0x8000; pub const O_DIRECTORY: ::c_int = 0x10000; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 5c068feae8cbf..d27d703ad9c4c 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -596,6 +596,7 @@ pub const SYS_copy_file_range: ::c_long = 379; pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; pub const FIOCLEX: ::c_int = 0x20006601; pub const FIONCLEX: ::c_int = 0x20006602; diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 84f615e2fa2e5..e82d584314c9e 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -578,6 +578,7 @@ pub const SYS_preadv2: ::c_long = 327; pub const SYS_pwritev2: ::c_long = 328; // FIXME syscalls 329-331 have been added in musl 1.16 // See discussion https://github.com/rust-lang/libc/pull/699 +pub const SYS_statx: ::c_long = 332; // offsets in user_regs_structs, from sys/reg.h pub const R15: ::c_int = 0; From d211ebff7685c7ade4eb5feeca6633cfe1270949 Mon Sep 17 00:00:00 2001 From: oxalica Date: Fri, 22 Nov 2019 13:55:52 +0800 Subject: [PATCH 280/296] Bring back SYS_pkey_* for musl --- src/unix/linux_like/linux/musl/b32/x86/mod.rs | 5 +++-- src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 78309045fa2ec..fcd8ae4117b0b 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -914,8 +914,9 @@ pub const SYS_mlock2: ::c_long = 376; pub const SYS_copy_file_range: ::c_long = 377; pub const SYS_preadv2: ::c_long = 378; pub const SYS_pwritev2: ::c_long = 379; -// FIXME syscalls 380-382 have been added in musl 1.16 -// See discussion https://github.com/rust-lang/libc/pull/699 +pub const SYS_pkey_mprotect: ::c_long = 380; +pub const SYS_pkey_alloc: ::c_long = 381; +pub const SYS_pkey_free: ::c_long = 382; pub const SYS_statx: ::c_long = 383; // offsets in user_regs_structs, from sys/reg.h diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index e82d584314c9e..ff9300c85f393 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -576,8 +576,9 @@ pub const SYS_mlock2: ::c_long = 325; pub const SYS_copy_file_range: ::c_long = 326; pub const SYS_preadv2: ::c_long = 327; pub const SYS_pwritev2: ::c_long = 328; -// FIXME syscalls 329-331 have been added in musl 1.16 -// See discussion https://github.com/rust-lang/libc/pull/699 +pub const SYS_pkey_mprotect: ::c_long = 329; +pub const SYS_pkey_alloc: ::c_long = 330; +pub const SYS_pkey_free: ::c_long = 331; pub const SYS_statx: ::c_long = 332; // offsets in user_regs_structs, from sys/reg.h From 3c1b0eee2e7ffa8b700dd2ecbbdf0a7de33d0ee5 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Fri, 22 Nov 2019 09:28:47 +0100 Subject: [PATCH 281/296] distinguish between solaris and illumos for shmid_ds --- src/unix/solarish/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index d0611d9eba7a9..b8a39536b9c4d 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -220,6 +220,9 @@ s! { pub struct shmid_ds { pub shm_perm: ipc_perm, pub shm_segsz: ::size_t, + #[cfg(target_os = "illumos")] + pub shm_amp: *mut ::c_void, + #[cfg(target_os = "solaris")] pub shm_flags: ::uintptr_t, pub shm_lkcnt: ::c_ushort, pub shm_lpid: ::pid_t, @@ -229,9 +232,15 @@ s! { pub shm_atime: ::time_t, pub shm_dtime: ::time_t, pub shm_ctime: ::time_t, + #[cfg(target_os = "illumos")] + pub shm_pad4: [i64; 4], + #[cfg(target_os = "solaris")] pub shm_amp: *mut ::c_void, + #[cfg(target_os = "solaris")] pub shm_gransize: u64, + #[cfg(target_os = "solaris")] pub shm_allocated: u64, + #[cfg(target_os = "solaris")] pub shm_pad4: [i64; 1], } From 0eb1462e14e96105fa249f69cd54da6a4590f541 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Fri, 22 Nov 2019 18:12:15 +0000 Subject: [PATCH 282/296] Revert "IPV6_FLOWINFO does not work with asmjs" This reverts commit 6ff2e8f12dcfa75c3ce24c275cb2f2426f1ae259. --- src/unix/linux_like/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 545c05304b2a9..1fca7c419ce62 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -820,6 +820,7 @@ pub const IPV6_2292PKTOPTIONS: ::c_int = 6; pub const IPV6_CHECKSUM: ::c_int = 7; pub const IPV6_2292HOPLIMIT: ::c_int = 8; pub const IPV6_NEXTHOP: ::c_int = 9; +pub const IPV6_FLOWINFO: ::c_int = 11; pub const IPV6_UNICAST_HOPS: ::c_int = 16; pub const IPV6_MULTICAST_IF: ::c_int = 17; pub const IPV6_MULTICAST_HOPS: ::c_int = 18; From 490e073525fa2e34a662b79dec946eaeed51c84d Mon Sep 17 00:00:00 2001 From: Elichai Turkel Date: Mon, 25 Nov 2019 11:33:21 +0200 Subject: [PATCH 283/296] Fix wording in the build script flock64 rule Co-Authored-By: gnzlbg --- libc-test/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 977d444a46398..ea5494801db65 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -2230,7 +2230,7 @@ fn test_linux(target: &str) { t if t.ends_with("_t") => t.to_string(), - // This is either a struct or a typedef to a struct + // In MUSL `flock64` is a typedef to `flock`. "flock64" if musl => format!("struct {}", ty), // put `struct` in front of all structs:. From 412dd4e1b0112c5aa605ef33bc18215fb56edf67 Mon Sep 17 00:00:00 2001 From: Petr Sumbera Date: Mon, 25 Nov 2019 15:17:42 +0100 Subject: [PATCH 284/296] Fixes fmt issues. --- src/unix/solarish/mod.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index b8a39536b9c4d..956a664b20f36 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2060,11 +2060,17 @@ extern "C" { advice: ::c_int, ) -> ::c_int; - pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, - shmflg: ::c_int) -> *mut ::c_void; - - pub fn shmctl(shmid: ::c_int, cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; + pub fn shmat( + shmid: ::c_int, + shmaddr: *const ::c_void, + shmflg: ::c_int, + ) -> *mut ::c_void; + + pub fn shmctl( + shmid: ::c_int, + cmd: ::c_int, + buf: *mut ::shmid_ds, + ) -> ::c_int; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; From 034574cc52ba12cf7b11a6a76488da587d8deb63 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz Date: Mon, 25 Nov 2019 17:44:01 +0100 Subject: [PATCH 285/296] Add initial support for sparc-unknown-linux-gnu --- src/unix/linux_like/linux/align.rs | 4 + src/unix/linux_like/linux/gnu/b32/mod.rs | 3 + .../linux_like/linux/gnu/b32/sparc/align.rs | 7 + .../linux_like/linux/gnu/b32/sparc/mod.rs | 978 ++++++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 10 +- src/unix/linux_like/linux/no_align.rs | 4 + 6 files changed, 1004 insertions(+), 2 deletions(-) create mode 100644 src/unix/linux_like/linux/gnu/b32/sparc/align.rs create mode 100644 src/unix/linux_like/linux/gnu/b32/sparc/mod.rs diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs index 440a8415fbec6..6000b416e0d4a 100644 --- a/src/unix/linux_like/linux/align.rs +++ b/src/unix/linux_like/linux/align.rs @@ -62,6 +62,7 @@ macro_rules! expand_align { target_arch = "arm", target_arch = "hexagon", target_arch = "powerpc", + target_arch = "sparc", target_arch = "x86_64", target_arch = "x86")), repr(align(4)))] @@ -70,6 +71,7 @@ macro_rules! expand_align { target_arch = "arm", target_arch = "hexagon", target_arch = "powerpc", + target_arch = "sparc", target_arch = "x86_64", target_arch = "x86"))), repr(align(8)))] @@ -83,6 +85,7 @@ macro_rules! expand_align { target_arch = "arm", target_arch = "hexagon", target_arch = "powerpc", + target_arch = "sparc", target_arch = "x86_64", target_arch = "x86")), repr(align(4)))] @@ -91,6 +94,7 @@ macro_rules! expand_align { target_arch = "arm", target_arch = "hexagon", target_arch = "powerpc", + target_arch = "sparc", target_arch = "x86_64", target_arch = "x86"))), repr(align(8)))] diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 6f39c208c31d2..cc6b6367fe671 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -262,6 +262,9 @@ cfg_if! { } else if #[cfg(target_arch = "powerpc")] { mod powerpc; pub use self::powerpc::*; + } else if #[cfg(target_arch = "sparc")] { + mod sparc; + pub use self::sparc::*; } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/align.rs b/src/unix/linux_like/linux/gnu/b32/sparc/align.rs new file mode 100644 index 0000000000000..98fda883cd374 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b32/sparc/align.rs @@ -0,0 +1,7 @@ +s_no_extra_traits! { + #[allow(missing_debug_implementations)] + #[repr(align(8))] + pub struct max_align_t { + priv_: [i64; 3] + } +} diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs new file mode 100644 index 0000000000000..f670b3422bff7 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -0,0 +1,978 @@ +//! SPARC-specific definitions for 32-bit linux-like values + +pub type c_char = u8; +pub type wchar_t = i32; + +s! { + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct statfs { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_fsid: ::fsid_t, + + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + f_spare: [::__fsword_t; 5], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + _pad: [::c_int; 29], + _align: [usize; 0], + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } + + pub struct flock64 { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off64_t, + pub l_len: ::off64_t, + pub l_pid: ::pid_t, + __reserved: ::c_short, + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t + } + + pub struct stat { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __unused: [::c_long; 2], + } + + pub struct stat64 { + pub st_dev: ::dev_t, + pub st_ino: ::ino64_t, + pub st_mode: ::mode_t, + pub st_nlink: ::nlink_t, + pub st_uid: ::uid_t, + pub st_gid: ::gid_t, + pub st_rdev: ::dev_t, + __pad2: ::c_ushort, + pub st_size: ::off64_t, + pub st_blksize: ::blksize_t, + pub st_blocks: ::blkcnt64_t, + pub st_atime: ::time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: ::time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: ::time_t, + pub st_ctime_nsec: ::c_long, + __reserved: [::c_long; 2], + } + + pub struct statfs64 { + pub f_type: ::__fsword_t, + pub f_bsize: ::__fsword_t, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_fsid: ::fsid_t, + pub f_namelen: ::__fsword_t, + pub f_frsize: ::__fsword_t, + pub f_flags: ::__fsword_t, + pub f_spare: [::__fsword_t; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: ::fsblkcnt_t, + pub f_bfree: ::fsblkcnt_t, + pub f_bavail: ::fsblkcnt_t, + pub f_files: ::fsfilcnt_t, + pub f_ffree: ::fsfilcnt_t, + pub f_favail: ::fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: u64, + pub f_bfree: u64, + pub f_bavail: u64, + pub f_files: u64, + pub f_ffree: u64, + pub f_favail: u64, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + __f_spare: [::c_int; 6], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + pub cuid: ::uid_t, + pub cgid: ::gid_t, + __pad1: ::c_ushort, + pub mode: ::c_ushort, + __pad2: ::c_ushort, + pub __seq: ::c_ushort, + __unused1: ::c_ulonglong, + __unused2: ::c_ulonglong, + } + + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + __pad1: ::c_uint, + pub shm_atime: ::time_t, + __pad2: ::c_uint, + pub shm_dtime: ::time_t, + __pad3: ::c_uint, + pub shm_ctime: ::time_t, + pub shm_segsz: ::size_t, + pub shm_cpid: ::pid_t, + pub shm_lpid: ::pid_t, + pub shm_nattch: ::shmatt_t, + __reserved1: ::c_ulong, + __reserved2: ::c_ulong, + } + + pub struct msqid_ds { + pub msg_perm: ::ipc_perm, + __pad1: ::c_uint, + pub msg_stime: ::time_t, + __pad2: ::c_uint, + pub msg_rtime: ::time_t, + __pad3: ::c_uint, + pub msg_ctime: ::time_t, + __msg_cbytes: ::c_ushort, + pub msg_qnum: ::msgqnum_t, + pub msg_qbytes: ::msglen_t, + pub msg_lspid: ::pid_t, + pub msg_lrpid: ::pid_t, + __glibc_reserved1: ::c_ulong, + __glibc_reserved2: ::c_ulong, + } + + pub struct termios2 { + pub c_iflag: ::tcflag_t, + pub c_oflag: ::tcflag_t, + pub c_cflag: ::tcflag_t, + pub c_lflag: ::tcflag_t, + pub c_line: ::cc_t, + pub c_cc: [::cc_t; 19], + pub c_ispeed: ::speed_t, + pub c_ospeed: ::speed_t, + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; + +pub const RLIM_INFINITY: ::rlim_t = !0; +pub const VEOF: usize = 4; +pub const RTLD_DEEPBIND: ::c_int = 0x8; +pub const RTLD_GLOBAL: ::c_int = 0x100; +pub const RTLD_NOLOAD: ::c_int = 0x4; + +pub const TIOCGSOFTCAR: ::c_ulong = 0x40047464; +pub const TIOCSSOFTCAR: ::c_ulong = 0x80047465; + +pub const RLIMIT_RSS: ::__rlimit_resource_t = 5; +pub const RLIMIT_AS: ::__rlimit_resource_t = 9; +pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8; +pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 6; +pub const RLIMIT_NPROC: ::__rlimit_resource_t = 7; + +pub const O_APPEND: ::c_int = 0x8; +pub const O_CREAT: ::c_int = 0x200; +pub const O_EXCL: ::c_int = 0x800; +pub const O_NOCTTY: ::c_int = 0x8000; +pub const O_NONBLOCK: ::c_int = 0x4000; +pub const O_SYNC: ::c_int = 0x802000; +pub const O_RSYNC: ::c_int = 0x802000; +pub const O_DSYNC: ::c_int = 0x2000; +pub const O_FSYNC: ::c_int = 0x802000; +pub const O_NOATIME: ::c_int = 0x200000; +pub const O_PATH: ::c_int = 0x1000000; +pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY; + +pub const MADV_SOFT_OFFLINE: ::c_int = 101; +pub const MAP_GROWSDOWN: ::c_int = 0x0200; +pub const MAP_ANON: ::c_int = 0x0020; +pub const MAP_ANONYMOUS: ::c_int = 0x0020; +pub const MAP_DENYWRITE: ::c_int = 0x0800; +pub const MAP_EXECUTABLE: ::c_int = 0x01000; +pub const MAP_POPULATE: ::c_int = 0x08000; +pub const MAP_NONBLOCK: ::c_int = 0x010000; +pub const MAP_STACK: ::c_int = 0x020000; +pub const MAP_HUGETLB: ::c_int = 0x040000; + +pub const EDEADLK: ::c_int = 78; +pub const ENAMETOOLONG: ::c_int = 63; +pub const ENOLCK: ::c_int = 79; +pub const ENOSYS: ::c_int = 90; +pub const ENOTEMPTY: ::c_int = 66; +pub const ELOOP: ::c_int = 62; +pub const ENOMSG: ::c_int = 75; +pub const EIDRM: ::c_int = 77; +pub const ECHRNG: ::c_int = 94; +pub const EL2NSYNC: ::c_int = 95; +pub const EL3HLT: ::c_int = 96; +pub const EL3RST: ::c_int = 97; +pub const ELNRNG: ::c_int = 98; +pub const EUNATCH: ::c_int = 99; +pub const ENOCSI: ::c_int = 100; +pub const EL2HLT: ::c_int = 101; +pub const EBADE: ::c_int = 102; +pub const EBADR: ::c_int = 103; +pub const EXFULL: ::c_int = 104; +pub const ENOANO: ::c_int = 105; +pub const EBADRQC: ::c_int = 106; +pub const EBADSLT: ::c_int = 107; +pub const EMULTIHOP: ::c_int = 87; +pub const EOVERFLOW: ::c_int = 92; +pub const ENOTUNIQ: ::c_int = 115; +pub const EBADFD: ::c_int = 93; +pub const EBADMSG: ::c_int = 76; +pub const EREMCHG: ::c_int = 89; +pub const ELIBACC: ::c_int = 114; +pub const ELIBBAD: ::c_int = 112; +pub const ELIBSCN: ::c_int = 124; +pub const ELIBMAX: ::c_int = 123; +pub const ELIBEXEC: ::c_int = 110; +pub const EILSEQ: ::c_int = 122; +pub const ERESTART: ::c_int = 116; +pub const ESTRPIPE: ::c_int = 91; +pub const EUSERS: ::c_int = 68; +pub const ENOTSOCK: ::c_int = 38; +pub const EDESTADDRREQ: ::c_int = 39; +pub const EMSGSIZE: ::c_int = 40; +pub const EPROTOTYPE: ::c_int = 41; +pub const ENOPROTOOPT: ::c_int = 42; +pub const EPROTONOSUPPORT: ::c_int = 43; +pub const ESOCKTNOSUPPORT: ::c_int = 44; +pub const EOPNOTSUPP: ::c_int = 45; +pub const EPFNOSUPPORT: ::c_int = 46; +pub const EAFNOSUPPORT: ::c_int = 47; +pub const EADDRINUSE: ::c_int = 48; +pub const EADDRNOTAVAIL: ::c_int = 49; +pub const ENETDOWN: ::c_int = 50; +pub const ENETUNREACH: ::c_int = 51; +pub const ENETRESET: ::c_int = 52; +pub const ECONNABORTED: ::c_int = 53; +pub const ECONNRESET: ::c_int = 54; +pub const ENOBUFS: ::c_int = 55; +pub const EISCONN: ::c_int = 56; +pub const ENOTCONN: ::c_int = 57; +pub const ESHUTDOWN: ::c_int = 58; +pub const ETOOMANYREFS: ::c_int = 59; +pub const ETIMEDOUT: ::c_int = 60; +pub const ECONNREFUSED: ::c_int = 61; +pub const EHOSTDOWN: ::c_int = 64; +pub const EHOSTUNREACH: ::c_int = 65; +pub const EALREADY: ::c_int = 37; +pub const EINPROGRESS: ::c_int = 36; +pub const ESTALE: ::c_int = 70; +pub const EDQUOT: ::c_int = 69; +pub const ENOMEDIUM: ::c_int = 125; +pub const EMEDIUMTYPE: ::c_int = 126; +pub const ECANCELED: ::c_int = 127; +pub const ENOKEY: ::c_int = 128; +pub const EKEYEXPIRED: ::c_int = 129; +pub const EKEYREVOKED: ::c_int = 130; +pub const EKEYREJECTED: ::c_int = 131; +pub const EOWNERDEAD: ::c_int = 132; +pub const ENOTRECOVERABLE: ::c_int = 133; +pub const EHWPOISON: ::c_int = 135; +pub const ERFKILL: ::c_int = 134; + +pub const SOL_SOCKET: ::c_int = 0xffff; + +pub const SO_PASSCRED: ::c_int = 2; +pub const SO_REUSEADDR: ::c_int = 4; +pub const SO_BINDTODEVICE: ::c_int = 0x000d; +pub const SO_TIMESTAMP: ::c_int = 0x001d; +pub const SO_MARK: ::c_int = 0x0022; +pub const SO_RXQ_OVFL: ::c_int = 0x0024; +pub const SO_PEEK_OFF: ::c_int = 0x0026; +pub const SO_BUSY_POLL: ::c_int = 0x0030; +pub const SO_TYPE: ::c_int = 0x1008; +pub const SO_ERROR: ::c_int = 0x1007; +pub const SO_DONTROUTE: ::c_int = 16; +pub const SO_BROADCAST: ::c_int = 32; +pub const SO_SNDBUF: ::c_int = 0x1001; +pub const SO_RCVBUF: ::c_int = 0x1002; +pub const SO_SNDBUFFORCE: ::c_int = 0x100a; +pub const SO_RCVBUFFORCE: ::c_int = 0x100b; +pub const SO_DOMAIN: ::c_int = 0x1029; +pub const SO_KEEPALIVE: ::c_int = 8; +pub const SO_OOBINLINE: ::c_int = 0x100; +pub const SO_LINGER: ::c_int = 128; +pub const SO_REUSEPORT: ::c_int = 0x200; +pub const SO_ACCEPTCONN: ::c_int = 0x8000; + +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; + +pub const SA_ONSTACK: ::c_int = 1; +pub const SA_SIGINFO: ::c_int = 0x200; +pub const SA_NOCLDWAIT: ::c_int = 0x100; + +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 20; +pub const SIGBUS: ::c_int = 10; +pub const SIGUSR1: ::c_int = 30; +pub const SIGUSR2: ::c_int = 31; +pub const SIGCONT: ::c_int = 19; +pub const SIGSTOP: ::c_int = 17; +pub const SIGTSTP: ::c_int = 18; +pub const SIGURG: ::c_int = 16; +pub const SIGIO: ::c_int = 23; +pub const SIGSYS: ::c_int = 12; +pub const SIGPOLL: ::c_int = 23; +pub const SIGPWR: ::c_int = 29; +pub const SIG_SETMASK: ::c_int = 4; +pub const SIG_BLOCK: ::c_int = 1; +pub const SIG_UNBLOCK: ::c_int = 2; + +pub const POLLWRNORM: ::c_short = 4; +pub const POLLWRBAND: ::c_short = 0x100; + +pub const O_ASYNC: ::c_int = 0x40; +pub const O_NDELAY: ::c_int = 0x4004; + +pub const PTRACE_DETACH: ::c_uint = 11; + +pub const EFD_NONBLOCK: ::c_int = 0x4000; + +pub const F_GETLK: ::c_int = 7; +pub const F_GETOWN: ::c_int = 5; +pub const F_SETOWN: ::c_int = 6; +pub const F_SETLK: ::c_int = 8; +pub const F_SETLKW: ::c_int = 9; + +pub const F_RDLCK: ::c_int = 1; +pub const F_WRLCK: ::c_int = 2; +pub const F_UNLCK: ::c_int = 3; + +pub const SFD_NONBLOCK: ::c_int = 0x4000; + +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; + +pub const TIOCLINUX: ::c_ulong = 0x541C; +pub const TIOCGSERIAL: ::c_ulong = 0x541E; +pub const TIOCEXCL: ::c_ulong = 0x2000740d; +pub const TIOCNXCL: ::c_ulong = 0x2000740e; +pub const TIOCSCTTY: ::c_ulong = 0x20007484; +pub const TIOCSTI: ::c_ulong = 0x80017472; +pub const TIOCMGET: ::c_ulong = 0x4004746a; +pub const TIOCMBIS: ::c_ulong = 0x8004746c; +pub const TIOCMBIC: ::c_ulong = 0x8004746b; +pub const TIOCMSET: ::c_ulong = 0x8004746d; +pub const TIOCCONS: ::c_ulong = 0x20007424; + +pub const TIOCM_ST: ::c_int = 0x008; +pub const TIOCM_SR: ::c_int = 0x010; +pub const TIOCM_CTS: ::c_int = 0x020; +pub const TIOCM_CAR: ::c_int = 0x040; +pub const TIOCM_RNG: ::c_int = 0x080; +pub const TIOCM_DSR: ::c_int = 0x100; + +pub const SFD_CLOEXEC: ::c_int = 0x400000; + +pub const NCCS: usize = 17; +pub const O_TRUNC: ::c_int = 0x400; + +pub const O_CLOEXEC: ::c_int = 0x400000; + +pub const EBFONT: ::c_int = 109; +pub const ENOSTR: ::c_int = 72; +pub const ENODATA: ::c_int = 111; +pub const ETIME: ::c_int = 73; +pub const ENOSR: ::c_int = 74; +pub const ENONET: ::c_int = 80; +pub const ENOPKG: ::c_int = 113; +pub const EREMOTE: ::c_int = 71; +pub const ENOLINK: ::c_int = 82; +pub const EADV: ::c_int = 83; +pub const ESRMNT: ::c_int = 84; +pub const ECOMM: ::c_int = 85; +pub const EPROTO: ::c_int = 86; +pub const EDOTDOT: ::c_int = 88; + +pub const SA_NODEFER: ::c_int = 0x20; +pub const SA_RESETHAND: ::c_int = 0x4; +pub const SA_RESTART: ::c_int = 0x2; +pub const SA_NOCLDSTOP: ::c_int = 0x00000008; + +pub const EPOLL_CLOEXEC: ::c_int = 0x400000; + +pub const EFD_CLOEXEC: ::c_int = 0x400000; + +pub const O_DIRECTORY: ::c_int = 0o200000; +pub const O_NOFOLLOW: ::c_int = 0o400000; +pub const O_LARGEFILE: ::c_int = 0x40000; +pub const O_DIRECT: ::c_int = 0x100000; + +pub const MAP_LOCKED: ::c_int = 0x0100; +pub const MAP_NORESERVE: ::c_int = 0x00040; + +pub const EDEADLOCK: ::c_int = 108; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; + +pub const SO_PEERCRED: ::c_int = 0x40; +pub const SO_RCVLOWAT: ::c_int = 0x800; +pub const SO_SNDLOWAT: ::c_int = 0x1000; +pub const SO_RCVTIMEO: ::c_int = 0x2000; +pub const SO_SNDTIMEO: ::c_int = 0x4000; + +pub const FIOCLEX: ::c_ulong = 0x20006601; +pub const FIONCLEX: ::c_ulong = 0x20006602; +pub const FIONBIO: ::c_ulong = 0x8004667e; + +pub const MCL_CURRENT: ::c_int = 0x2000; +pub const MCL_FUTURE: ::c_int = 0x4000; + +pub const SIGSTKSZ: ::size_t = 16384; +pub const MINSIGSTKSZ: ::size_t = 4096; +pub const CBAUD: ::tcflag_t = 0x0000100f; +pub const TAB1: ::tcflag_t = 0x800; +pub const TAB2: ::tcflag_t = 0x1000; +pub const TAB3: ::tcflag_t = 0x1800; +pub const CR1: ::tcflag_t = 0x200; +pub const CR2: ::tcflag_t = 0x400; +pub const CR3: ::tcflag_t = 0x600; +pub const FF1: ::tcflag_t = 0x8000; +pub const BS1: ::tcflag_t = 0x2000; +pub const VT1: ::tcflag_t = 0x4000; +pub const VWERASE: usize = 0xe; +pub const VREPRINT: usize = 0xc; +pub const VSUSP: usize = 0xa; +pub const VSTART: usize = 0x8; +pub const VSTOP: usize = 0x9; +pub const VDISCARD: usize = 0xd; +pub const VTIME: usize = 0x5; +pub const IXON: ::tcflag_t = 0x400; +pub const IXOFF: ::tcflag_t = 0x1000; +pub const ONLCR: ::tcflag_t = 0x4; +pub const CSIZE: ::tcflag_t = 0x30; +pub const CS6: ::tcflag_t = 0x10; +pub const CS7: ::tcflag_t = 0x20; +pub const CS8: ::tcflag_t = 0x30; +pub const CSTOPB: ::tcflag_t = 0x40; +pub const CREAD: ::tcflag_t = 0x80; +pub const PARENB: ::tcflag_t = 0x100; +pub const PARODD: ::tcflag_t = 0x200; +pub const HUPCL: ::tcflag_t = 0x400; +pub const CLOCAL: ::tcflag_t = 0x800; +pub const ECHOKE: ::tcflag_t = 0x800; +pub const ECHOE: ::tcflag_t = 0x10; +pub const ECHOK: ::tcflag_t = 0x20; +pub const ECHONL: ::tcflag_t = 0x40; +pub const ECHOPRT: ::tcflag_t = 0x400; +pub const ECHOCTL: ::tcflag_t = 0x200; +pub const ISIG: ::tcflag_t = 0x1; +pub const ICANON: ::tcflag_t = 0x2; +pub const PENDIN: ::tcflag_t = 0x4000; +pub const NOFLSH: ::tcflag_t = 0x80; +pub const CIBAUD: ::tcflag_t = 0o02003600000; +pub const CBAUDEX: ::tcflag_t = 0x00001000; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 0o000002; +pub const NLDLY: ::tcflag_t = 0o000400; +pub const CRDLY: ::tcflag_t = 0o003000; +pub const TABDLY: ::tcflag_t = 0o014000; +pub const BSDLY: ::tcflag_t = 0o020000; +pub const FFDLY: ::tcflag_t = 0o100000; +pub const VTDLY: ::tcflag_t = 0o040000; +pub const XTABS: ::tcflag_t = 0o014000; + +pub const B0: ::speed_t = 0o000000; +pub const B50: ::speed_t = 0o000001; +pub const B75: ::speed_t = 0o000002; +pub const B110: ::speed_t = 0o000003; +pub const B134: ::speed_t = 0o000004; +pub const B150: ::speed_t = 0o000005; +pub const B200: ::speed_t = 0o000006; +pub const B300: ::speed_t = 0o000007; +pub const B600: ::speed_t = 0o000010; +pub const B1200: ::speed_t = 0o000011; +pub const B1800: ::speed_t = 0o000012; +pub const B2400: ::speed_t = 0o000013; +pub const B4800: ::speed_t = 0o000014; +pub const B9600: ::speed_t = 0o000015; +pub const B19200: ::speed_t = 0o000016; +pub const B38400: ::speed_t = 0o000017; +pub const EXTA: ::speed_t = B19200; +pub const EXTB: ::speed_t = B38400; +pub const BOTHER: ::speed_t = 0x1000; +pub const B57600: ::speed_t = 0x1001; +pub const B115200: ::speed_t = 0x1002; +pub const B230400: ::speed_t = 0x1003; +pub const B460800: ::speed_t = 0x1004; +pub const B76800: ::speed_t = 0x1005; +pub const B153600: ::speed_t = 0x1006; +pub const B307200: ::speed_t = 0x1007; +pub const B614400: ::speed_t = 0x1008; +pub const B921600: ::speed_t = 0x1009; +pub const B500000: ::speed_t = 0x100a; +pub const B576000: ::speed_t = 0x100b; +pub const B1000000: ::speed_t = 0x100c; +pub const B1152000: ::speed_t = 0x100d; +pub const B1500000: ::speed_t = 0x100e; +pub const B2000000: ::speed_t = 0x100f; + +pub const VEOL: usize = 5; +pub const VEOL2: usize = 6; +pub const VMIN: usize = 4; +pub const IEXTEN: ::tcflag_t = 0x8000; +pub const TOSTOP: ::tcflag_t = 0x100; +pub const FLUSHO: ::tcflag_t = 0x1000; +pub const EXTPROC: ::tcflag_t = 0x10000; +pub const TCGETS: ::c_ulong = 0x40245408; +pub const TCSETS: ::c_ulong = 0x80245409; +pub const TCSETSW: ::c_ulong = 0x8024540a; +pub const TCSETSF: ::c_ulong = 0x8024540b; +pub const TCGETA: ::c_ulong = 0x40125401; +pub const TCSETA: ::c_ulong = 0x80125402; +pub const TCSETAW: ::c_ulong = 0x80125403; +pub const TCSETAF: ::c_ulong = 0x80125404; +pub const TCSBRK: ::c_ulong = 0x20005405; +pub const TCXONC: ::c_ulong = 0x20005406; +pub const TCFLSH: ::c_ulong = 0x20005407; +pub const TIOCINQ: ::c_ulong = 0x4004667f; +pub const TIOCGPGRP: ::c_ulong = 0x40047483; +pub const TIOCSPGRP: ::c_ulong = 0x80047482; +pub const TIOCOUTQ: ::c_ulong = 0x40047473; +pub const TIOCGWINSZ: ::c_ulong = 0x40087468; +pub const TIOCSWINSZ: ::c_ulong = 0x80087467; +pub const FIONREAD: ::c_ulong = 0x4004667f; + +pub const SYS_restart_syscall: ::c_long = 0; +pub const SYS_exit: ::c_long = 1; +pub const SYS_fork: ::c_long = 2; +pub const SYS_read: ::c_long = 3; +pub const SYS_write: ::c_long = 4; +pub const SYS_open: ::c_long = 5; +pub const SYS_close: ::c_long = 6; +pub const SYS_wait4: ::c_long = 7; +pub const SYS_creat: ::c_long = 8; +pub const SYS_link: ::c_long = 9; +pub const SYS_unlink: ::c_long = 10; +pub const SYS_execv: ::c_long = 11; +pub const SYS_chdir: ::c_long = 12; +pub const SYS_chown: ::c_long = 13; +pub const SYS_mknod: ::c_long = 14; +pub const SYS_chmod: ::c_long = 15; +pub const SYS_lchown: ::c_long = 16; +pub const SYS_brk: ::c_long = 17; +pub const SYS_perfctr: ::c_long = 18; +pub const SYS_lseek: ::c_long = 19; +pub const SYS_getpid: ::c_long = 20; +pub const SYS_capget: ::c_long = 21; +pub const SYS_capset: ::c_long = 22; +pub const SYS_setuid: ::c_long = 23; +pub const SYS_getuid: ::c_long = 24; +pub const SYS_vmsplice: ::c_long = 25; +pub const SYS_ptrace: ::c_long = 26; +pub const SYS_alarm: ::c_long = 27; +pub const SYS_sigaltstack: ::c_long = 28; +pub const SYS_pause: ::c_long = 29; +pub const SYS_utime: ::c_long = 30; +pub const SYS_lchown32: ::c_long = 31; +pub const SYS_fchown32: ::c_long = 32; +pub const SYS_access: ::c_long = 33; +pub const SYS_nice: ::c_long = 34; +pub const SYS_chown32: ::c_long = 35; +pub const SYS_sync: ::c_long = 36; +pub const SYS_kill: ::c_long = 37; +pub const SYS_stat: ::c_long = 38; +pub const SYS_sendfile: ::c_long = 39; +pub const SYS_lstat: ::c_long = 40; +pub const SYS_dup: ::c_long = 41; +pub const SYS_pipe: ::c_long = 42; +pub const SYS_times: ::c_long = 43; +pub const SYS_getuid32: ::c_long = 44; +pub const SYS_umount2: ::c_long = 45; +pub const SYS_setgid: ::c_long = 46; +pub const SYS_getgid: ::c_long = 47; +pub const SYS_signal: ::c_long = 48; +pub const SYS_geteuid: ::c_long = 49; +pub const SYS_getegid: ::c_long = 50; +pub const SYS_acct: ::c_long = 51; +pub const SYS_getgid32: ::c_long = 53; +pub const SYS_ioctl: ::c_long = 54; +pub const SYS_reboot: ::c_long = 55; +pub const SYS_mmap2: ::c_long = 56; +pub const SYS_symlink: ::c_long = 57; +pub const SYS_readlink: ::c_long = 58; +pub const SYS_execve: ::c_long = 59; +pub const SYS_umask: ::c_long = 60; +pub const SYS_chroot: ::c_long = 61; +pub const SYS_fstat: ::c_long = 62; +pub const SYS_fstat64: ::c_long = 63; +pub const SYS_getpagesize: ::c_long = 64; +pub const SYS_msync: ::c_long = 65; +pub const SYS_vfork: ::c_long = 66; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_geteuid32: ::c_long = 69; +pub const SYS_getegid32: ::c_long = 70; +pub const SYS_mmap: ::c_long = 71; +pub const SYS_setreuid32: ::c_long = 72; +pub const SYS_munmap: ::c_long = 73; +pub const SYS_mprotect: ::c_long = 74; +pub const SYS_madvise: ::c_long = 75; +pub const SYS_vhangup: ::c_long = 76; +pub const SYS_truncate64: ::c_long = 77; +pub const SYS_mincore: ::c_long = 78; +pub const SYS_getgroups: ::c_long = 79; +pub const SYS_setgroups: ::c_long = 80; +pub const SYS_getpgrp: ::c_long = 81; +pub const SYS_setgroups32: ::c_long = 82; +pub const SYS_setitimer: ::c_long = 83; +pub const SYS_ftruncate64: ::c_long = 84; +pub const SYS_swapon: ::c_long = 85; +pub const SYS_getitimer: ::c_long = 86; +pub const SYS_setuid32: ::c_long = 87; +pub const SYS_sethostname: ::c_long = 88; +pub const SYS_setgid32: ::c_long = 89; +pub const SYS_dup2: ::c_long = 90; +pub const SYS_setfsuid32: ::c_long = 91; +pub const SYS_fcntl: ::c_long = 92; +pub const SYS_select: ::c_long = 93; +pub const SYS_setfsgid32: ::c_long = 94; +pub const SYS_fsync: ::c_long = 95; +pub const SYS_setpriority: ::c_long = 96; +pub const SYS_socket: ::c_long = 97; +pub const SYS_connect: ::c_long = 98; +pub const SYS_accept: ::c_long = 99; +pub const SYS_getpriority: ::c_long = 100; +pub const SYS_rt_sigreturn: ::c_long = 101; +pub const SYS_rt_sigaction: ::c_long = 102; +pub const SYS_rt_sigprocmask: ::c_long = 103; +pub const SYS_rt_sigpending: ::c_long = 104; +pub const SYS_rt_sigtimedwait: ::c_long = 105; +pub const SYS_rt_sigqueueinfo: ::c_long = 106; +pub const SYS_rt_sigsuspend: ::c_long = 107; +pub const SYS_setresuid32: ::c_long = 108; +pub const SYS_getresuid32: ::c_long = 109; +pub const SYS_setresgid32: ::c_long = 110; +pub const SYS_getresgid32: ::c_long = 111; +pub const SYS_setregid32: ::c_long = 112; +pub const SYS_recvmsg: ::c_long = 113; +pub const SYS_sendmsg: ::c_long = 114; +pub const SYS_getgroups32: ::c_long = 115; +pub const SYS_gettimeofday: ::c_long = 116; +pub const SYS_getrusage: ::c_long = 117; +pub const SYS_getsockopt: ::c_long = 118; +pub const SYS_getcwd: ::c_long = 119; +pub const SYS_readv: ::c_long = 120; +pub const SYS_writev: ::c_long = 121; +pub const SYS_settimeofday: ::c_long = 122; +pub const SYS_fchown: ::c_long = 123; +pub const SYS_fchmod: ::c_long = 124; +pub const SYS_recvfrom: ::c_long = 125; +pub const SYS_setreuid: ::c_long = 126; +pub const SYS_setregid: ::c_long = 127; +pub const SYS_rename: ::c_long = 128; +pub const SYS_truncate: ::c_long = 129; +pub const SYS_ftruncate: ::c_long = 130; +pub const SYS_flock: ::c_long = 131; +pub const SYS_lstat64: ::c_long = 132; +pub const SYS_sendto: ::c_long = 133; +pub const SYS_shutdown: ::c_long = 134; +pub const SYS_socketpair: ::c_long = 135; +pub const SYS_mkdir: ::c_long = 136; +pub const SYS_rmdir: ::c_long = 137; +pub const SYS_utimes: ::c_long = 138; +pub const SYS_stat64: ::c_long = 139; +pub const SYS_sendfile64: ::c_long = 140; +pub const SYS_getpeername: ::c_long = 141; +pub const SYS_futex: ::c_long = 142; +pub const SYS_gettid: ::c_long = 143; +pub const SYS_getrlimit: ::c_long = 144; +pub const SYS_setrlimit: ::c_long = 145; +pub const SYS_pivot_root: ::c_long = 146; +pub const SYS_prctl: ::c_long = 147; +pub const SYS_pciconfig_read: ::c_long = 148; +pub const SYS_pciconfig_write: ::c_long = 149; +pub const SYS_getsockname: ::c_long = 150; +pub const SYS_inotify_init: ::c_long = 151; +pub const SYS_inotify_add_watch: ::c_long = 152; +pub const SYS_poll: ::c_long = 153; +pub const SYS_getdents64: ::c_long = 154; +pub const SYS_fcntl64: ::c_long = 155; +pub const SYS_inotify_rm_watch: ::c_long = 156; +pub const SYS_statfs: ::c_long = 157; +pub const SYS_fstatfs: ::c_long = 158; +pub const SYS_umount: ::c_long = 159; +pub const SYS_sched_set_affinity: ::c_long = 160; +pub const SYS_sched_get_affinity: ::c_long = 161; +pub const SYS_getdomainname: ::c_long = 162; +pub const SYS_setdomainname: ::c_long = 163; +pub const SYS_quotactl: ::c_long = 165; +pub const SYS_set_tid_address: ::c_long = 166; +pub const SYS_mount: ::c_long = 167; +pub const SYS_ustat: ::c_long = 168; +pub const SYS_setxattr: ::c_long = 169; +pub const SYS_lsetxattr: ::c_long = 170; +pub const SYS_fsetxattr: ::c_long = 171; +pub const SYS_getxattr: ::c_long = 172; +pub const SYS_lgetxattr: ::c_long = 173; +pub const SYS_getdents: ::c_long = 174; +pub const SYS_setsid: ::c_long = 175; +pub const SYS_fchdir: ::c_long = 176; +pub const SYS_fgetxattr: ::c_long = 177; +pub const SYS_listxattr: ::c_long = 178; +pub const SYS_llistxattr: ::c_long = 179; +pub const SYS_flistxattr: ::c_long = 180; +pub const SYS_removexattr: ::c_long = 181; +pub const SYS_lremovexattr: ::c_long = 182; +pub const SYS_sigpending: ::c_long = 183; +pub const SYS_query_module: ::c_long = 184; +pub const SYS_setpgid: ::c_long = 185; +pub const SYS_fremovexattr: ::c_long = 186; +pub const SYS_tkill: ::c_long = 187; +pub const SYS_exit_group: ::c_long = 188; +pub const SYS_uname: ::c_long = 189; +pub const SYS_init_module: ::c_long = 190; +pub const SYS_personality: ::c_long = 191; +pub const SYS_remap_file_pages: ::c_long = 192; +pub const SYS_epoll_create: ::c_long = 193; +pub const SYS_epoll_ctl: ::c_long = 194; +pub const SYS_epoll_wait: ::c_long = 195; +pub const SYS_ioprio_set: ::c_long = 196; +pub const SYS_getppid: ::c_long = 197; +pub const SYS_sigaction: ::c_long = 198; +pub const SYS_sgetmask: ::c_long = 199; +pub const SYS_ssetmask: ::c_long = 200; +pub const SYS_sigsuspend: ::c_long = 201; +pub const SYS_oldlstat: ::c_long = 202; +pub const SYS_uselib: ::c_long = 203; +pub const SYS_readdir: ::c_long = 204; +pub const SYS_readahead: ::c_long = 205; +pub const SYS_socketcall: ::c_long = 206; +pub const SYS_syslog: ::c_long = 207; +pub const SYS_lookup_dcookie: ::c_long = 208; +pub const SYS_fadvise64: ::c_long = 209; +pub const SYS_fadvise64_64: ::c_long = 210; +pub const SYS_tgkill: ::c_long = 211; +pub const SYS_waitpid: ::c_long = 212; +pub const SYS_swapoff: ::c_long = 213; +pub const SYS_sysinfo: ::c_long = 214; +pub const SYS_ipc: ::c_long = 215; +pub const SYS_sigreturn: ::c_long = 216; +pub const SYS_clone: ::c_long = 217; +pub const SYS_ioprio_get: ::c_long = 218; +pub const SYS_adjtimex: ::c_long = 219; +pub const SYS_sigprocmask: ::c_long = 220; +pub const SYS_create_module: ::c_long = 221; +pub const SYS_delete_module: ::c_long = 222; +pub const SYS_get_kernel_syms: ::c_long = 223; +pub const SYS_getpgid: ::c_long = 224; +pub const SYS_bdflush: ::c_long = 225; +pub const SYS_sysfs: ::c_long = 226; +pub const SYS_afs_syscall: ::c_long = 227; +pub const SYS_setfsuid: ::c_long = 228; +pub const SYS_setfsgid: ::c_long = 229; +pub const SYS__newselect: ::c_long = 230; +pub const SYS_time: ::c_long = 231; +pub const SYS_splice: ::c_long = 232; +pub const SYS_stime: ::c_long = 233; +pub const SYS_statfs64: ::c_long = 234; +pub const SYS_fstatfs64: ::c_long = 235; +pub const SYS__llseek: ::c_long = 236; +pub const SYS_mlock: ::c_long = 237; +pub const SYS_munlock: ::c_long = 238; +pub const SYS_mlockall: ::c_long = 239; +pub const SYS_munlockall: ::c_long = 240; +pub const SYS_sched_setparam: ::c_long = 241; +pub const SYS_sched_getparam: ::c_long = 242; +pub const SYS_sched_setscheduler: ::c_long = 243; +pub const SYS_sched_getscheduler: ::c_long = 244; +pub const SYS_sched_yield: ::c_long = 245; +pub const SYS_sched_get_priority_max: ::c_long = 246; +pub const SYS_sched_get_priority_min: ::c_long = 247; +pub const SYS_sched_rr_get_interval: ::c_long = 248; +pub const SYS_nanosleep: ::c_long = 249; +pub const SYS_mremap: ::c_long = 250; +pub const SYS__sysctl: ::c_long = 251; +pub const SYS_getsid: ::c_long = 252; +pub const SYS_fdatasync: ::c_long = 253; +pub const SYS_nfsservctl: ::c_long = 254; +pub const SYS_sync_file_range: ::c_long = 255; +pub const SYS_clock_settime: ::c_long = 256; +pub const SYS_clock_gettime: ::c_long = 257; +pub const SYS_clock_getres: ::c_long = 258; +pub const SYS_clock_nanosleep: ::c_long = 259; +pub const SYS_sched_getaffinity: ::c_long = 260; +pub const SYS_sched_setaffinity: ::c_long = 261; +pub const SYS_timer_settime: ::c_long = 262; +pub const SYS_timer_gettime: ::c_long = 263; +pub const SYS_timer_getoverrun: ::c_long = 264; +pub const SYS_timer_delete: ::c_long = 265; +pub const SYS_timer_create: ::c_long = 266; +pub const SYS_io_setup: ::c_long = 268; +pub const SYS_io_destroy: ::c_long = 269; +pub const SYS_io_submit: ::c_long = 270; +pub const SYS_io_cancel: ::c_long = 271; +pub const SYS_io_getevents: ::c_long = 272; +pub const SYS_mq_open: ::c_long = 273; +pub const SYS_mq_unlink: ::c_long = 274; +pub const SYS_mq_timedsend: ::c_long = 275; +pub const SYS_mq_timedreceive: ::c_long = 276; +pub const SYS_mq_notify: ::c_long = 277; +pub const SYS_mq_getsetattr: ::c_long = 278; +pub const SYS_waitid: ::c_long = 279; +pub const SYS_tee: ::c_long = 280; +pub const SYS_add_key: ::c_long = 281; +pub const SYS_request_key: ::c_long = 282; +pub const SYS_keyctl: ::c_long = 283; +pub const SYS_openat: ::c_long = 284; +pub const SYS_mkdirat: ::c_long = 285; +pub const SYS_mknodat: ::c_long = 286; +pub const SYS_fchownat: ::c_long = 287; +pub const SYS_futimesat: ::c_long = 288; +pub const SYS_fstatat64: ::c_long = 289; +pub const SYS_unlinkat: ::c_long = 290; +pub const SYS_renameat: ::c_long = 291; +pub const SYS_linkat: ::c_long = 292; +pub const SYS_symlinkat: ::c_long = 293; +pub const SYS_readlinkat: ::c_long = 294; +pub const SYS_fchmodat: ::c_long = 295; +pub const SYS_faccessat: ::c_long = 296; +pub const SYS_pselect6: ::c_long = 297; +pub const SYS_ppoll: ::c_long = 298; +pub const SYS_unshare: ::c_long = 299; +pub const SYS_set_robust_list: ::c_long = 300; +pub const SYS_get_robust_list: ::c_long = 301; +pub const SYS_migrate_pages: ::c_long = 302; +pub const SYS_mbind: ::c_long = 303; +pub const SYS_get_mempolicy: ::c_long = 304; +pub const SYS_set_mempolicy: ::c_long = 305; +pub const SYS_kexec_load: ::c_long = 306; +pub const SYS_move_pages: ::c_long = 307; +pub const SYS_getcpu: ::c_long = 308; +pub const SYS_epoll_pwait: ::c_long = 309; +pub const SYS_utimensat: ::c_long = 310; +pub const SYS_signalfd: ::c_long = 311; +pub const SYS_timerfd_create: ::c_long = 312; +pub const SYS_eventfd: ::c_long = 313; +pub const SYS_fallocate: ::c_long = 314; +pub const SYS_timerfd_settime: ::c_long = 315; +pub const SYS_timerfd_gettime: ::c_long = 316; +pub const SYS_signalfd4: ::c_long = 317; +pub const SYS_eventfd2: ::c_long = 318; +pub const SYS_epoll_create1: ::c_long = 319; +pub const SYS_dup3: ::c_long = 320; +pub const SYS_pipe2: ::c_long = 321; +pub const SYS_inotify_init1: ::c_long = 322; +pub const SYS_accept4: ::c_long = 323; +pub const SYS_preadv: ::c_long = 324; +pub const SYS_pwritev: ::c_long = 325; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 326; +pub const SYS_perf_event_open: ::c_long = 327; +pub const SYS_recvmmsg: ::c_long = 328; +pub const SYS_fanotify_init: ::c_long = 329; +pub const SYS_fanotify_mark: ::c_long = 330; +pub const SYS_prlimit64: ::c_long = 331; +pub const SYS_name_to_handle_at: ::c_long = 332; +pub const SYS_open_by_handle_at: ::c_long = 333; +pub const SYS_clock_adjtime: ::c_long = 334; +pub const SYS_syncfs: ::c_long = 335; +pub const SYS_sendmmsg: ::c_long = 336; +pub const SYS_setns: ::c_long = 337; +pub const SYS_process_vm_readv: ::c_long = 338; +pub const SYS_process_vm_writev: ::c_long = 339; +pub const SYS_kern_features: ::c_long = 340; +pub const SYS_kcmp: ::c_long = 341; +pub const SYS_finit_module: ::c_long = 342; +pub const SYS_sched_setattr: ::c_long = 343; +pub const SYS_sched_getattr: ::c_long = 344; +pub const SYS_renameat2: ::c_long = 345; +pub const SYS_seccomp: ::c_long = 346; +pub const SYS_getrandom: ::c_long = 347; +pub const SYS_memfd_create: ::c_long = 348; +pub const SYS_bpf: ::c_long = 349; +pub const SYS_execveat: ::c_long = 350; +pub const SYS_membarrier: ::c_long = 351; +pub const SYS_userfaultfd: ::c_long = 352; +pub const SYS_bind: ::c_long = 353; +pub const SYS_listen: ::c_long = 354; +pub const SYS_setsockopt: ::c_long = 355; +pub const SYS_mlock2: ::c_long = 356; +pub const SYS_copy_file_range: ::c_long = 357; +pub const SYS_preadv2: ::c_long = 358; +pub const SYS_pwritev2: ::c_long = 359; +pub const SYS_statx: ::c_long = 360; + +#[link(name = "util")] +extern "C" { + pub fn sysctl( + name: *mut ::c_int, + namelen: ::c_int, + oldp: *mut ::c_void, + oldlenp: *mut ::size_t, + newp: *mut ::c_void, + newlen: ::size_t, + ) -> ::c_int; +} + +cfg_if! { + if #[cfg(libc_align)] { + mod align; + pub use self::align::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6473a041ee6ad..60401ffdff7a4 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -98,11 +98,13 @@ s! { pub c_line: ::cc_t, pub c_cc: [::cc_t; ::NCCS], #[cfg(not(any( + target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", target_arch = "mips64")))] pub c_ispeed: ::speed_t, #[cfg(not(any( + target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", target_arch = "mips64")))] @@ -864,7 +866,10 @@ cfg_if! { target_arch = "s390x" ))] { pub const PTHREAD_STACK_MIN: ::size_t = 16384; - } else if #[cfg(target_arch = "sparc64")] { + } else if #[cfg(any( + target_arch = "sparc", + target_arch = "sparc64" + ))] { pub const PTHREAD_STACK_MIN: ::size_t = 0x6000; } else { pub const PTHREAD_STACK_MIN: ::size_t = 131072; @@ -1023,7 +1028,8 @@ cfg_if! { if #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "mips", - target_arch = "powerpc"))] { + target_arch = "powerpc", + target_arch = "sparc"))] { mod b32; pub use self::b32::*; } else if #[cfg(any(target_arch = "x86_64", diff --git a/src/unix/linux_like/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs index 016712a932263..13c2b71c98394 100644 --- a/src/unix/linux_like/linux/no_align.rs +++ b/src/unix/linux_like/linux/no_align.rs @@ -48,12 +48,14 @@ macro_rules! expand_align { #[cfg(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc", + target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc", + target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32"))))] __align: [::c_longlong; 0], @@ -64,12 +66,14 @@ macro_rules! expand_align { #[cfg(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc", + target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", target_arch = "arm", target_arch = "powerpc", + target_arch = "sparc", all(target_arch = "x86_64", target_pointer_width = "32"))))] __align: [::c_longlong; 0], From ca3eb035f621f2df8d1de95514270178f687faeb Mon Sep 17 00:00:00 2001 From: "Joshua M. Clulow" Date: Wed, 27 Nov 2019 05:12:42 +0000 Subject: [PATCH 286/296] expose futimens() for illumos systems --- src/unix/solarish/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index c8cca192d94a1..e84067876455c 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2157,6 +2157,10 @@ extern "C" { path: *const ::c_char, times: *const ::timeval, ) -> ::c_int; + pub fn futimens( + dirfd: ::c_int, + times: *const ::timespec, + ) -> ::c_int; pub fn utimensat( dirfd: ::c_int, path: *const ::c_char, From 112b7f9cb6ec923ff6e835e64ca149f6c3daddb1 Mon Sep 17 00:00:00 2001 From: msizanoen1 Date: Sat, 23 Nov 2019 14:02:48 +0700 Subject: [PATCH 287/296] Support for RISC-V 64-bit GNU/Linux --- ci/build.sh | 1 + src/unix/linux_like/linux/gnu/b64/mod.rs | 3 + .../linux_like/linux/gnu/b64/riscv64/mod.rs | 861 ++++++++++++++++++ src/unix/linux_like/linux/gnu/mod.rs | 3 +- 4 files changed, 867 insertions(+), 1 deletion(-) create mode 100644 src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs diff --git a/ci/build.sh b/ci/build.sh index cde46cb451b8d..aad00859e890d 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -220,6 +220,7 @@ nvptx64-nvidia-cuda \ powerpc-unknown-linux-gnuspe \ powerpc-unknown-netbsd \ powerpc64-unknown-freebsd \ +riscv64gc-unknown-linux-gnu \ riscv32imac-unknown-none-elf \ riscv32imc-unknown-none-elf \ sparc64-unknown-netbsd \ diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index c91da0d98d1ca..40ce8441a9663 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -78,6 +78,9 @@ cfg_if! { } else if #[cfg(any(target_arch = "x86_64"))] { mod x86_64; pub use self::x86_64::*; + } else if #[cfg(any(target_arch = "riscv64"))] { + mod riscv64; + pub use self::riscv64::*; } else { // Unknown target_arch } diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs new file mode 100644 index 0000000000000..c45c5b230bed7 --- /dev/null +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -0,0 +1,861 @@ +//! RISC-V-specific definitions for 64-bit linux-like values + +pub type c_char = u8; +pub type c_long = i64; +pub type c_ulong = u64; +pub type wchar_t = ::c_int; +pub type time_t = ::c_long; + +pub type dev_t = ::c_ulong; +pub type uid_t = ::c_uint; +pub type gid_t = ::c_uint; +pub type ino_t = ::c_ulong; +pub type ino64_t = ::c_ulong; +pub type mode_t = ::c_uint; +pub type nlink_t = ::c_uint; +pub type off_t = ::c_long; +pub type off64_t = ::c_long; +pub type pid_t = ::c_int; +pub type blksize_t = ::c_int; +pub type blkcnt_t = ::c_long; +pub type fsblkcnt_t = ::c_ulong; +pub type fsblkcnt64_t = ::c_ulong; +pub type fsfilcnt_t = ::c_ulong; +pub type fsfilcnt64_t = ::c_ulong; +pub type suseconds_t = i64; +pub type __u64 = ::c_ulonglong; + +s! { + pub struct pthread_attr_t { + __size: [::c_ulong; 7], + } + + pub struct timespec { + pub tv_sec: time_t, + pub tv_nsec: ::c_long, + } + + pub struct stat { + pub st_dev: dev_t, + pub st_ino: ino_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_uid: uid_t, + pub st_gid: gid_t, + pub st_rdev: dev_t, + pub __pad1: dev_t, + pub st_size: off_t, + pub st_blksize: blksize_t, + pub __pad2: ::c_int, + pub st_blocks: blkcnt_t, + pub st_atime: time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: time_t, + pub st_ctime_nsec: ::c_long, + pub __unused: [::c_int; 2usize], + } + + pub struct stat64 { + pub st_dev: dev_t, + pub st_ino: ino64_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_uid: uid_t, + pub st_gid: gid_t, + pub st_rdev: dev_t, + pub __pad1: dev_t, + pub st_size: off64_t, + pub st_blksize: blksize_t, + pub __pad2: ::c_int, + pub st_blocks: blkcnt_t, + pub st_atime: time_t, + pub st_atime_nsec: ::c_long, + pub st_mtime: time_t, + pub st_mtime_nsec: ::c_long, + pub st_ctime: time_t, + pub st_ctime_nsec: ::c_long, + pub __unused: [::c_int; 2], + } + + pub struct statfs { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: fsblkcnt_t, + pub f_bfree: fsblkcnt_t, + pub f_bavail: fsblkcnt_t, + pub f_files: fsfilcnt_t, + pub f_ffree: fsfilcnt_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statfs64 { + pub f_type: ::c_long, + pub f_bsize: ::c_long, + pub f_blocks: fsblkcnt64_t, + pub f_bfree: fsblkcnt64_t, + pub f_bavail: fsblkcnt64_t, + pub f_files: fsfilcnt64_t, + pub f_ffree: fsfilcnt64_t, + pub f_fsid: ::fsid_t, + pub f_namelen: ::c_long, + pub f_frsize: ::c_long, + pub f_flags: ::c_long, + pub f_spare: [::c_long; 4], + } + + pub struct statvfs { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: fsblkcnt_t, + pub f_bfree: fsblkcnt_t, + pub f_bavail: fsblkcnt_t, + pub f_files: fsfilcnt_t, + pub f_ffree: fsfilcnt_t, + pub f_favail: fsfilcnt_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct statvfs64 { + pub f_bsize: ::c_ulong, + pub f_frsize: ::c_ulong, + pub f_blocks: fsblkcnt64_t, + pub f_bfree: fsblkcnt64_t, + pub f_bavail: fsblkcnt64_t, + pub f_files: fsfilcnt64_t, + pub f_ffree: fsfilcnt64_t, + pub f_favail: fsfilcnt64_t, + pub f_fsid: ::c_ulong, + pub f_flag: ::c_ulong, + pub f_namemax: ::c_ulong, + pub __f_spare: [::c_int; 6], + } + + pub struct siginfo_t { + pub si_signo: ::c_int, + pub si_errno: ::c_int, + pub si_code: ::c_int, + #[doc(hidden)] + #[deprecated( + since="0.2.54", + note="Please leave a comment on \ + https://github.com/rust-lang/libc/pull/1316 if you're using \ + this field" + )] + pub _pad: [::c_int; 29], + _align: [u64; 0], + } + + pub struct stack_t { + pub ss_sp: *mut ::c_void, + pub ss_flags: ::c_int, + pub ss_size: ::size_t, + } + + pub struct sigaction { + pub sa_sigaction: ::sighandler_t, + pub sa_mask: ::sigset_t, + pub sa_flags: ::c_int, + pub sa_restorer: ::Option, + } + + pub struct sigset_t { + pub __val: [::c_ulong; 16], + } + + pub struct ipc_perm { + pub __key: ::key_t, + pub uid: uid_t, + pub gid: gid_t, + pub cuid: uid_t, + pub cgid: gid_t, + pub mode: ::c_ushort, + pub __pad1: ::c_ushort, + pub __seq: ::c_ushort, + pub __pad2: ::c_ushort, + pub __unused1: ::c_ulong, + pub __unused2: ::c_ulong, + } + + pub struct shmid_ds { + pub shm_perm: ipc_perm, + pub shm_segsz: ::size_t, + pub shm_atime: time_t, + pub shm_dtime: time_t, + pub shm_ctime: time_t, + pub shm_cpid: pid_t, + pub shm_lpid: pid_t, + pub shm_nattch: ::shmatt_t, + pub __unused5: ::c_ulong, + pub __unused6: ::c_ulong, + } + + pub struct flock { + pub l_type: ::c_short, + pub l_whence: ::c_short, + pub l_start: ::off_t, + pub l_len: ::off_t, + pub l_pid: ::pid_t, + } +} + +pub const POSIX_FADV_DONTNEED: ::c_int = 4; +pub const POSIX_FADV_NOREUSE: ::c_int = 5; +pub const VEOF: usize = 4; +pub const TIOCGSOFTCAR: ::c_ulong = 21529; +pub const TIOCSSOFTCAR: ::c_ulong = 21530; +pub const TIOCGRS485: ::c_int = 21550; +pub const TIOCSRS485: ::c_int = 21551; +pub const O_APPEND: ::c_int = 1024; +pub const O_CREAT: ::c_int = 64; +pub const O_EXCL: ::c_int = 128; +pub const O_NOCTTY: ::c_int = 256; +pub const O_NONBLOCK: ::c_int = 2048; +pub const O_SYNC: ::c_int = 1052672; +pub const O_RSYNC: ::c_int = 1052672; +pub const O_DSYNC: ::c_int = 4096; +pub const O_FSYNC: ::c_int = 1052672; +pub const O_NOATIME: ::c_int = 262144; +pub const O_PATH: ::c_int = 2097152; +pub const O_TMPFILE: ::c_int = 4259840; +pub const MAP_GROWSDOWN: ::c_int = 256; +pub const EDEADLK: ::c_int = 35; +pub const ENAMETOOLONG: ::c_int = 36; +pub const ENOLCK: ::c_int = 37; +pub const ENOSYS: ::c_int = 38; +pub const ENOTEMPTY: ::c_int = 39; +pub const ELOOP: ::c_int = 40; +pub const ENOMSG: ::c_int = 42; +pub const EIDRM: ::c_int = 43; +pub const ECHRNG: ::c_int = 44; +pub const EL2NSYNC: ::c_int = 45; +pub const EL3HLT: ::c_int = 46; +pub const EL3RST: ::c_int = 47; +pub const ELNRNG: ::c_int = 48; +pub const EUNATCH: ::c_int = 49; +pub const ENOCSI: ::c_int = 50; +pub const EL2HLT: ::c_int = 51; +pub const EBADE: ::c_int = 52; +pub const EBADR: ::c_int = 53; +pub const EXFULL: ::c_int = 54; +pub const ENOANO: ::c_int = 55; +pub const EBADRQC: ::c_int = 56; +pub const EBADSLT: ::c_int = 57; +pub const EMULTIHOP: ::c_int = 72; +pub const EOVERFLOW: ::c_int = 75; +pub const ENOTUNIQ: ::c_int = 76; +pub const EBADFD: ::c_int = 77; +pub const EBADMSG: ::c_int = 74; +pub const EREMCHG: ::c_int = 78; +pub const ELIBACC: ::c_int = 79; +pub const ELIBBAD: ::c_int = 80; +pub const ELIBSCN: ::c_int = 81; +pub const ELIBMAX: ::c_int = 82; +pub const ELIBEXEC: ::c_int = 83; +pub const EILSEQ: ::c_int = 84; +pub const ERESTART: ::c_int = 85; +pub const ESTRPIPE: ::c_int = 86; +pub const EUSERS: ::c_int = 87; +pub const ENOTSOCK: ::c_int = 88; +pub const EDESTADDRREQ: ::c_int = 89; +pub const EMSGSIZE: ::c_int = 90; +pub const EPROTOTYPE: ::c_int = 91; +pub const ENOPROTOOPT: ::c_int = 92; +pub const EPROTONOSUPPORT: ::c_int = 93; +pub const ESOCKTNOSUPPORT: ::c_int = 94; +pub const EOPNOTSUPP: ::c_int = 95; +pub const EPFNOSUPPORT: ::c_int = 96; +pub const EAFNOSUPPORT: ::c_int = 97; +pub const EADDRINUSE: ::c_int = 98; +pub const EADDRNOTAVAIL: ::c_int = 99; +pub const ENETDOWN: ::c_int = 100; +pub const ENETUNREACH: ::c_int = 101; +pub const ENETRESET: ::c_int = 102; +pub const ECONNABORTED: ::c_int = 103; +pub const ECONNRESET: ::c_int = 104; +pub const ENOBUFS: ::c_int = 105; +pub const EISCONN: ::c_int = 106; +pub const ENOTCONN: ::c_int = 107; +pub const ESHUTDOWN: ::c_int = 108; +pub const ETOOMANYREFS: ::c_int = 109; +pub const ETIMEDOUT: ::c_int = 110; +pub const ECONNREFUSED: ::c_int = 111; +pub const EHOSTDOWN: ::c_int = 112; +pub const EHOSTUNREACH: ::c_int = 113; +pub const EALREADY: ::c_int = 114; +pub const EINPROGRESS: ::c_int = 115; +pub const ESTALE: ::c_int = 116; +pub const EDQUOT: ::c_int = 122; +pub const ENOMEDIUM: ::c_int = 123; +pub const EMEDIUMTYPE: ::c_int = 124; +pub const ECANCELED: ::c_int = 125; +pub const ENOKEY: ::c_int = 126; +pub const EKEYEXPIRED: ::c_int = 127; +pub const EKEYREVOKED: ::c_int = 128; +pub const EKEYREJECTED: ::c_int = 129; +pub const EOWNERDEAD: ::c_int = 130; +pub const ENOTRECOVERABLE: ::c_int = 131; +pub const EHWPOISON: ::c_int = 133; +pub const ERFKILL: ::c_int = 132; +pub const SOL_SOCKET: ::c_int = 1; +pub const SO_REUSEADDR: ::c_int = 2; +pub const SO_TYPE: ::c_int = 3; +pub const SO_ERROR: ::c_int = 4; +pub const SO_DONTROUTE: ::c_int = 5; +pub const SO_BROADCAST: ::c_int = 6; +pub const SO_SNDBUF: ::c_int = 7; +pub const SO_RCVBUF: ::c_int = 8; +pub const SO_SNDBUFFORCE: ::c_int = 32; +pub const SO_RCVBUFFORCE: ::c_int = 33; +pub const SO_KEEPALIVE: ::c_int = 9; +pub const SO_OOBINLINE: ::c_int = 10; +pub const SO_NO_CHECK: ::c_int = 11; +pub const SO_PRIORITY: ::c_int = 12; +pub const SO_LINGER: ::c_int = 13; +pub const SO_BSDCOMPAT: ::c_int = 14; +pub const SO_REUSEPORT: ::c_int = 15; +pub const SO_PASSCRED: ::c_int = 16; +pub const SO_PEERCRED: ::c_int = 17; +pub const SO_RCVLOWAT: ::c_int = 18; +pub const SO_SNDLOWAT: ::c_int = 19; +pub const SO_RCVTIMEO: ::c_int = 20; +pub const SO_SNDTIMEO: ::c_int = 21; +pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; +pub const SO_BINDTODEVICE: ::c_int = 25; +pub const SO_ATTACH_FILTER: ::c_int = 26; +pub const SO_DETACH_FILTER: ::c_int = 27; +pub const SO_GET_FILTER: ::c_int = 26; +pub const SO_PEERNAME: ::c_int = 28; +pub const SO_TIMESTAMP: ::c_int = 29; +pub const SO_ACCEPTCONN: ::c_int = 30; +pub const SO_PEERSEC: ::c_int = 31; +pub const SO_PASSSEC: ::c_int = 34; +pub const SO_TIMESTAMPNS: ::c_int = 35; +pub const SCM_TIMESTAMPNS: ::c_int = 35; +pub const SO_MARK: ::c_int = 36; +pub const SO_PROTOCOL: ::c_int = 38; +pub const SO_DOMAIN: ::c_int = 39; +pub const SO_RXQ_OVFL: ::c_int = 40; +pub const SO_WIFI_STATUS: ::c_int = 41; +pub const SCM_WIFI_STATUS: ::c_int = 41; +pub const SO_PEEK_OFF: ::c_int = 42; +pub const SO_NOFCS: ::c_int = 43; +pub const SO_LOCK_FILTER: ::c_int = 44; +pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; +pub const SO_BUSY_POLL: ::c_int = 46; +pub const SO_MAX_PACING_RATE: ::c_int = 47; +pub const SO_BPF_EXTENSIONS: ::c_int = 48; +pub const SO_INCOMING_CPU: ::c_int = 49; +pub const SO_ATTACH_BPF: ::c_int = 50; +pub const SO_DETACH_BPF: ::c_int = 27; +pub const SOCK_STREAM: ::c_int = 1; +pub const SOCK_DGRAM: ::c_int = 2; +pub const SA_ONSTACK: ::c_int = 134217728; +pub const SA_SIGINFO: ::c_int = 4; +pub const SA_NOCLDWAIT: ::c_int = 2; +pub const SIGTTIN: ::c_int = 21; +pub const SIGTTOU: ::c_int = 22; +pub const SIGXCPU: ::c_int = 24; +pub const SIGXFSZ: ::c_int = 25; +pub const SIGVTALRM: ::c_int = 26; +pub const SIGPROF: ::c_int = 27; +pub const SIGWINCH: ::c_int = 28; +pub const SIGCHLD: ::c_int = 17; +pub const SIGBUS: ::c_int = 7; +pub const SIGUSR1: ::c_int = 10; +pub const SIGUSR2: ::c_int = 12; +pub const SIGCONT: ::c_int = 18; +pub const SIGSTOP: ::c_int = 19; +pub const SIGTSTP: ::c_int = 20; +pub const SIGURG: ::c_int = 23; +pub const SIGIO: ::c_int = 29; +pub const SIGSYS: ::c_int = 31; +pub const SIGSTKFLT: ::c_int = 16; +pub const SIGPOLL: ::c_int = 29; +pub const SIGPWR: ::c_int = 30; +pub const SIG_SETMASK: ::c_int = 2; +pub const SIG_BLOCK: ::c_int = 0; +pub const SIG_UNBLOCK: ::c_int = 1; +pub const POLLWRNORM: ::c_short = 256; +pub const POLLWRBAND: ::c_short = 512; +pub const O_ASYNC: ::c_int = 8192; +pub const O_NDELAY: ::c_int = 2048; +pub const PTRACE_DETACH: ::c_uint = 17; +pub const EFD_NONBLOCK: ::c_int = 2048; +pub const F_GETLK: ::c_int = 5; +pub const F_GETOWN: ::c_int = 9; +pub const F_SETOWN: ::c_int = 8; +pub const F_SETLK: ::c_int = 6; +pub const F_SETLKW: ::c_int = 7; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2; +pub const SFD_NONBLOCK: ::c_int = 2048; +pub const TCSANOW: ::c_int = 0; +pub const TCSADRAIN: ::c_int = 1; +pub const TCSAFLUSH: ::c_int = 2; +pub const TIOCLINUX: ::c_ulong = 21532; +pub const TIOCGSERIAL: ::c_ulong = 21534; +pub const TIOCEXCL: ::c_ulong = 21516; +pub const TIOCNXCL: ::c_ulong = 21517; +pub const TIOCSCTTY: ::c_ulong = 21518; +pub const TIOCSTI: ::c_ulong = 21522; +pub const TIOCMGET: ::c_ulong = 21525; +pub const TIOCMBIS: ::c_ulong = 21526; +pub const TIOCMBIC: ::c_ulong = 21527; +pub const TIOCMSET: ::c_ulong = 21528; +pub const TIOCCONS: ::c_ulong = 21533; +pub const TIOCM_ST: ::c_int = 8; +pub const TIOCM_SR: ::c_int = 16; +pub const TIOCM_CTS: ::c_int = 32; +pub const TIOCM_CAR: ::c_int = 64; +pub const TIOCM_RNG: ::c_int = 128; +pub const TIOCM_DSR: ::c_int = 256; +pub const SFD_CLOEXEC: ::c_int = 524288; +pub const NCCS: usize = 32; +pub const O_TRUNC: ::c_int = 512; +pub const O_CLOEXEC: ::c_int = 524288; +pub const EBFONT: ::c_int = 59; +pub const ENOSTR: ::c_int = 60; +pub const ENODATA: ::c_int = 61; +pub const ETIME: ::c_int = 62; +pub const ENOSR: ::c_int = 63; +pub const ENONET: ::c_int = 64; +pub const ENOPKG: ::c_int = 65; +pub const EREMOTE: ::c_int = 66; +pub const ENOLINK: ::c_int = 67; +pub const EADV: ::c_int = 68; +pub const ESRMNT: ::c_int = 69; +pub const ECOMM: ::c_int = 70; +pub const EPROTO: ::c_int = 71; +pub const EDOTDOT: ::c_int = 73; +pub const SA_NODEFER: ::c_int = 1073741824; +pub const SA_RESETHAND: ::c_int = -2147483648; +pub const SA_RESTART: ::c_int = 268435456; +pub const SA_NOCLDSTOP: ::c_int = 1; +pub const EPOLL_CLOEXEC: ::c_int = 524288; +pub const EFD_CLOEXEC: ::c_int = 524288; +pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; +pub const O_DIRECT: ::c_int = 16384; +pub const O_DIRECTORY: ::c_int = 65536; +pub const O_NOFOLLOW: ::c_int = 131072; +pub const MAP_HUGETLB: ::c_int = 262144; +pub const MAP_LOCKED: ::c_int = 8192; +pub const MAP_NORESERVE: ::c_int = 16384; +pub const MAP_ANON: ::c_int = 32; +pub const MAP_ANONYMOUS: ::c_int = 32; +pub const MAP_DENYWRITE: ::c_int = 2048; +pub const MAP_EXECUTABLE: ::c_int = 4096; +pub const MAP_POPULATE: ::c_int = 32768; +pub const MAP_NONBLOCK: ::c_int = 65536; +pub const MAP_STACK: ::c_int = 131072; +pub const EDEADLOCK: ::c_int = 35; +pub const EUCLEAN: ::c_int = 117; +pub const ENOTNAM: ::c_int = 118; +pub const ENAVAIL: ::c_int = 119; +pub const EISNAM: ::c_int = 120; +pub const EREMOTEIO: ::c_int = 121; +pub const FIOCLEX: ::c_ulong = 21585; +pub const FIONCLEX: ::c_ulong = 21584; +pub const FIONBIO: ::c_ulong = 21537; +pub const MCL_CURRENT: ::c_int = 1; +pub const MCL_FUTURE: ::c_int = 2; +pub const SIGSTKSZ: ::size_t = 8192; +pub const MINSIGSTKSZ: ::size_t = 2048; +pub const CBAUD: ::tcflag_t = 4111; +pub const TAB1: ::tcflag_t = 2048; +pub const TAB2: ::tcflag_t = 4096; +pub const TAB3: ::tcflag_t = 6144; +pub const CR1: ::tcflag_t = 512; +pub const CR2: ::tcflag_t = 1024; +pub const CR3: ::tcflag_t = 1536; +pub const FF1: ::tcflag_t = 32768; +pub const BS1: ::tcflag_t = 8192; +pub const VT1: ::tcflag_t = 16384; +pub const VWERASE: usize = 14; +pub const VREPRINT: usize = 12; +pub const VSUSP: usize = 10; +pub const VSTART: usize = 8; +pub const VSTOP: usize = 9; +pub const VDISCARD: usize = 13; +pub const VTIME: usize = 5; +pub const IXON: ::tcflag_t = 1024; +pub const IXOFF: ::tcflag_t = 4096; +pub const ONLCR: ::tcflag_t = 4; +pub const CSIZE: ::tcflag_t = 48; +pub const CS6: ::tcflag_t = 16; +pub const CS7: ::tcflag_t = 32; +pub const CS8: ::tcflag_t = 48; +pub const CSTOPB: ::tcflag_t = 64; +pub const CREAD: ::tcflag_t = 128; +pub const PARENB: ::tcflag_t = 256; +pub const PARODD: ::tcflag_t = 512; +pub const HUPCL: ::tcflag_t = 1024; +pub const CLOCAL: ::tcflag_t = 2048; +pub const ECHOKE: ::tcflag_t = 2048; +pub const ECHOE: ::tcflag_t = 16; +pub const ECHOK: ::tcflag_t = 32; +pub const ECHONL: ::tcflag_t = 64; +pub const ECHOPRT: ::tcflag_t = 1024; +pub const ECHOCTL: ::tcflag_t = 512; +pub const ISIG: ::tcflag_t = 1; +pub const ICANON: ::tcflag_t = 2; +pub const PENDIN: ::tcflag_t = 16384; +pub const NOFLSH: ::tcflag_t = 128; +pub const CIBAUD: ::tcflag_t = 269418496; +pub const CBAUDEX: ::tcflag_t = 4096; +pub const VSWTC: usize = 7; +pub const OLCUC: ::tcflag_t = 2; +pub const NLDLY: ::tcflag_t = 256; +pub const CRDLY: ::tcflag_t = 1536; +pub const TABDLY: ::tcflag_t = 6144; +pub const BSDLY: ::tcflag_t = 8192; +pub const FFDLY: ::tcflag_t = 32768; +pub const VTDLY: ::tcflag_t = 16384; +pub const XTABS: ::tcflag_t = 6144; +pub const B0: ::speed_t = 0; +pub const B50: ::speed_t = 1; +pub const B75: ::speed_t = 2; +pub const B110: ::speed_t = 3; +pub const B134: ::speed_t = 4; +pub const B150: ::speed_t = 5; +pub const B200: ::speed_t = 6; +pub const B300: ::speed_t = 7; +pub const B600: ::speed_t = 8; +pub const B1200: ::speed_t = 9; +pub const B1800: ::speed_t = 10; +pub const B2400: ::speed_t = 11; +pub const B4800: ::speed_t = 12; +pub const B9600: ::speed_t = 13; +pub const B19200: ::speed_t = 14; +pub const B38400: ::speed_t = 15; +pub const EXTA: ::speed_t = 14; +pub const EXTB: ::speed_t = 15; +pub const B57600: ::speed_t = 4097; +pub const B115200: ::speed_t = 4098; +pub const B230400: ::speed_t = 4099; +pub const B460800: ::speed_t = 4100; +pub const B500000: ::speed_t = 4101; +pub const B576000: ::speed_t = 4102; +pub const B921600: ::speed_t = 4103; +pub const B1000000: ::speed_t = 4104; +pub const B1152000: ::speed_t = 4105; +pub const B1500000: ::speed_t = 4106; +pub const B2000000: ::speed_t = 4107; +pub const B2500000: ::speed_t = 4108; +pub const B3000000: ::speed_t = 4109; +pub const B3500000: ::speed_t = 4110; +pub const B4000000: ::speed_t = 4111; +pub const VEOL: usize = 11; +pub const VEOL2: usize = 16; +pub const VMIN: usize = 6; +pub const IEXTEN: ::tcflag_t = 32768; +pub const TOSTOP: ::tcflag_t = 256; +pub const FLUSHO: ::tcflag_t = 4096; +pub const EXTPROC: ::tcflag_t = 65536; +pub const TCGETS: ::c_ulong = 21505; +pub const TCSETS: ::c_ulong = 21506; +pub const TCSETSW: ::c_ulong = 21507; +pub const TCSETSF: ::c_ulong = 21508; +pub const TCGETA: ::c_ulong = 21509; +pub const TCSETA: ::c_ulong = 21510; +pub const TCSETAW: ::c_ulong = 21511; +pub const TCSETAF: ::c_ulong = 21512; +pub const TCSBRK: ::c_ulong = 21513; +pub const TCXONC: ::c_ulong = 21514; +pub const TCFLSH: ::c_ulong = 21515; +pub const TIOCINQ: ::c_ulong = 21531; +pub const TIOCGPGRP: ::c_ulong = 21519; +pub const TIOCSPGRP: ::c_ulong = 21520; +pub const TIOCOUTQ: ::c_ulong = 21521; +pub const TIOCGWINSZ: ::c_ulong = 21523; +pub const TIOCSWINSZ: ::c_ulong = 21524; +pub const FIONREAD: ::c_ulong = 21531; +pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; +pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; +pub const SYS_read: ::c_long = 63; +pub const SYS_write: ::c_long = 64; +pub const SYS_close: ::c_long = 57; +pub const SYS_fstat: ::c_long = 80; +pub const SYS_lseek: ::c_long = 62; +pub const SYS_mmap: ::c_long = 222; +pub const SYS_mprotect: ::c_long = 226; +pub const SYS_munmap: ::c_long = 215; +pub const SYS_brk: ::c_long = 214; +pub const SYS_rt_sigaction: ::c_long = 134; +pub const SYS_rt_sigprocmask: ::c_long = 135; +pub const SYS_rt_sigreturn: ::c_long = 139; +pub const SYS_ioctl: ::c_long = 29; +pub const SYS_pread64: ::c_long = 67; +pub const SYS_pwrite64: ::c_long = 68; +pub const SYS_readv: ::c_long = 65; +pub const SYS_writev: ::c_long = 66; +pub const SYS_sched_yield: ::c_long = 124; +pub const SYS_mremap: ::c_long = 216; +pub const SYS_msync: ::c_long = 227; +pub const SYS_mincore: ::c_long = 232; +pub const SYS_madvise: ::c_long = 233; +pub const SYS_shmget: ::c_long = 194; +pub const SYS_shmat: ::c_long = 196; +pub const SYS_shmctl: ::c_long = 195; +pub const SYS_dup: ::c_long = 23; +pub const SYS_nanosleep: ::c_long = 101; +pub const SYS_getitimer: ::c_long = 102; +pub const SYS_setitimer: ::c_long = 103; +pub const SYS_getpid: ::c_long = 172; +pub const SYS_sendfile: ::c_long = 71; +pub const SYS_socket: ::c_long = 198; +pub const SYS_connect: ::c_long = 203; +pub const SYS_accept: ::c_long = 202; +pub const SYS_sendto: ::c_long = 206; +pub const SYS_recvfrom: ::c_long = 207; +pub const SYS_sendmsg: ::c_long = 211; +pub const SYS_recvmsg: ::c_long = 212; +pub const SYS_shutdown: ::c_long = 210; +pub const SYS_bind: ::c_long = 200; +pub const SYS_listen: ::c_long = 201; +pub const SYS_getsockname: ::c_long = 204; +pub const SYS_getpeername: ::c_long = 205; +pub const SYS_socketpair: ::c_long = 199; +pub const SYS_setsockopt: ::c_long = 208; +pub const SYS_getsockopt: ::c_long = 209; +pub const SYS_clone: ::c_long = 220; +pub const SYS_execve: ::c_long = 221; +pub const SYS_exit: ::c_long = 93; +pub const SYS_wait4: ::c_long = 260; +pub const SYS_kill: ::c_long = 129; +pub const SYS_uname: ::c_long = 160; +pub const SYS_semget: ::c_long = 190; +pub const SYS_semop: ::c_long = 193; +pub const SYS_semctl: ::c_long = 191; +pub const SYS_shmdt: ::c_long = 197; +pub const SYS_msgget: ::c_long = 186; +pub const SYS_msgsnd: ::c_long = 189; +pub const SYS_msgrcv: ::c_long = 188; +pub const SYS_msgctl: ::c_long = 187; +pub const SYS_fcntl: ::c_long = 25; +pub const SYS_flock: ::c_long = 32; +pub const SYS_fsync: ::c_long = 82; +pub const SYS_fdatasync: ::c_long = 83; +pub const SYS_truncate: ::c_long = 45; +pub const SYS_ftruncate: ::c_long = 46; +pub const SYS_getcwd: ::c_long = 17; +pub const SYS_chdir: ::c_long = 49; +pub const SYS_fchdir: ::c_long = 50; +pub const SYS_fchmod: ::c_long = 52; +pub const SYS_fchown: ::c_long = 55; +pub const SYS_umask: ::c_long = 166; +pub const SYS_gettimeofday: ::c_long = 169; +pub const SYS_getrlimit: ::c_long = 163; +pub const SYS_getrusage: ::c_long = 165; +pub const SYS_sysinfo: ::c_long = 179; +pub const SYS_times: ::c_long = 153; +pub const SYS_ptrace: ::c_long = 117; +pub const SYS_getuid: ::c_long = 174; +pub const SYS_syslog: ::c_long = 116; +pub const SYS_getgid: ::c_long = 176; +pub const SYS_setuid: ::c_long = 146; +pub const SYS_setgid: ::c_long = 144; +pub const SYS_geteuid: ::c_long = 175; +pub const SYS_getegid: ::c_long = 177; +pub const SYS_setpgid: ::c_long = 154; +pub const SYS_getppid: ::c_long = 173; +pub const SYS_setsid: ::c_long = 157; +pub const SYS_setreuid: ::c_long = 145; +pub const SYS_setregid: ::c_long = 143; +pub const SYS_getgroups: ::c_long = 158; +pub const SYS_setgroups: ::c_long = 159; +pub const SYS_setresuid: ::c_long = 147; +pub const SYS_getresuid: ::c_long = 148; +pub const SYS_setresgid: ::c_long = 149; +pub const SYS_getresgid: ::c_long = 150; +pub const SYS_getpgid: ::c_long = 155; +pub const SYS_setfsuid: ::c_long = 151; +pub const SYS_setfsgid: ::c_long = 152; +pub const SYS_getsid: ::c_long = 156; +pub const SYS_capget: ::c_long = 90; +pub const SYS_capset: ::c_long = 91; +pub const SYS_rt_sigpending: ::c_long = 136; +pub const SYS_rt_sigtimedwait: ::c_long = 137; +pub const SYS_rt_sigqueueinfo: ::c_long = 138; +pub const SYS_rt_sigsuspend: ::c_long = 133; +pub const SYS_sigaltstack: ::c_long = 132; +pub const SYS_personality: ::c_long = 92; +pub const SYS_statfs: ::c_long = 43; +pub const SYS_fstatfs: ::c_long = 44; +pub const SYS_getpriority: ::c_long = 141; +pub const SYS_setpriority: ::c_long = 140; +pub const SYS_sched_setparam: ::c_long = 118; +pub const SYS_sched_getparam: ::c_long = 121; +pub const SYS_sched_setscheduler: ::c_long = 119; +pub const SYS_sched_getscheduler: ::c_long = 120; +pub const SYS_sched_get_priority_max: ::c_long = 125; +pub const SYS_sched_get_priority_min: ::c_long = 126; +pub const SYS_sched_rr_get_interval: ::c_long = 127; +pub const SYS_mlock: ::c_long = 228; +pub const SYS_munlock: ::c_long = 229; +pub const SYS_mlockall: ::c_long = 230; +pub const SYS_munlockall: ::c_long = 231; +pub const SYS_vhangup: ::c_long = 58; +pub const SYS_pivot_root: ::c_long = 41; +pub const SYS_prctl: ::c_long = 167; +pub const SYS_adjtimex: ::c_long = 171; +pub const SYS_setrlimit: ::c_long = 164; +pub const SYS_chroot: ::c_long = 51; +pub const SYS_sync: ::c_long = 81; +pub const SYS_acct: ::c_long = 89; +pub const SYS_settimeofday: ::c_long = 170; +pub const SYS_mount: ::c_long = 40; +pub const SYS_umount2: ::c_long = 39; +pub const SYS_swapon: ::c_long = 224; +pub const SYS_swapoff: ::c_long = 225; +pub const SYS_reboot: ::c_long = 142; +pub const SYS_sethostname: ::c_long = 161; +pub const SYS_setdomainname: ::c_long = 162; +pub const SYS_init_module: ::c_long = 105; +pub const SYS_delete_module: ::c_long = 106; +pub const SYS_quotactl: ::c_long = 60; +pub const SYS_nfsservctl: ::c_long = 42; +pub const SYS_gettid: ::c_long = 178; +pub const SYS_readahead: ::c_long = 213; +pub const SYS_setxattr: ::c_long = 5; +pub const SYS_lsetxattr: ::c_long = 6; +pub const SYS_fsetxattr: ::c_long = 7; +pub const SYS_getxattr: ::c_long = 8; +pub const SYS_lgetxattr: ::c_long = 9; +pub const SYS_fgetxattr: ::c_long = 10; +pub const SYS_listxattr: ::c_long = 11; +pub const SYS_llistxattr: ::c_long = 12; +pub const SYS_flistxattr: ::c_long = 13; +pub const SYS_removexattr: ::c_long = 14; +pub const SYS_lremovexattr: ::c_long = 15; +pub const SYS_fremovexattr: ::c_long = 16; +pub const SYS_tkill: ::c_long = 130; +pub const SYS_futex: ::c_long = 98; +pub const SYS_sched_setaffinity: ::c_long = 122; +pub const SYS_sched_getaffinity: ::c_long = 123; +pub const SYS_io_setup: ::c_long = 0; +pub const SYS_io_destroy: ::c_long = 1; +pub const SYS_io_getevents: ::c_long = 4; +pub const SYS_io_submit: ::c_long = 2; +pub const SYS_io_cancel: ::c_long = 3; +pub const SYS_lookup_dcookie: ::c_long = 18; +pub const SYS_remap_file_pages: ::c_long = 234; +pub const SYS_getdents64: ::c_long = 61; +pub const SYS_set_tid_address: ::c_long = 96; +pub const SYS_restart_syscall: ::c_long = 128; +pub const SYS_semtimedop: ::c_long = 192; +pub const SYS_fadvise64: ::c_long = 223; +pub const SYS_timer_create: ::c_long = 107; +pub const SYS_timer_settime: ::c_long = 110; +pub const SYS_timer_gettime: ::c_long = 108; +pub const SYS_timer_getoverrun: ::c_long = 109; +pub const SYS_timer_delete: ::c_long = 111; +pub const SYS_clock_settime: ::c_long = 112; +pub const SYS_clock_gettime: ::c_long = 113; +pub const SYS_clock_getres: ::c_long = 114; +pub const SYS_clock_nanosleep: ::c_long = 115; +pub const SYS_exit_group: ::c_long = 94; +pub const SYS_epoll_ctl: ::c_long = 21; +pub const SYS_tgkill: ::c_long = 131; +pub const SYS_mbind: ::c_long = 235; +pub const SYS_set_mempolicy: ::c_long = 237; +pub const SYS_get_mempolicy: ::c_long = 236; +pub const SYS_mq_open: ::c_long = 180; +pub const SYS_mq_unlink: ::c_long = 181; +pub const SYS_mq_timedsend: ::c_long = 182; +pub const SYS_mq_timedreceive: ::c_long = 183; +pub const SYS_mq_notify: ::c_long = 184; +pub const SYS_mq_getsetattr: ::c_long = 185; +pub const SYS_kexec_load: ::c_long = 104; +pub const SYS_waitid: ::c_long = 95; +pub const SYS_add_key: ::c_long = 217; +pub const SYS_request_key: ::c_long = 218; +pub const SYS_keyctl: ::c_long = 219; +pub const SYS_ioprio_set: ::c_long = 30; +pub const SYS_ioprio_get: ::c_long = 31; +pub const SYS_inotify_add_watch: ::c_long = 27; +pub const SYS_inotify_rm_watch: ::c_long = 28; +pub const SYS_migrate_pages: ::c_long = 238; +pub const SYS_openat: ::c_long = 56; +pub const SYS_mkdirat: ::c_long = 34; +pub const SYS_mknodat: ::c_long = 33; +pub const SYS_fchownat: ::c_long = 54; +pub const SYS_newfstatat: ::c_long = 79; +pub const SYS_unlinkat: ::c_long = 35; +pub const SYS_linkat: ::c_long = 37; +pub const SYS_symlinkat: ::c_long = 36; +pub const SYS_readlinkat: ::c_long = 78; +pub const SYS_fchmodat: ::c_long = 53; +pub const SYS_faccessat: ::c_long = 48; +pub const SYS_pselect6: ::c_long = 72; +pub const SYS_ppoll: ::c_long = 73; +pub const SYS_unshare: ::c_long = 97; +pub const SYS_set_robust_list: ::c_long = 99; +pub const SYS_get_robust_list: ::c_long = 100; +pub const SYS_splice: ::c_long = 76; +pub const SYS_tee: ::c_long = 77; +pub const SYS_sync_file_range: ::c_long = 84; +pub const SYS_vmsplice: ::c_long = 75; +pub const SYS_move_pages: ::c_long = 239; +pub const SYS_utimensat: ::c_long = 88; +pub const SYS_epoll_pwait: ::c_long = 22; +pub const SYS_timerfd_create: ::c_long = 85; +pub const SYS_fallocate: ::c_long = 47; +pub const SYS_timerfd_settime: ::c_long = 86; +pub const SYS_timerfd_gettime: ::c_long = 87; +pub const SYS_accept4: ::c_long = 242; +pub const SYS_signalfd4: ::c_long = 74; +pub const SYS_eventfd2: ::c_long = 19; +pub const SYS_epoll_create1: ::c_long = 20; +pub const SYS_dup3: ::c_long = 24; +pub const SYS_pipe2: ::c_long = 59; +pub const SYS_inotify_init1: ::c_long = 26; +pub const SYS_preadv: ::c_long = 69; +pub const SYS_pwritev: ::c_long = 70; +pub const SYS_rt_tgsigqueueinfo: ::c_long = 240; +pub const SYS_perf_event_open: ::c_long = 241; +pub const SYS_recvmmsg: ::c_long = 243; +pub const SYS_fanotify_init: ::c_long = 262; +pub const SYS_fanotify_mark: ::c_long = 263; +pub const SYS_prlimit64: ::c_long = 261; +pub const SYS_name_to_handle_at: ::c_long = 264; +pub const SYS_open_by_handle_at: ::c_long = 265; +pub const SYS_clock_adjtime: ::c_long = 266; +pub const SYS_syncfs: ::c_long = 267; +pub const SYS_sendmmsg: ::c_long = 269; +pub const SYS_setns: ::c_long = 268; +pub const SYS_getcpu: ::c_long = 168; +pub const SYS_process_vm_readv: ::c_long = 270; +pub const SYS_process_vm_writev: ::c_long = 271; +pub const SYS_kcmp: ::c_long = 272; +pub const SYS_finit_module: ::c_long = 273; +pub const SYS_sched_setattr: ::c_long = 274; +pub const SYS_sched_getattr: ::c_long = 275; +pub const SYS_renameat2: ::c_long = 276; +pub const SYS_seccomp: ::c_long = 277; +pub const SYS_getrandom: ::c_long = 278; +pub const SYS_memfd_create: ::c_long = 279; +pub const SYS_bpf: ::c_long = 280; +pub const SYS_execveat: ::c_long = 281; +pub const SYS_userfaultfd: ::c_long = 282; +pub const SYS_membarrier: ::c_long = 283; +pub const SYS_mlock2: ::c_long = 284; +pub const SYS_copy_file_range: ::c_long = 285; +pub const SYS_preadv2: ::c_long = 286; +pub const SYS_pwritev2: ::c_long = 287; +pub const SYS_pkey_mprotect: ::c_long = 288; +pub const SYS_pkey_alloc: ::c_long = 289; +pub const SYS_pkey_free: ::c_long = 290; +pub const SYS_statx: ::c_long = 291; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6473a041ee6ad..c0cfd1f866d66 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1031,7 +1031,8 @@ cfg_if! { target_arch = "powerpc64", target_arch = "mips64", target_arch = "s390x", - target_arch = "sparc64"))] { + target_arch = "sparc64", + target_arch = "riscv64"))] { mod b64; pub use self::b64::*; } else { From 033a775459e4ba3aa6b9fc0fbacb2aa56b1218b2 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Wed, 27 Nov 2019 13:29:15 -0300 Subject: [PATCH 288/296] Fix the lastlogx PartialEq impl --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 69c1efbbcd1ac..91ecd62a6b49e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -481,8 +481,12 @@ cfg_if! { fn eq(&self, other: &lastlogx) -> bool { self.ll_tv == other.ll_tv && self.ll_line == other.ll_line - && self.ll_host == other.ll_host && self.ll_ss == other.ll_ss + && self + .ll_host + .iter() + .zip(other.ll_host.iter()) + .all(|(a,b)| a == b) } } From 6fffc1685cd0191808ec722be47ec057e9cfe472 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Wed, 27 Nov 2019 13:35:58 -0300 Subject: [PATCH 289/296] Comment fields that are array with size above 32 in Debug impl utmpx lastlogx --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 91ecd62a6b49e..1cdc1c6752ad6 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -449,14 +449,14 @@ cfg_if! { .field("ut_name", &self.ut_name) .field("ut_id", &self.ut_id) .field("ut_line", &self.ut_line) - .field("ut_host", &self.ut_host) + // FIXME .field("ut_host", &self.ut_host) .field("ut_session", &self.ut_session) .field("ut_type", &self.ut_type) .field("ut_pid", &self.ut_pid) .field("ut_exit", &self.ut_exit) .field("ut_ss", &self.ut_ss) .field("ut_tv", &self.ut_tv) - .field("ut_pad", &self.ut_pad) + // FIXME .field("ut_pad", &self.ut_pad) .finish() } } @@ -497,7 +497,7 @@ cfg_if! { f.debug_struct("lastlogx") .field("ll_tv", &self.ll_tv) .field("ll_line", &self.ll_line) - .field("ll_host", &self.ll_host) + // FIXME.field("ll_host", &self.ll_host) .field("ll_ss", &self.ll_ss) .finish() } From 7335d1e4cda84ce60901da65934ae00bef47c56a Mon Sep 17 00:00:00 2001 From: Alex Povar <1074182+zvirja@users.noreply.github.com> Date: Tue, 26 Nov 2019 22:52:32 +0100 Subject: [PATCH 290/296] Add ucred type to uclibc for all archs --- src/unix/uclibc/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs index c479f40016e8b..b4fe03688038f 100644 --- a/src/unix/uclibc/mod.rs +++ b/src/unix/uclibc/mod.rs @@ -288,6 +288,12 @@ s! { pub msgtql: ::c_int, pub msgseg: ::c_ushort, } + + pub struct ucred { + pub pid: ::pid_t, + pub uid: ::uid_t, + pub gid: ::gid_t, + } } s_no_extra_traits! { From 223e7d340a21cd104d157438a630d0b9ccafa194 Mon Sep 17 00:00:00 2001 From: "Joshua M. Clulow" Date: Wed, 27 Nov 2019 22:13:28 +0000 Subject: [PATCH 291/296] expose futimens() for illumos systems (fix style) --- src/unix/solarish/mod.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index e84067876455c..9f0372b20fb75 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -2157,10 +2157,7 @@ extern "C" { path: *const ::c_char, times: *const ::timeval, ) -> ::c_int; - pub fn futimens( - dirfd: ::c_int, - times: *const ::timespec, - ) -> ::c_int; + pub fn futimens(dirfd: ::c_int, times: *const ::timespec) -> ::c_int; pub fn utimensat( dirfd: ::c_int, path: *const ::c_char, From f8513121537a30c31045e8c4bae4f76285823f46 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Thu, 28 Nov 2019 10:37:32 +0700 Subject: [PATCH 292/296] use *const pointer for NetBSD's pthread_setname_np --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index a5a2fc61d507d..9b3c398503a0e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -1680,7 +1680,7 @@ extern "C" { pub fn pthread_setname_np( t: ::pthread_t, name: *const ::c_char, - arg: *mut ::c_void, + arg: *const ::c_void, ) -> ::c_int; pub fn pthread_attr_get_np( thread: ::pthread_t, From bf419bbb8c206bfe66866b54fe7872bd51bfe5ac Mon Sep 17 00:00:00 2001 From: msizanoen1 Date: Wed, 27 Nov 2019 18:39:15 +0700 Subject: [PATCH 293/296] Force update nightly compiler on Linux --- ci/azure-install-rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml index e78fe32faf6d0..31b07149bd4d8 100644 --- a/ci/azure-install-rust.yml +++ b/ci/azure-install-rust.yml @@ -8,7 +8,7 @@ steps: if command -v rustup; then # Uncomment when rustup on Azure is updated #rustup set profile minimal - rustup update $toolchain + rustup update --force $toolchain rustup default $toolchain else curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain --profile=minimal From a06978b7c09e9988ca6bc8ec72bab96ac98b974a Mon Sep 17 00:00:00 2001 From: msizanoen1 Date: Thu, 28 Nov 2019 13:02:17 +0700 Subject: [PATCH 294/296] Fix breakage due to https://github.com/rust-lang/cargo/pull/7560 and rust-lang/rust#66748 --- ci/build.sh | 2 +- ci/dox.sh | 2 +- ci/semver.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build.sh b/ci/build.sh index aad00859e890d..082f0dc683393 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -15,7 +15,7 @@ RUST=${TOOLCHAIN} echo "Testing Rust ${RUST} on ${OS}" if [ "${TOOLCHAIN}" = "nightly" ] ; then - cargo +nightly install cargo-xbuild -Z install-upgrade + cargo +nightly install cargo-xbuild rustup component add rust-src fi diff --git a/ci/dox.sh b/ci/dox.sh index 0c89a2e17b1e9..271b54b4fab79 100644 --- a/ci/dox.sh +++ b/ci/dox.sh @@ -19,7 +19,7 @@ if ! rustc --version | grep -E "nightly" ; then fi rustup component add rust-src -cargo +nightly install cargo-xbuild -Z install-upgrade +cargo +nightly install cargo-xbuild # List all targets that do currently build successfully: # shellcheck disable=SC1003 diff --git a/ci/semver.sh b/ci/semver.sh index 3412501a7215b..7e6ea663c8aca 100644 --- a/ci/semver.sh +++ b/ci/semver.sh @@ -13,7 +13,7 @@ if ! rustc --version | grep -E "nightly" ; then exit 1 fi -cargo +nightly install semverver -Z install-upgrade +cargo +nightly install semverver TARGETS= case "${OS}" in From 42289eb64f63fff85a08dffcfb30b1e6b167d20a Mon Sep 17 00:00:00 2001 From: GrayJack Date: Thu, 28 Nov 2019 20:47:50 -0300 Subject: [PATCH 295/296] Implement utmp for NetBSD --- src/unix/bsd/netbsdlike/netbsd/mod.rs | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 1cdc1c6752ad6..ef9fe0480998e 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -299,6 +299,19 @@ s! { pub shm_ctime: ::time_t, _shm_internal: *mut ::c_void, } + + pub struct utmp { + pub ut_line: [::c_char; UT_LINESIZE], + pub ut_name: [::c_char; UT_NAMESIZE], + pub ut_host: [::c_char; UT_HOSTSIZE], + pub ut_time: ::time_t + } + + pub struct lastlog { + pub ll_line: [::c_char; UT_LINESIZE], + pub ll_host: [::c_char; UT_HOSTSIZE], + pub ll_time: ::time_t + } } s_no_extra_traits! { @@ -1517,6 +1530,9 @@ pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS | ::CDTRCTS; // pub const _PATH_WTMPX: &[::c_char; 14] = b"/var/log/wtmpx"; // pub const _PATH_LASTLOGX: &[::c_char; 17] = b"/var/log/lastlogx"; // pub const _PATH_UTMP_UPDATE: &[::c_char; 24] = b"/usr/libexec/utmp_update"; +pub const UT_NAMESIZE: usize = 8; +pub const UT_LINESIZE: usize = 8; +pub const UT_HOSTSIZE: usize = 16; pub const _UTX_USERSIZE: usize = 32; pub const _UTX_LINESIZE: usize = 32; pub const _UTX_PADSIZE: usize = 40; @@ -1914,9 +1930,14 @@ extern "C" { pub fn pututxline(ut: *const utmpx) -> *mut utmpx; pub fn setutxent(); pub fn endutxent(); -// TODO: uncomment after utmp implementation -// pub fn getutmp(ux: *const utmpx, u: *mut utmp); -// pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + + pub fn getutmp(ux: *const utmpx, u: *mut utmp); + pub fn getutmpx(u: *const utmp, ux: *mut utmpx); + + pub fn utpname(file: *const ::c_char) -> ::c_int; + pub fn setutent(); + pub fn endutent(); + pub fn getutent() -> *mut utmp; } cfg_if! { From 4f11029a68040c90acf771976b019c1ef273a8cd Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Fri, 29 Nov 2019 13:21:20 +0100 Subject: [PATCH 296/296] Bump patch version to 0.2.66 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 70f49e15e810a..c701f41f2a0ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libc" -version = "0.2.65" +version = "0.2.66" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md"