From 7911dd47da73026acc930564c10a1ceeb68d8583 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 24 Nov 2017 17:55:59 +0100 Subject: Linux: Introduce This header file enables sharing of portable declarations and definitions across all Linux architectures, including hppa (which does not use ). Reviewed-by: Carlos O'Donell --- sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/bits/mman-linux.h | 16 +----------- sysdeps/unix/sysv/linux/bits/mman-shared.h | 39 ++++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/hppa/bits/mman.h | 2 ++ 4 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/bits/mman-shared.h (limited to 'sysdeps') 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 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 + . */ + +#ifndef _SYS_MMAN_H +# error "Never use directly; include 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 -- cgit v1.2.3