In article <20160512093311.gd19...@mail.duskware.de>,
Martin Husemann  <mar...@duskware.de> wrote:
>Here is an excerpt from example code that is known to work:
>
>/* For various ports, try to guess a fixed spot in the vm space
>   that's probably free.  */
>#if defined(__sparc64__)
># define TRY_EMPTY_VM_SPACE    0x40000000000
>#elif defined(_LP64)
># define TRY_EMPTY_VM_SPACE    0x400000000000
>#elif defined(__mips__) || defined(__vax__) || defined (__arm__)
># define TRY_EMPTY_VM_SPACE    0x60000000
>#else
># define TRY_EMPTY_VM_SPACE    0xb0000000
>#endif
>
>  addr = mmap ((void *) TRY_EMPTY_VM_SPACE, size, PROT_READ | PROT_WRITE,
>              MAP_PRIVATE | MAP_FIXED, fd, 0);
>
>
>And size is allowed to be smaller than the page size.

Can't MAP_ALIGNED(n) be used to avoid this mess? You probably need a different
argument depending on _LP64 or not, but that should be it... This could avoid
using MAP_FIXED.

christos

Reply via email to