From c0935ac343ebc9bed86be30bea7e7a2fb1adf189 Mon Sep 17 00:00:00 2001
From: Bryant Mairs <bryantmairs@google.com>
Date: Sun, 5 Nov 2017 13:13:35 -0800
Subject: [PATCH] Add MFD_ constants for memfd_create

---
 libc-test/build.rs                     | 4 ++++
 src/unix/notbsd/android/mod.rs         | 3 +++
 src/unix/notbsd/linux/mips/mod.rs      | 3 +++
 src/unix/notbsd/linux/musl/b32/mips.rs | 3 +++
 src/unix/notbsd/linux/other/mod.rs     | 3 +++
 src/unix/notbsd/linux/s390x.rs         | 3 +++
 6 files changed, 19 insertions(+)

diff --git a/libc-test/build.rs b/libc-test/build.rs
index 5212697d..3bf0eb6f 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -248,6 +248,10 @@ fn main() {
         if !uclibc && !musl && !emscripten {
             cfg.header("linux/dccp.h");
         }
+
+        if !musl || mips {
+            cfg.header("linux/memfd.h");
+        }
     }
 
     if linux {
diff --git a/src/unix/notbsd/android/mod.rs b/src/unix/notbsd/android/mod.rs
index 7ade5de3..a47a8629 100644
--- a/src/unix/notbsd/android/mod.rs
+++ b/src/unix/notbsd/android/mod.rs
@@ -885,6 +885,9 @@ pub const IUTF8: ::tcflag_t = 0x00004000;
 pub const CMSPAR: ::tcflag_t = 0o10000000000;
 pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;
 
+pub const MFD_CLOEXEC: ::c_uint = 0x0001;
+pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
+
 f! {
     pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () {
         for slot in cpuset.__bits.iter_mut() {
diff --git a/src/unix/notbsd/linux/mips/mod.rs b/src/unix/notbsd/linux/mips/mod.rs
index a94e2bcd..197d48eb 100644
--- a/src/unix/notbsd/linux/mips/mod.rs
+++ b/src/unix/notbsd/linux/mips/mod.rs
@@ -667,6 +667,9 @@ pub const AF_MAX: ::c_int = 42;
 #[doc(hidden)]
 pub const PF_MAX: ::c_int = AF_MAX;
 
+pub const MFD_CLOEXEC: ::c_uint = 0x0001;
+pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
+
 #[link(name = "util")]
 extern {
     pub fn sysctl(name: *mut ::c_int,
diff --git a/src/unix/notbsd/linux/musl/b32/mips.rs b/src/unix/notbsd/linux/musl/b32/mips.rs
index 89231a0c..7c985375 100644
--- a/src/unix/notbsd/linux/musl/b32/mips.rs
+++ b/src/unix/notbsd/linux/musl/b32/mips.rs
@@ -771,3 +771,6 @@ pub const SYS_pwritev2: ::c_long = 4000 + 362;
 pub const AF_MAX: ::c_int = 42;
 #[doc(hidden)]
 pub const PF_MAX: ::c_int = AF_MAX;
+
+pub const MFD_CLOEXEC: ::c_uint = 0x0001;
+pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
diff --git a/src/unix/notbsd/linux/other/mod.rs b/src/unix/notbsd/linux/other/mod.rs
index ad54ecf5..cba0f56f 100644
--- a/src/unix/notbsd/linux/other/mod.rs
+++ b/src/unix/notbsd/linux/other/mod.rs
@@ -548,6 +548,9 @@ pub const AF_MAX: ::c_int = 42;
 #[doc(hidden)]
 pub const PF_MAX: ::c_int = AF_MAX;
 
+pub const MFD_CLOEXEC: ::c_uint = 0x0001;
+pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
+
 cfg_if! {
     if #[cfg(any(target_arch = "arm", target_arch = "x86",
                  target_arch = "x86_64"))] {
diff --git a/src/unix/notbsd/linux/s390x.rs b/src/unix/notbsd/linux/s390x.rs
index aef88259..8927c9d7 100644
--- a/src/unix/notbsd/linux/s390x.rs
+++ b/src/unix/notbsd/linux/s390x.rs
@@ -1243,6 +1243,9 @@ pub const SYS_setfsuid: ::c_long = 215;
 pub const SYS_setfsgid: ::c_long = 216;
 pub const SYS_newfstatat: ::c_long = 293;
 
+pub const MFD_CLOEXEC: ::c_uint = 0x0001;
+pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
+
 #[link(name = "util")]
 extern {
     pub fn sysctl(name: *mut ::c_int,
-- 
GitLab