diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index f46c89398c..ba8568b0cb 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -22,7 +22,7 @@ #include -#include +#include #include #include @@ -764,7 +764,6 @@ static int frontend_darwin_parse_drive_list(void *data, bool load_content) return ret; } -/* TODO/FIXME - is adding iOS/tvOS support possible here? */ static uint64_t frontend_darwin_get_total_mem(void) { #if defined(OSX) @@ -774,11 +773,15 @@ static uint64_t frontend_darwin_get_total_mem(void) size_t len = sizeof(size); if (sysctl(mib, namelen, &size, &len, NULL, 0) >= 0) return size; +#elif defined(IOS) + task_vm_info_data_t vmInfo; + mach_msg_type_number_t count = TASK_VM_INFO_COUNT; + if (task_info(mach_task_self(), TASK_VM_INFO, (task_info_t) &vmInfo, &count) == KERN_SUCCESS) + return vmInfo.resident_size_peak; #endif return 0; } -/* TODO/FIXME - is adding iOS/tvOS support possible here? */ static uint64_t frontend_darwin_get_free_mem(void) { #if (defined(OSX) && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101200)) @@ -797,6 +800,11 @@ static uint64_t frontend_darwin_get_free_mem(void) (int64_t)vm_stats.wire_count) * (int64_t)page_size; return used_memory; } +#elif defined(IOS) + task_vm_info_data_t vmInfo; + mach_msg_type_number_t count = TASK_VM_INFO_COUNT; + if (task_info(mach_task_self(), TASK_VM_INFO, (task_info_t) &vmInfo, &count) == KERN_SUCCESS) + return vmInfo.resident_size_peak - vmInfo.resident_size; #endif return 0; }