|
|
@ -30,6 +30,8 @@ |
|
|
#include <sys/random.h>
|
|
|
#include <sys/random.h>
|
|
|
#include <mach/vm_map.h>
|
|
|
#include <mach/vm_map.h>
|
|
|
#include <mach/mach.h>
|
|
|
#include <mach/mach.h>
|
|
|
|
|
|
#elif defined(__OPENORBIS__)
|
|
|
|
|
|
#include <orbis/libkernel.h>
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
|
|
|
// FreeBSD
|
|
|
// FreeBSD
|
|
|
@ -450,12 +452,16 @@ 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(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) || defined(__managarm__) || defined(__AIX__) || defined(__OPENORBIS__)
|
|
|
|
|
|
void* virtual_base = mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_ALIGNED_SUPER | MAP_SYSTEM, -1, 0); |
|
|
|
|
|
|
|
|
#if defined(__OPENORBIS__)
|
|
|
|
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_SYSTEM, -1, 0); |
|
|
|
|
|
#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) || defined(__managarm__) || defined(__AIX__)
|
|
|
|
|
|
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; |
|
|
#endif
|
|
|
|
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); |
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); |
|
|
|
|
|
#else
|
|
|
|
|
|
return mmap(nullptr, virtual_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); |
|
|
|
|
|
#endif
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#endif
|
|
|
#endif
|
|
|
|