|
|
@ -417,11 +417,15 @@ static void* ChooseVirtualBase(size_t virtual_size) { |
|
|
#else
|
|
|
#else
|
|
|
|
|
|
|
|
|
static void* ChooseVirtualBase(size_t virtual_size) { |
|
|
static void* ChooseVirtualBase(size_t virtual_size) { |
|
|
|
|
|
#if defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) || defined(__managarm__)
|
|
|
void* virtual_base = mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_ALIGNED_SUPER, -1, 0); |
|
|
void* virtual_base = mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_ALIGNED_SUPER, -1, 0); |
|
|
if (virtual_base != MAP_FAILED) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (virtual_base != MAP_FAILED) { |
|
|
return virtual_base; |
|
|
return virtual_base; |
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, |
|
|
|
|
|
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#endif
|
|
|
#endif
|
|
|
|