mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-03 10:21:05 +00:00
498afc54df
This patch cleans up following the obsoletion of _BSD_SOURCE and _SVID_SOURCE by combining __USE_BSD and __USE_SVID into __USE_MISC. The only non-mechanical part of this patch is the changes to features.h; everything else is simple substitution of __USE_MISC for the old macros. Thus, this patch leaves obviously redundant conditionals such as "defined __USE_MISC || defined __USE_MISC", and does not update #endif comments where they referred to BSD or SVID in words instead of the literal macro name. This is intended to facilitate patch review by separating the less mechanical changes from these purely mechanical changes into a separate patch. (I do intend to integrate all the changes from <https://sourceware.org/ml/libc-alpha/2013-12/msg00226.html>, which I believe includes all the trailing comment updates, in subsequent patches.) Tested x86_64. * include/features.h (__USE_BSD): Remove macro definitions. (__USE_SVID): Likewise. (_BSD_SOURCE): Likewise. (_SVID_SOURCE): Likewise. [!defined _BSD_SOURCE && !defined _SVID_SOURCE]: Remove condition from definition of _DEFAULT_SOURCE. [_BSD_SOURCE || _SVID_SOURCE]: Change condition to [_DEFAULT_SOURCE]. * bits/fcntl.h [__USE_BSD]: Change condition to [__USE_MISC]. * bits/mman.h [__USE_BSD]: Likewise. * bits/termios.h [__USE_BSD]: Likewise. * bits/waitstatus.h [__USE_BSD]: Likewise. * ctype/ctype.h [__USE_SVID]: Likewise. * dirent/dirent.h [__USE_BSD]: Likewise. * grp/grp.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * inet/netinet/igmp.h [__USE_BSD]: Likewise. * io/fcntl.h [__USE_BSD]: Likewise. * io/ftw.h [__USE_BSD]: Likewise. * io/sys/stat.h [__USE_BSD]: Likewise. * libio/bits/stdio-ldbl.h [__USE_BSD]: Likewise. * libio/bits/stdio2.h [__USE_BSD]: Likewise. * libio/stdio.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * math/math.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * misc/bits/syslog-ldbl.h [__USE_BSD]: Likewise. * misc/bits/syslog.h [__USE_BSD]: Likewise. * misc/search.h [__USE_SVID]: Likewise. * misc/sys/mman.h [__USE_BSD]: Likewise. * misc/sys/syslog.h [__USE_BSD]: Likewise. * misc/sys/uio.h [__USE_BSD]: Likewise. * posix/bits/unistd.h [__USE_BSD]: Likewise. * posix/glob.h [__USE_BSD]: Likewise. * posix/regex.h [__USE_BSD]: Likewise. * posix/sys/types.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * posix/sys/utsname.h [__USE_SVID]: Likewise. * posix/sys/wait.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * posix/unistd.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * pwd/pwd.h [__USE_SVID]: Likewise. * resolv/netdb.h [__USE_BSD]: Likewise. * setjmp/setjmp.h [__USE_BSD]: Likewise. * signal/signal.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * socket/sys/socket.h [__USE_BSD]: Likewise. * stdlib/fmtmsg.h [__USE_SVID]: Likewise. * stdlib/stdlib.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * string/bits/string2.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * string/bits/string3.h [__USE_BSD]: Likewise. * string/endian.h [__USE_BSD]: Likewise. * string/string.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * string/strings.h [__USE_BSD]: Likewise. * sysdeps/generic/netinet/ip.h [__USE_BSD]: Likewise. * sysdeps/gnu/netinet/ip_icmp.h [__USE_BSD]: Likewise. * sysdeps/mach/hurd/bits/fcntl.h [__USE_BSD]: Likewise. * sysdeps/mach/hurd/bits/stat.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/sys_errlist.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_ether.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_fddi.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_tr.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/x86/bits/string.h [__USE_BSD]: Likewise. * sysvipc/sys/ipc.h [__USE_SVID]: Likewise. * termios/termios.h [__USE_BSD]: Likewise. * time/sys/time.h [__USE_BSD]: Likewise. * time/time.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_BSD]: Change condition to [__USE_MISC].
152 lines
5.4 KiB
C
152 lines
5.4 KiB
C
/* Definitions for BSD-style memory management.
|
|
Copyright (C) 1994-2014 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
|
|
#define _SYS_MMAN_H 1
|
|
|
|
#include <features.h>
|
|
#include <bits/types.h>
|
|
#define __need_size_t
|
|
#include <stddef.h>
|
|
|
|
#ifndef __off_t_defined
|
|
# ifndef __USE_FILE_OFFSET64
|
|
typedef __off_t off_t;
|
|
# else
|
|
typedef __off64_t off_t;
|
|
# endif
|
|
# define __off_t_defined
|
|
#endif
|
|
|
|
#ifndef __mode_t_defined
|
|
typedef __mode_t mode_t;
|
|
# define __mode_t_defined
|
|
#endif
|
|
|
|
#include <bits/mman.h>
|
|
|
|
/* Return value of `mmap' in case of an error. */
|
|
#define MAP_FAILED ((void *) -1)
|
|
|
|
__BEGIN_DECLS
|
|
/* Map addresses starting near ADDR and extending for LEN bytes. from
|
|
OFFSET into the file FD describes according to PROT and FLAGS. If ADDR
|
|
is nonzero, it is the desired mapping address. If the MAP_FIXED bit is
|
|
set in FLAGS, the mapping will be at ADDR exactly (which must be
|
|
page-aligned); otherwise the system chooses a convenient nearby address.
|
|
The return value is the actual mapping address chosen or MAP_FAILED
|
|
for errors (in which case `errno' is set). A successful `mmap' call
|
|
deallocates any previous mapping for the affected region. */
|
|
|
|
#ifndef __USE_FILE_OFFSET64
|
|
extern void *mmap (void *__addr, size_t __len, int __prot,
|
|
int __flags, int __fd, __off_t __offset) __THROW;
|
|
#else
|
|
# ifdef __REDIRECT_NTH
|
|
extern void * __REDIRECT_NTH (mmap,
|
|
(void *__addr, size_t __len, int __prot,
|
|
int __flags, int __fd, __off64_t __offset),
|
|
mmap64);
|
|
# else
|
|
# define mmap mmap64
|
|
# endif
|
|
#endif
|
|
#ifdef __USE_LARGEFILE64
|
|
extern void *mmap64 (void *__addr, size_t __len, int __prot,
|
|
int __flags, int __fd, __off64_t __offset) __THROW;
|
|
#endif
|
|
|
|
/* Deallocate any mapping for the region starting at ADDR and extending LEN
|
|
bytes. Returns 0 if successful, -1 for errors (and sets errno). */
|
|
extern int munmap (void *__addr, size_t __len) __THROW;
|
|
|
|
/* Change the memory protection of the region starting at ADDR and
|
|
extending LEN bytes to PROT. Returns 0 if successful, -1 for errors
|
|
(and sets errno). */
|
|
extern int mprotect (void *__addr, size_t __len, int __prot) __THROW;
|
|
|
|
/* Synchronize the region starting at ADDR and extending LEN bytes with the
|
|
file it maps. Filesystem operations on a file being mapped are
|
|
unpredictable before this is done. Flags are from the MS_* set.
|
|
|
|
This function is a cancellation point and therefore not marked with
|
|
__THROW. */
|
|
extern int msync (void *__addr, size_t __len, int __flags);
|
|
|
|
#ifdef __USE_MISC
|
|
/* Advise the system about particular usage patterns the program follows
|
|
for the region starting at ADDR and extending LEN bytes. */
|
|
extern int madvise (void *__addr, size_t __len, int __advice) __THROW;
|
|
#endif
|
|
#ifdef __USE_XOPEN2K
|
|
/* This is the POSIX name for this function. */
|
|
extern int posix_madvise (void *__addr, size_t __len, int __advice) __THROW;
|
|
#endif
|
|
|
|
/* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
|
|
be memory resident. */
|
|
extern int mlock (const void *__addr, size_t __len) __THROW;
|
|
|
|
/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */
|
|
extern int munlock (const void *__addr, size_t __len) __THROW;
|
|
|
|
/* Cause all currently mapped pages of the process to be memory resident
|
|
until unlocked by a call to the `munlockall', until the process exits,
|
|
or until the process calls `execve'. */
|
|
extern int mlockall (int __flags) __THROW;
|
|
|
|
/* All currently mapped pages of the process' address space become
|
|
unlocked. */
|
|
extern int munlockall (void) __THROW;
|
|
|
|
#ifdef __USE_MISC
|
|
/* mincore returns the memory residency status of the pages in the
|
|
current process's address space specified by [start, start + len).
|
|
The status is returned in a vector of bytes. The least significant
|
|
bit of each byte is 1 if the referenced page is in memory, otherwise
|
|
it is zero. */
|
|
extern int mincore (void *__start, size_t __len, unsigned char *__vec)
|
|
__THROW;
|
|
#endif
|
|
|
|
#ifdef __USE_GNU
|
|
/* Remap pages mapped by the range [ADDR,ADDR+OLD_LEN) to new length
|
|
NEW_LEN. If MREMAP_MAYMOVE is set in FLAGS the returned address
|
|
may differ from ADDR. If MREMAP_FIXED is set in FLAGS the function
|
|
takes another parameter which is a fixed address at which the block
|
|
resides after a successful call. */
|
|
extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
|
|
int __flags, ...) __THROW;
|
|
|
|
/* Remap arbitrary pages of a shared backing store within an existing
|
|
VMA. */
|
|
extern int remap_file_pages (void *__start, size_t __size, int __prot,
|
|
size_t __pgoff, int __flags) __THROW;
|
|
#endif
|
|
|
|
|
|
/* Open shared memory segment. */
|
|
extern int shm_open (const char *__name, int __oflag, mode_t __mode);
|
|
|
|
/* Remove shared memory segment. */
|
|
extern int shm_unlink (const char *__name);
|
|
|
|
__END_DECLS
|
|
|
|
#endif /* sys/mman.h */
|