about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/bits/mman-shared.h
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-11-24 17:55:59 +0100
committerFlorian Weimer <fweimer@redhat.com>2017-11-24 17:55:59 +0100
commit7911dd47da73026acc930564c10a1ceeb68d8583 (patch)
tree7fe8f10770a8a70ba672694c2bd5ca6da62be785 /sysdeps/unix/sysv/linux/bits/mman-shared.h
parentc45d78aac47db08bc8ea7641c5330cccaecd3ddb (diff)
downloadglibc-7911dd47da73026acc930564c10a1ceeb68d8583.tar.gz
glibc-7911dd47da73026acc930564c10a1ceeb68d8583.tar.xz
glibc-7911dd47da73026acc930564c10a1ceeb68d8583.zip
Linux: Introduce <bits/mman-shared.h>
This header file enables sharing of portable declarations and
definitions across all Linux architectures, including hppa (which does
not use <bits/mman-linux.h>).

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/bits/mman-shared.h')
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-shared.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h
new file mode 100644
index 0000000000..5bbcbbc14a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h
@@ -0,0 +1,39 @@
+/* Memory-mapping-related declarations/definitions, not architecture-specific.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman-shared.h> directly; include <sys/mman.h> instead."
+#endif
+
+#ifdef __USE_GNU
+/* Flags for memfd_create.  */
+# ifndef MFD_CLOEXEC
+#  define MFD_CLOEXEC 1U
+#  define MFD_ALLOW_SEALING 2U
+#  define MFD_HUGETLB 4U
+# endif
+
+__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 */