7 statex.dwLength =
sizeof(statex);
8 if (!GlobalMemoryStatusEx(&statex))
10 return (
size_t)statex.ullAvailPhys;
11#elif defined(__APPLE__)
12 mach_msg_type_number_t count = HOST_VM_INFO_COUNT;
13 vm_statistics_data_t vmstat;
14 if (host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmstat, &count) != KERN_SUCCESS)
17 natural_t available_pages = vmstat.free_count + vmstat.inactive_count;
19 host_page_size(mach_host_self(), &page_size);
21 return (
size_t)available_pages * (size_t)page_size;
23 long pages = sysconf(_SC_AVPHYS_PAGES);
24 long page_size = sysconf(_SC_PAGESIZE);
25 if (pages == -1 || page_size == -1)
27 return (
size_t)pages * (size_t)page_size;