void * MemAlloc(size_t size, MEM_PROTECTION protect) { #if defined(TARGET_MAC) || defined(TARGET_BSD) void * addr = mmap(0, size, SysProtection(protect), MAP_ANON | MAP_PRIVATE, -1, 0); #else void * addr = mmap(0, size, SysProtection(protect), MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); #endif if (addr != MAP_FAILED) { return addr; } return 0; }
BOOL MemProtect(void * addr, size_t size, MEM_PROTECTION protect) { DWORD oldProtect; return VirtualProtect(addr, size, SysProtection(protect), &oldProtect); }
void * MemAlloc(size_t size, MEM_PROTECTION protect) { return VirtualAlloc(0, size, MEM_COMMIT, SysProtection(protect)); }
BOOL MemProtect(void * addr, size_t size, MEM_PROTECTION protect) { return (-1 != mprotect(addr, size, SysProtection(protect))); }