]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - misc/sys/mman.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / misc / sys / mman.h
index 4aa4a52118f06311f86eaeadb8546055fb7ad8a3..d6bc842ca772328a7dc256e5ed8af218d6f9b966 100644 (file)
@@ -1,21 +1,20 @@
 /* Definitions for BSD-style memory management.
-   Copyright (C) 1994-1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1994-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 Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   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
@@ -58,11 +57,11 @@ __BEGIN_DECLS
 extern void *mmap (void *__addr, size_t __len, int __prot,
                   int __flags, int __fd, __off_t __offset) __THROW;
 #else
-# ifdef __REDIRECT
-extern void * __REDIRECT (mmap,
-                         (void *__addr, size_t __len, int __prot,
-                          int __flags, int __fd, __off64_t __offset) __THROW,
-                         mmap64);
+# 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
@@ -83,21 +82,28 @@ 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.  */
-extern int msync (void *__addr, size_t __len, int __flags) __THROW;
+   unpredictable before this is done.  Flags are from the MS_* set.
 
-#ifdef __USE_BSD
+   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;
+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;
+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,
@@ -109,13 +115,37 @@ extern int mlockall (int __flags) __THROW;
 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 MAY_MOVE is MREMAP_MAYMOVE the returned address may
-   differ from ADDR.  */
+   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 __may_move) __THROW;
+                    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 */