27 lines
874 B
Diff
27 lines
874 B
Diff
|
diff --git a/src/common/tuklib_physmem.c b/src/common/tuklib_physmem.c
|
||
|
index 4053ad0..c49db6d 100644
|
||
|
--- a/src/common/tuklib_physmem.c
|
||
|
+++ b/src/common/tuklib_physmem.c
|
||
|
@@ -79,6 +79,13 @@ tuklib_physmem(void)
|
||
|
uint64_t ret = 0;
|
||
|
|
||
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||
|
+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
|
||
|
+ MEMORYSTATUSEX ms;
|
||
|
+ ms.dwLength = sizeof(ms);
|
||
|
+ if(!GlobalMemoryStatusEx(&ms))
|
||
|
+ return 0;
|
||
|
+ return ms.ullTotalPhys;
|
||
|
+#else
|
||
|
if ((GetVersion() & 0xFF) >= 5) {
|
||
|
// Windows 2000 and later have GlobalMemoryStatusEx() which
|
||
|
// supports reporting values greater than 4 GiB. To keep the
|
||
|
@@ -107,6 +114,7 @@ tuklib_physmem(void)
|
||
|
GlobalMemoryStatus(&meminfo);
|
||
|
ret = meminfo.dwTotalPhys;
|
||
|
}
|
||
|
+#endif
|
||
|
|
||
|
#elif defined(__OS2__)
|
||
|
unsigned long mem;
|