Skip to content

Commit b8e2476

Browse files
committed
Auto merge of rust-lang#3039 - devnexen:membarrier_flags_linux, r=JohnTitor
membarrier flags constants addition
2 parents 6275bac + 279d932 commit b8e2476

File tree

5 files changed

+55
-0
lines changed

5 files changed

+55
-0
lines changed

libc-test/build.rs

+11
Original file line numberDiff line numberDiff line change
@@ -1632,6 +1632,7 @@ fn test_android(target: &str) {
16321632
"linux/rtnetlink.h",
16331633
"linux/if_tun.h",
16341634
"linux/magic.h",
1635+
"linux/membarrier.h",
16351636
"linux/memfd.h",
16361637
"linux/mempolicy.h",
16371638
"linux/module.h",
@@ -1783,6 +1784,9 @@ fn test_android(target: &str) {
17831784
// GRND_INSECURE was added in platform-tools-30.0.0
17841785
"GRND_INSECURE" => true,
17851786

1787+
// kernel 5.10 minimum required
1788+
"MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ" | "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ" => true,
1789+
17861790
_ => false,
17871791
}
17881792
});
@@ -3249,6 +3253,7 @@ fn test_linux(target: &str) {
32493253
"linux/keyctl.h",
32503254
"linux/magic.h",
32513255
"linux/memfd.h",
3256+
"linux/membarrier.h",
32523257
"linux/mempolicy.h",
32533258
"linux/mman.h",
32543259
"linux/module.h",
@@ -3484,6 +3489,12 @@ fn test_linux(target: &str) {
34843489
{
34853490
return true;
34863491
}
3492+
// FIXME: Requires >= 5.10 kernel headers
3493+
if name.starts_with("MEMBARRIER_CMD_REGISTER")
3494+
|| name.starts_with("MEMBARRIER_CMD_PRIVATE")
3495+
{
3496+
return true;
3497+
}
34873498
}
34883499
match name {
34893500
// These constants are not available if gnu headers have been included

libc-test/semver/android.txt

+10
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,16 @@ MCAST_MSFILTER
11641164
MCAST_UNBLOCK_SOURCE
11651165
MCL_CURRENT
11661166
MCL_FUTURE
1167+
MEMBARRIER_CMD_GLOBAL
1168+
MEMBARRIER_CMD_GLOBAL_EXPEDITED
1169+
MEMBARRIER_CMD_QUERY
1170+
MEMBARRIER_CMD_PRIVATE_EXPEDITED
1171+
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
1172+
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ
1173+
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED
1174+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
1175+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
1176+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ
11671177
MFD_ALLOW_SEALING
11681178
MFD_CLOEXEC
11691179
MFD_HUGETLB

libc-test/semver/linux.txt

+10
Original file line numberDiff line numberDiff line change
@@ -1300,6 +1300,16 @@ MCAST_MSFILTER
13001300
MCAST_UNBLOCK_SOURCE
13011301
MCL_CURRENT
13021302
MCL_FUTURE
1303+
MEMBARRIER_CMD_GLOBAL
1304+
MEMBARRIER_CMD_GLOBAL_EXPEDITED
1305+
MEMBARRIER_CMD_QUERY
1306+
MEMBARRIER_CMD_PRIVATE_EXPEDITED
1307+
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
1308+
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ
1309+
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED
1310+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
1311+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
1312+
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ
13031313
MFD_ALLOW_SEALING
13041314
MFD_CLOEXEC
13051315
MFD_HUGETLB

src/unix/linux_like/android/mod.rs

+12
Original file line numberDiff line numberDiff line change
@@ -2732,6 +2732,18 @@ pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000;
27322732

27332733
pub const CLONE_PIDFD: ::c_int = 0x1000;
27342734

2735+
// linux/membarrier.h
2736+
pub const MEMBARRIER_CMD_QUERY: ::c_int = 0;
2737+
pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0;
2738+
pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1;
2739+
pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2;
2740+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3;
2741+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4;
2742+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5;
2743+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6;
2744+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7;
2745+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8;
2746+
27352747
// linux/mempolicy.h
27362748
pub const MPOL_DEFAULT: ::c_int = 0;
27372749
pub const MPOL_PREFERRED: ::c_int = 1;

src/unix/linux_like/linux/mod.rs

+12
Original file line numberDiff line numberDiff line change
@@ -1849,6 +1849,18 @@ pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13;
18491849
pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14;
18501850
pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15;
18511851

1852+
// linux/membarrier.h
1853+
pub const MEMBARRIER_CMD_QUERY: ::c_int = 0;
1854+
pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0;
1855+
pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1;
1856+
pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2;
1857+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3;
1858+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4;
1859+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5;
1860+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6;
1861+
pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7;
1862+
pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8;
1863+
18521864
align_const! {
18531865
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
18541866
size: [0; __SIZEOF_PTHREAD_MUTEX_T],

0 commit comments

Comments
 (0)