Subject: Re: port-i386/3920: linux emulation doesn't support mremap()
To: None <current-users@NetBSD.ORG>
From: Matthias Scheler <>
List: current-users
Date: 07/28/1997 20:43:25
In article <>,
	"Chris G. Demetriou" <> writes:
> I've encountered several occasions in which i'd wanted such a syscall
> for general use in NetBSD, but have never gotten around to writing it.

Of course it would be better to have a real implementation on which a
real emulation could be based own.

> .. it'd probably be more generally useful ...

But until then my patch will help to improve linux compatibility.

> don't know what it's supposed to do under linux, 

>From mremap(2):

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

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

       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

       The flags argument is a bitmap of flags.

Matthias Scheler