From 10af5a66966396b196f3027880f85046acd4809c Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Mon, 10 Mar 2025 16:54:44 -0300 Subject: [PATCH 1/6] ci: s390x: fix 'cannot find libc' error Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 4776e0fc35d7b3389d36698158489f69379422cc) --- ci/linux-s390x.sh | 4 ++-- ci/run.sh | 1 - src/unix/linux_like/linux/gnu/b64/mod.rs | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ci/linux-s390x.sh b/ci/linux-s390x.sh index 5c89e90b11906..ddba4c48c0d82 100755 --- a/ci/linux-s390x.sh +++ b/ci/linux-s390x.sh @@ -6,8 +6,8 @@ mkdir -m 777 /qemu cd /qemu curl --retry 5 -LO https://github.com/qemu/qemu/raw/HEAD/pc-bios/s390-ccw.img -curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20230607/images/generic/kernel.debian -curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20230607/images/generic/initrd.debian +curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20241227/images/generic/kernel.debian +curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20241227/images/generic/initrd.debian mv kernel.debian kernel mv initrd.debian initrd.gz diff --git a/ci/run.sh b/ci/run.sh index 8889cda5a21e5..c58ae1caa1739 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -87,7 +87,6 @@ test_flags="--skip check_style" case "$target" in # Only run `libc-test` # FIXME(android): unit tests fail to start on Android - # FIXME(s390x): unit tests fail to locate glibc *android*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; *s390x*) cmd="$cmd --manifest-path libc-test/Cargo.toml" ;; # For all other platforms, test everything in the workspace diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 73276679a3d18..9d7608f67f132 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -77,7 +77,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64" + target_arch = "sparc64", + target_arch = "s390x", )))] __reserved: crate::__syscall_ulong_t, pub sem_ctime: crate::time_t, @@ -88,7 +89,8 @@ s! { target_arch = "mips64r6", target_arch = "powerpc64", target_arch = "riscv64", - target_arch = "sparc64" + target_arch = "sparc64", + target_arch = "s390x", )))] __reserved2: crate::__syscall_ulong_t, pub sem_nsems: crate::__syscall_ulong_t, From 67352ee823c7a09882b320bdb4f1359e05f29a18 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Mon, 10 Mar 2025 16:55:51 -0300 Subject: [PATCH 2/6] ci: sparc64: fix 'cannot find libc' error Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 1ae6552373ad8f3ee6235b78f3a722dfa9f89bb7) --- ci/docker/sparc64-unknown-linux-gnu/Dockerfile | 9 +-------- ci/linux-sparc64.sh | 8 ++++---- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile index 61b0e798e52c1..645cc3362ab93 100644 --- a/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/sparc64-unknown-linux-gnu/Dockerfile @@ -1,11 +1,4 @@ -# FIXME(sparc): newer versions of Ubuntu get the following errors -# ``` -# /prog: /lib/sparc64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /prog) -# /prog: /lib/sparc64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /prog) -# ``` -# Not sure if this is a problem from rustc, our libc, or Ubuntu so we just -# stick with an old LTS for now. -FROM ubuntu:22.04 +FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates \ diff --git a/ci/linux-sparc64.sh b/ci/linux-sparc64.sh index d81ed104277a9..b272c42edd9aa 100755 --- a/ci/linux-sparc64.sh +++ b/ci/linux-sparc64.sh @@ -5,11 +5,11 @@ set -eux mkdir -m 777 /qemu cd /qemu -curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2022-12-09/debian-11.0.0-sparc64-NETINST-1.iso -7z e debian-11.0.0-sparc64-NETINST-1.iso install/initrd.gz -7z e debian-11.0.0-sparc64-NETINST-1.iso install/vmlinux +curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2024-12-24/debian-12.0.0-sparc64-NETINST-1.iso +7z e debian-12.0.0-sparc64-NETINST-1.iso install/initrd.gz +7z e debian-12.0.0-sparc64-NETINST-1.iso install/vmlinux mv vmlinux kernel -rm debian-11.0.0-sparc64-NETINST-1.iso +rm debian-12.0.0-sparc64-NETINST-1.iso mkdir init cd init From ff17476460f85c5b669faa2ecce30147649504a8 Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Mon, 10 Mar 2025 16:18:20 +0100 Subject: [PATCH 3/6] linux_like: add F_SEAL_EXEC This flag has been introduced in Linux kernel 6.3: https://github.com/torvalds/linux/commit/6fd7353829cafc4067aad9eea0dc95da67e7df16 (backport ) (cherry picked from commit 61c4a0a6597174e1f6f475806e9f2467794c7f98) --- libc-test/build.rs | 4 +++- libc-test/semver/android.txt | 1 + libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 1 + src/unix/linux_like/linux/mod.rs | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libc-test/build.rs b/libc-test/build.rs index 71bc5e553cf5c..289c85179cebd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4255,7 +4255,9 @@ fn test_linux(target: &str) { | "F_SEAL_SEAL" | "F_SEAL_SHRINK" | "F_SEAL_GROW" - | "F_SEAL_WRITE" => true, + | "F_SEAL_WRITE" + | "F_SEAL_FUTURE_WRITE" + | "F_SEAL_EXEC" => true, // The `ARPHRD_CAN` is tested in the `linux_if_arp.rs` tests // because including `linux/if_arp.h` causes some conflicts: "ARPHRD_CAN" => true, diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index c62b76b39a938..983d0e6d521a2 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -685,6 +685,7 @@ F_OFD_SETLK F_OFD_SETLKW F_OK F_RDLCK +F_SEAL_EXEC F_SEAL_GROW F_SEAL_SEAL F_SEAL_SHRINK diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 88721a2fb4ca0..6990f58bb0f64 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -864,6 +864,7 @@ F_OFD_GETLK F_OFD_SETLK F_OFD_SETLKW F_RDLCK +F_SEAL_EXEC F_SEAL_FUTURE_WRITE F_SEAL_GROW F_SEAL_SEAL diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index ba9527c01ec2c..330438feb4d76 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1305,6 +1305,7 @@ pub const F_TLOCK: c_int = 2; pub const F_ULOCK: c_int = 0; pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; +pub const F_SEAL_EXEC: c_int = 0x0020; pub const IFF_LOWER_UP: c_int = 0x10000; pub const IFF_DORMANT: c_int = 0x20000; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b36e0891741fa..b6dd307de7b96 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2770,6 +2770,7 @@ pub const F_TLOCK: c_int = 2; pub const F_ULOCK: c_int = 0; pub const F_SEAL_FUTURE_WRITE: c_int = 0x0010; +pub const F_SEAL_EXEC: c_int = 0x0020; pub const IFF_LOWER_UP: c_int = 0x10000; pub const IFF_DORMANT: c_int = 0x20000; From 85f6836e3bbfbc436d4de658a37f15d0932a9155 Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Wed, 5 Mar 2025 16:49:20 -0300 Subject: [PATCH 4/6] linux: add socket constants up to SO_DEVMEM_DONTNEED The devmem constants requires headers >= 6.12 on gnu libc. Musl hardcodes these constants into "sys/socket.h", which are not yet present. For reference: https://elixir.bootlin.com/linux/v6.13.5/source/include/uapi/asm-generic/socket.h#L142 Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit ae98eddc738e8abb597eb53acbecace52062c0a9) --- libc-test/build.rs | 27 +++++++++++++++++++ libc-test/semver/linux.txt | 12 +++++++++ src/unix/linux_like/linux/arch/generic/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/mips/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/powerpc/mod.rs | 13 +++++++++ src/unix/linux_like/linux/arch/sparc/mod.rs | 13 +++++++++ 6 files changed, 91 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 289c85179cebd..a88ad2287ad67 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4237,6 +4237,26 @@ fn test_linux(target: &str) { { return true; } + // FIXME(musl): Not in musl yet + if name == "SO_NETNS_COOKIE" + || name == "SO_BUF_LOCK" + || name == "SO_RESERVE_MEM" + || name == "SO_TXREHASH" + || name == "SO_RCVMARK" + || name == "SO_PASSPIDFD" + || name == "SO_PEERPIDFD" + || name == "SO_DEVMEM_LINEAR" + || name == "SO_DEVMEM_DMABUF" + || name == "SO_DEVMEM_DONTNEED" + { + return true; + } + // FIXME(musl): Not in musl yet + if name == "SCM_DEVMEM_LINEAR" + || name == "SCM_DEVMEM_DMABUF" + { + return true; + } } match name { // These constants are not available if gnu headers have been included @@ -4536,6 +4556,13 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.12 kernel headers. "SOF_TIMESTAMPING_OPT_RX_FILTER" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "SO_DEVMEM_LINEAR" + | "SO_DEVMEM_DMABUF" + | "SO_DEVMEM_DONTNEED" + | "SCM_DEVMEM_LINEAR" + | "SCM_DEVMEM_DMABUF" => true, + _ => false, } }); diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 6990f58bb0f64..8c4b54f3cfaa4 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2648,6 +2648,8 @@ SCHED_OTHER SCHED_RESET_ON_FORK SCHED_RR SCM_CREDENTIALS +SCM_DEVMEM_DMABUF +SCM_DEVMEM_LINEAR SCM_J1939_DEST_ADDR SCM_J1939_DEST_NAME SCM_J1939_ERRQUEUE @@ -2954,8 +2956,12 @@ SOL_X25 SOL_XDP SOMAXCONN SO_BINDTODEVICE +SO_BUF_LOCK SO_BUSY_POLL SO_BUSY_POLL_BUDGET +SO_DEVMEM_DMABUF +SO_DEVMEM_DONTNEED +SO_DEVMEM_LINEAR SO_DOMAIN SO_EE_OFFENDER SO_EE_ORIGIN_ICMP @@ -2969,20 +2975,26 @@ SO_J1939_FILTER SO_J1939_PROMISC SO_J1939_SEND_PRIO SO_MARK +SO_NETNS_COOKIE SO_ORIGINAL_DST SO_PASSCRED +SO_PASSPIDFD SO_PASSSEC SO_PEEK_OFF SO_PEERCRED +SO_PEERPIDFD SO_PEERSEC SO_PREFER_BUSY_POLL SO_RCVBUFFORCE +SO_RCVMARK +SO_RESERVE_MEM SO_REUSEPORT SO_RXQ_OVFL SO_SNDBUFFORCE SO_TIMESTAMP SO_TIMESTAMPING SO_TIMESTAMPNS +SO_TXREHASH SPLICE_F_GIFT SPLICE_F_MORE SPLICE_F_MOVE diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index c515c7495a894..61d2e3fe19180 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -147,6 +147,16 @@ cfg_if! { } pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; cfg_if! { if #[cfg(any( @@ -169,6 +179,9 @@ cfg_if! { pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x5401; diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 1cff58290ed30..1e12a1097202b 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -120,6 +120,16 @@ cfg_if! { // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; @@ -129,6 +139,9 @@ pub const FICLONERANGE: c_ulong = 0x8020940D; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x540d; diff --git a/src/unix/linux_like/linux/arch/powerpc/mod.rs b/src/unix/linux_like/linux/arch/powerpc/mod.rs index f731fe7203fb8..588b99a2d0f22 100644 --- a/src/unix/linux_like/linux/arch/powerpc/mod.rs +++ b/src/unix/linux_like/linux/arch/powerpc/mod.rs @@ -102,6 +102,16 @@ const SO_SNDTIMEO_NEW: c_int = 67; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 68; pub const SO_PREFER_BUSY_POLL: c_int = 69; pub const SO_BUSY_POLL_BUDGET: c_int = 70; +pub const SO_NETNS_COOKIE: c_int = 71; +pub const SO_BUF_LOCK: c_int = 72; +pub const SO_RESERVE_MEM: c_int = 73; +pub const SO_TXREHASH: c_int = 74; +pub const SO_RCVMARK: c_int = 75; +pub const SO_PASSPIDFD: c_int = 76; +pub const SO_PEERPIDFD: c_int = 77; +pub const SO_DEVMEM_LINEAR: c_int = 78; +pub const SO_DEVMEM_DMABUF: c_int = 79; +pub const SO_DEVMEM_DONTNEED: c_int = 80; pub const FICLONE: c_ulong = 0x80049409; pub const FICLONERANGE: c_ulong = 0x8020940D; @@ -111,6 +121,9 @@ pub const FICLONERANGE: c_ulong = 0x8020940D; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants cfg_if! { diff --git a/src/unix/linux_like/linux/arch/sparc/mod.rs b/src/unix/linux_like/linux/arch/sparc/mod.rs index 286c332459d97..86af2ad14bcd0 100644 --- a/src/unix/linux_like/linux/arch/sparc/mod.rs +++ b/src/unix/linux_like/linux/arch/sparc/mod.rs @@ -97,12 +97,25 @@ pub const SO_TIMESTAMPING: c_int = 0x0023; // pub const SO_DETACH_REUSEPORT_BPF: c_int = 0x0047; pub const SO_PREFER_BUSY_POLL: c_int = 0x0048; pub const SO_BUSY_POLL_BUDGET: c_int = 0x0049; +pub const SO_NETNS_COOKIE: c_int = 0x0050; +pub const SO_BUF_LOCK: c_int = 0x0051; +pub const SO_RESERVE_MEM: c_int = 0x0052; +pub const SO_TXREHASH: c_int = 0x0053; +pub const SO_RCVMARK: c_int = 0x0054; +pub const SO_PASSPIDFD: c_int = 0x0055; +pub const SO_PEERPIDFD: c_int = 0x0056; +pub const SO_DEVMEM_LINEAR: c_int = 0x0057; +pub const SO_DEVMEM_DMABUF: c_int = 0x0058; +pub const SO_DEVMEM_DONTNEED: c_int = 0x0059; // Defined in unix/linux_like/mod.rs // pub const SCM_TIMESTAMP: c_int = SO_TIMESTAMP; pub const SCM_TIMESTAMPNS: c_int = SO_TIMESTAMPNS; pub const SCM_TIMESTAMPING: c_int = SO_TIMESTAMPING; +pub const SCM_DEVMEM_LINEAR: c_int = SO_DEVMEM_LINEAR; +pub const SCM_DEVMEM_DMABUF: c_int = SO_DEVMEM_DMABUF; + // Ioctl Constants pub const TCGETS: Ioctl = 0x40245408; From 29a40e2cacdb63bf1efc640ab74c6a63c5a96dcf Mon Sep 17 00:00:00 2001 From: Pedro Tammela Date: Wed, 5 Mar 2025 18:14:05 -0300 Subject: [PATCH 5/6] linux: add devmem structs For reference: https://elixir.bootlin.com/linux/v6.13.5/source/include/uapi/linux/uio.h#L23 Signed-off-by: Pedro Tammela (backport ) (cherry picked from commit 4985e60cc353eeb6b2e06eb4932543f834f8b3b4) --- libc-test/build.rs | 4 ++++ src/unix/linux_like/linux/mod.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index a88ad2287ad67..3fedeb412aa12 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4135,6 +4135,10 @@ fn test_linux(target: &str) { // FIXME(linux): Requires >= 6.9 kernel headers. "epoll_params" => true, + // FIXME(linux): Requires >= 6.12 kernel headers. + "dmabuf_cmsg" | + "dmabuf_token" => true, + _ => false, } }); diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index b6dd307de7b96..c2737f8d89096 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1320,6 +1320,21 @@ s! { pub propagation: crate::__u64, pub userns_fd: crate::__u64, } + + // linux/uio.h + + pub struct dmabuf_cmsg { + pub frag_offset: crate::__u64, + pub frag_size: crate::__u32, + pub frag_token: crate::__u32, + pub dmabuf_id: crate::__u32, + pub flags: crate::__u32, + } + + pub struct dmabuf_token { + pub token_start: crate::__u32, + pub token_count: crate::__u32, + } } cfg_if! { From 5746f8e4902df9e3128b6d9550682176093648c6 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 10 Mar 2025 00:25:48 +0100 Subject: [PATCH 6/6] Add missing macos proc types and constants (backport ) (cherry picked from commit f3c54e8754d901ec5f59bd18ae794302ee68f581) --- src/unix/bsd/apple/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 9103522d95053..56169a5cf73d8 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1303,6 +1303,12 @@ s! { pub ctl_id: u32, pub ctl_name: [c_char; MAX_KCTL_NAME], } + + // sys/proc_info.h + pub struct proc_fdinfo { + pub proc_fd: i32, + pub proc_fdtype: u32, + } } s_no_extra_traits! { @@ -5139,6 +5145,21 @@ pub const PROC_PIDTASKINFO: c_int = 4; pub const PROC_PIDTHREADINFO: c_int = 5; pub const PROC_PIDVNODEPATHINFO: c_int = 9; pub const PROC_PIDPATHINFO_MAXSIZE: c_int = 4096; + +pub const PROC_PIDLISTFDS: c_int = 1; +pub const PROC_PIDLISTFD_SIZE: c_int = mem::size_of::() as c_int; +pub const PROX_FDTYPE_ATALK: c_int = 0; +pub const PROX_FDTYPE_VNODE: c_int = 1; +pub const PROX_FDTYPE_SOCKET: c_int = 2; +pub const PROX_FDTYPE_PSHM: c_int = 3; +pub const PROX_FDTYPE_PSEM: c_int = 4; +pub const PROX_FDTYPE_KQUEUE: c_int = 5; +pub const PROX_FDTYPE_PIPE: c_int = 6; +pub const PROX_FDTYPE_FSEVENTS: c_int = 7; +pub const PROX_FDTYPE_NETPOLICY: c_int = 9; +pub const PROX_FDTYPE_CHANNEL: c_int = 10; +pub const PROX_FDTYPE_NEXUS: c_int = 11; + pub const PROC_CSM_ALL: c_uint = 0x0001; pub const PROC_CSM_NOSMT: c_uint = 0x0002; pub const PROC_CSM_TECS: c_uint = 0x0004;