diff options
author | David Carlier <devnexen@gmail.com> | 2022-12-17 18:51:40 +0000 |
---|---|---|
committer | David Carlier <devnexen@gmail.com> | 2023-02-22 22:22:06 +0000 |
commit | 279d932447f67cf72a2c482a3d555a4684f776ec (patch) | |
tree | 6507474164691c724c9ba670b79993a260327136 | |
parent | f5363564c7ff96f8779043f7971145cb02345760 (diff) | |
download | rust-libc-279d932447f67cf72a2c482a3d555a4684f776ec.tar.gz |
membarrier flags constants addition
-rw-r--r-- | libc-test/build.rs | 11 | ||||
-rw-r--r-- | libc-test/semver/android.txt | 10 | ||||
-rw-r--r-- | libc-test/semver/linux.txt | 10 | ||||
-rw-r--r-- | src/unix/linux_like/android/mod.rs | 12 | ||||
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 12 |
5 files changed, 55 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs index 98c802e338..3534579425 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1631,6 +1631,7 @@ fn test_android(target: &str) { "linux/rtnetlink.h", "linux/if_tun.h", "linux/magic.h", + "linux/membarrier.h", "linux/memfd.h", "linux/mempolicy.h", "linux/module.h", @@ -1782,6 +1783,9 @@ fn test_android(target: &str) { // GRND_INSECURE was added in platform-tools-30.0.0 "GRND_INSECURE" => true, + // kernel 5.10 minimum required + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ" | "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ" => true, + _ => false, } }); @@ -3244,6 +3248,7 @@ fn test_linux(target: &str) { "linux/keyctl.h", "linux/magic.h", "linux/memfd.h", + "linux/membarrier.h", "linux/mempolicy.h", "linux/mman.h", "linux/module.h", @@ -3479,6 +3484,12 @@ fn test_linux(target: &str) { { return true; } + // FIXME: Requires >= 5.10 kernel headers + if name.starts_with("MEMBARRIER_CMD_REGISTER") + || name.starts_with("MEMBARRIER_CMD_PRIVATE") + { + return true; + } } match name { // These constants are not available if gnu headers have been included diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 3bee01ca18..d0017b846c 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -1164,6 +1164,16 @@ MCAST_MSFILTER MCAST_UNBLOCK_SOURCE MCL_CURRENT MCL_FUTURE +MEMBARRIER_CMD_GLOBAL +MEMBARRIER_CMD_GLOBAL_EXPEDITED +MEMBARRIER_CMD_QUERY +MEMBARRIER_CMD_PRIVATE_EXPEDITED +MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ +MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ MFD_ALLOW_SEALING MFD_CLOEXEC MFD_HUGETLB diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index daccc3c38d..e7eefafd18 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1300,6 +1300,16 @@ MCAST_MSFILTER MCAST_UNBLOCK_SOURCE MCL_CURRENT MCL_FUTURE +MEMBARRIER_CMD_GLOBAL +MEMBARRIER_CMD_GLOBAL_EXPEDITED +MEMBARRIER_CMD_QUERY +MEMBARRIER_CMD_PRIVATE_EXPEDITED +MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ +MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE +MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ MFD_ALLOW_SEALING MFD_CLOEXEC MFD_HUGETLB diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 2bc748ac4c..ca2938ac22 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -2732,6 +2732,18 @@ pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000; pub const CLONE_PIDFD: ::c_int = 0x1000; +// linux/membarrier.h +pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; + // linux/mempolicy.h pub const MPOL_DEFAULT: ::c_int = 0; pub const MPOL_PREFERRED: ::c_int = 1; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index be12190b45..ce4889d653 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1849,6 +1849,18 @@ pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13; pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14; pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15; +// linux/membarrier.h +pub const MEMBARRIER_CMD_QUERY: ::c_int = 0; +pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0; +pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1; +pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6; +pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7; +pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8; + align_const! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { size: [0; __SIZEOF_PTHREAD_MUTEX_T], |