diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
| -rw-r--r-- | libc/sysdeps/linux/common/bits/confname.h | 91 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/environments.h | 28 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/in.h | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/mman-common.h | 109 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/mman.h | 98 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/futimens.c | 7 | 
6 files changed, 220 insertions, 115 deletions
diff --git a/libc/sysdeps/linux/common/bits/confname.h b/libc/sysdeps/linux/common/bits/confname.h index ab7fdee9d..ec4b72a22 100644 --- a/libc/sysdeps/linux/common/bits/confname.h +++ b/libc/sysdeps/linux/common/bits/confname.h @@ -1,5 +1,5 @@  /* `sysconf', `pathconf', and `confstr' NAME values.  Generic version. -   Copyright (C) 1993,1995-1998,2000,2001,2003,2004 +   Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007,2009     Free Software Foundation, Inc.     This file is part of the GNU C Library. @@ -498,13 +498,39 @@ enum      _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,  #define _SC_IPV6			_SC_IPV6 -    _SC_RAW_SOCKETS +    _SC_RAW_SOCKETS,  #define _SC_RAW_SOCKETS			_SC_RAW_SOCKETS + +    _SC_V7_ILP32_OFF32, +#define _SC_V7_ILP32_OFF32		_SC_V7_ILP32_OFF32 +    _SC_V7_ILP32_OFFBIG, +#define _SC_V7_ILP32_OFFBIG		_SC_V7_ILP32_OFFBIG +    _SC_V7_LP64_OFF64, +#define _SC_V7_LP64_OFF64		_SC_V7_LP64_OFF64 +    _SC_V7_LPBIG_OFFBIG, +#define _SC_V7_LPBIG_OFFBIG		_SC_V7_LPBIG_OFFBIG + +    _SC_SS_REPL_MAX, +#define _SC_SS_REPL_MAX			_SC_SS_REPL_MAX + +    _SC_TRACE_EVENT_NAME_MAX, +#define _SC_TRACE_EVENT_NAME_MAX	_SC_TRACE_EVENT_NAME_MAX +    _SC_TRACE_NAME_MAX, +#define _SC_TRACE_NAME_MAX		_SC_TRACE_NAME_MAX +    _SC_TRACE_SYS_MAX, +#define _SC_TRACE_SYS_MAX		_SC_TRACE_SYS_MAX +    _SC_TRACE_USER_EVENT_MAX, +#define _SC_TRACE_USER_EVENT_MAX	_SC_TRACE_USER_EVENT_MAX + +    _SC_XOPEN_STREAMS, +#define _SC_XOPEN_STREAMS		_SC_XOPEN_STREAMS + +    _SC_THREAD_ROBUST_PRIO_INHERIT, +#define _SC_THREAD_ROBUST_PRIO_INHERIT	_SC_THREAD_ROBUST_PRIO_INHERIT +    _SC_THREAD_ROBUST_PRIO_PROTECT, +#define _SC_THREAD_ROBUST_PRIO_PROTECT	_SC_THREAD_ROBUST_PRIO_PROTECT    }; -#if (defined __USE_POSIX2 || defined __USE_UNIX98 \ -     || defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \ -     || defined __USE_LARGEFILE)  /* Values for the NAME argument to `confstr'.  */  enum    { @@ -512,7 +538,21 @@ enum  #define _CS_PATH		_CS_PATH      _CS_V6_WIDTH_RESTRICTED_ENVS, -# define _CS_V6_WIDTH_RESTRICTED_ENVS	_CS_V6_WIDTH_RESTRICTED_ENVS +#define _CS_V6_WIDTH_RESTRICTED_ENVS	_CS_V6_WIDTH_RESTRICTED_ENVS +#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	_CS_V6_WIDTH_RESTRICTED_ENVS + +    _CS_GNU_LIBC_VERSION, +#define _CS_GNU_LIBC_VERSION	_CS_GNU_LIBC_VERSION +    _CS_GNU_LIBPTHREAD_VERSION, +#define _CS_GNU_LIBPTHREAD_VERSION	_CS_GNU_LIBPTHREAD_VERSION + +    _CS_V5_WIDTH_RESTRICTED_ENVS, +#define _CS_V5_WIDTH_RESTRICTED_ENVS	_CS_V5_WIDTH_RESTRICTED_ENVS +#define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS	_CS_V5_WIDTH_RESTRICTED_ENVS + +    _CS_V7_WIDTH_RESTRICTED_ENVS, +#define _CS_V7_WIDTH_RESTRICTED_ENVS	_CS_V7_WIDTH_RESTRICTED_ENVS +#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS	_CS_V7_WIDTH_RESTRICTED_ENVS  # if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \       || defined __USE_LARGEFILE) @@ -568,6 +608,7 @@ enum      _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,  #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS  # endif +  # ifdef __USE_XOPEN2K      _CS_POSIX_V6_ILP32_OFF32_CFLAGS,  #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS @@ -599,8 +640,42 @@ enum  #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS      _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,  #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS -    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS +    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,  #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS  # endif + +# ifdef __USE_XOPEN2K8 +    _CS_POSIX_V7_ILP32_OFF32_CFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS +    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS +    _CS_POSIX_V7_ILP32_OFF32_LIBS, +#define _CS_POSIX_V7_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS +    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, +#define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS +    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS +    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS +    _CS_POSIX_V7_ILP32_OFFBIG_LIBS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS +    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, +#define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS +    _CS_POSIX_V7_LP64_OFF64_CFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS +    _CS_POSIX_V7_LP64_OFF64_LDFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS +    _CS_POSIX_V7_LP64_OFF64_LIBS, +#define _CS_POSIX_V7_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS +    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, +#define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS _CS_POSIX_V7_LP64_OFF64_LINTFLAGS +    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS +    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS +    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, +#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS +    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +#define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +# endif    }; -#endif diff --git a/libc/sysdeps/linux/common/bits/environments.h b/libc/sysdeps/linux/common/bits/environments.h index 4617dc45f..548ea7f84 100644 --- a/libc/sysdeps/linux/common/bits/environments.h +++ b/libc/sysdeps/linux/common/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2001, 2004, 2009 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 @@ -27,30 +27,36 @@     `-1' means it is never supported.  Undefined means it cannot be     statically decided. -   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type -   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type +   _POSIX_V7_ILP32_OFF32   32bit int, long, pointers, and off_t type +   _POSIX_V7_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type -   _POSIX_V6_LP64_OFF32	   64bit long and pointers and 32bit off_t type -   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type +   _POSIX_V7_LP64_OFF32	   64bit long and pointers and 32bit off_t type +   _POSIX_V7_LPBIG_OFFBIG  64bit long and pointers and large off_t type -   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and -   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard -   and are available only for compatibility. +   The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, +   _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, +   _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were +   used in previous versions of the Unix standard and are available +   only for compatibility.  */  #if __WORDSIZE == 64  /* We can never provide environments with 32-bit wide pointers.  */ +# define _POSIX_V7_ILP32_OFF32	-1 +# define _POSIX_V7_ILP32_OFFBIG	-1  # define _POSIX_V6_ILP32_OFF32	-1  # define _POSIX_V6_ILP32_OFFBIG	-1  # define _XBS5_ILP32_OFF32	-1  # define _XBS5_ILP32_OFFBIG	-1  /* We also have no use (for now) for an environment with bigger pointers     and offsets.  */ +# define _POSIX_V7_LPBIG_OFFBIG	-1  # define _POSIX_V6_LPBIG_OFFBIG	-1  # define _XBS5_LPBIG_OFFBIG	-1  /* By default we have 64-bit wide `long int', pointers and `off_t'.  */ +# define _POSIX_V7_LP64_OFF64	1  # define _POSIX_V6_LP64_OFF64	1  # define _XBS5_LP64_OFF64	1 @@ -58,15 +64,19 @@  /* By default we have 32-bit wide `int', `long int', pointers and `off_t'     and all platforms support LFS.  */ +# define _POSIX_V7_ILP32_OFF32	1 +# define _POSIX_V7_ILP32_OFFBIG	1  # define _POSIX_V6_ILP32_OFF32	1  # define _POSIX_V6_ILP32_OFFBIG	1  # define _XBS5_ILP32_OFF32	1  # define _XBS5_ILP32_OFFBIG	1  /* We optionally provide an environment with the above size but an 64-bit -   side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */ +   side `off_t'.  Therefore we don't define _POSIX_V7_ILP32_OFFBIG.  */  /* We can never provide environments with 64-bit wide pointers.  */ +# define _POSIX_V7_LP64_OFF64	-1 +# define _POSIX_V7_LPBIG_OFFBIG	-1  # define _POSIX_V6_LP64_OFF64	-1  # define _POSIX_V6_LPBIG_OFFBIG	-1  # define _XBS5_LP64_OFF64	-1 diff --git a/libc/sysdeps/linux/common/bits/in.h b/libc/sysdeps/linux/common/bits/in.h index 6880a2e63..1f2b81793 100644 --- a/libc/sysdeps/linux/common/bits/in.h +++ b/libc/sysdeps/linux/common/bits/in.h @@ -101,6 +101,7 @@ struct in_pktinfo      struct in_addr ipi_addr;		/* Header destination address  */    }; +#ifdef __UCLIBC_HAS_IPV6__  /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.     The first word in the comment at the right is the data type used;     "bool" means a boolean value stored in an `int'.  */ @@ -168,3 +169,4 @@ struct in_pktinfo  #define IPV6_RTHDR_STRICT	1	/* Hop must be a neighbour.  */  #define IPV6_RTHDR_TYPE_0	0	/* IPv6 Routing header type 0.  */ +#endif /* __UCLIBC_HAS_IPV6__ */ diff --git a/libc/sysdeps/linux/common/bits/mman-common.h b/libc/sysdeps/linux/common/bits/mman-common.h new file mode 100644 index 000000000..f00cb1ab3 --- /dev/null +++ b/libc/sysdeps/linux/common/bits/mman-common.h @@ -0,0 +1,109 @@ +/* Definitions for POSIX memory map interface.  Linux/generic version. +   Copyright (C) 1997,2000,2003,2005,2006,2009 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, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _SYS_MMAN_H +# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." +#endif + +/* The following definitions basically come from the kernel headers. +   But the kernel header is not namespace clean.  */ + + +/* Protections are chosen from these bits, OR'd together.  The +   implementation does not necessarily support PROT_EXEC or PROT_WRITE +   without PROT_READ.  The only guarantees are that no writing will be +   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_READ	0x1		/* Page can be read.  */ +#define PROT_WRITE	0x2		/* Page can be written.  */ +#define PROT_EXEC	0x4		/* Page can be executed.  */ +#define PROT_NONE	0x0		/* Page can not be accessed.  */ +#define PROT_GROWSDOWN	0x01000000	/* Extend change to start of +					   growsdown vma (mprotect only).  */ +#define PROT_GROWSUP	0x02000000	/* Extend change to start of +					   growsup vma (mprotect only).  */ + +/* Sharing types (must choose one and only one of these).  */ +#define MAP_SHARED	0x01		/* Share changes.  */ +#define MAP_PRIVATE	0x02		/* Changes are private.  */ +#ifdef __USE_MISC +# define MAP_TYPE	0x0f		/* Mask for type of mapping.  */ +#endif + +/* Other flags.  */ +#define MAP_FIXED	0x10		/* Interpret addr exactly.  */ +#ifdef __USE_MISC +# define MAP_FILE	0 +# define MAP_ANONYMOUS	0x20		/* Don't use a file.  */ +# define MAP_ANON	MAP_ANONYMOUS +#endif + +/* These are Linux-specific.  */ +#ifdef __USE_MISC +# define MAP_GROWSDOWN	0x00100		/* Stack-like segment.  */ +# define MAP_DENYWRITE	0x00800		/* ETXTBSY */ +# define MAP_EXECUTABLE	0x01000		/* Mark it as an executable.  */ +# define MAP_LOCKED	0x02000		/* Lock the mapping.  */ +# define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */ +# define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */ +# define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */ +# define MAP_STACK	0x20000		/* Allocation is for a stack.  */ +# define MAP_UNINITIALIZE 0x4000000     /* For anonymous mmap, memory could +					   be uninitialized. */ +#endif + +/* Flags to `msync'.  */ +#define MS_ASYNC	1		/* Sync memory asynchronously.  */ +#define MS_SYNC		4		/* Synchronous memory sync.  */ +#define MS_INVALIDATE	2		/* Invalidate the caches.  */ + +/* Flags for `mlockall'.  */ +#define MCL_CURRENT	1		/* Lock all currently mapped pages.  */ +#define MCL_FUTURE	2		/* Lock all additions to address +					   space.  */ + +/* Flags for `mremap'.  */ +#ifdef __USE_GNU +# define MREMAP_MAYMOVE	1 +# define MREMAP_FIXED	2 +#endif + +/* Advice to `madvise'.  */ +#ifdef __USE_BSD +# define MADV_NORMAL	  0	/* No further special treatment.  */ +# define MADV_RANDOM	  1	/* Expect random page references.  */ +# define MADV_SEQUENTIAL  2	/* Expect sequential page references.  */ +# define MADV_WILLNEED	  3	/* Will need these pages.  */ +# define MADV_DONTNEED	  4	/* Don't need these pages.  */ +# define MADV_REMOVE	  9	/* Remove these pages and resources.  */ +# define MADV_DONTFORK	  10	/* Do not inherit across fork.  */ +# define MADV_DOFORK	  11	/* Do inherit across fork.  */ +# define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */ +# define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */ +# define MADV_HWPOISON	  100	/* Poison a page for testing.  */ +#endif + +/* The POSIX people had to invent similar names for the same things.  */ +#ifdef __USE_XOPEN2K +# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */ +# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */ +# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */ +# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */ +# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */ +#endif diff --git a/libc/sysdeps/linux/common/bits/mman.h b/libc/sysdeps/linux/common/bits/mman.h index 0c1590270..11b8e2a8b 100644 --- a/libc/sysdeps/linux/common/bits/mman.h +++ b/libc/sysdeps/linux/common/bits/mman.h @@ -1,97 +1 @@ -/* Definitions for BSD-style memory management. -   Copyright (C) 1994-1998,2000,01,02,05 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, write to the Free -   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -   02111-1307 USA.  */ - -/* These are the bits used by 4.4 BSD and its derivatives.  On systems -   (such as GNU) where these facilities are not system services but can be -   emulated in the C library, these are the definitions we emulate.  */ - -#ifndef _SYS_MMAN_H -# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." -#endif - -/* Protections are chosen from these bits, OR'd together.  The -   implementation does not necessarily support PROT_EXEC or PROT_WRITE -   without PROT_READ.  The only guarantees are that no writing will be -   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define	PROT_NONE	 0x00	/* No access.  */ -#define	PROT_READ	 0x04	/* Pages can be read.  */ -#define	PROT_WRITE	 0x02	/* Pages can be written.  */ -#define	PROT_EXEC	 0x01	/* Pages can be executed.  */ - -/* Flags contain mapping type, sharing type and options.  */ - -/* Mapping type (must choose one and only one of these).  */ -#ifdef __USE_BSD -# define MAP_FILE	 0x0001	/* Mapped from a file or device.  */ -# define MAP_ANON	 0x0002	/* Allocated from anonymous virtual memory.  */ -# define MAP_TYPE	 0x000f	/* Mask for type field.  */ -# ifdef __USE_MISC -#  define MAP_ANONYMOUS  MAP_ANON /* Linux name. */ -# endif -#endif - -/* Sharing types (must choose one and only one of these).  */ -#ifdef __USE_BSD -# define MAP_COPY	 0x0020	/* Virtual copy of region at mapping time.  */ -#endif -#define	MAP_SHARED	 0x0010	/* Share changes.  */ -#define	MAP_PRIVATE	 0x0000	/* Changes private; copy pages on write.  */ - -/* Other flags.  */ -#define	MAP_FIXED	 0x0100	/* Map address must be exactly as requested. */ -#ifdef __USE_BSD -# define MAP_NOEXTEND	 0x0200	/* For MAP_FILE, don't change file size.  */ -# define MAP_HASSEMPHORE 0x0400	/* Region may contain semaphores.  */ -# define MAP_INHERIT	 0x0800	/* Region is retained after exec.  */ -#endif - -/* Advice to `madvise'.  */ -#ifdef __USE_BSD -# define MADV_NORMAL	 0	/* No further special treatment.  */ -# define MADV_RANDOM	 1	/* Expect random page references.  */ -# define MADV_SEQUENTIAL 2	/* Expect sequential page references.  */ -# define MADV_WILLNEED	 3	/* Will need these pages.  */ -# define MADV_DONTNEED	 4	/* Don't need these pages.  */ -#endif - -/* The POSIX people had to invent similar names for the same things.  */ -#ifdef __USE_XOPEN2K -# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */ -# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */ -# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */ -# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */ -# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */ -#endif - -/* Flags to `msync'.  */ -#define MS_ASYNC	1		/* Sync memory asynchronously.  */ -#define MS_SYNC		0		/* Synchronous memory sync.  */ -#define MS_INVALIDATE	2		/* Invalidate the caches.  */ - -/* Flags for `mremap'.  */ -#ifdef __USE_GNU -# define MREMAP_MAYMOVE	1		/* Mapping address may change.  */ -# define MREMAP_FIXED	2		/* Fifth argument sets new address.  */ -#endif - -/* Flags for `mlockall' (can be OR'd together).  */ -#define MCL_CURRENT	1		/* Lock all currently mapped pages.  */ -#define MCL_FUTURE	2		/* Lock all additions to address -					   space.  */ +#include <bits/mman-common.h> diff --git a/libc/sysdeps/linux/common/futimens.c b/libc/sysdeps/linux/common/futimens.c index 090dfa69c..32b21395b 100644 --- a/libc/sysdeps/linux/common/futimens.c +++ b/libc/sysdeps/linux/common/futimens.c @@ -8,9 +8,14 @@   */  #include <sys/syscall.h> -#define __need_timespec  #include <time.h>  #ifdef __NR_utimensat +/* To avoid superfluous warnings about passing NULL to the non-null annotated + * 2nd param "__path" below, we bypass inclusion of sys/stat.h and use + * a non annotated, local decl. + * Note that due to not including the header, we have to alias the call + * manually. + */  extern int utimensat (int __fd, __const char *__path,  	__const struct timespec __times[2],  	int __flags) __THROW;  | 
