err = vm_allocate(mach_task_self(),(vm_address_t*) &ret, size, TRUE);
if(err) // don't know what the error codes mean exactly
err = vm_allocate(mach_task_self(),(vm_address_t*) &ret, size, TRUE);
if(err) // don't know what the error codes mean exactly
else
vm_protect(mach_task_self(),ret,size,FALSE,VM_PROT_READ|VM_PROT_WRITE);
#else
else
vm_protect(mach_task_self(),ret,size,FALSE,VM_PROT_READ|VM_PROT_WRITE);
#else
(errno == EINVAL && sizeof(void*)==4 && size >= 0xc0000000)) {
// If we request more than 3Gig, then we get EINVAL
// instead of ENOMEM (at least on Linux).
(errno == EINVAL && sizeof(void*)==4 && size >= 0xc0000000)) {
// If we request more than 3Gig, then we get EINVAL
// instead of ENOMEM (at least on Linux).