Implement memory queries on iOS/tvOS
This commit is contained in:
parent
9320122252
commit
9d7ce37f9b
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
#include <mach/mach_host.h>
|
#include <mach/mach.h>
|
||||||
|
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
#include <CoreFoundation/CFArray.h>
|
#include <CoreFoundation/CFArray.h>
|
||||||
|
@ -764,7 +764,6 @@ static int frontend_darwin_parse_drive_list(void *data, bool load_content)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO/FIXME - is adding iOS/tvOS support possible here? */
|
|
||||||
static uint64_t frontend_darwin_get_total_mem(void)
|
static uint64_t frontend_darwin_get_total_mem(void)
|
||||||
{
|
{
|
||||||
#if defined(OSX)
|
#if defined(OSX)
|
||||||
|
@ -774,11 +773,15 @@ static uint64_t frontend_darwin_get_total_mem(void)
|
||||||
size_t len = sizeof(size);
|
size_t len = sizeof(size);
|
||||||
if (sysctl(mib, namelen, &size, &len, NULL, 0) >= 0)
|
if (sysctl(mib, namelen, &size, &len, NULL, 0) >= 0)
|
||||||
return size;
|
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
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO/FIXME - is adding iOS/tvOS support possible here? */
|
|
||||||
static uint64_t frontend_darwin_get_free_mem(void)
|
static uint64_t frontend_darwin_get_free_mem(void)
|
||||||
{
|
{
|
||||||
#if (defined(OSX) && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101200))
|
#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;
|
(int64_t)vm_stats.wire_count) * (int64_t)page_size;
|
||||||
return used_memory;
|
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
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue