diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-11-24 17:55:59 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-11-24 17:55:59 +0100 |
commit | 7911dd47da73026acc930564c10a1ceeb68d8583 (patch) | |
tree | 7fe8f10770a8a70ba672694c2bd5ca6da62be785 | |
parent | c45d78aac47db08bc8ea7641c5330cccaecd3ddb (diff) | |
download | glibc-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>
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/mman-linux.h | 16 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/mman-shared.h | 39 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/hppa/bits/mman.h | 2 |
5 files changed, 56 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index 6791c51308..9acf3ae58d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2017-11-24 Florian Weimer <fweimer@redhat.com> + + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add + bits/mman-shared.h. + * sysdeps/unix/sysv/linux/bits/mman-linux.h: Include + <bits/mman-shared.h>. + (MFD_CLOEXEC, MFD_ALLOW_SEALING, MFD_HUGETLB, memfd_create): Move + to ... + * sysdeps/unix/sysv/linux/bits/mman-shared.h: ... this new file. + Add #ifndef guard for the MFD_* constants based on MFD_CLOEXEC. + * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include + <bits/mman-shared.h>. + 2017-11-24 Adhemerval Zanella <adhemerval.zanella@linaro.org> [BZ #22457] diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index c484d2688a..58ce07b526 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -39,7 +39,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \ bits/signalfd.h bits/timerfd.h bits/epoll.h \ bits/socket_type.h bits/syscall.h bits/sysctl.h \ - bits/mman-linux.h \ + bits/mman-linux.h bits/mman-shared.h \ bits/siginfo-arch.h bits/siginfo-consts-arch.h tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h index 1ffa5490af..ba40fd68f4 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-linux.h +++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h @@ -112,18 +112,4 @@ 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 */ +#include <bits/mman-shared.h> 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 */ diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h index 2aaca01573..68a7afc14e 100644 --- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h +++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h @@ -110,3 +110,5 @@ # define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ # define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ #endif + +#include <bits/mman-shared.h> |