mirror of
https://github.com/halpz/re3.git
synced 2025-06-28 17:16:19 +00:00
macOS support; thanks to @MrYadro
This should support ARM64 and x86-64. -target flag based on information from https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary#3618377.
This commit is contained in:
committed by
eray orçunus
parent
3435d6656c
commit
d590fdddf6
@ -81,7 +81,12 @@ DWORD _dwOperatingSystemVersion;
|
||||
#include "resource.h"
|
||||
#else
|
||||
long _dwOperatingSystemVersion;
|
||||
#ifndef __APPLE__
|
||||
#include <sys/sysinfo.h>
|
||||
#else
|
||||
#include <mach/mach_host.h>
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
#include <stddef.h>
|
||||
#include <locale.h>
|
||||
#include <signal.h>
|
||||
@ -449,15 +454,27 @@ psInitialize(void)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#ifndef __APPLE__
|
||||
struct sysinfo systemInfo;
|
||||
sysinfo(&systemInfo);
|
||||
|
||||
_dwMemAvailPhys = systemInfo.freeram;
|
||||
_dwOperatingSystemVersion = OS_WINXP; // To fool other classes
|
||||
|
||||
debug("Physical memory size %u\n", systemInfo.totalram);
|
||||
debug("Available physical memory %u\n", systemInfo.freeram);
|
||||
|
||||
#else
|
||||
uint64_t size = 0;
|
||||
uint64_t page_size = 0;
|
||||
size_t uint64_len = sizeof(uint64_t);
|
||||
size_t ull_len = sizeof(unsigned long long);
|
||||
sysctl((int[]){CTL_HW, HW_PAGESIZE}, 2, &page_size, &ull_len, NULL, 0);
|
||||
sysctl((int[]){CTL_HW, HW_MEMSIZE}, 2, &size, &uint64_len, NULL, 0);
|
||||
vm_statistics_data_t vm_stat;
|
||||
mach_msg_type_number_t count = HOST_VM_INFO_COUNT;
|
||||
host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vm_stat, &count);
|
||||
_dwMemAvailPhys = (uint64_t)(vm_stat.free_count * page_size);
|
||||
debug("Physical memory size %llu\n", _dwMemAvailPhys);
|
||||
debug("Available physical memory %llu\n", size);
|
||||
#endif
|
||||
_dwOperatingSystemVersion = OS_WINXP; // To fool other classes
|
||||
#endif
|
||||
TheText.Unload();
|
||||
|
||||
|
Reference in New Issue
Block a user