Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MREMAP(2)		      System Calls Manual		     MREMAP(2)

NAME
       mremap -- re-map	a virtual memory address

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<sys/mman.h>

       void *
       mremap(void   *oldp,   size_t  oldsize,	void  *newp,  size_t  newsize,
	   int flags);

DESCRIPTION
       The mremap() function resizes the mapped	range (see  mmap(2))  starting
       at  oldp	 and  having size oldsize to newsize.  The following arguments
       can be OR'ed together in	the flags argument:

       MAP_ALIGNED(n)	  The allocation should	be aligned to the given	bound-
			  ary, i.e. ensure that	the lowest n bits of  the  ad-
			  dress	 are zero.  The	parameter n should be the base
			  2 logarithm of the desired alignment (e.g.,  to  re-
			  quest	 alignment to 16K, use 14 as the value for n).
			  The alignment	must be	equal to or greater  than  the
			  platform's  page size	as returned by sysconf(3) with
			  the _SC_PAGESIZE request.

       MAP_FIXED	  newp is tried	and mremap()  fails  if	 that  address
			  can't	 be  used  as  new base	address	for the	range.
			  Otherwise, oldp and newp are used as hints  for  the
			  position, factoring in the given alignment.

RETURN VALUES
       mremap()	returns	the new	address	or MAP_FAILED, if the remap failed.

HISTORY
       The  mremap()  system call appeared in NetBSD 5.0.  It was based	on the
       code that supports mremap() compatibility for Linux binaries.

COMPATIBILITY
       The semantics of	mremap() differ	from the  one  provided	 by  glibc  on
       Linux  in that the newp argument	was added and a	different set of flags
       are implemented.

SEE ALSO
       mmap(2),	munmap(2)

NetBSD 5.0		       February	14, 2008		     MREMAP(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mremap&manpath=NetBSD+5.0>

home | help