Update all Windows files except dobuild.cmd to use LF line endings
[fio.git] / os / os-windows.h
index 64808bb980ad5a9052267d95d7038896b1fa4e65..09f9c5438d2ff1580d16ab2b5586da488866b648 100644 (file)
@@ -20,7 +20,6 @@
 #define FIO_HAVE_ODIRECT
 #define FIO_HAVE_CPU_AFFINITY
 #define FIO_HAVE_CHARDEV_SIZE
-#define FIO_HAVE_FDATASYNC
 #define FIO_HAVE_GETTID
 #define FIO_USE_GENERIC_RAND
 
@@ -152,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)
@@ -248,4 +249,11 @@ static inline int init_random_state(struct thread_data *td, unsigned long *rand_
 }
 
 
+static inline int fio_set_sched_idle(void)
+{
+       /* SetThreadPriority returns nonzero for success */
+       return (SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_IDLE))? 0 : -1;
+}
+
+
 #endif /* FIO_OS_WINDOWS_H */