Windows: fix sysconf(_SC_PHYS_PAGES).
[fio.git] / os / os-windows.h
index 98f9030530ef23db3536d67ae38f4f6abcedeebd..09f9c5438d2ff1580d16ab2b5586da488866b648 100644 (file)
@@ -151,12 +151,14 @@ static inline int blockdev_invalidate_cache(struct fio_file *f)
 
 static inline unsigned long long os_phys_mem(void)
 {
-       SYSTEM_INFO sysInfo;
-       uintptr_t addr;
+       long pagesize, pages;
 
-       GetSystemInfo(&sysInfo);
-       addr = (uintptr_t)sysInfo.lpMaximumApplicationAddress;
-       return (unsigned long long)addr;
+       pagesize = sysconf(_SC_PAGESIZE);
+       pages = sysconf(_SC_PHYS_PAGES);
+       if (pages == -1 || pagesize == -1)
+               return 0;
+
+       return (unsigned long long) pages * (unsigned long long) pagesize;
 }
 
 static inline void os_get_tmpdir(char *path, int len)