IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

mremap (2)

MREMAP(2)                  Linux Programmer's Manual                 MREMAP(2)



NAME
       mremap - re-map a virtual memory address

SYNOPSIS
       #include<unistd.h>
       #include<sys/mman.h>

       void*mremap(void*old_address,size_t old_size ,size_t new_size,
       unsignedlong flags);

DESCRIPTION
       mremap expands (or shrinks) an  existing  memory  mapping,  potentially
       moving  it  at  the same time (controlled by the flags argument and the
       available virtual address space).

       old_address is the old address of the virtual  memory  block  that  you
       want  to  expand  (or  shrink).   Note  that old_address has to be page
       aligned. old_size  is  the  old  size  of  the  virtual  memory  block.
       new_size  is  the  requested size of the virtual memory block after the
       resize.

       The flags argument is a bitmap of flags.

       In Linux the memory is divided into pages.  A user process has (one or)
       several  linear  virtual  memory segments.  Each virtual memory segment
       has one or more mappings to real memory  pages  (in  the  page  table).
       Each  virtual  memory  segment  has its own protection (access rights),
       which may cause a segmentation violation  if  the  memory  is  accessed
       incorrectly  (e.g., writing to a read-only segment).  Accessing virtual
       memory outside of the segments will also cause  a  segmentation  viola-
       tion.

       mremap  uses  the  Linux page table scheme.  mremap changes the mapping
       between virtual addresses and memory pages.  This can be used to imple-
       ment a very efficient realloc.


FLAGS
       MREMAP_MAYMOVE
              indicates  if  the  operation should fail, or change the virtual
              address if the resize cannot be  done  at  the  current  virtual
              address.


RETURNVALUE
       On success mremap returns a pointer to the new virtual memory area.  On
       error, -1 is returned, and errno is set appropriately.


ERRORS
       EINVAL An invalid argument was given. Most likely old_address  was  not
              page aligned.

       EFAULT "Segmentation  fault."  Some address in the range old_address to
              old_address+old_size is an invalid virtual  memory  address  for
              this  process.  You can also get EFAULT even if there exist map-
              pings that cover the whole address space  requested,  but  those
              mappings are of different types.

       EAGAIN The memory segment is locked and cannot be re-mapped.

       ENOMEM The  memory  area  cannot  be  expanded  at  the current virtual
              address, and the MREMAP_MAYMOVE flag is not set in  flags.   Or,
              there is not enough (virtual) memory available.

NOTES
       With  current  glibc  includes,  in  order  to  get  the  definition of
       MREMAP_MAYMOVE,  you  need  to  define  _GNU_SOURCE  before   including
       <sys/mman.h>.

CONFORMINGTO
       This  call  is  Linux-specific,  and  should  not  be  used in programs
       intended to be portable.  4.2BSD had  a  (never  actually  implemented)
       mremap(2) call with completely different semantics.

SEEALSO
       getpagesize(2), realloc(3), malloc(3), brk(2), sbrk(2), mmap(2)

       Your favorite OS text book for more information on paged memory.  (Mod-
       ern Operating Systems by Andrew S. Tannenbaum, Inside Linux by  Randolf
       Bentson, The Design of the UNIX Operating System by Maurice J. Bach.)




Linux 1.3.87                      1996-04-12                         MREMAP(2)

_Exitgetsockoptoutwshmat
_exitgettidoutw_pshmctl
_llseekgettimeofdaypauseshmdt
_newselectgetuidpersonalityshmget
_sysctlgttypipeshmop
acceptidlepivot_rootshutdown
accessinbpollsigaction
acctinb_pprctlsigaltstack
adjtimexinlpreadsigblock
afs_syscallinl_pprofsiggetmask
alarminsbpselectsigmask
alloc_hugepagesinslptracesignal
arch_prctlinswpwritesigpause
bdflushintroquotactlsigpending
bindinwreadsigprocmask
breakinw_preaddirsigqueue
brkioctlreadlinksigreturn
cacheflushioctl_listreadvsigsetmask
capgetiopermrebootsigsuspend
capsetioplrecvsigtimedwait
chdiripcrecvfromsigvec
chmodkillrecvmsgsigwaitinfo
chownkillpgrenamesocket
chrootlchownrmdirsocketcall
clonelinksbrksocketpair
closelistensched_get_priority_maxssetmask
connectllseeksched_get_priority_minstat
creatlocksched_getaffinitystatfs
duplseeksched_getparamstime
dup2lstatsched_getschedulerstty
execvemadvisesched_rr_get_intervalswapoff
exitmincoresched_setaffinityswapon
fchdirmkdirsched_setparamsymlink
fchmodmknodsched_setschedulersync
fchownmlocksched_yieldsyscall
fcntlmlockallselectsyscalls
fdatasyncmmapselect_tutsysctl
flockmmap2semctlsysfs
forkmodify_ldtsemgetsysinfo
free_hugepagesmountsemopsyslog
fstatmprotectsendtime
fstatfsmpxsendfiletimes
fsyncmremapsendmsgtkill
ftruncatemsgctlsendtotruncate
futexmsggetsetcontextumask
getcontextmsgopsetdomainnameumount
getdentsmsgrcvsetegidumount2
getdomainnamemsgsndseteuiduname
getdtablesizemsyncsetfsgidundocumented
getegidmunlocksetfsuidunimplemented
geteuidmunlockallsetgidunlink
getgidmunmapsetgroupsuselib
getgroupsnanosleepsethostidustat
gethostidnfsservctlsethostnameutime
gethostnamenicesetitimerutimes
getitimerobsoletesetpgidvfork
getpagesizeoldfstatsetpgrpvhangup
getpeernameoldlstatsetpriorityvm86
getpgidoldoldunamesetregidwait
getpgrpoldstatsetresgidwait3
getpidoldunamesetresuidwait4
getppidopensetreuidwaitpid
getpriorityoutbsetrlimitwrite
getresgidoutb_psetsidwritev
getresuidoutlsetsockopt 
getrlimitoutl_psettimeofday 
getrusageoutsbsetuid 
getsidoutslsetup 


Opera 10.10
Opera for Linux
ImageMagick 6.5.7.10
ImageMagick image processing studio
DeleGate 9.9.6-pre6
Proxy server which runs on multiple platforms
Inkscape 0.47
Vector graphic editor for SVG
Nano 2.1.99pre2
Emulate Pico while also offering a few enhancements.
My Money 2.0.49
Personal financial software
Linux Kernel 2.6 2.6.32-rc8
Linux Kernel
Rhythmbox 0.12.6
Integrated music management application
Tellico 2.1.1
Collection manager for books, music, videos, and bibliographies
Totem 2.28.4
Movie player for Gnome
Free IT Magazines, White Papers, eBooks, and more !
Oracle Magazine

Contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more.

Vulnerability Management for Dummies

Get all the Facts and See How to Implement a Successful Vulnerability Management Program.

Website Magazine

Has tapped premier talent in the Internet industry for our content and each and every issue will contain practical advice and insights for website owners.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Quick Survey

Please take our survey and help us improve our website to serve you better.

Thank you.
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info