Hello.
I have question about mmap.

void *OSMem::AllocateDataArea(size_t &space)
{
    // Round up to an integral number of pages.
    space = (space + pageSize-1) & ~(pageSize-1);
    int fd = -1; // This value is required by FreeBSD.  Linux doesn't care
    int flags = MAP_PRIVATE | MAP_ANON;
#ifdef MAP_STACK
    if (memUsage == UsageStack) flags |= MAP_STACK; // OpenBSD seems to require 
this
#endif
    void *result = mmap(0, space, PROT_READ|PROT_WRITE, flags, fd, 0);
    // Convert MAP_FAILED (-1) into NULL
    if (result == MAP_FAILED)
        return 0;
    return result;
}


When MAP_STACK is used, "insufficient memory" error occurs.
When MAP_STACK removed, it is all right.

Please tell me why.
_______________________________________________
freebsd-stable@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to