aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/bits
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-11-23 10:00:40 +0100
committerFlorian Weimer <fweimer@redhat.com>2017-11-23 10:00:40 +0100
commit59d2cbb1fe4b8601d5cbd359c3806973eab6c62d (patch)
treeb0dc954009b8a65f9091d88e471db3476da7b2ad /sysdeps/unix/sysv/linux/bits
parent0a9d1d62b36cc46bf893ce404013a7b2d0bcfce8 (diff)
downloadglibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.zip
glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.tar.gz
glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.tar.bz2
Linux: Add memfd_create system call wrapper
The system call is somewhat obscure because it is closely related to file descriptor sealing. However, it is also the recommended way to create alias mappings, which is why it has more general use. No emulation is provided. Except for the name of the /proc/self/fd links, it would be possible to implement an approximation using O_TMPFILE and tmpfs, but this does not appear to be worth the added complexity. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/bits')
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-linux.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h
index 78c07c8..1ffa549 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h
@@ -111,3 +111,19 @@
# define MCL_ONFAULT 4 /* Lock all pages that are
faulted in. */
#endif
+
+#ifdef __USE_GNU
+/* Flags for memfd_create. */
+# define MFD_CLOEXEC 1U
+# define MFD_ALLOW_SEALING 2U
+# define MFD_HUGETLB 4U
+
+__BEGIN_DECLS
+
+/* Create a new memory file descriptor. NAME is a name for debugging.
+ FLAGS is a combination of the MFD_* constants. */
+int memfd_create (const char *__name, unsigned int __flags) __THROW;
+
+__END_DECLS
+
+#endif /* __USE_GNU */