From 88a8c9e79a461d6d00c48e3e9f9d0ecb8ed67647 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Tue, 3 Nov 2026 11:33:55 +0100 Subject: [PATCH] Add `kcmp_type` enum (from `linux/kcmp.h` header) --- libc-test/build/main.rs | 2 ++ libc-test/semver/android.txt | 9 +++++++++ libc-test/semver/linux.txt | 9 +++++++++ src/unix/linux_like/android/mod.rs | 11 +++++++++++ src/unix/linux_like/linux/mod.rs | 11 +++++++++++ 5 files changed, 42 insertions(+) diff --git a/libc-test/build/main.rs b/libc-test/build/main.rs index 718854156ab7..8825546e1daf 100755 --- a/libc-test/build/main.rs +++ b/libc-test/build/main.rs @@ -2102,6 +2102,7 @@ fn test_android(t: &Target) { "linux/if_link.h", "linux/rtnetlink.h", "linux/if_tun.h", + "linux/kcmp.h", "linux/kexec.h", "linux/magic.h", "linux/membarrier.h", @@ -3995,6 +3996,7 @@ fn test_linux(t: &Target) { "libgen.h", "limits.h", "link.h", + (!l4re, "linux/kcmp.h"), (!l4re, "linux/sysctl.h"), "locale.h", "malloc.h", diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 3269619dc88a..de1e9761eced 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1086,6 +1086,15 @@ IXANY IXOFF IXON JFFS2_SUPER_MAGIC +KCMP_EPOLL_TFD +KCMP_FILE +KCMP_FILES +KCMP_FS +KCMP_IO +KCMP_SIGHAND +KCMP_SYSVSEM +KCMP_TYPES +KCMP_VM KEXEC_ARCH_MASK KEXEC_FILE_NO_INITRAMFS KEXEC_FILE_ON_CRASH diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 995670e0b04c..32f13c674fa1 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1655,6 +1655,15 @@ J1939_PGN_ADDRESS_COMMANDED J1939_PGN_MAX J1939_PGN_PDU1_MAX J1939_PGN_REQUEST +KCMP_EPOLL_TFD +KCMP_FILE +KCMP_FILES +KCMP_FS +KCMP_IO +KCMP_SIGHAND +KCMP_SYSVSEM +KCMP_TYPES +KCMP_VM KERNEL_VERSION KEXEC_ARCH_MASK KEXEC_FILE_NO_INITRAMFS diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index b8432d288c28..f87e381da5bb 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3433,6 +3433,17 @@ pub const _PATH_DEFPATH: *const c_char = cstr!( ); pub const _PATH_BSHELL: *const c_char = cstr!("/system/bin/sh"); +// linux/kcmp.h +pub const KCMP_FILE: c_int = 0; +pub const KCMP_VM: c_int = 1; +pub const KCMP_FILES: c_int = 2; +pub const KCMP_FS: c_int = 3; +pub const KCMP_SIGHAND: c_int = 4; +pub const KCMP_IO: c_int = 5; +pub const KCMP_SYSVSEM: c_int = 6; +pub const KCMP_EPOLL_TFD: c_int = 7; +pub const KCMP_TYPES: c_int = 8; + // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the // following are only available on newer Linux versions than the versions // currently used in CI in some configurations, so we define them here. diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index a64bcf9dfa63..f6ea5dc5158b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -3351,6 +3351,17 @@ pub const EPIOCGPARAMS: Ioctl = _IOR::(EPOLL_IOC_TYPE, 0x02); pub const SI_DETHREAD: c_int = -7; pub const TRAP_PERF: c_int = 6; +// linux/kcmp.h +pub const KCMP_FILE: c_int = 0; +pub const KCMP_VM: c_int = 1; +pub const KCMP_FILES: c_int = 2; +pub const KCMP_FS: c_int = 3; +pub const KCMP_SIGHAND: c_int = 4; +pub const KCMP_IO: c_int = 5; +pub const KCMP_SYSVSEM: c_int = 6; +pub const KCMP_EPOLL_TFD: c_int = 7; +pub const KCMP_TYPES: c_int = 8; + f! { pub unsafe fn SO_EE_OFFENDER(ee: *const crate::sock_extended_err) -> *mut crate::sockaddr { ee.offset(1) as *mut crate::sockaddr