From a01985273bde586468daec716251e05a3a8db5bf Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 12 Jun 2016 18:42:03 +0200 Subject: [PATCH] Implement frontend_darwin_get_mem_free --- frontend/drivers/platform_darwin.m | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 8d96f398f7..65b49ae891 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -681,6 +681,28 @@ static uint64_t frontend_darwin_get_mem_total(void) #endif } +static uint64_t frontend_darwin_get_mem_free(void) +{ +#ifdef OSX + vm_size_t page_size; + vm_statistics64_data_t vm_stats; + mach_port_t mach_port = mach_host_self(); + mach_msg_type_number_t count = sizeof(vm_stats) / sizeof(natural_t); + + if (KERN_SUCCESS == host_page_size(mach_port, &page_size) && + KERN_SUCCESS == host_statistics64(mach_port, HOST_VM_INFO, + (host_info64_t)&vm_stats, &count)) + { + + long long used_memory = ((int64_t)vm_stats.active_count + + (int64_t)vm_stats.inactive_count + + (int64_t)vm_stats.wire_count) * (int64_t)page_size; + return used_memory; + } +#endif + return 0; +} + frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_environment_settings, NULL, /* init */ @@ -698,6 +720,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, frontend_darwin_get_mem_total, - NULL, /* get_mem_free */ + frontend_darwin_get_mem_free, "darwin", };