diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-11-23 10:00:40 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-11-23 10:00:40 +0100 |
commit | 59d2cbb1fe4b8601d5cbd359c3806973eab6c62d (patch) | |
tree | b0dc954009b8a65f9091d88e471db3476da7b2ad /sysdeps/unix/sysv/linux/bits/mman-linux.h | |
parent | 0a9d1d62b36cc46bf893ce404013a7b2d0bcfce8 (diff) | |
download | glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.tar glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.tar.gz glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.tar.bz2 glibc-59d2cbb1fe4b8601d5cbd359c3806973eab6c62d.zip |
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/mman-linux.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/mman-linux.h | 16 |
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 78c07c890a..1ffa5490af 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 */ |