On Sun, 29 Jun 2008 09:54:56 +0200, David Ayers <[EMAIL PROTECTED]> said:
> Hello David David Chisnall schrieb: >> I think calling mmap directly is the wrong solution here. You should >> be using valloc() with the requested size rounded up to the nearest >> page size, and then use mprotect to set it as executable. Note that >> most sane operating systems (and Vista) are moving to W^X, so you >> need to set it as writeable while creating it, then executable while >> using it (i.e. call mprotect immediately before the return). >> >My man page for vmalloc states: > The obsolete function valloc() allocates size bytes and returns > a pointer to the allocated memory. The memory address will be a > multiple of the page size. It is equivalent to > memalign(sysconf(_SC_PAGESIZE),size). Heh. My man page for memalign says: ,---- | The obsolete function memalign() allocates size bytes and returns a | pointer to the allocated memory. The memory address will be a multiple | of boundary, which must be a power of two. `---- and implies that posix_memalign should be used instead. From what I can gather, "ptr=valloc(size)" is equivalent to "posix_memalign(&ptr,sysconf(_SC_PAGESIZE),size)", but don't quote me on that. Hubert _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnustep-dev