1.3.2-1: mmap and MAP_PRIVATE|MAP_FIXED|MAP_ANON

Kandziora Jan Jan.Kandziora@ts.siemens.de
Tue Sep 18 04:28:00 GMT 2001


>
>> if ((buf2=mmap((void*)0x70000000,1, > >
PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,0,0))==NULL) 
>
^^^^ Hmm!
>$ man mmap [...]
	RETURN VALUE On success, mmap returns a pointer to the mapped area.
On error, MAP_FAILED (-1) is returned, and errno is set appropriately...

You are right. But it does *not* return MAP_FAILED, it returns 0x60001000,
which is a valid address.

>>
>> Is it impossible with windows to mmap a couple of anonymous areas
anywhere I
>> want and no memory is already mapped?
>>
>More or less. Windows is somewhat bulky in giving you the area you want.
However:
>$ man mmap [...] MAP_FIXED Do not select a different address than the one
specified.
>If the specified address cannot be used, mmap will fail. If MAP_FIXED is
specified, start must be a multiple of the pagesize. Use of this option is
discouraged.
>Note that. A normal application should have no need ever to desire a
specific address.

I do not write a normal application: It is a kind of executeable loader
which allow to specify the address the (special) executeable is loaded to.
The intention is to have exactly the same code of this special executables
running on a windows and on a linux box to make it possible to check the two
computers programs against each other at runtime.

	Jan


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list