mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	This fixes build failures using GCC 7.5.0 against glibc headers,
see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118194#c5.
Followup to 013106ae67.
Reported-by: vvinayag@arm.com
		
	
		
			
				
	
	
		
			157 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Definitions for BSD-style memory management.
 | 
						|
   Copyright (C) 1994-2025 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
 | 
						|
   <https://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
 | 
						|
    __attr_access_none (1);
 | 
						|
 | 
						|
/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN).  */
 | 
						|
extern int munlock (const void *__addr, size_t __len) __THROW
 | 
						|
    __attr_access_none (1);
 | 
						|
 | 
						|
/* 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);
 | 
						|
 | 
						|
/* System-specific extensions.  */
 | 
						|
#include <bits/mman_ext.h>
 | 
						|
 | 
						|
__END_DECLS
 | 
						|
 | 
						|
#endif	/* sys/mman.h */
 |